From 4466ba436b996263307171d344cca199e8087744 Mon Sep 17 00:00:00 2001
From: Steven
Date: Thu, 11 Jan 2024 18:01:44 -0500
Subject: [PATCH] chore(examples): use default prettier for examples/templates
(#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.
This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).
## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)
## Related
- Fixes #54402
- Closes #54409
---
.prettierrc.json | 1 +
examples/.prettierrc.json | 5 +
.../components/ActiveLink.tsx | 34 +-
examples/active-class-name/components/Nav.tsx | 8 +-
examples/active-class-name/next.config.js | 8 +-
examples/active-class-name/pages/[slug].tsx | 12 +-
examples/active-class-name/pages/about.tsx | 6 +-
examples/active-class-name/pages/index.tsx | 6 +-
examples/active-class-name/pages/news.tsx | 6 +-
examples/amp/additional.d.ts | 16 +-
examples/amp/components/Byline.tsx | 6 +-
examples/amp/components/Layout.tsx | 6 +-
examples/amp/pages/dog.tsx | 22 +-
examples/amp/pages/index.tsx | 16 +-
examples/amp/pages/normal.tsx | 2 +-
examples/analyze-bundles/next.config.js | 10 +-
examples/analyze-bundles/pages/about.tsx | 6 +-
examples/analyze-bundles/pages/contact.tsx | 6 +-
examples/analyze-bundles/pages/index.tsx | 22 +-
.../apollo/client.tsx | 44 +-
.../apollo/resolvers.ts | 40 +-
.../apollo/schema.ts | 8 +-
.../apollo/type-defs.ts | 4 +-
.../components/field.tsx | 6 +-
.../lib/auth-cookies.ts | 34 +-
.../lib/auth.ts | 26 +-
.../lib/form.ts | 6 +-
.../lib/user.ts | 28 +-
.../pages/_app.tsx | 8 +-
.../pages/about.tsx | 4 +-
.../pages/api/graphql.ts | 18 +-
.../pages/index.tsx | 36 +-
.../pages/signin.tsx | 44 +-
.../pages/signout.tsx | 26 +-
.../pages/signup.tsx | 38 +-
.../apollo/client.tsx | 44 +-
.../apollo/resolvers.ts | 4 +-
.../apollo/schema.ts | 8 +-
.../apollo/type-defs.ts | 4 +-
.../pages/_app.tsx | 8 +-
.../pages/about.tsx | 4 +-
.../pages/api/graphql.ts | 10 +-
.../pages/index.tsx | 26 +-
.../pages/[username].tsx | 20 +-
.../pages/api/graphql.ts | 28 +-
.../api-routes-apollo-server/pages/index.tsx | 10 +-
.../shared/query-graphql/index.ts | 8 +-
examples/api-routes-cors/pages/api/cors.ts | 24 +-
examples/api-routes-cors/pages/index.tsx | 2 +-
.../api-routes-graphql/pages/api/graphql.ts | 16 +-
examples/api-routes-graphql/pages/index.tsx | 31 +-
.../pages/api/cookies.ts | 8 +-
.../api-routes-middleware/pages/index.tsx | 14 +-
.../api-routes-middleware/utils/cookies.ts | 16 +-
.../api-routes-rate-limit/pages/api/user.ts | 16 +-
.../api-routes-rate-limit/pages/index.tsx | 22 +-
.../api-routes-rate-limit/styles.module.css | 2 +-
.../api-routes-rate-limit/utils/rate-limit.ts | 34 +-
examples/api-routes-rest/interfaces/index.ts | 6 +-
.../api-routes-rest/pages/api/user/[id].ts | 28 +-
examples/api-routes-rest/pages/api/users.ts | 10 +-
examples/api-routes-rest/pages/index.tsx | 18 +-
examples/api-routes-rest/pages/user/[id].tsx | 22 +-
examples/api-routes/components/Person.tsx | 10 +-
examples/api-routes/data.ts | 162 +--
examples/api-routes/interfaces/index.ts | 22 +-
examples/api-routes/pages/api/people/[id].ts | 16 +-
examples/api-routes/pages/api/people/index.ts | 10 +-
examples/api-routes/pages/index.tsx | 18 +-
examples/api-routes/pages/person/[id].tsx | 28 +-
.../app/[lang]/components/counter.tsx | 12 +-
.../app/[lang]/components/locale-switcher.tsx | 24 +-
.../app/[lang]/layout.tsx | 16 +-
.../app-dir-i18n-routing/app/[lang]/page.tsx | 18 +-
.../app-dir-i18n-routing/get-dictionary.ts | 14 +-
examples/app-dir-i18n-routing/i18n-config.ts | 8 +-
examples/app-dir-i18n-routing/middleware.ts | 45 +-
examples/app-dir-mdx/app/globals.css | 6 +-
examples/app-dir-mdx/app/layout.tsx | 12 +-
examples/app-dir-mdx/app/page.module.css | 4 +-
examples/app-dir-mdx/app/page.tsx | 14 +-
examples/app-dir-mdx/mdx-components.tsx | 4 +-
examples/app-dir-mdx/next.config.js | 8 +-
examples/app-dir-mdx/types/mdx.d.ts | 6 +-
.../components/LoginEntryPoint.tsx | 20 +-
.../components/LoginWithSMS.tsx | 20 +-
.../components/SendOTPForm.tsx | 52 +-
.../components/StytchContainer.tsx | 20 +-
.../components/VerifyOTPForm.tsx | 132 +-
examples/auth-with-stytch/lib/loadStytch.ts | 18 +-
examples/auth-with-stytch/lib/otpUtils.ts | 12 +-
examples/auth-with-stytch/lib/withSession.tsx | 24 +-
examples/auth-with-stytch/pages/_app.tsx | 20 +-
examples/auth-with-stytch/pages/_document.tsx | 4 +-
.../pages/api/authenticate_magic_link.ts | 42 +-
.../pages/api/authenticate_otp.ts | 48 +-
examples/auth-with-stytch/pages/api/logout.ts | 28 +-
.../auth-with-stytch/pages/api/send_otp.ts | 28 +-
examples/auth-with-stytch/pages/index.tsx | 86 +-
examples/auth-with-stytch/pages/profile.tsx | 50 +-
.../auth-with-stytch/styles/Home.module.css | 2 +-
examples/auth-with-stytch/styles/globals.css | 6 +-
.../auth/app/api/auth/[...nextauth]/route.ts | 4 +-
examples/auth/app/layout.tsx | 12 +-
examples/auth/app/page.tsx | 20 +-
examples/auth/auth.ts | 6 +-
examples/auth/middleware.ts | 6 +-
examples/auth0/additional.d.ts | 4 +-
examples/auth0/components/header.tsx | 14 +-
examples/auth0/components/layout.tsx | 22 +-
examples/auth0/interfaces/index.ts | 16 +-
examples/auth0/pages/_app.tsx | 6 +-
examples/auth0/pages/about.tsx | 14 +-
examples/auth0/pages/advanced/api-profile.tsx | 28 +-
examples/auth0/pages/advanced/ssr-profile.tsx | 14 +-
examples/auth0/pages/api/auth/[...auth0].tsx | 4 +-
examples/auth0/pages/api/protected-api.ts | 12 +-
examples/auth0/pages/index.tsx | 12 +-
examples/auth0/pages/profile.tsx | 20 +-
examples/basic-css/pages/index.tsx | 8 +-
examples/basic-export/next.config.js | 6 +-
examples/basic-export/pages/about.tsx | 8 +-
examples/basic-export/pages/index.tsx | 8 +-
examples/blog-starter/@types/remark-html.d.ts | 2 +-
.../blog-starter/_posts/dynamic-routing.md | 12 +-
examples/blog-starter/_posts/hello-world.md | 12 +-
examples/blog-starter/_posts/preview.md | 12 +-
examples/blog-starter/components/alert.tsx | 28 +-
examples/blog-starter/components/avatar.tsx | 12 +-
.../blog-starter/components/container.tsx | 10 +-
.../blog-starter/components/cover-image.tsx | 26 +-
.../components/date-formatter.tsx | 14 +-
examples/blog-starter/components/footer.tsx | 10 +-
examples/blog-starter/components/header.tsx | 8 +-
.../blog-starter/components/hero-post.tsx | 30 +-
examples/blog-starter/components/intro.tsx | 12 +-
examples/blog-starter/components/layout.tsx | 18 +-
examples/blog-starter/components/meta.tsx | 10 +-
.../blog-starter/components/more-stories.tsx | 14 +-
.../blog-starter/components/post-body.tsx | 14 +-
.../blog-starter/components/post-header.tsx | 26 +-
.../blog-starter/components/post-preview.tsx | 30 +-
.../blog-starter/components/post-title.tsx | 12 +-
.../components/section-separator.tsx | 6 +-
examples/blog-starter/interfaces/author.ts | 8 +-
examples/blog-starter/interfaces/post.ts | 24 +-
examples/blog-starter/lib/api.ts | 46 +-
examples/blog-starter/lib/constants.ts | 6 +-
examples/blog-starter/lib/markdownToHtml.ts | 8 +-
examples/blog-starter/pages/_app.tsx | 6 +-
examples/blog-starter/pages/_document.tsx | 4 +-
examples/blog-starter/pages/index.tsx | 46 +-
examples/blog-starter/pages/posts/[slug].tsx | 74 +-
examples/blog-starter/postcss.config.js | 2 +-
examples/blog-starter/tailwind.config.js | 30 +-
.../components/comment/form.tsx | 16 +-
.../components/comment/index.tsx | 10 +-
.../components/comment/list.tsx | 22 +-
.../components/container.tsx | 6 +-
.../blog-with-comment/components/header.tsx | 6 +-
examples/blog-with-comment/environment.d.ts | 8 +-
.../blog-with-comment/hooks/useComment.ts | 58 +-
.../blog-with-comment/interfaces/index.ts | 38 +-
examples/blog-with-comment/lib/clearUrl.ts | 8 +-
.../blog-with-comment/lib/createComment.ts | 38 +-
.../blog-with-comment/lib/dateRelative.ts | 4 +-
.../blog-with-comment/lib/deleteComment.ts | 40 +-
.../blog-with-comment/lib/fetchComment.ts | 28 +-
examples/blog-with-comment/lib/getPost.ts | 44 +-
examples/blog-with-comment/lib/getUser.ts | 8 +-
.../blog-with-comment/lib/markdownToHtml.ts | 10 +-
examples/blog-with-comment/lib/redis.ts | 24 +-
examples/blog-with-comment/pages/_app.tsx | 12 +-
.../blog-with-comment/pages/_document.tsx | 4 +-
.../blog-with-comment/pages/api/comment.ts | 24 +-
examples/blog-with-comment/pages/index.tsx | 8 +-
.../blog-with-comment/pages/posts/[slug].tsx | 52 +-
.../blog-with-comment/pages/posts/index.tsx | 16 +-
examples/blog-with-comment/postcss.config.js | 2 +-
examples/blog-with-comment/tailwind.config.js | 12 +-
examples/blog/next.config.js | 12 +-
examples/blog/pages/_app.tsx | 10 +-
examples/blog/pages/_document.tsx | 12 +-
examples/blog/pages/photos.mdx | 2 +-
examples/blog/pages/tags/[tag].mdx | 8 +-
examples/blog/scripts/gen-rss.js | 40 +-
examples/blog/styles/main.css | 28 +-
examples/blog/theme.config.js | 4 +-
.../app/[timezone]/page.tsx | 36 +-
.../app/cache-state-watcher.tsx | 36 +-
examples/cache-handler-redis/app/global.css | 4 +-
examples/cache-handler-redis/app/layout.tsx | 6 +-
.../app/revalidate-from.tsx | 12 +-
.../cache-handler-redis/app/server-actions.ts | 6 +-
.../cache-handler-redis-custom.js | 68 +-
.../cache-handler-redis.js | 32 +-
.../cache-handler-redis/docker-compose.yml | 6 +-
examples/cache-handler-redis/next.config.js | 10 +-
.../catch-all-routes/components/header.tsx | 6 +-
examples/catch-all-routes/pages/about.tsx | 6 +-
examples/catch-all-routes/pages/index.tsx | 6 +-
.../catch-all-routes/pages/post/[...slug].tsx | 16 +-
examples/cloudflare-turnstile/app.css | 2 +-
examples/cloudflare-turnstile/next.config.js | 8 +-
examples/cloudflare-turnstile/pages/_app.tsx | 6 +-
.../cloudflare-turnstile/pages/api/handler.ts | 22 +-
.../cloudflare-turnstile/pages/explicit.tsx | 18 +-
.../cloudflare-turnstile/pages/implicit.tsx | 4 +-
examples/cms-agilitycms/components/alert.tsx | 20 +-
examples/cms-agilitycms/components/avatar.tsx | 4 +-
.../cms-agilitycms/components/container.tsx | 2 +-
.../cms-agilitycms/components/cover-image.tsx | 14 +-
examples/cms-agilitycms/components/date.tsx | 6 +-
examples/cms-agilitycms/components/footer.tsx | 6 +-
examples/cms-agilitycms/components/header.tsx | 4 +-
.../cms-agilitycms/components/hero-post.tsx | 16 +-
examples/cms-agilitycms/components/intro.tsx | 10 +-
examples/cms-agilitycms/components/layout.tsx | 8 +-
examples/cms-agilitycms/components/meta.tsx | 6 +-
.../components/more-stories.tsx | 12 +-
.../cms-agilitycms/components/post-body.tsx | 6 +-
.../components/post-details.tsx | 22 +-
.../cms-agilitycms/components/post-header.tsx | 10 +-
.../components/post-preview.tsx | 10 +-
.../cms-agilitycms/components/post-title.tsx | 2 +-
.../components/section-separator.tsx | 2 +-
examples/cms-agilitycms/environment.d.ts | 4 +-
examples/cms-agilitycms/lib/api.ts | 132 +-
.../lib/components/content-zone.tsx | 12 +-
.../cms-agilitycms/lib/components/image.tsx | 140 +--
.../lib/components/one-column-template.tsx | 4 +-
.../lib/components/page-template.tsx | 8 +-
.../lib/components/rich-text-area.tsx | 8 +-
examples/cms-agilitycms/lib/constants.ts | 12 +-
examples/cms-agilitycms/lib/dependancies.ts | 34 +-
examples/cms-agilitycms/lib/normalize.ts | 8 +-
examples/cms-agilitycms/lib/preview.ts | 65 +-
.../lib/use-preview-redirect.ts | 18 +-
examples/cms-agilitycms/lib/utils.ts | 14 +-
examples/cms-agilitycms/pages/[...slug].tsx | 36 +-
examples/cms-agilitycms/pages/_app.tsx | 4 +-
examples/cms-agilitycms/pages/_document.tsx | 4 +-
.../cms-agilitycms/pages/api/exit-preview.ts | 10 +-
examples/cms-agilitycms/pages/api/preview.ts | 20 +-
examples/cms-agilitycms/pages/index.ts | 6 +-
examples/cms-agilitycms/postcss.config.js | 2 +-
examples/cms-agilitycms/tailwind.config.js | 32 +-
examples/cms-builder-io/components/alert.js | 20 +-
examples/cms-builder-io/components/avatar.js | 4 +-
.../components/builder-image.js | 12 +-
.../cms-builder-io/components/container.js | 2 +-
.../cms-builder-io/components/cover-image.js | 14 +-
examples/cms-builder-io/components/date.js | 6 +-
examples/cms-builder-io/components/footer.js | 6 +-
examples/cms-builder-io/components/header.js | 4 +-
.../cms-builder-io/components/hero-post.js | 10 +-
examples/cms-builder-io/components/intro.js | 10 +-
examples/cms-builder-io/components/layout.js | 8 +-
examples/cms-builder-io/components/meta.js | 6 +-
.../cms-builder-io/components/more-stories.js | 4 +-
.../cms-builder-io/components/post-body.js | 6 +-
.../cms-builder-io/components/post-header.js | 10 +-
.../cms-builder-io/components/post-preview.js | 10 +-
.../cms-builder-io/components/post-title.js | 2 +-
.../components/section-separator.js | 2 +-
examples/cms-builder-io/lib/api.js | 46 +-
examples/cms-builder-io/lib/constants.js | 14 +-
examples/cms-builder-io/next.config.js | 18 +-
examples/cms-builder-io/pages/_app.js | 6 +-
.../cms-builder-io/pages/api/exit-preview.js | 6 +-
examples/cms-builder-io/pages/api/preview.js | 20 +-
examples/cms-builder-io/pages/index.js | 26 +-
examples/cms-builder-io/pages/posts/[slug].js | 52 +-
examples/cms-builder-io/postcss.config.js | 2 +-
examples/cms-builder-io/tailwind.config.js | 30 +-
.../cms-buttercms/components/author-card.js | 2 +-
.../cms-buttercms/components/blog/blog.js | 6 +-
.../components/blog/categories-widget.js | 4 +-
.../components/blog/post-preview-condensed.js | 6 +-
.../components/blog/post-preview.js | 12 +-
.../components/blog/posts-list.js | 4 +-
.../components/blog/search-widget.js | 2 +-
.../components/footer-section.js | 8 +-
.../components/header-section.js | 24 +-
.../cms-buttercms/components/human-date.js | 6 +-
.../landing-page-sections/feature.js | 4 +-
.../landing-page-sections/features.js | 4 +-
.../components/landing-page-sections/hero.js | 4 +-
.../landing-page-section.js | 36 +-
.../landing-page-sections/missing-section.js | 4 +-
.../landing-page-sections/testimonial.js | 2 +-
.../landing-page-sections/testimonials.js | 16 +-
.../two-column-with-image.js | 8 +-
.../components/main-menu/main-menu-link.js | 4 +-
.../components/main-menu/main-menu.js | 48 +-
.../components/missing-token-section.js | 6 +-
.../cms-buttercms/components/preloader.js | 2 +-
.../components/scroll-to-top-button.js | 18 +-
examples/cms-buttercms/css/lineicons.css | 1080 ++++++++---------
examples/cms-buttercms/css/main.css | 22 +-
.../cms-buttercms/css/tiny-slider.min.css | 4 +-
examples/cms-buttercms/lib/api.js | 90 +-
examples/cms-buttercms/next.config.js | 32 +-
examples/cms-buttercms/pages/_app.js | 80 +-
examples/cms-buttercms/pages/_document.js | 4 +-
examples/cms-buttercms/pages/blog.js | 28 +-
examples/cms-buttercms/pages/blog/[slug].js | 54 +-
.../pages/blog/category/[slug].js | 34 +-
examples/cms-buttercms/pages/blog/search.js | 20 +-
.../cms-buttercms/pages/blog/tag/[slug].js | 34 +-
.../pages/landing-page/[slug].js | 44 +-
examples/cms-buttercms/pages/missing-token.js | 6 +-
.../app/api/disable-draft/route.ts | 6 +-
.../cms-contentful/app/api/draft/route.ts | 22 +-
.../app/api/revalidate/route.ts | 14 +-
examples/cms-contentful/app/avatar.tsx | 8 +-
examples/cms-contentful/app/cover-image.tsx | 20 +-
examples/cms-contentful/app/date.tsx | 6 +-
examples/cms-contentful/app/layout.tsx | 22 +-
examples/cms-contentful/app/more-stories.tsx | 24 +-
examples/cms-contentful/app/page.tsx | 48 +-
.../cms-contentful/app/posts/[slug]/page.tsx | 28 +-
examples/cms-contentful/lib/api.ts | 46 +-
examples/cms-contentful/lib/constants.ts | 6 +-
.../cms-contentful/lib/contentful-image.tsx | 18 +-
examples/cms-contentful/lib/markdown.tsx | 34 +-
examples/cms-contentful/lib/setup.js | 20 +-
examples/cms-contentful/next.config.js | 6 +-
examples/cms-contentful/postcss.config.js | 2 +-
examples/cms-contentful/tailwind.config.ts | 14 +-
examples/cms-cosmic/components/alert.tsx | 30 +-
examples/cms-cosmic/components/avatar.tsx | 16 +-
examples/cms-cosmic/components/container.tsx | 14 +-
.../cms-cosmic/components/cover-image.tsx | 34 +-
examples/cms-cosmic/components/date.tsx | 16 +-
examples/cms-cosmic/components/footer.tsx | 10 +-
examples/cms-cosmic/components/header.tsx | 8 +-
examples/cms-cosmic/components/hero-post.tsx | 32 +-
examples/cms-cosmic/components/intro.tsx | 14 +-
examples/cms-cosmic/components/layout.tsx | 24 +-
examples/cms-cosmic/components/meta.tsx | 10 +-
.../cms-cosmic/components/more-stories.tsx | 16 +-
examples/cms-cosmic/components/post-body.tsx | 16 +-
.../cms-cosmic/components/post-header.tsx | 30 +-
.../cms-cosmic/components/post-preview.tsx | 32 +-
examples/cms-cosmic/components/post-title.tsx | 14 +-
.../components/section-separator.tsx | 6 +-
examples/cms-cosmic/interfaces/index.ts | 34 +-
examples/cms-cosmic/lib/api.tsx | 96 +-
examples/cms-cosmic/lib/constants.ts | 8 +-
examples/cms-cosmic/lib/markdownToHtml.ts | 12 +-
examples/cms-cosmic/next.config.js | 10 +-
examples/cms-cosmic/pages/_app.tsx | 8 +-
examples/cms-cosmic/pages/_document.tsx | 4 +-
examples/cms-cosmic/pages/api/exit-preview.ts | 6 +-
examples/cms-cosmic/pages/api/preview.ts | 14 +-
examples/cms-cosmic/pages/index.tsx | 48 +-
examples/cms-cosmic/pages/posts/[slug].tsx | 78 +-
examples/cms-cosmic/postcss.config.js | 2 +-
examples/cms-cosmic/tailwind.config.js | 32 +-
examples/cms-datocms/components/alert.js | 20 +-
examples/cms-datocms/components/avatar.js | 4 +-
examples/cms-datocms/components/container.js | 2 +-
.../cms-datocms/components/cover-image.js | 14 +-
examples/cms-datocms/components/date.js | 6 +-
examples/cms-datocms/components/footer.js | 6 +-
examples/cms-datocms/components/header.js | 4 +-
examples/cms-datocms/components/hero-post.js | 10 +-
examples/cms-datocms/components/intro.js | 10 +-
examples/cms-datocms/components/layout.js | 8 +-
examples/cms-datocms/components/meta.js | 6 +-
.../cms-datocms/components/more-stories.js | 4 +-
examples/cms-datocms/components/post-body.js | 6 +-
.../cms-datocms/components/post-header.js | 10 +-
.../cms-datocms/components/post-preview.js | 10 +-
examples/cms-datocms/components/post-title.js | 2 +-
.../components/section-separator.js | 2 +-
examples/cms-datocms/lib/api.js | 44 +-
examples/cms-datocms/lib/constants.js | 8 +-
examples/cms-datocms/lib/markdownToHtml.js | 8 +-
examples/cms-datocms/next.config.js | 10 +-
examples/cms-datocms/pages/_app.js | 6 +-
examples/cms-datocms/pages/_document.js | 4 +-
.../cms-datocms/pages/api/exit-preview.js | 6 +-
examples/cms-datocms/pages/api/preview.js | 14 +-
examples/cms-datocms/pages/index.js | 26 +-
examples/cms-datocms/pages/posts/[slug].js | 44 +-
examples/cms-datocms/postcss.config.js | 2 +-
examples/cms-datocms/tailwind.config.js | 32 +-
examples/cms-dotcms/components/alert.tsx | 20 +-
examples/cms-dotcms/components/avatar.tsx | 4 +-
examples/cms-dotcms/components/blocks.tsx | 80 +-
examples/cms-dotcms/components/container.tsx | 2 +-
.../cms-dotcms/components/content-blocks.tsx | 52 +-
.../cms-dotcms/components/cover-image.tsx | 14 +-
examples/cms-dotcms/components/date.tsx | 6 +-
.../cms-dotcms/components/dotcms-image.tsx | 32 +-
examples/cms-dotcms/components/footer.tsx | 6 +-
examples/cms-dotcms/components/header.tsx | 4 +-
examples/cms-dotcms/components/hero-post.tsx | 18 +-
examples/cms-dotcms/components/intro.tsx | 10 +-
examples/cms-dotcms/components/layout.tsx | 8 +-
examples/cms-dotcms/components/meta.tsx | 6 +-
.../cms-dotcms/components/more-stories.tsx | 4 +-
examples/cms-dotcms/components/post-body.tsx | 10 +-
.../cms-dotcms/components/post-header.tsx | 10 +-
.../cms-dotcms/components/post-preview.tsx | 14 +-
examples/cms-dotcms/components/post-title.tsx | 2 +-
.../components/section-separator.tsx | 2 +-
examples/cms-dotcms/lib/api.ts | 44 +-
examples/cms-dotcms/lib/constants.ts | 8 +-
examples/cms-dotcms/next.config.js | 10 +-
examples/cms-dotcms/pages/_app.tsx | 6 +-
.../cms-dotcms/pages/api/exit-preview.tsx | 6 +-
examples/cms-dotcms/pages/api/preview.tsx | 22 +-
examples/cms-dotcms/pages/index.tsx | 28 +-
examples/cms-dotcms/pages/posts/[slug].tsx | 44 +-
examples/cms-dotcms/postcss.config.js | 2 +-
examples/cms-dotcms/tailwind.config.js | 42 +-
examples/cms-drupal/components/alert.js | 20 +-
examples/cms-drupal/components/avatar.js | 6 +-
examples/cms-drupal/components/categories.js | 2 +-
examples/cms-drupal/components/container.js | 2 +-
examples/cms-drupal/components/cover-image.js | 14 +-
examples/cms-drupal/components/date.js | 6 +-
examples/cms-drupal/components/footer.js | 6 +-
examples/cms-drupal/components/header.js | 4 +-
examples/cms-drupal/components/hero-post.js | 10 +-
examples/cms-drupal/components/intro.js | 10 +-
examples/cms-drupal/components/layout.js | 8 +-
examples/cms-drupal/components/meta.js | 6 +-
.../cms-drupal/components/more-stories.js | 6 +-
examples/cms-drupal/components/post-body.js | 4 +-
examples/cms-drupal/components/post-header.js | 12 +-
.../cms-drupal/components/post-preview.js | 10 +-
examples/cms-drupal/components/post-title.js | 2 +-
.../components/section-separator.js | 2 +-
examples/cms-drupal/components/tags.js | 2 +-
examples/cms-drupal/lib/api.js | 2 +-
examples/cms-drupal/lib/constants.js | 8 +-
examples/cms-drupal/pages/[...slug].js | 64 +-
examples/cms-drupal/pages/_app.js | 6 +-
examples/cms-drupal/pages/_document.js | 4 +-
examples/cms-drupal/pages/api/exit-preview.js | 6 +-
examples/cms-drupal/pages/api/preview.js | 4 +-
examples/cms-drupal/pages/index.js | 36 +-
examples/cms-drupal/postcss.config.js | 2 +-
examples/cms-drupal/tailwind.config.js | 32 +-
examples/cms-enterspeed/components/alert.tsx | 24 +-
examples/cms-enterspeed/components/avatar.tsx | 12 +-
.../cms-enterspeed/components/categories.tsx | 6 +-
.../cms-enterspeed/components/container.tsx | 6 +-
.../cms-enterspeed/components/cover-image.tsx | 22 +-
examples/cms-enterspeed/components/date.tsx | 10 +-
examples/cms-enterspeed/components/footer.tsx | 6 +-
examples/cms-enterspeed/components/header.tsx | 4 +-
.../cms-enterspeed/components/hero-post.tsx | 26 +-
examples/cms-enterspeed/components/intro.tsx | 10 +-
examples/cms-enterspeed/components/layout.tsx | 14 +-
examples/cms-enterspeed/components/meta.tsx | 6 +-
.../components/more-stories.tsx | 10 +-
.../cms-enterspeed/components/post-body.tsx | 8 +-
.../cms-enterspeed/components/post-header.tsx | 26 +-
.../components/post-preview.tsx | 26 +-
.../cms-enterspeed/components/post-title.tsx | 6 +-
.../components/section-separator.tsx | 2 +-
examples/cms-enterspeed/components/tags.tsx | 6 +-
examples/cms-enterspeed/lib/api.ts | 29 +-
examples/cms-enterspeed/lib/constants.ts | 6 +-
examples/cms-enterspeed/next.config.js | 10 +-
examples/cms-enterspeed/pages/_app.tsx | 8 +-
.../cms-enterspeed/pages/api/exit-preview.js | 6 +-
examples/cms-enterspeed/pages/api/preview.js | 8 +-
examples/cms-enterspeed/pages/index.tsx | 34 +-
.../cms-enterspeed/pages/posts/[slug].tsx | 58 +-
examples/cms-enterspeed/postcss.config.js | 2 +-
examples/cms-enterspeed/tailwind.config.js | 32 +-
examples/cms-enterspeed/types/authorType.ts | 14 +-
examples/cms-enterspeed/types/postType.ts | 24 +-
examples/cms-ghost/components/alert.js | 20 +-
examples/cms-ghost/components/avatar.js | 4 +-
examples/cms-ghost/components/container.js | 2 +-
examples/cms-ghost/components/cover-image.js | 14 +-
examples/cms-ghost/components/date.js | 6 +-
examples/cms-ghost/components/footer.js | 6 +-
examples/cms-ghost/components/header.js | 4 +-
examples/cms-ghost/components/hero-post.js | 10 +-
examples/cms-ghost/components/intro.js | 10 +-
examples/cms-ghost/components/layout.js | 12 +-
examples/cms-ghost/components/meta.js | 6 +-
examples/cms-ghost/components/more-stories.js | 4 +-
examples/cms-ghost/components/post-body.js | 6 +-
examples/cms-ghost/components/post-header.js | 10 +-
examples/cms-ghost/components/post-preview.js | 10 +-
examples/cms-ghost/components/post-title.js | 2 +-
.../cms-ghost/components/section-separator.js | 2 +-
examples/cms-ghost/lib/api.js | 74 +-
examples/cms-ghost/lib/constants.js | 8 +-
examples/cms-ghost/lib/defaults.js | 12 +-
examples/cms-ghost/next.config.js | 10 +-
examples/cms-ghost/pages/_app.js | 6 +-
examples/cms-ghost/pages/_document.js | 4 +-
examples/cms-ghost/pages/api/exit-preview.js | 6 +-
examples/cms-ghost/pages/api/preview.js | 14 +-
examples/cms-ghost/pages/index.js | 26 +-
examples/cms-ghost/pages/posts/[slug].js | 40 +-
examples/cms-ghost/postcss.config.js | 2 +-
examples/cms-ghost/tailwind.config.js | 32 +-
examples/cms-graphcms/components/alert.js | 20 +-
examples/cms-graphcms/components/avatar.js | 4 +-
examples/cms-graphcms/components/container.js | 2 +-
.../cms-graphcms/components/cover-image.js | 14 +-
examples/cms-graphcms/components/date.js | 6 +-
examples/cms-graphcms/components/footer.js | 6 +-
examples/cms-graphcms/components/header.js | 4 +-
examples/cms-graphcms/components/hero-post.js | 10 +-
examples/cms-graphcms/components/intro.js | 10 +-
examples/cms-graphcms/components/layout.js | 8 +-
examples/cms-graphcms/components/meta.js | 6 +-
.../cms-graphcms/components/more-stories.js | 4 +-
examples/cms-graphcms/components/post-body.js | 4 +-
.../cms-graphcms/components/post-header.js | 10 +-
.../cms-graphcms/components/post-preview.js | 10 +-
.../cms-graphcms/components/post-title.js | 2 +-
.../components/section-separator.js | 2 +-
examples/cms-graphcms/lib/constants.js | 8 +-
examples/cms-graphcms/lib/graphcms.js | 42 +-
examples/cms-graphcms/next.config.js | 10 +-
examples/cms-graphcms/pages/_app.js | 6 +-
examples/cms-graphcms/pages/_document.js | 4 +-
.../cms-graphcms/pages/api/exit-preview.js | 6 +-
examples/cms-graphcms/pages/api/preview.js | 14 +-
examples/cms-graphcms/pages/index.js | 26 +-
examples/cms-graphcms/pages/posts/[slug].js | 40 +-
examples/cms-graphcms/postcss.config.js | 2 +-
examples/cms-graphcms/tailwind.config.js | 32 +-
examples/cms-keystonejs-embedded/keystone.ts | 10 +-
.../cms-keystonejs-embedded/next.config.js | 4 +-
.../cms-keystonejs-embedded/pages/_app.tsx | 6 +-
.../pages/api/graphql.tsx | 2 +-
.../cms-keystonejs-embedded/pages/index.tsx | 16 +-
.../pages/post/[slug].tsx | 20 +-
examples/cms-kontent-ai/components/alert.tsx | 22 +-
examples/cms-kontent-ai/components/avatar.tsx | 10 +-
.../cms-kontent-ai/components/container.tsx | 6 +-
.../cms-kontent-ai/components/cover-image.tsx | 22 +-
.../components/date-formatter.tsx | 10 +-
examples/cms-kontent-ai/components/footer.tsx | 6 +-
examples/cms-kontent-ai/components/header.tsx | 4 +-
.../cms-kontent-ai/components/hero-post.tsx | 28 +-
examples/cms-kontent-ai/components/image.tsx | 40 +-
examples/cms-kontent-ai/components/intro.tsx | 10 +-
examples/cms-kontent-ai/components/layout.tsx | 14 +-
examples/cms-kontent-ai/components/meta.tsx | 6 +-
.../components/more-stories.tsx | 8 +-
.../cms-kontent-ai/components/post-body.tsx | 10 +-
.../cms-kontent-ai/components/post-header.tsx | 22 +-
.../components/post-preview.tsx | 16 +-
.../cms-kontent-ai/components/post-title.tsx | 6 +-
.../components/section-separator.tsx | 2 +-
examples/cms-kontent-ai/lib/api.ts | 40 +-
examples/cms-kontent-ai/lib/constants.ts | 8 +-
examples/cms-kontent-ai/lib/markdownToHtml.ts | 8 +-
.../models/content-type-snippets/index.ts | 2 +-
.../models/content-types/author.ts | 8 +-
.../models/content-types/index.ts | 4 +-
.../models/content-types/post.ts | 20 +-
examples/cms-kontent-ai/models/index.ts | 8 +-
.../models/project/assetFolders.ts | 14 +-
.../models/project/collections.ts | 8 +-
.../models/project/contentTypeSnippets.ts | 2 +-
.../models/project/contentTypes.ts | 108 +-
.../cms-kontent-ai/models/project/index.ts | 18 +-
.../models/project/languages.ts | 10 +-
.../cms-kontent-ai/models/project/roles.ts | 2 +-
.../models/project/taxonomies.ts | 2 +-
.../cms-kontent-ai/models/project/webhooks.ts | 2 +-
.../models/project/workflows.ts | 8 +-
.../cms-kontent-ai/models/taxonomies/index.ts | 2 +-
examples/cms-kontent-ai/pages/_app.tsx | 6 +-
examples/cms-kontent-ai/pages/_document.tsx | 4 +-
.../cms-kontent-ai/pages/api/exit-preview.ts | 8 +-
examples/cms-kontent-ai/pages/api/preview.ts | 18 +-
examples/cms-kontent-ai/pages/index.tsx | 34 +-
.../cms-kontent-ai/pages/posts/[slug].tsx | 58 +-
examples/cms-kontent-ai/postcss.config.js | 2 +-
examples/cms-kontent-ai/tailwind.config.js | 32 +-
examples/cms-kontent-ai/viewmodels/author.ts | 6 +-
examples/cms-kontent-ai/viewmodels/post.ts | 18 +-
.../lib/makeswift/register-components.tsx | 12 +-
examples/cms-makeswift/next.config.js | 6 +-
examples/cms-makeswift/pages/[[...path]].tsx | 36 +-
examples/cms-makeswift/pages/_document.ts | 2 +-
.../pages/api/makeswift/[...makeswift].ts | 4 +-
.../app/(payload)/admin/[...slug]/page.tsx | 2 +-
.../cms-payload/app/(payload)/admin/page.tsx | 20 +-
.../cms-payload/app/(site)/[slug]/page.tsx | 42 +-
examples/cms-payload/app/(site)/layout.tsx | 16 +-
examples/cms-payload/app/(site)/page.tsx | 4 +-
examples/cms-payload/app/layout.tsx | 4 +-
.../cms-payload/components/AdminBar/index.tsx | 30 +-
.../components/BackgroundColor/index.tsx | 38 +-
.../Blocks/CallToAction/index.module.scss | 2 +-
.../components/Blocks/CallToAction/index.tsx | 58 +-
.../components/Blocks/Content/index.tsx | 50 +-
.../components/Blocks/MediaBlock/index.tsx | 30 +-
.../cms-payload/components/Blocks/index.tsx | 60 +-
.../components/Button/index.module.scss | 2 +-
.../cms-payload/components/Button/index.tsx | 50 +-
.../cms-payload/components/Gutter/index.tsx | 28 +-
.../components/Header/MobileMenuModal.tsx | 26 +-
.../components/Header/index.module.scss | 4 +-
.../cms-payload/components/Header/index.tsx | 36 +-
.../Header/mobileMenuModal.module.scss | 2 +-
.../Hero/HighImpact/index.module.scss | 2 +-
.../components/Hero/HighImpact/index.tsx | 26 +-
.../Hero/LowImpact/index.module.scss | 2 +-
.../components/Hero/LowImpact/index.tsx | 20 +-
.../Hero/MediumImpact/index.module.scss | 4 +-
.../components/Hero/MediumImpact/index.tsx | 28 +-
.../cms-payload/components/Hero/index.tsx | 26 +-
.../components/Label/index.module.scss | 2 +-
.../cms-payload/components/Label/index.tsx | 8 +-
.../components/LargeBody/index.module.scss | 2 +-
.../components/LargeBody/index.tsx | 8 +-
.../cms-payload/components/Layout/index.tsx | 36 +-
.../cms-payload/components/Link/index.tsx | 52 +-
.../cms-payload/components/Logo/index.tsx | 6 +-
.../components/Media/Image/index.tsx | 54 +-
.../components/Media/Video/index.tsx | 30 +-
.../cms-payload/components/Media/index.tsx | 48 +-
.../cms-payload/components/RichText/index.tsx | 16 +-
.../components/RichText/serialize.tsx | 106 +-
.../components/VerticalPadding/index.tsx | 26 +-
.../components/icons/Chevron/index.tsx | 6 +-
.../components/icons/Menu/index.tsx | 6 +-
examples/cms-payload/css/app.scss | 8 +-
examples/cms-payload/css/common.scss | 4 +-
examples/cms-payload/css/type.scss | 2 +-
examples/cms-payload/cssVariables.js | 2 +-
examples/cms-payload/next-env.scss.d.ts | 2 +-
examples/cms-payload/next.config.js | 26 +-
.../pages/api/[collection]/[id].ts | 6 +-
.../pages/api/[collection]/access/[id].ts | 6 +-
.../pages/api/[collection]/first-register.ts | 6 +-
.../pages/api/[collection]/forgot-password.ts | 6 +-
.../pages/api/[collection]/index.ts | 6 +-
.../pages/api/[collection]/init.ts | 6 +-
.../pages/api/[collection]/login.ts | 6 +-
.../pages/api/[collection]/logout.ts | 6 +-
.../cms-payload/pages/api/[collection]/me.ts | 6 +-
.../pages/api/[collection]/refresh.ts | 6 +-
examples/cms-payload/pages/api/access.ts | 6 +-
.../pages/api/globals/[global]/access.ts | 6 +-
.../pages/api/globals/[global]/index.ts | 6 +-
.../pages/api/graphql-playground.ts | 6 +-
examples/cms-payload/pages/api/graphql.ts | 6 +-
examples/cms-payload/pages/api/regenerate.ts | 26 +-
examples/cms-payload/payload-types.ts | 260 ++--
.../payload/access/publishedOnly.ts | 10 +-
.../payload/blocks/CallToAction/index.ts | 20 +-
.../payload/blocks/Content/index.ts | 60 +-
.../cms-payload/payload/blocks/Media/index.ts | 38 +-
.../cms-payload/payload/collections/Media.ts | 14 +-
.../cms-payload/payload/collections/Pages.ts | 42 +-
.../cms-payload/payload/collections/Users.ts | 8 +-
.../payload/fields/backgroundColor.ts | 26 +-
examples/cms-payload/payload/fields/hero.ts | 46 +-
examples/cms-payload/payload/fields/link.ts | 124 +-
.../cms-payload/payload/fields/linkGroup.ts | 26 +-
.../payload/fields/richText/elements.ts | 24 +-
.../payload/fields/richText/index.ts | 28 +-
.../fields/richText/label/Button/index.tsx | 14 +-
.../fields/richText/label/Element/index.scss | 4 +-
.../fields/richText/label/Element/index.tsx | 16 +-
.../fields/richText/label/Icon/index.tsx | 6 +-
.../payload/fields/richText/label/index.ts | 12 +-
.../payload/fields/richText/label/plugin.ts | 12 +-
.../richText/largeBody/Button/index.tsx | 14 +-
.../richText/largeBody/Element/index.scss | 2 +-
.../richText/largeBody/Element/index.tsx | 16 +-
.../fields/richText/largeBody/Icon/index.tsx | 6 +-
.../fields/richText/largeBody/index.ts | 12 +-
.../fields/richText/largeBody/plugin.ts | 12 +-
.../payload/fields/richText/leaves.ts | 6 +-
examples/cms-payload/payload/fields/slug.ts | 22 +-
.../cms-payload/payload/globals/MainMenu.ts | 14 +-
.../cms-payload/payload/payload.config.ts | 24 +-
examples/cms-payload/payload/payloadClient.ts | 28 +-
.../payload/utilities/deepMerge.ts | 16 +-
.../payload/utilities/formatSlug.ts | 26 +-
.../payload/utilities/regenerateStaticPage.ts | 20 +-
examples/cms-payload/utilities/timestamp.ts | 10 +-
examples/cms-payload/utilities/toKebabCase.ts | 6 +-
examples/cms-plasmic/next.config.js | 4 +-
.../cms-plasmic/pages/[[...catchall]].tsx | 52 +-
examples/cms-plasmic/pages/_app.js | 6 +-
.../cms-plasmic/pages/api/exit-preview.ts | 6 +-
examples/cms-plasmic/pages/api/preview.ts | 14 +-
examples/cms-plasmic/plasmic-init.ts | 12 +-
examples/cms-prepr/components/alert.js | 20 +-
examples/cms-prepr/components/avatar.js | 4 +-
examples/cms-prepr/components/container.js | 2 +-
examples/cms-prepr/components/cover-image.js | 14 +-
examples/cms-prepr/components/date.js | 6 +-
examples/cms-prepr/components/footer.js | 6 +-
examples/cms-prepr/components/header.js | 4 +-
examples/cms-prepr/components/hero-post.js | 10 +-
examples/cms-prepr/components/intro.js | 10 +-
examples/cms-prepr/components/layout.js | 8 +-
examples/cms-prepr/components/meta.js | 6 +-
examples/cms-prepr/components/more-stories.js | 4 +-
examples/cms-prepr/components/post-body.js | 16 +-
examples/cms-prepr/components/post-header.js | 10 +-
examples/cms-prepr/components/post-preview.js | 10 +-
examples/cms-prepr/components/post-title.js | 2 +-
.../cms-prepr/components/section-separator.js | 2 +-
examples/cms-prepr/lib/api.js | 36 +-
examples/cms-prepr/lib/constants.js | 8 +-
examples/cms-prepr/next.config.js | 18 +-
examples/cms-prepr/pages/_app.js | 6 +-
examples/cms-prepr/pages/_document.js | 4 +-
examples/cms-prepr/pages/api/exit-preview.js | 6 +-
examples/cms-prepr/pages/api/preview.js | 14 +-
examples/cms-prepr/pages/index.js | 26 +-
examples/cms-prepr/pages/posts/[slug].js | 42 +-
examples/cms-prepr/postcss.config.js | 2 +-
examples/cms-prepr/tailwind.config.js | 32 +-
.../assets/slices/Image/index.stories.js | 20 +-
.../assets/slices/Text/index.stories.js | 34 +-
examples/cms-prismic/components/alert.tsx | 24 +-
examples/cms-prismic/components/avatar.tsx | 12 +-
examples/cms-prismic/components/container.tsx | 6 +-
.../cms-prismic/components/cover-image.tsx | 26 +-
examples/cms-prismic/components/date.tsx | 22 +-
examples/cms-prismic/components/footer.tsx | 6 +-
examples/cms-prismic/components/header.tsx | 4 +-
examples/cms-prismic/components/hero-post.tsx | 32 +-
examples/cms-prismic/components/intro.tsx | 10 +-
examples/cms-prismic/components/layout.tsx | 14 +-
examples/cms-prismic/components/meta.tsx | 6 +-
.../cms-prismic/components/more-stories.tsx | 10 +-
examples/cms-prismic/components/post-body.tsx | 12 +-
.../cms-prismic/components/post-header.tsx | 28 +-
.../cms-prismic/components/post-preview.tsx | 32 +-
.../cms-prismic/components/post-title.tsx | 6 +-
.../components/section-separator.tsx | 2 +-
examples/cms-prismic/lib/constants.ts | 8 +-
examples/cms-prismic/lib/prismic.ts | 22 +-
examples/cms-prismic/lib/types.ts | 18 +-
examples/cms-prismic/next.config.js | 10 +-
examples/cms-prismic/pages/_app.tsx | 10 +-
examples/cms-prismic/pages/_document.tsx | 4 +-
.../cms-prismic/pages/api/exit-preview.ts | 6 +-
examples/cms-prismic/pages/api/preview.ts | 14 +-
examples/cms-prismic/pages/index.tsx | 42 +-
examples/cms-prismic/pages/posts/[slug].tsx | 74 +-
.../cms-prismic/pages/slice-simulator.tsx | 10 +-
examples/cms-prismic/postcss.config.js | 2 +-
examples/cms-prismic/prismicCodegen.config.ts | 10 +-
examples/cms-prismic/slices/Image/index.tsx | 14 +-
examples/cms-prismic/slices/Text/index.tsx | 12 +-
examples/cms-prismic/slices/index.js | 8 +-
examples/cms-prismic/tailwind.config.js | 34 +-
examples/cms-prismic/types.generated.ts | 60 +-
examples/cms-sanity/components/alert.js | 20 +-
examples/cms-sanity/components/avatar.js | 10 +-
examples/cms-sanity/components/container.js | 2 +-
examples/cms-sanity/components/cover-image.js | 18 +-
examples/cms-sanity/components/date.js | 8 +-
examples/cms-sanity/components/footer.js | 6 +-
examples/cms-sanity/components/header.js | 4 +-
examples/cms-sanity/components/hero-post.js | 10 +-
examples/cms-sanity/components/intro.js | 10 +-
.../cms-sanity/components/landing-preview.js | 10 +-
examples/cms-sanity/components/landing.js | 18 +-
examples/cms-sanity/components/layout.js | 8 +-
examples/cms-sanity/components/meta.js | 6 +-
.../cms-sanity/components/more-stories.js | 4 +-
examples/cms-sanity/components/post-body.js | 6 +-
examples/cms-sanity/components/post-header.js | 10 +-
examples/cms-sanity/components/post-plug.js | 10 +-
.../cms-sanity/components/post-preview.js | 12 +-
examples/cms-sanity/components/post-title.js | 2 +-
examples/cms-sanity/components/post.js | 38 +-
.../components/section-separator.js | 2 +-
examples/cms-sanity/lib/config.js | 8 +-
examples/cms-sanity/lib/constants.js | 8 +-
examples/cms-sanity/lib/queries.js | 10 +-
examples/cms-sanity/lib/sanity.js | 12 +-
examples/cms-sanity/lib/sanity.server.js | 24 +-
examples/cms-sanity/next.config.js | 6 +-
examples/cms-sanity/pages/_app.js | 6 +-
examples/cms-sanity/pages/_document.js | 4 +-
examples/cms-sanity/pages/api/exit-preview.js | 6 +-
examples/cms-sanity/pages/api/preview.js | 26 +-
examples/cms-sanity/pages/api/revalidate.js | 78 +-
examples/cms-sanity/pages/index.js | 20 +-
examples/cms-sanity/pages/posts/[slug].js | 28 +-
examples/cms-sanity/postcss.config.js | 2 +-
examples/cms-sanity/studio/copyEnv.js | 12 +-
.../cms-sanity/studio/resolveProductionUrl.js | 21 +-
examples/cms-sanity/studio/sanity.cli.js | 18 +-
examples/cms-sanity/studio/sanity.config.js | 28 +-
examples/cms-sanity/studio/schemas/author.js | 20 +-
examples/cms-sanity/studio/schemas/post.js | 66 +-
examples/cms-sanity/studio/tailwind.config.js | 4 +-
examples/cms-sanity/tailwind.config.js | 32 +-
.../cms-sitecore-xmcloud/.graphql-let.yml | 4 +-
examples/cms-sitecore-xmcloud/next.config.js | 35 +-
.../cms-sitecore-xmcloud/scripts/bootstrap.ts | 6 +-
.../scripts/config/index.ts | 24 +-
.../scripts/config/plugins/computed.ts | 8 +-
.../scripts/config/plugins/fallback.ts | 12 +-
.../scripts/config/plugins/package-json.ts | 12 +-
.../scripts/config/plugins/scjssconfig.ts | 16 +-
.../fetch-graphql-introspection-data.ts | 42 +-
.../scripts/generate-component-factory.ts | 42 +-
.../scripts/generate-config.ts | 50 +-
.../scripts/generate-plugins.ts | 90 +-
.../scripts/scaffold-component.ts | 58 +-
.../scripts/temp/config-plugins.ts | 8 +-
.../scripts/templates/component-factory.ts | 58 +-
.../scripts/templates/component-src.ts | 4 +-
.../cms-sitecore-xmcloud/scripts/utils.ts | 40 +-
examples/cms-sitecore-xmcloud/src/Layout.tsx | 32 +-
.../cms-sitecore-xmcloud/src/Navigation.tsx | 8 +-
.../cms-sitecore-xmcloud/src/NotFound.tsx | 6 +-
examples/cms-sitecore-xmcloud/src/Scripts.tsx | 6 +-
.../cms-sitecore-xmcloud/src/assets/app.css | 4 +-
.../src/assets/basic/_container.scss | 4 +-
.../src/assets/basic/_fonts.scss | 2 +-
.../src/assets/basic/_footer.scss | 4 +-
.../src/assets/basic/_header.scss | 6 +-
.../src/assets/basic/_navigation.scss | 8 +-
.../src/assets/basic/_promo.scss | 4 +-
.../src/assets/basic/_rich-text.scss | 4 +-
.../src/assets/basic/main.scss | 16 +-
.../cms-sitecore-xmcloud/src/assets/main.scss | 10 +-
.../src/assets/sass/abstracts/_functions.scss | 4 +-
.../src/assets/sass/abstracts/_mixins.scss | 10 +-
.../src/assets/sass/abstracts/_vars.scss | 6 +-
.../src/assets/sass/base/fonts/_fonts.scss | 2 +-
.../src/assets/sass/base/fonts/index.scss | 2 +-
.../src/assets/sass/base/index.scss | 6 +-
.../assets/sass/base/links/_link-button.scss | 4 +-
.../src/assets/sass/base/links/index.scss | 2 +-
.../src/assets/sass/base/reset/_inputs.scss | 18 +-
.../src/assets/sass/base/reset/_links.scss | 4 +-
.../sass/base/reset/_ui-datepicker.scss | 2 +-
.../base/richtext/_richtext-files-icons.scss | 6 +-
.../src/assets/sass/base/richtext/index.scss | 4 +-
.../assets/sass/base/typehead/_typehead.scss | 8 +-
.../src/assets/sass/base/typehead/index.scss | 2 +-
.../_component-column-splitter.scss | 2 +-
.../sass/components/_component-container.scss | 2 +-
.../sass/components/_component-image.scss | 2 +-
.../components/_component-navigation.scss | 6 +-
.../sass/components/_component-promo.scss | 8 +-
.../_component-richtext-content.scss | 10 +-
.../assets/sass/components/common/_boxed.scss | 4 +-
.../sass/components/common/_clearfix.scss | 4 +-
.../sass/components/common/_link-button.scss | 4 +-
.../assets/sass/components/common/index.scss | 12 +-
.../sass/components/container/_bordered.scss | 4 +-
.../components/container/_title-row-box.scss | 4 +-
.../sass/components/container/index.scss | 2 +-
.../assets/sass/components/image/index.scss | 4 +-
.../src/assets/sass/components/index.scss | 32 +-
.../sass/components/layout/_acaindent.scss | 2 +-
.../sass/components/layout/_background.scss | 4 +-
.../assets/sass/components/layout/index.scss | 2 +-
.../link-list/_component-link-list.scss | 12 +-
.../components/link-list/_list-vertical.scss | 4 +-
.../sass/components/link-list/index.scss | 4 +-
.../navigation/_navigation-fat.scss | 8 +-
.../_navigation-main-horizontal-vertical.scss | 8 +-
.../navigation/_navigation-mobile.scss | 8 +-
.../navigation/_navigation-sidebar.scss | 4 +-
.../navigation/_sitemap-navigation.scss | 8 +-
.../sass/components/navigation/index.scss | 10 +-
.../sass/components/promo/_promo-hero.scss | 4 +-
.../sass/components/promo/_promo-shadow.scss | 6 +-
.../assets/sass/components/promo/index.scss | 6 +-
.../rich-text/_rich-text-lists.scss | 12 +-
.../sass/components/rich-text/index.scss | 2 +-
.../spacing/_background-colors.scss | 2 +-
.../sass/components/spacing/_indent.scss | 2 +-
.../assets/sass/components/spacing/index.scss | 4 +-
.../components/title/_component-title.scss | 6 +-
.../assets/sass/components/title/index.scss | 2 +-
.../src/assets/sass/main.scss | 8 +-
.../src/assets/sass/variants/index.scss | 12 +-
.../src/components/ColumnSplitter.tsx | 34 +-
.../src/components/Container.tsx | 48 +-
.../src/components/ContentBlock.tsx | 16 +-
.../src/components/FEaaSWrapper.tsx | 12 +-
.../src/components/Image.tsx | 48 +-
.../src/components/LinkList.tsx | 64 +-
.../src/components/Navigation.tsx | 102 +-
.../src/components/PageContent.tsx | 38 +-
.../PartialDesignDynamicPlaceholder.tsx | 16 +-
.../src/components/Promo.tsx | 36 +-
.../src/components/RichText.tsx | 20 +-
.../src/components/RowSplitter.tsx | 30 +-
.../src/components/Title.tsx | 80 +-
.../src/lib/component-props/index.ts | 12 +-
.../src/lib/data-fetcher.ts | 6 +-
.../src/lib/dictionary-service-factory.ts | 8 +-
.../src/lib/extract-path/index.ts | 24 +-
.../src/lib/layout-service-factory.ts | 10 +-
.../src/lib/middleware/index.ts | 20 +-
.../src/lib/middleware/plugins/redirects.ts | 24 +-
.../src/lib/next-config/plugins/graphql.js | 26 +-
.../src/lib/next-config/plugins/robots.js | 12 +-
.../src/lib/next-config/plugins/sass.js | 18 +-
.../src/lib/next-config/plugins/sitemap.js | 12 +-
.../src/lib/page-props-factory/index.ts | 32 +-
.../plugins/component-props.ts | 28 +-
.../page-props-factory/plugins/normal-mode.ts | 66 +-
.../plugins/preview-mode.ts | 36 +-
.../lib/page-props-factory/plugins/site.ts | 22 +-
.../src/lib/page-props.ts | 16 +-
.../src/lib/site-resolver/index.ts | 12 +-
.../src/lib/site-resolver/plugins/default.ts | 14 +-
.../src/lib/sitemap-fetcher/index.ts | 20 +-
.../plugins/graphql-sitemap-service.ts | 18 +-
.../cms-sitecore-xmcloud/src/middleware.ts | 10 +-
.../cms-sitecore-xmcloud/src/pages/404.tsx | 40 +-
.../cms-sitecore-xmcloud/src/pages/500.tsx | 42 +-
.../src/pages/[[...path]].tsx | 58 +-
.../cms-sitecore-xmcloud/src/pages/_app.tsx | 14 +-
.../cms-sitecore-xmcloud/src/pages/_error.tsx | 18 +-
.../src/pages/api/editing/data/[key].ts | 10 +-
.../src/pages/api/editing/render.ts | 10 +-
.../src/pages/api/healthz.ts | 6 +-
.../src/pages/api/robots.ts | 26 +-
.../src/pages/api/sitemap.ts | 54 +-
examples/cms-sitefinity/components/alert.tsx | 28 +-
examples/cms-sitefinity/components/avatar.tsx | 12 +-
.../cms-sitefinity/components/container.tsx | 10 +-
.../cms-sitefinity/components/cover-image.tsx | 24 +-
.../components/date-formatter.tsx | 14 +-
examples/cms-sitefinity/components/footer.tsx | 10 +-
examples/cms-sitefinity/components/header.tsx | 8 +-
.../cms-sitefinity/components/hero-post.tsx | 30 +-
examples/cms-sitefinity/components/intro.tsx | 12 +-
examples/cms-sitefinity/components/layout.tsx | 18 +-
examples/cms-sitefinity/components/meta.tsx | 10 +-
.../components/more-stories.tsx | 14 +-
.../cms-sitefinity/components/post-body.tsx | 14 +-
.../cms-sitefinity/components/post-header.tsx | 26 +-
.../components/post-preview.tsx | 30 +-
.../cms-sitefinity/components/post-title.tsx | 12 +-
.../components/section-separator.tsx | 6 +-
examples/cms-sitefinity/interfaces/author.ts | 8 +-
examples/cms-sitefinity/interfaces/post.ts | 24 +-
examples/cms-sitefinity/lib/api.ts | 76 +-
examples/cms-sitefinity/lib/constants.ts | 6 +-
examples/cms-sitefinity/pages/_app.tsx | 6 +-
examples/cms-sitefinity/pages/index.tsx | 34 +-
.../cms-sitefinity/pages/posts/[...slug].tsx | 58 +-
examples/cms-sitefinity/postcss.config.js | 2 +-
examples/cms-sitefinity/tailwind.config.js | 30 +-
examples/cms-storyblok/components/alert.js | 20 +-
examples/cms-storyblok/components/avatar.js | 4 +-
.../cms-storyblok/components/container.js | 2 +-
.../cms-storyblok/components/cover-image.js | 14 +-
examples/cms-storyblok/components/date.js | 12 +-
examples/cms-storyblok/components/footer.js | 6 +-
examples/cms-storyblok/components/header.js | 4 +-
.../cms-storyblok/components/hero-post.js | 10 +-
examples/cms-storyblok/components/intro.js | 10 +-
examples/cms-storyblok/components/layout.js | 8 +-
examples/cms-storyblok/components/meta.js | 6 +-
.../cms-storyblok/components/more-stories.js | 4 +-
.../cms-storyblok/components/post-body.js | 6 +-
.../cms-storyblok/components/post-header.js | 10 +-
.../cms-storyblok/components/post-preview.js | 10 +-
.../cms-storyblok/components/post-title.js | 2 +-
.../components/section-separator.js | 2 +-
examples/cms-storyblok/lib/api.js | 40 +-
examples/cms-storyblok/lib/constants.js | 8 +-
examples/cms-storyblok/lib/markdownToHtml.js | 8 +-
examples/cms-storyblok/pages/_app.js | 6 +-
examples/cms-storyblok/pages/_document.js | 4 +-
.../cms-storyblok/pages/api/exit-preview.js | 6 +-
examples/cms-storyblok/pages/api/preview.js | 14 +-
examples/cms-storyblok/pages/index.js | 26 +-
examples/cms-storyblok/pages/posts/[slug].js | 42 +-
examples/cms-storyblok/postcss.config.js | 2 +-
examples/cms-storyblok/tailwind.config.js | 32 +-
examples/cms-takeshape/components/alert.js | 20 +-
examples/cms-takeshape/components/avatar.js | 10 +-
.../cms-takeshape/components/container.js | 2 +-
.../cms-takeshape/components/cover-image.js | 20 +-
examples/cms-takeshape/components/date.js | 6 +-
examples/cms-takeshape/components/footer.js | 6 +-
examples/cms-takeshape/components/header.js | 4 +-
.../cms-takeshape/components/hero-post.js | 10 +-
examples/cms-takeshape/components/intro.js | 10 +-
examples/cms-takeshape/components/layout.js | 8 +-
examples/cms-takeshape/components/meta.js | 6 +-
.../cms-takeshape/components/more-stories.js | 4 +-
.../cms-takeshape/components/post-body.js | 6 +-
.../cms-takeshape/components/post-header.js | 10 +-
.../cms-takeshape/components/post-preview.js | 10 +-
.../cms-takeshape/components/post-title.js | 2 +-
.../components/section-separator.js | 2 +-
examples/cms-takeshape/lib/api.js | 44 +-
examples/cms-takeshape/lib/constants.js | 8 +-
examples/cms-takeshape/lib/markdownToHtml.js | 8 +-
examples/cms-takeshape/pages/_app.js | 6 +-
examples/cms-takeshape/pages/_document.js | 4 +-
.../cms-takeshape/pages/api/exit-preview.js | 6 +-
examples/cms-takeshape/pages/api/preview.js | 14 +-
examples/cms-takeshape/pages/index.js | 26 +-
examples/cms-takeshape/pages/posts/[slug].js | 52 +-
examples/cms-takeshape/postcss.config.js | 2 +-
examples/cms-takeshape/tailwind.config.js | 32 +-
.../.tina/components/TinaDynamicProvider.js | 12 +-
.../cms-tina/.tina/components/TinaProvider.js | 10 +-
examples/cms-tina/.tina/schema.ts | 94 +-
examples/cms-tina/_posts/dynamic-routing.md | 12 +-
examples/cms-tina/_posts/hello-world.md | 12 +-
examples/cms-tina/_posts/preview.md | 12 +-
examples/cms-tina/components/alert.js | 20 +-
examples/cms-tina/components/avatar.js | 4 +-
examples/cms-tina/components/container.js | 2 +-
examples/cms-tina/components/cover-image.js | 14 +-
.../cms-tina/components/date-formatter.js | 6 +-
examples/cms-tina/components/footer.js | 6 +-
examples/cms-tina/components/header.js | 4 +-
examples/cms-tina/components/hero-post.js | 10 +-
examples/cms-tina/components/intro.js | 8 +-
examples/cms-tina/components/layout.js | 8 +-
examples/cms-tina/components/meta.js | 6 +-
examples/cms-tina/components/more-stories.js | 4 +-
examples/cms-tina/components/post-body.js | 6 +-
examples/cms-tina/components/post-header.js | 10 +-
examples/cms-tina/components/post-preview.js | 10 +-
examples/cms-tina/components/post-title.js | 2 +-
.../cms-tina/components/section-separator.js | 2 +-
examples/cms-tina/lib/api.js | 42 +-
examples/cms-tina/lib/constants.js | 6 +-
examples/cms-tina/lib/markdownToHtml.js | 8 +-
examples/cms-tina/pages/_app.js | 10 +-
examples/cms-tina/pages/_document.js | 4 +-
examples/cms-tina/pages/admin.js | 4 +-
examples/cms-tina/pages/index.js | 38 +-
examples/cms-tina/pages/posts/[slug].js | 56 +-
examples/cms-tina/postcss.config.js | 2 +-
examples/cms-tina/tailwind.config.js | 30 +-
.../cms-umbraco-heartcore/components/alert.js | 20 +-
.../components/avatar.js | 4 +-
.../components/container.js | 2 +-
.../components/cover-image.js | 14 +-
.../cms-umbraco-heartcore/components/date.js | 6 +-
.../components/footer.js | 6 +-
.../components/header.js | 4 +-
.../components/hero-post.js | 10 +-
.../cms-umbraco-heartcore/components/intro.js | 10 +-
.../components/layout.js | 8 +-
.../cms-umbraco-heartcore/components/meta.js | 6 +-
.../components/more-stories.js | 4 +-
.../components/post-body.js | 4 +-
.../components/post-header.js | 10 +-
.../components/post-preview.js | 10 +-
.../components/post-title.js | 2 +-
.../components/section-separator.js | 2 +-
.../cms-umbraco-heartcore/lib/constants.js | 8 +-
.../lib/umbraco-heartcore.js | 44 +-
examples/cms-umbraco-heartcore/next.config.js | 10 +-
.../cms-umbraco-heartcore/pages/[...slug].js | 43 +-
examples/cms-umbraco-heartcore/pages/_app.js | 6 +-
.../cms-umbraco-heartcore/pages/_document.js | 4 +-
.../pages/api/exit-preview.js | 6 +-
.../pages/api/preview.js | 14 +-
examples/cms-umbraco-heartcore/pages/index.js | 26 +-
.../cms-umbraco-heartcore/postcss.config.js | 2 +-
.../cms-umbraco-heartcore/tailwind.config.js | 32 +-
examples/cms-webiny/README.md | 2 +-
examples/cms-webiny/components/alert.tsx | 20 +-
examples/cms-webiny/components/avatar.tsx | 4 +-
examples/cms-webiny/components/container.tsx | 2 +-
.../cms-webiny/components/cover-image.tsx | 30 +-
.../cms-webiny/components/date-formatter.tsx | 10 +-
examples/cms-webiny/components/footer.tsx | 6 +-
examples/cms-webiny/components/header.tsx | 4 +-
examples/cms-webiny/components/hero-post.tsx | 10 +-
examples/cms-webiny/components/intro.tsx | 10 +-
examples/cms-webiny/components/layout.tsx | 8 +-
examples/cms-webiny/components/meta.tsx | 6 +-
.../cms-webiny/components/more-stories.tsx | 4 +-
examples/cms-webiny/components/post-body.tsx | 8 +-
.../cms-webiny/components/post-header.tsx | 10 +-
.../cms-webiny/components/post-preview.tsx | 10 +-
examples/cms-webiny/components/post-title.tsx | 2 +-
.../components/section-separator.tsx | 2 +-
examples/cms-webiny/lib/api.ts | 36 +-
examples/cms-webiny/lib/constants.ts | 8 +-
.../cms-webiny/lib/rich-text-renderer.tsx | 94 +-
examples/cms-webiny/next.config.js | 8 +-
examples/cms-webiny/pages/_app.tsx | 4 +-
examples/cms-webiny/pages/api/exit-preview.ts | 6 +-
examples/cms-webiny/pages/api/preview.ts | 14 +-
examples/cms-webiny/pages/index.tsx | 26 +-
examples/cms-webiny/pages/posts/[slug].tsx | 42 +-
examples/cms-webiny/postcss.config.js | 2 +-
examples/cms-webiny/tailwind.config.js | 32 +-
examples/cms-wordpress/components/alert.tsx | 20 +-
examples/cms-wordpress/components/avatar.tsx | 9 +-
.../cms-wordpress/components/categories.tsx | 2 +-
.../cms-wordpress/components/container.tsx | 2 +-
.../cms-wordpress/components/cover-image.tsx | 24 +-
examples/cms-wordpress/components/date.tsx | 6 +-
examples/cms-wordpress/components/footer.tsx | 6 +-
examples/cms-wordpress/components/header.tsx | 4 +-
.../cms-wordpress/components/hero-post.tsx | 10 +-
examples/cms-wordpress/components/intro.tsx | 10 +-
examples/cms-wordpress/components/layout.tsx | 8 +-
examples/cms-wordpress/components/meta.tsx | 6 +-
.../cms-wordpress/components/more-stories.tsx | 4 +-
.../cms-wordpress/components/post-body.tsx | 4 +-
.../cms-wordpress/components/post-header.tsx | 12 +-
.../cms-wordpress/components/post-preview.tsx | 10 +-
.../cms-wordpress/components/post-title.tsx | 2 +-
.../components/section-separator.tsx | 2 +-
examples/cms-wordpress/components/tags.tsx | 2 +-
examples/cms-wordpress/lib/api.ts | 72 +-
examples/cms-wordpress/lib/constants.ts | 8 +-
examples/cms-wordpress/next.config.js | 8 +-
examples/cms-wordpress/pages/_app.tsx | 8 +-
examples/cms-wordpress/pages/_document.tsx | 4 +-
.../cms-wordpress/pages/api/exit-preview.ts | 8 +-
examples/cms-wordpress/pages/api/preview.ts | 20 +-
examples/cms-wordpress/pages/index.tsx | 30 +-
examples/cms-wordpress/pages/posts/[slug].tsx | 50 +-
examples/cms-wordpress/postcss.config.js | 2 +-
examples/cms-wordpress/tailwind.config.js | 32 +-
examples/convex/.prettierrc.json | 4 -
examples/convex/convex/README.md | 38 +-
examples/convex/convex/messages.ts | 20 +-
examples/convex/convex/schema.ts | 8 +-
examples/convex/pages/_app.tsx | 16 +-
examples/convex/pages/index.tsx | 26 +-
examples/convex/styles/globals.css | 8 +-
.../custom-routes-proxying/next.config.js | 8 +-
.../custom-routes-proxying/pages/about.tsx | 4 +-
.../pages/hello/[slug].tsx | 8 +-
.../custom-routes-proxying/pages/index.tsx | 4 +-
examples/custom-server/pages/a.tsx | 2 +-
examples/custom-server/pages/b.tsx | 2 +-
examples/custom-server/pages/index.tsx | 4 +-
examples/custom-server/server.ts | 28 +-
.../dynamic-routing/components/header.tsx | 4 +-
examples/dynamic-routing/pages/about.tsx | 4 +-
examples/dynamic-routing/pages/index.tsx | 4 +-
.../pages/post/[id]/[comment].tsx | 12 +-
.../dynamic-routing/pages/post/[id]/index.tsx | 12 +-
.../environment-variables/environment.d.ts | 16 +-
.../environment-variables/pages/index.tsx | 38 +-
.../environment-variables/styles.module.css | 2 +-
examples/github-pages/app/about/page.tsx | 4 +-
examples/github-pages/app/layout.tsx | 16 +-
examples/github-pages/app/page.tsx | 4 +-
examples/github-pages/next.config.js | 8 +-
examples/head-elements/pages/index.tsx | 4 +-
examples/headers/components/Code.tsx | 8 +-
examples/headers/next.config.js | 18 +-
examples/headers/pages/about.tsx | 10 +-
examples/headers/pages/index.tsx | 12 +-
examples/headers/pages/news/[...slug].tsx | 14 +-
examples/headers/styles.module.css | 4 +-
examples/hello-world/app/layout.tsx | 4 +-
examples/hello-world/app/page.tsx | 2 +-
.../components/locale-switcher.tsx | 18 +-
examples/i18n-routing/next.config.js | 8 +-
examples/i18n-routing/pages/gsp/[slug].tsx | 38 +-
examples/i18n-routing/pages/gsp/index.tsx | 26 +-
examples/i18n-routing/pages/gssp.tsx | 26 +-
examples/i18n-routing/pages/index.tsx | 12 +-
.../image-component/app/background/page.tsx | 14 +-
examples/image-component/app/color/page.tsx | 22 +-
examples/image-component/app/fill/page.tsx | 22 +-
examples/image-component/app/layout.tsx | 12 +-
examples/image-component/app/page.tsx | 42 +-
.../image-component/app/placeholder/page.tsx | 14 +-
.../image-component/app/responsive/page.tsx | 14 +-
examples/image-component/app/shimmer/page.tsx | 20 +-
examples/image-component/app/theme/page.tsx | 24 +-
.../components/view-source.tsx | 10 +-
examples/image-component/next.config.js | 12 +-
examples/image-component/styles.module.css | 2 +-
.../components/view-source.tsx | 10 +-
.../image-legacy-component/next.config.js | 12 +-
.../image-legacy-component/pages/_app.tsx | 6 +-
.../pages/background.tsx | 10 +-
.../image-legacy-component/pages/color.tsx | 14 +-
.../image-legacy-component/pages/index.tsx | 34 +-
.../pages/layout-fill.tsx | 16 +-
.../pages/layout-fixed.tsx | 10 +-
.../pages/layout-intrinsic.tsx | 10 +-
.../pages/layout-responsive.tsx | 10 +-
.../pages/placeholder.tsx | 10 +-
.../image-legacy-component/pages/shimmer.tsx | 16 +-
.../image-legacy-component/styles.module.css | 2 +-
examples/inngest/next.config.js | 4 +-
examples/inngest/src/app/api/inngest/route.ts | 8 +-
examples/inngest/src/app/layout.tsx | 12 +-
examples/inngest/src/app/page.tsx | 16 +-
.../src/inngest/functions/hello-world.ts | 14 +-
.../inngest/src/inngest/inngest.client.ts | 4 +-
.../layout-component/components/layout.tsx | 10 +-
.../layout-component/components/sidebar.tsx | 6 +-
examples/layout-component/global.css | 4 +-
examples/layout-component/pages/_app.tsx | 16 +-
examples/layout-component/pages/about.tsx | 18 +-
examples/layout-component/pages/contact.tsx | 18 +-
examples/layout-component/pages/index.tsx | 18 +-
examples/markdoc/markdoc/functions.ts | 2 +-
examples/markdoc/markdoc/nodes.ts | 2 +-
examples/markdoc/markdoc/tags.ts | 2 +-
examples/markdoc/next.config.js | 6 +-
examples/markdoc/pages/_app.tsx | 6 +-
examples/markdoc/public/globals.css | 4 +-
examples/middleware-matcher/middleware.ts | 22 +-
.../middleware-matcher/pages/[...slug].tsx | 26 +-
examples/middleware-matcher/pages/index.tsx | 18 +-
examples/middleware/middleware.ts | 16 +-
examples/middleware/next.config.js | 4 +-
examples/middleware/pages/_app.tsx | 6 +-
examples/middleware/pages/about.tsx | 8 +-
examples/middleware/pages/about2.tsx | 8 +-
examples/middleware/pages/another.tsx | 8 +-
examples/middleware/pages/index.tsx | 10 +-
examples/middleware/pages/redirected.tsx | 8 +-
examples/middleware/pages/rewrite.tsx | 8 +-
.../components/halves/LeftHalf.tsx | 2 +-
.../components/halves/RightHalf.tsx | 2 +-
.../components/halves/index.tsx | 2 +-
.../components/ui/heading-large.tsx | 2 +-
.../components/ui/index.tsx | 2 +-
examples/modularize-imports/next.config.js | 12 +-
examples/modularize-imports/pages/index.tsx | 6 +-
.../components/paragraph.tsx | 6 +-
.../nested-components/components/post.tsx | 8 +-
examples/nested-components/pages/index.tsx | 8 +-
examples/next-css/component/hello-world.tsx | 4 +-
examples/next-css/pages/_app.tsx | 6 +-
examples/next-css/pages/index.tsx | 4 +-
examples/next-forms/app/actions.ts | 54 +-
examples/next-forms/app/add-form.tsx | 20 +-
examples/next-forms/app/delete-form.tsx | 18 +-
examples/next-forms/app/global.css | 8 +-
examples/next-forms/app/layout.tsx | 12 +-
examples/next-forms/app/page.tsx | 14 +-
examples/next-offline/next.config.js | 20 +-
examples/next-offline/pages/_document.tsx | 4 +-
examples/next-offline/pages/index.tsx | 2 +-
.../components/link-with-atomic-recipe.tsx | 20 +-
.../app/components/link-with-atomic-style.tsx | 14 +-
.../components/link-with-config-recipe.tsx | 6 +-
.../app/components/link-with-text-styles.tsx | 12 +-
examples/panda-css/app/layout.tsx | 26 +-
examples/panda-css/app/page.tsx | 26 +-
examples/panda-css/next.config.js | 4 +-
examples/panda-css/panda.config.ts | 46 +-
examples/panda-css/postcss.config.js | 4 +-
examples/progressive-web-app/next.config.js | 8 +-
examples/progressive-web-app/pages/_app.tsx | 8 +-
.../progressive-web-app/pages/api/hello.ts | 8 +-
examples/progressive-web-app/pages/index.tsx | 8 +-
examples/radix-ui/pages/_app.tsx | 4 +-
examples/radix-ui/pages/index.tsx | 34 +-
examples/radix-ui/postcss.config.js | 2 +-
examples/radix-ui/tailwind.config.js | 4 +-
.../react-remove-properties/next.config.js | 4 +-
.../react-remove-properties/pages/index.tsx | 2 +-
examples/redirects/components/Code.tsx | 8 +-
examples/redirects/next.config.js | 22 +-
examples/redirects/pages/about.tsx | 6 +-
examples/redirects/pages/index.tsx | 12 +-
examples/redirects/pages/news/[...slug].tsx | 14 +-
examples/redirects/styles.module.css | 4 +-
examples/remove-console/next.config.js | 6 +-
examples/remove-console/pages/index.tsx | 6 +-
.../next.config.js | 4 +-
.../pages/index.tsx | 2 +-
examples/reproduction-template/app/layout.tsx | 2 +-
examples/reproduction-template/app/page.tsx | 2 +-
examples/reproduction-template/next.config.js | 4 +-
examples/rewrites/components/Code.tsx | 8 +-
examples/rewrites/next.config.js | 26 +-
examples/rewrites/pages/about.tsx | 20 +-
examples/rewrites/pages/index.tsx | 12 +-
examples/rewrites/pages/news/[...slug].tsx | 16 +-
examples/rewrites/styles.module.css | 4 +-
examples/script-component/globals.d.ts | 4 +-
examples/script-component/pages/_app.tsx | 16 +-
.../script-component/pages/attributes.tsx | 4 +-
examples/script-component/pages/index.tsx | 4 +-
examples/script-component/pages/inline.tsx | 4 +-
examples/script-component/pages/lazy.tsx | 18 +-
examples/script-component/pages/onload.tsx | 22 +-
examples/script-component/pages/polyfill.tsx | 28 +-
examples/server-actions-upload/app/action.ts | 26 +-
examples/server-actions-upload/app/layout.tsx | 16 +-
examples/server-actions-upload/app/page.tsx | 4 +-
.../server-actions-upload/app/upload-form.tsx | 24 +-
examples/server-actions-upload/next.config.js | 4 +-
examples/ssr-caching/pages/index.tsx | 14 +-
examples/svg-components/next.config.js | 8 +-
examples/svg-components/pages/index.tsx | 6 +-
examples/with-ably/README.md | 34 +-
examples/with-ably/pages/_app.tsx | 14 +-
.../with-ably/pages/api/createTokenRequest.ts | 12 +-
examples/with-ably/pages/api/send-message.ts | 18 +-
examples/with-ably/pages/index.tsx | 52 +-
examples/with-ably/types.d.ts | 4 +-
examples/with-absolute-imports/README.md | 6 +-
.../components/button.tsx | 2 +-
.../components/header.tsx | 2 +-
.../with-absolute-imports/pages/index.tsx | 6 +-
.../app/layout.tsx | 16 +-
.../app/page.tsx | 8 +-
.../components/Panel.tsx | 10 +-
.../components/Search.tsx | 36 +-
examples/with-ant-design/app/AntdRegistry.tsx | 22 +-
examples/with-ant-design/app/layout.tsx | 24 +-
examples/with-ant-design/app/page.tsx | 30 +-
examples/with-ant-design/app/themeConfig.ts | 8 +-
examples/with-ant-design/next.config.js | 4 +-
.../with-apivideo/components/Card/index.tsx | 18 +-
.../with-apivideo/components/Loader/index.tsx | 12 +-
.../with-apivideo/components/Status/index.tsx | 14 +-
examples/with-apivideo/next.config.js | 12 +-
examples/with-apivideo/pages/_app.tsx | 8 +-
examples/with-apivideo/pages/api/[videoId].ts | 18 +-
.../with-apivideo/pages/api/uploadToken.ts | 16 +-
examples/with-apivideo/pages/api/videos.ts | 16 +-
examples/with-apivideo/pages/index.tsx | 26 +-
.../with-apivideo/pages/uploader/index.tsx | 104 +-
.../with-apivideo/pages/videos/[videoId].tsx | 54 +-
examples/with-apivideo/pages/videos/index.tsx | 28 +-
.../with-apollo-and-redux/components/Clock.js | 22 +-
.../components/Counter.js | 30 +-
.../components/ErrorMessage.js | 8 +-
.../components/Layout.js | 14 +-
.../with-apollo-and-redux/components/Nav.js | 14 +-
.../components/PostList.js | 34 +-
.../components/PostUpvoter.js | 26 +-
.../components/Submit.js | 34 +-
examples/with-apollo-and-redux/lib/apollo.js | 40 +-
examples/with-apollo-and-redux/lib/redux.js | 52 +-
.../with-apollo-and-redux/lib/useInterval.js | 20 +-
examples/with-apollo-and-redux/pages/_app.js | 14 +-
.../with-apollo-and-redux/pages/apollo.js | 18 +-
examples/with-apollo-and-redux/pages/index.js | 46 +-
examples/with-apollo-and-redux/pages/redux.js | 36 +-
examples/with-apollo/components/App.js | 6 +-
.../with-apollo/components/ErrorMessage.js | 2 +-
examples/with-apollo/components/Header.js | 16 +-
examples/with-apollo/components/InfoBox.js | 4 +-
examples/with-apollo/components/PostList.js | 34 +-
.../with-apollo/components/PostUpvoter.js | 18 +-
examples/with-apollo/components/Submit.js | 30 +-
examples/with-apollo/lib/apolloClient.js | 62 +-
examples/with-apollo/pages/_app.js | 8 +-
examples/with-apollo/pages/about.js | 18 +-
examples/with-apollo/pages/client-only.js | 16 +-
examples/with-apollo/pages/index.js | 22 +-
examples/with-apollo/pages/ssr.js | 22 +-
examples/with-axiom/middleware.ts | 10 +-
examples/with-axiom/next.config.js | 6 +-
examples/with-axiom/pages/_app.tsx | 14 +-
examples/with-axiom/pages/api/hello.ts | 10 +-
examples/with-axiom/pages/index.tsx | 32 +-
examples/with-azure-cosmos/lib/cosmosdb.ts | 58 +-
examples/with-azure-cosmos/pages/index.tsx | 62 +-
examples/with-babel-macros/pages/_document.js | 4 +-
examples/with-babel-macros/pages/index.js | 8 +-
.../with-chakra-ui/src/components/CTA.tsx | 6 +-
.../src/components/Container.tsx | 8 +-
.../src/components/DarkModeSwitch.tsx | 12 +-
.../with-chakra-ui/src/components/Footer.tsx | 4 +-
.../with-chakra-ui/src/components/Hero.tsx | 8 +-
.../with-chakra-ui/src/components/Main.tsx | 4 +-
examples/with-chakra-ui/src/pages/_app.tsx | 10 +-
.../with-chakra-ui/src/pages/_document.tsx | 6 +-
examples/with-chakra-ui/src/pages/index.tsx | 22 +-
examples/with-chakra-ui/src/theme.tsx | 34 +-
examples/with-clerk/app/api-request.tsx | 38 +-
.../app/api/getAuthenticatedUserId/route.ts | 10 +-
examples/with-clerk/app/layout.tsx | 30 +-
examples/with-clerk/app/page.tsx | 20 +-
.../app/sign-in/[[...sign-in]]/page.tsx | 6 +-
.../app/sign-up/[[...sign-up]]/page.tsx | 6 +-
.../with-clerk/app/user/[[...index]]/page.tsx | 6 +-
examples/with-clerk/middleware.ts | 10 +-
examples/with-clerk/next.config.js | 4 +-
examples/with-clerk/styles/globals.css | 2 +-
examples/with-clerk/styles/prism.css | 34 +-
.../with-cloudinary/components/Carousel.tsx | 34 +-
.../components/Icons/Bridge.tsx | 2 +-
.../with-cloudinary/components/Icons/Logo.tsx | 2 +-
.../components/Icons/Twitter.tsx | 2 +-
examples/with-cloudinary/components/Modal.tsx | 58 +-
.../components/SharedModal.tsx | 64 +-
examples/with-cloudinary/next.config.js | 12 +-
examples/with-cloudinary/pages/_app.tsx | 6 +-
examples/with-cloudinary/pages/_document.tsx | 6 +-
examples/with-cloudinary/pages/index.tsx | 80 +-
.../with-cloudinary/pages/p/[photoId].tsx | 60 +-
examples/with-cloudinary/postcss.config.js | 2 +-
examples/with-cloudinary/styles/index.css | 2 +-
examples/with-cloudinary/tailwind.config.js | 16 +-
.../utils/animationVariants.ts | 6 +-
.../with-cloudinary/utils/cachedImages.ts | 12 +-
examples/with-cloudinary/utils/cloudinary.ts | 6 +-
.../with-cloudinary/utils/downloadPhoto.ts | 22 +-
.../utils/generateBlurPlaceholder.ts | 28 +-
examples/with-cloudinary/utils/range.ts | 14 +-
examples/with-cloudinary/utils/types.ts | 26 +-
.../utils/useLastViewedPhoto.ts | 10 +-
.../components/class-names-box.js | 6 +-
.../components/styled-button.js | 4 +-
examples/with-compiled-css/next.config.js | 8 +-
examples/with-compiled-css/pages/index.js | 22 +-
examples/with-compiled-css/style/colors.js | 6 +-
.../with-contentlayer/contentlayer.config.js | 20 +-
examples/with-contentlayer/next.config.js | 4 +-
examples/with-contentlayer/pages/_app.js | 6 +-
examples/with-contentlayer/pages/index.js | 16 +-
.../with-contentlayer/pages/posts/[id].js | 14 +-
.../with-contentlayer/posts/pre-rendering.md | 4 +-
examples/with-contentlayer/posts/ssg-ssr.md | 4 +-
.../with-context-api/components/Counter.tsx | 50 +-
examples/with-context-api/pages/_app.tsx | 6 +-
examples/with-context-api/pages/about.tsx | 24 +-
examples/with-context-api/pages/index.tsx | 24 +-
.../pages/api/get-api-cookie.ts | 18 +-
.../pages/api/remove-api-cookie.ts | 8 +-
.../pages/api/set-api-cookie.ts | 8 +-
examples/with-cookies-next/pages/index.tsx | 20 +-
.../with-cookies-next/pages/ssr-cookies.tsx | 22 +-
examples/with-couchbase/pages/_app.js | 6 +-
examples/with-couchbase/pages/index.js | 26 +-
examples/with-couchbase/util/couchbase.js | 50 +-
examples/with-cssed/lib/theme.ts | 4 +-
examples/with-cssed/pages/index.tsx | 20 +-
.../with-custom-babel-config/pages/index.js | 28 +-
examples/with-cxs/pages/_document.tsx | 18 +-
examples/with-cxs/pages/index.tsx | 18 +-
examples/with-cypress/app/about/page.tsx | 6 +-
examples/with-cypress/app/layout.tsx | 20 +-
examples/with-cypress/app/page.tsx | 12 +-
.../components/about-component.cy.tsx | 18 +-
.../components/about-component.tsx | 10 +-
examples/with-cypress/cypress.config.ts | 8 +-
examples/with-cypress/cypress/e2e/app.cy.ts | 18 +-
examples/with-cypress/cypress/e2e/pages.cy.ts | 16 +-
.../with-cypress/cypress/support/commands.ts | 2 +-
.../with-cypress/cypress/support/component.ts | 8 +-
examples/with-cypress/cypress/support/e2e.ts | 2 +-
examples/with-cypress/pages/_app.tsx | 6 +-
examples/with-cypress/pages/home/about.tsx | 4 +-
examples/with-cypress/pages/home/index.tsx | 4 +-
.../docker-compose.dev.yml | 2 +-
...docker-compose.prod-without-multistage.yml | 2 +-
.../docker-compose.prod.yml | 2 +-
.../next-app/next.config.js | 6 +-
.../next-app/src/pages/_app.tsx | 6 +-
.../next-app/src/pages/index.tsx | 12 +-
.../docker/development/docker-compose.yml | 4 +-
.../docker/production/docker-compose.yml | 4 +-
.../docker/staging/docker-compose.yml | 4 +-
examples/with-docker-multi-env/next.config.js | 4 +-
examples/with-docker-multi-env/pages/_app.js | 6 +-
.../with-docker-multi-env/pages/api/hello.js | 2 +-
examples/with-docker-multi-env/pages/index.js | 10 +-
examples/with-docker/README.md | 4 +-
examples/with-docker/next.config.js | 4 +-
examples/with-docker/pages/_app.js | 6 +-
examples/with-docker/pages/api/hello.js | 2 +-
examples/with-docker/pages/index.js | 10 +-
examples/with-draft-js/pages/index.js | 212 ++--
.../with-dynamic-import/components/Header.tsx | 4 +-
.../with-dynamic-import/components/hello1.tsx | 2 +-
.../with-dynamic-import/components/hello2.tsx | 2 +-
.../with-dynamic-import/components/hello3.tsx | 2 +-
.../with-dynamic-import/components/hello4.tsx | 2 +-
.../with-dynamic-import/components/hello5.tsx | 2 +-
examples/with-dynamic-import/pages/index.tsx | 48 +-
examples/with-edgedb/README.md | 2 +-
examples/with-edgedb/client.ts | 10 +-
examples/with-edgedb/components/Header.tsx | 10 +-
examples/with-edgedb/components/Layout.tsx | 20 +-
examples/with-edgedb/components/Post.tsx | 18 +-
examples/with-edgedb/pages/api/post/[id].ts | 30 +-
examples/with-edgedb/pages/api/post/index.ts | 12 +-
.../with-edgedb/pages/api/publish/[id].ts | 14 +-
examples/with-edgedb/pages/blog/[id].tsx | 98 +-
examples/with-edgedb/pages/create.tsx | 42 +-
examples/with-edgedb/pages/drafts.tsx | 32 +-
examples/with-edgedb/pages/index.tsx | 30 +-
examples/with-edgedb/seed.ts | 40 +-
.../with-elasticsearch/lib/elasticsearch.ts | 12 +-
examples/with-elasticsearch/pages/_app.tsx | 6 +-
examples/with-elasticsearch/pages/index.tsx | 36 +-
.../with-elasticsearch/styles/Home.module.css | 4 +-
.../with-elasticsearch/styles/globals.css | 6 +-
.../electron-src/electron-next.d.ts | 10 +-
.../electron-src/index.ts | 40 +-
.../electron-src/preload.ts | 16 +-
.../with-electron-typescript/next.config.js | 6 +-
.../renderer/components/Layout.tsx | 20 +-
.../renderer/components/List.tsx | 14 +-
.../renderer/components/ListDetail.tsx | 12 +-
.../renderer/components/ListItem.tsx | 14 +-
.../renderer/interfaces/index.ts | 14 +-
.../renderer/pages/about.tsx | 8 +-
.../renderer/pages/detail/[id].tsx | 50 +-
.../renderer/pages/index.tsx | 26 +-
.../renderer/pages/initial-props.tsx | 30 +-
.../renderer/utils/sample-api.ts | 22 +-
examples/with-electron/main/index.js | 38 +-
examples/with-electron/main/preload.js | 12 +-
examples/with-electron/next.config.js | 6 +-
.../with-electron/renderer/babel.config.js | 10 +-
.../with-electron/renderer/pages/index.js | 30 +-
examples/with-emotion-swc/next.config.js | 4 +-
examples/with-emotion-swc/pages/_app.tsx | 12 +-
examples/with-emotion-swc/pages/index.tsx | 8 +-
examples/with-emotion-swc/shared/styles.tsx | 46 +-
.../with-emotion-vanilla/pages/_document.js | 16 +-
examples/with-emotion-vanilla/pages/index.js | 8 +-
.../with-emotion-vanilla/shared/renderer.js | 14 +-
.../with-emotion-vanilla/shared/styles.js | 48 +-
examples/with-emotion/pages/_app.js | 6 +-
examples/with-emotion/pages/index.js | 6 +-
examples/with-emotion/shared/styles.js | 18 +-
examples/with-eslint/pages/index.js | 4 +-
examples/with-expo-typescript/App.tsx | 2 +-
examples/with-expo-typescript/README.md | 12 +-
examples/with-expo-typescript/babel.config.js | 2 +-
examples/with-expo-typescript/next.config.js | 4 +-
.../with-expo-typescript/pages/_document.tsx | 2 +-
examples/with-expo-typescript/pages/index.tsx | 12 +-
examples/with-facebook-pixel/_pages/_app.js | 28 +-
.../with-facebook-pixel/_pages/_document.js | 8 +-
examples/with-facebook-pixel/_pages/index.js | 10 +-
.../with-facebook-pixel/_pages/navigation.js | 4 +-
.../with-facebook-pixel/app/about/page.js | 4 +-
.../app/components/FacebookPixel.js | 26 +-
.../app/components/index.js | 2 +-
examples/with-facebook-pixel/app/layout.js | 4 +-
examples/with-facebook-pixel/app/page.js | 4 +-
examples/with-facebook-pixel/lib/fpixel.js | 10 +-
.../public/scripts/pixel.js | 36 +-
examples/with-fauna/actions/entry.ts | 22 +-
examples/with-fauna/app/guestbook-page.tsx | 24 +-
examples/with-fauna/app/layout.tsx | 16 +-
examples/with-fauna/app/page.tsx | 20 +-
examples/with-fauna/components/EntryForm.tsx | 44 +-
.../with-fauna/components/ErrorMessage.tsx | 4 +-
.../with-fauna/components/LoadingSpinner.tsx | 2 +-
.../with-fauna/components/SuccessMessage.tsx | 4 +-
examples/with-fauna/lib/fauna.ts | 22 +-
examples/with-fauna/next.config.js | 4 +-
examples/with-fauna/postcss.config.js | 2 +-
examples/with-fauna/tailwind.config.js | 8 +-
examples/with-fela/FelaProvider.js | 12 +-
examples/with-fela/getFelaRenderer.js | 6 +-
examples/with-fela/pages/_app.js | 6 +-
examples/with-fela/pages/_document.js | 20 +-
examples/with-fela/pages/index.js | 22 +-
examples/with-filbert/pages/_document.js | 22 +-
examples/with-filbert/pages/index.js | 14 +-
.../components/CacheStrategySelector.tsx | 18 +-
.../with-fingerprintjs-pro/components/Nav.tsx | 26 +-
.../components/Toggler.tsx | 10 +-
.../components/VisitorDataPresenter.tsx | 20 +-
.../components/types.ts | 12 +-
.../with-fingerprintjs-pro/next.config.js | 10 +-
.../with-fingerprintjs-pro/pages/_app.tsx | 52 +-
.../pages/home/[cacheStrategy].tsx | 18 +-
.../pages/signin/[cacheStrategy].tsx | 34 +-
.../providers/InMemoryCache.tsx | 12 +-
.../providers/LocalStorageCache.tsx | 12 +-
.../providers/SessionStorageCache.tsx | 12 +-
.../providers/WithoutCache.tsx | 12 +-
.../with-fingerprintjs-pro/styles/App.css | 2 +-
.../with-fingerprintjs-pro/styles/globals.css | 6 +-
.../pages/index.js | 14 +-
.../public/firebase-messaging-sw.js | 16 +-
.../utils/webPush.js | 36 +-
.../firebaseFunctions.js | 16 +-
.../src/components/App.jsx | 8 +-
.../src/components/Header.jsx | 14 +-
.../with-firebase-hosting/src/next.config.js | 4 +-
.../with-firebase-hosting/src/pages/about.jsx | 4 +-
.../with-firebase-hosting/src/pages/index.jsx | 4 +-
examples/with-firebase/context/userContext.js | 34 +-
.../with-firebase/fetchData/getProfileData.js | 14 +-
examples/with-firebase/firebase/clientApp.js | 18 +-
examples/with-firebase/firebase/nodeApp.js | 8 +-
examples/with-firebase/pages/_app.js | 4 +-
examples/with-firebase/pages/index.js | 28 +-
.../with-firebase/pages/profile/[username].js | 18 +-
examples/with-flow/components/Page.js | 10 +-
examples/with-flow/flow-typed/next.js.flow | 30 +-
examples/with-flow/pages/_app.js | 6 +-
examples/with-flow/pages/about.js | 4 +-
examples/with-flow/pages/contact.js | 4 +-
examples/with-flow/pages/index.js | 4 +-
.../with-formspree/components/contact-form.js | 12 +-
examples/with-formspree/pages/_app.js | 6 +-
examples/with-formspree/pages/index.js | 12 +-
.../with-framer-motion/components/Gallery.js | 22 +-
.../components/SingleImage.js | 22 +-
examples/with-framer-motion/constants.js | 14 +-
examples/with-framer-motion/pages/_app.js | 14 +-
.../with-framer-motion/pages/image/[index].js | 20 +-
examples/with-framer-motion/pages/index.js | 6 +-
examples/with-goober/pages/_app.tsx | 12 +-
examples/with-goober/pages/_document.tsx | 22 +-
examples/with-goober/pages/index.tsx | 12 +-
.../components/Header.js | 4 +-
.../with-google-analytics/components/Page.js | 4 +-
examples/with-google-analytics/lib/gtag.js | 14 +-
examples/with-google-analytics/pages/_app.js | 30 +-
examples/with-google-analytics/pages/about.js | 4 +-
.../with-google-analytics/pages/contact.js | 26 +-
examples/with-google-analytics/pages/index.js | 4 +-
examples/with-google-maps-embed/app/layout.js | 2 +-
examples/with-google-maps-embed/app/page.js | 6 +-
examples/with-grafbase/app/layout.tsx | 28 +-
examples/with-grafbase/app/page.tsx | 2 +-
.../with-grafbase/app/posts/[slug]/page.tsx | 12 +-
examples/with-grafbase/codegen.ts | 18 +-
.../with-grafbase/gql/fragment-masking.ts | 28 +-
examples/with-grafbase/gql/gql.ts | 24 +-
examples/with-grafbase/gql/graphql.ts | 453 +++----
examples/with-grafbase/gql/index.ts | 4 +-
examples/with-grafbase/lib/grafbase.ts | 10 +-
examples/with-grafbase/next.config.js | 4 +-
examples/with-grafbase/postcss.config.js | 2 +-
examples/with-grafbase/tailwind.config.js | 6 +-
examples/with-graphql-gateway/next.config.js | 4 +-
examples/with-graphql-gateway/pages/_app.tsx | 8 +-
.../with-graphql-gateway/pages/api/graphql.ts | 22 +-
examples/with-graphql-gateway/pages/index.tsx | 18 +-
examples/with-graphql-hooks/components/app.js | 2 +-
.../components/error-message.js | 2 +-
.../with-graphql-hooks/components/header.js | 12 +-
.../components/post-list.js | 40 +-
.../components/post-upvoter.js | 16 +-
.../with-graphql-hooks/components/submit.js | 28 +-
.../with-graphql-hooks/lib/graphql-client.js | 30 +-
.../with-graphql-hooks/lib/graphql-request.js | 18 +-
examples/with-graphql-hooks/pages/_app.js | 10 +-
examples/with-graphql-hooks/pages/about.js | 10 +-
examples/with-graphql-hooks/pages/index.js | 18 +-
examples/with-graphql-hooks/styles.css | 6 +-
examples/with-graphql-react/pages/_app.js | 8 +-
examples/with-graphql-react/pages/index.js | 8 +-
examples/with-gsap/App.scss | 6 +-
examples/with-gsap/components/Content.tsx | 24 +-
examples/with-gsap/components/Home.tsx | 6 +-
examples/with-gsap/components/Title.tsx | 22 +-
examples/with-gsap/pages/_app.tsx | 8 +-
examples/with-gsap/pages/index.tsx | 24 +-
.../with-hls-js/components/video-player.js | 30 +-
examples/with-hls-js/pages/index.js | 8 +-
examples/with-http2/next.config.js | 2 +-
examples/with-http2/pages/about.js | 4 +-
examples/with-http2/pages/index.js | 4 +-
examples/with-http2/server.js | 38 +-
.../with-i18n-next-intl/components/Code.js | 4 +-
.../components/Navigation.js | 24 +-
.../components/PageLayout.js | 6 +-
examples/with-i18n-next-intl/next.config.js | 6 +-
examples/with-i18n-next-intl/pages/_app.js | 10 +-
examples/with-i18n-next-intl/pages/about.js | 26 +-
examples/with-i18n-next-intl/pages/index.js | 20 +-
.../with-i18n-rosetta/components/title.js | 6 +-
examples/with-i18n-rosetta/hooks/use-i18n.js | 8 +-
examples/with-i18n-rosetta/lib/i18n.js | 42 +-
examples/with-i18n-rosetta/next.config.js | 8 +-
.../with-i18n-rosetta/pages/[lng]/index.js | 28 +-
examples/with-i18n-rosetta/pages/_app.js | 4 +-
examples/with-i18n-rosetta/pages/_document.js | 10 +-
examples/with-i18n-rosetta/pages/dashboard.js | 32 +-
examples/with-ionic-typescript/ionic.d.ts | 22 +-
examples/with-ionic-typescript/next.config.js | 16 +-
examples/with-ionic-typescript/pages/_app.tsx | 32 +-
.../with-ionic-typescript/pages/index.tsx | 6 +-
.../with-iron-session/components/Form.tsx | 8 +-
.../with-iron-session/components/Header.tsx | 34 +-
.../with-iron-session/components/Layout.tsx | 12 +-
examples/with-iron-session/lib/fetchJson.ts | 34 +-
examples/with-iron-session/lib/session.ts | 14 +-
examples/with-iron-session/lib/useEvents.ts | 12 +-
examples/with-iron-session/lib/useUser.ts | 20 +-
examples/with-iron-session/next.config.js | 10 +-
examples/with-iron-session/pages/_app.tsx | 12 +-
.../with-iron-session/pages/api/events.ts | 28 +-
examples/with-iron-session/pages/api/login.ts | 28 +-
.../with-iron-session/pages/api/logout.ts | 14 +-
examples/with-iron-session/pages/api/user.ts | 24 +-
examples/with-iron-session/pages/index.tsx | 10 +-
examples/with-iron-session/pages/login.tsx | 36 +-
.../with-iron-session/pages/profile-sg.tsx | 28 +-
.../with-iron-session/pages/profile-ssr.tsx | 40 +-
.../with-jest-babel/__mocks__/fileMock.js | 6 +-
.../with-jest-babel/__mocks__/styleMock.js | 2 +-
.../with-jest-babel/__tests__/index.test.tsx | 20 +-
.../with-jest-babel/__tests__/snapshot.tsx | 12 +-
examples/with-jest-babel/jest.config.js | 30 +-
examples/with-jest-babel/jest.setup.js | 2 +-
examples/with-jest-babel/pages/_app.tsx | 6 +-
examples/with-jest-babel/pages/index.tsx | 10 +-
examples/with-jest-babel/types.d.ts | 8 +-
examples/with-jest/__tests__/index.test.tsx | 20 +-
examples/with-jest/__tests__/snapshot.tsx | 12 +-
.../with-jest/app/blog/[slug]/page.test.tsx | 14 +-
examples/with-jest/app/blog/[slug]/page.tsx | 10 +-
examples/with-jest/app/counter.test.tsx | 16 +-
examples/with-jest/app/counter.tsx | 8 +-
examples/with-jest/app/layout.tsx | 4 +-
examples/with-jest/app/page.test.tsx | 12 +-
examples/with-jest/app/page.tsx | 6 +-
examples/with-jest/app/utils/add.test.ts | 8 +-
examples/with-jest/app/utils/add.ts | 4 +-
examples/with-jest/jest.config.js | 14 +-
examples/with-jest/jest.setup.js | 2 +-
examples/with-jest/pages/_app.tsx | 6 +-
examples/with-jest/pages/home/index.tsx | 10 +-
examples/with-jest/types.d.ts | 8 +-
examples/with-joi/pages/api/cars.js | 12 +-
examples/with-joi/pages/api/people.js | 14 +-
examples/with-joi/pages/api/people/[id].js | 14 +-
.../server/api/middlewares/validate.js | 6 +-
examples/with-jotai/components/Canvas.tsx | 38 +-
examples/with-jotai/next.config.js | 2 +-
examples/with-jotai/pages/_app.tsx | 8 +-
examples/with-jotai/pages/api/hello.ts | 10 +-
examples/with-jotai/pages/index.tsx | 12 +-
examples/with-kea/pages/_app.js | 14 +-
examples/with-kea/pages/index.js | 14 +-
examples/with-kea/store.js | 16 +-
examples/with-knex/knex/index.js | 12 +-
.../knex/migrations/20201015140127_initial.js | 24 +-
examples/with-knex/knexfile.js | 14 +-
examples/with-knex/pages/api/todos.js | 8 +-
examples/with-knex/pages/index.js | 24 +-
examples/with-linaria/next.config.js | 4 +-
examples/with-linaria/pages/index.tsx | 12 +-
.../with-lingui/components/LangSwitcher.js | 16 +-
examples/with-lingui/lingui.config.js | 12 +-
examples/with-lingui/next.config.js | 10 +-
examples/with-lingui/pages/_app.js | 30 +-
examples/with-lingui/pages/index.js | 8 +-
examples/with-lingui/pages/two.js | 10 +-
examples/with-magic/components/form.js | 4 +-
examples/with-magic/components/header.js | 12 +-
examples/with-magic/components/layout.js | 14 +-
examples/with-magic/lib/auth-cookies.js | 34 +-
examples/with-magic/lib/auth.js | 26 +-
examples/with-magic/lib/hooks.js | 26 +-
examples/with-magic/lib/magic.js | 4 +-
examples/with-magic/pages/api/login.js | 16 +-
examples/with-magic/pages/api/logout.js | 18 +-
examples/with-magic/pages/api/user.js | 6 +-
examples/with-magic/pages/index.js | 14 +-
examples/with-magic/pages/login.js | 50 +-
examples/with-magic/pages/profile.js | 12 +-
examples/with-mdbreact/pages/_app.js | 12 +-
examples/with-mdbreact/pages/index.js | 6 +-
examples/with-mdx-remote/README.md | 26 +-
.../with-mdx-remote/components/CustomLink.js | 4 +-
examples/with-mdx-remote/components/Layout.js | 4 +-
.../components/TestComponent.js | 4 +-
examples/with-mdx-remote/pages/index.js | 28 +-
.../with-mdx-remote/pages/posts/[slug].js | 48 +-
examples/with-mdx-remote/utils/mdxUtils.js | 8 +-
examples/with-mdx/components/button.js | 14 +-
examples/with-mdx/next.config.js | 8 +-
examples/with-mdx/pages/index.mdx | 2 +-
.../with-mobx-state-tree/components/Clock.tsx | 22 +-
.../components/SampleComponent.tsx | 32 +-
examples/with-mobx-state-tree/pages/_app.tsx | 8 +-
examples/with-mobx-state-tree/pages/index.tsx | 4 +-
examples/with-mobx-state-tree/pages/other.tsx | 4 +-
examples/with-mobx-state-tree/pages/ssg.tsx | 14 +-
examples/with-mobx-state-tree/pages/ssr.tsx | 14 +-
examples/with-mobx-state-tree/store.ts | 48 +-
examples/with-mobx/components/Clock.js | 14 +-
examples/with-mobx/components/Page.js | 26 +-
.../with-mobx/components/StoreProvider.js | 30 +-
examples/with-mobx/pages/_app.js | 4 +-
examples/with-mobx/pages/index.js | 4 +-
examples/with-mobx/pages/other.js | 4 +-
examples/with-mobx/pages/ssg.js | 6 +-
examples/with-mobx/pages/ssr.js | 6 +-
examples/with-mobx/store.js | 46 +-
examples/with-mocha/.mocharc.yml | 2 +-
examples/with-mocha/mocha.setup.js | 6 +-
examples/with-mocha/pages/index.js | 2 +-
examples/with-mocha/test/index.test.js | 18 +-
.../with-mongodb-mongoose/components/Form.tsx | 130 +-
examples/with-mongodb-mongoose/css/style.css | 2 +-
.../with-mongodb-mongoose/lib/dbConnect.ts | 32 +-
examples/with-mongodb-mongoose/models/Pet.ts | 34 +-
.../with-mongodb-mongoose/pages/[id]/edit.tsx | 28 +-
.../pages/[id]/index.tsx | 56 +-
examples/with-mongodb-mongoose/pages/_app.tsx | 14 +-
.../with-mongodb-mongoose/pages/_document.tsx | 4 +-
.../pages/api/pets/[id].ts | 52 +-
.../pages/api/pets/index.ts | 38 +-
.../with-mongodb-mongoose/pages/index.tsx | 36 +-
examples/with-mongodb-mongoose/pages/new.tsx | 18 +-
examples/with-mongodb/lib/mongodb.ts | 30 +-
examples/with-mongodb/pages/index.tsx | 26 +-
examples/with-mongodb/types/mongodb.d.ts | 4 +-
examples/with-mqtt-js/environment.d.ts | 8 +-
examples/with-mqtt-js/lib/useMqtt.ts | 64 +-
examples/with-mqtt-js/pages/index.tsx | 43 +-
examples/with-msw/mocks/browser.ts | 6 +-
examples/with-msw/mocks/handlers.ts | 30 +-
examples/with-msw/mocks/index.ts | 14 +-
examples/with-msw/mocks/server.ts | 6 +-
examples/with-msw/mocks/types.ts | 16 +-
examples/with-msw/pages/_app.tsx | 8 +-
examples/with-msw/pages/index.tsx | 24 +-
examples/with-mux-video/components/button.tsx | 6 +-
.../components/error-message.tsx | 6 +-
examples/with-mux-video/components/layout.tsx | 24 +-
.../with-mux-video/components/spinner.tsx | 8 +-
.../with-mux-video/components/upload-form.tsx | 100 +-
.../with-mux-video/components/upload-page.tsx | 14 +-
examples/with-mux-video/constants.ts | 2 +-
.../with-mux-video/pages/api/asset/[id].ts | 26 +-
examples/with-mux-video/pages/api/upload.ts | 30 +-
.../with-mux-video/pages/api/upload/[id].ts | 26 +-
examples/with-mux-video/pages/asset/[id].tsx | 46 +-
examples/with-mux-video/pages/index.tsx | 6 +-
examples/with-mux-video/pages/v/[id].tsx | 58 +-
examples/with-mysql/components/Product.js | 6 +-
examples/with-mysql/lib/prisma.js | 14 +-
examples/with-mysql/next.config.js | 2 +-
examples/with-mysql/pages/_app.js | 4 +-
examples/with-mysql/pages/api/products.js | 14 +-
examples/with-mysql/pages/index.js | 14 +-
examples/with-mysql/postcss.config.js | 2 +-
examples/with-mysql/prisma/data.js | 44 +-
examples/with-mysql/prisma/seed.js | 40 +-
examples/with-mysql/tailwind.config.js | 6 +-
examples/with-neo4j/components/footer.js | 2 +-
examples/with-neo4j/components/header.js | 2 +-
examples/with-neo4j/lib/fetcher.js | 4 +-
examples/with-neo4j/pages/_app.js | 4 +-
examples/with-neo4j/pages/actor/[name].js | 28 +-
.../with-neo4j/pages/api/actors/[name].js | 38 +-
.../with-neo4j/pages/api/movies/[title].js | 36 +-
examples/with-neo4j/pages/api/movies/index.js | 34 +-
examples/with-neo4j/pages/index.js | 22 +-
examples/with-neo4j/pages/movie/[title].js | 26 +-
examples/with-neo4j/styles/global.js | 4 +-
examples/with-neo4j/util/neo4j.js | 12 +-
.../components/Loader.js | 6 +-
.../with-next-page-transitions/pages/_app.js | 12 +-
.../pages/_document.js | 4 +-
.../with-next-page-transitions/pages/about.js | 36 +-
.../with-next-page-transitions/pages/index.js | 6 +-
.../with-next-sass/components/hello-world.js | 4 +-
examples/with-next-sass/pages/_app.js | 6 +-
examples/with-next-sass/pages/index.js | 4 +-
examples/with-next-seo/next-seo.config.js | 14 +-
examples/with-next-seo/pages/_app.js | 6 +-
examples/with-next-seo/pages/index.js | 24 +-
examples/with-next-seo/pages/jsonld.js | 10 +-
.../with-next-sitemap/next-sitemap.config.js | 10 +-
.../with-next-sitemap/pages/[dynamic].tsx | 22 +-
examples/with-next-sitemap/pages/index.tsx | 6 +-
.../with-next-translate/app/[lang]/page.js | 38 +-
examples/with-next-translate/app/layout.js | 14 +-
examples/with-next-translate/app/style.css | 2 +-
examples/with-next-translate/next.config.js | 4 +-
examples/with-next-ui/common/interface.ts | 8 +-
examples/with-next-ui/components/Checkbox.tsx | 10 +-
examples/with-next-ui/components/Collapse.tsx | 8 +-
examples/with-next-ui/components/Mail.tsx | 6 +-
examples/with-next-ui/components/Password.tsx | 6 +-
examples/with-next-ui/components/Table.tsx | 12 +-
examples/with-next-ui/next.config.js | 4 +-
examples/with-next-ui/pages/_app.tsx | 8 +-
examples/with-next-ui/pages/_document.tsx | 14 +-
examples/with-next-ui/pages/index.tsx | 22 +-
.../components/private-route.js | 18 +-
.../pages/_app.js | 10 +-
.../pages/api/hello.js | 2 +-
.../pages/index.js | 62 +-
.../pages/login.js | 26 +-
.../pages/register.js | 28 +-
.../utils/nhost.js | 4 +-
examples/with-opentelemetry/app/layout.tsx | 12 +-
examples/with-opentelemetry/app/page.tsx | 6 +-
.../with-opentelemetry/instrumentation.ts | 4 +-
examples/with-opentelemetry/next.config.js | 2 +-
.../pages/api/github-stars.ts | 10 +-
examples/with-opentelemetry/pages/legacy.tsx | 10 +-
.../shared/fetch-github-stars.ts | 18 +-
examples/with-orbit-components/pages/_app.js | 10 +-
.../with-orbit-components/pages/_document.js | 16 +-
examples/with-orbit-components/pages/index.js | 6 +-
examples/with-overmind/components/Header.js | 12 +-
examples/with-overmind/components/Items.js | 10 +-
examples/with-overmind/overmind/index.js | 20 +-
examples/with-overmind/pages/_app.js | 32 +-
examples/with-overmind/pages/about.js | 14 +-
examples/with-overmind/pages/index.js | 22 +-
.../with-particles/components/particles.tsx | 30 +-
examples/with-particles/next.config.js | 4 +-
examples/with-particles/pages/_app.tsx | 8 +-
examples/with-particles/pages/index.tsx | 20 +-
.../components/Navbar.js | 12 +-
.../lib/auth.js | 18 +-
.../with-passport-and-next-connect/lib/db.js | 36 +-
.../lib/hooks.jsx | 12 +-
.../lib/passport.js | 30 +-
.../lib/session.js | 38 +-
.../middleware/auth.js | 24 +-
.../pages/_app.js | 6 +-
.../pages/api/login.js | 16 +-
.../pages/api/logout.js | 14 +-
.../pages/api/user.js | 36 +-
.../pages/api/users.js | 32 +-
.../pages/index.js | 16 +-
.../pages/login.js | 36 +-
.../pages/profile.js | 48 +-
.../pages/signup.js | 40 +-
.../with-passport-and-next-connect/styles.css | 6 +-
examples/with-passport/components/form.js | 6 +-
examples/with-passport/components/header.js | 12 +-
examples/with-passport/components/layout.js | 14 +-
examples/with-passport/lib/auth-cookies.js | 34 +-
examples/with-passport/lib/auth.js | 26 +-
examples/with-passport/lib/hooks.js | 26 +-
examples/with-passport/lib/password-local.js | 16 +-
examples/with-passport/lib/user.js | 28 +-
examples/with-passport/pages/api/login.js | 32 +-
examples/with-passport/pages/api/logout.js | 8 +-
examples/with-passport/pages/api/signup.js | 10 +-
examples/with-passport/pages/api/user.js | 14 +-
examples/with-passport/pages/index.js | 12 +-
examples/with-passport/pages/login.js | 42 +-
examples/with-passport/pages/profile.js | 12 +-
examples/with-passport/pages/signup.js | 46 +-
examples/with-paste-typescript/pages/_app.tsx | 6 +-
.../with-paste-typescript/pages/index.tsx | 24 +-
examples/with-plausible/components/Header.js | 4 +-
examples/with-plausible/components/Page.js | 4 +-
examples/with-plausible/pages/_app.js | 4 +-
examples/with-plausible/pages/about.js | 4 +-
examples/with-plausible/pages/contact.js | 22 +-
examples/with-plausible/pages/index.js | 4 +-
examples/with-playwright/app/about/page.tsx | 4 +-
examples/with-playwright/app/layout.tsx | 4 +-
examples/with-playwright/app/page.tsx | 4 +-
examples/with-playwright/e2e/app.spec.ts | 14 +-
examples/with-playwright/e2e/pages.spec.ts | 18 +-
examples/with-playwright/pages/_app.tsx | 6 +-
examples/with-playwright/pages/home/about.tsx | 6 +-
examples/with-playwright/pages/home/index.tsx | 14 +-
examples/with-playwright/playwright.config.ts | 30 +-
examples/with-polyfills/pages/_app.js | 4 +-
examples/with-polyfills/pages/index.js | 2 +-
examples/with-portals-ssr/pages/_app.js | 8 +-
examples/with-portals-ssr/pages/_document.js | 16 +-
examples/with-portals-ssr/pages/index.js | 32 +-
.../components/ClientOnlyPortal.js | 16 +-
examples/with-portals/components/Modal.js | 10 +-
examples/with-portals/pages/_document.js | 4 +-
examples/with-portals/pages/index.js | 4 +-
examples/with-postgres/ley.config.js | 10 +-
examples/with-postgres/lib/db.ts | 6 +-
examples/with-postgres/lib/todos.ts | 16 +-
.../with-postgres/migrations/000-todos.js | 8 +-
examples/with-postgres/next.config.js | 4 +-
examples/with-postgres/pages/_app.tsx | 6 +-
examples/with-postgres/pages/api/todos.ts | 30 +-
examples/with-postgres/pages/index.tsx | 94 +-
examples/with-postgres/styles/globals.css | 4 +-
examples/with-prefetching/components/Nav.tsx | 14 +-
examples/with-prefetching/pages/_app.tsx | 6 +-
examples/with-prefetching/pages/about.tsx | 2 +-
examples/with-prefetching/pages/contact.tsx | 2 +-
examples/with-prefetching/pages/features.tsx | 2 +-
examples/with-prefetching/pages/index.tsx | 2 +-
examples/with-quill-js/pages/_app.js | 6 +-
examples/with-quill-js/pages/index.js | 56 +-
.../with-rbx-bulma-pro/components/Layout.js | 10 +-
examples/with-rbx-bulma-pro/pages/_app.js | 6 +-
examples/with-rbx-bulma-pro/pages/about.js | 8 +-
examples/with-rbx-bulma-pro/pages/contact.js | 8 +-
examples/with-rbx-bulma-pro/pages/index.js | 12 +-
examples/with-react-bootstrap/pages/_app.jsx | 4 +-
examples/with-react-bootstrap/pages/index.jsx | 8 +-
examples/with-react-bootstrap/style/index.css | 2 +-
.../src/components/Article.tsx | 8 +-
.../src/components/Card.tsx | 6 +-
.../src/components/Header.tsx | 6 +-
.../with-react-foundation/src/pages/_app.tsx | 6 +-
.../with-react-foundation/src/pages/index.tsx | 12 +-
examples/with-react-ga4/pages/_app.js | 30 +-
examples/with-react-ga4/pages/about.js | 2 +-
examples/with-react-ga4/pages/index.js | 4 +-
examples/with-react-ga4/utils/analytics.js | 30 +-
examples/with-react-hook-form/pages/_app.tsx | 6 +-
.../with-react-hook-form/pages/_document.js | 4 +-
examples/with-react-hook-form/pages/index.tsx | 42 +-
.../with-react-hook-form/styles/global.css | 2 +-
.../with-react-intl/components/Layout.tsx | 30 +-
examples/with-react-intl/components/Nav.tsx | 12 +-
.../helper/loadIntlMessages.ts | 14 +-
examples/with-react-intl/next.config.js | 12 +-
examples/with-react-intl/pages/_app.tsx | 12 +-
examples/with-react-intl/pages/about.tsx | 18 +-
examples/with-react-intl/pages/index.tsx | 22 +-
examples/with-react-jss/pages/_app.tsx | 12 +-
examples/with-react-jss/pages/_document.tsx | 16 +-
examples/with-react-jss/pages/index.tsx | 10 +-
.../components/Layout/Layout.tsx | 18 +-
.../components/Layout/index.ts | 2 +-
.../components/Layout/navItems.tsx | 16 +-
.../components/LinkUnstyled.tsx | 14 +-
.../with-react-md-typescript/pages/_app.tsx | 12 +-
.../with-react-md-typescript/pages/index.tsx | 6 +-
.../pages/route-1.tsx | 6 +-
.../styles/_variables.scss | 4 +-
.../with-react-md-typescript/styles/app.scss | 4 +-
.../with-react-multi-carousel/pages/index.tsx | 12 +-
examples/with-react-native-web/next.config.js | 18 +-
examples/with-react-native-web/pages/_app.js | 8 +-
.../with-react-native-web/pages/_document.js | 26 +-
.../with-react-native-web/pages/alternate.js | 14 +-
examples/with-react-native-web/pages/index.js | 16 +-
examples/with-react-toolbox/pages/index.js | 10 +-
examples/with-react-toolbox/public/theme.css | 18 +-
examples/with-react-toolbox/theme.js | 150 +--
.../with-react-with-styles/defaultTheme.js | 4 +-
examples/with-react-with-styles/pages/_app.js | 18 +-
.../with-react-with-styles/pages/_document.js | 16 +-
.../with-react-with-styles/pages/index.js | 6 +-
examples/with-reactstrap/pages/_app.jsx | 4 +-
examples/with-reactstrap/pages/index.jsx | 8 +-
examples/with-reactstrap/styles/index.css | 2 +-
examples/with-realm-web/lib/RealmClient.js | 20 +-
examples/with-realm-web/pages/index.js | 26 +-
examples/with-reasonml-todo/next.config.js | 6 +-
examples/with-rebass/pages/index.js | 22 +-
examples/with-recoil/components/counter.js | 18 +-
examples/with-recoil/lib/recoil-atoms.js | 14 +-
examples/with-recoil/pages/_app.js | 4 +-
examples/with-recoil/pages/index.js | 6 +-
examples/with-redis/app/actions.tsx | 38 +-
examples/with-redis/app/form.tsx | 106 +-
examples/with-redis/app/layout.tsx | 8 +-
examples/with-redis/app/page.tsx | 38 +-
examples/with-redis/app/types.tsx | 10 +-
examples/with-redis/postcss.config.js | 2 +-
examples/with-redis/tailwind.config.ts | 10 +-
.../app/api/identity-count/route.ts | 10 +-
.../app/components/Counter/Counter.tsx | 18 +-
.../app/components/Counter/counter.module.css | 4 +-
examples/with-redux/app/components/Nav.tsx | 18 +-
examples/with-redux/app/layout.tsx | 10 +-
examples/with-redux/app/page.tsx | 8 +-
.../with-redux/app/styles/layout.module.css | 8 +-
examples/with-redux/app/verify/page.tsx | 2 +-
examples/with-redux/lib/providers.tsx | 10 +-
.../lib/redux/createAppAsyncThunk.ts | 12 +-
examples/with-redux/lib/redux/index.ts | 4 +-
examples/with-redux/lib/redux/middleware.ts | 18 +-
examples/with-redux/lib/redux/rootReducer.ts | 4 +-
.../redux/slices/counterSlice/counterSlice.ts | 30 +-
.../slices/counterSlice/fetchIdentityCount.ts | 16 +-
.../lib/redux/slices/counterSlice/index.ts | 6 +-
.../redux/slices/counterSlice/selectors.ts | 4 +-
.../lib/redux/slices/counterSlice/thunks.ts | 26 +-
examples/with-redux/lib/redux/slices/index.ts | 2 +-
examples/with-redux/lib/redux/store.ts | 28 +-
examples/with-redux/next.config.mjs | 4 +-
examples/with-reflexjs/pages/_app.tsx | 8 +-
examples/with-reflexjs/pages/_document.tsx | 6 +-
examples/with-reflexjs/pages/index.tsx | 2 +-
examples/with-reflexjs/src/theme.ts | 234 ++--
examples/with-reflux/actions/actions.js | 6 +-
examples/with-reflux/pages/index.js | 12 +-
examples/with-reflux/store/counterStore.js | 16 +-
.../components/BlogPostPreview.js | 6 +-
.../with-relay-modern/components/BlogPosts.js | 8 +-
examples/with-relay-modern/lib/relay.js | 33 +-
examples/with-relay-modern/pages/_app.js | 8 +-
examples/with-relay-modern/pages/about.js | 4 +-
examples/with-relay-modern/pages/index.js | 22 +-
.../with-relay-modern/queries/indexPage.js | 4 +-
examples/with-rematch/pages/_app.js | 8 +-
examples/with-rematch/pages/github-users.js | 30 +-
examples/with-rematch/pages/index.js | 18 +-
.../shared/components/counter-display.js | 16 +-
.../with-rematch/shared/components/header.js | 8 +-
.../with-rematch/shared/models/counter.js | 14 +-
examples/with-rematch/shared/models/github.js | 22 +-
examples/with-rematch/shared/models/index.js | 8 +-
examples/with-rematch/shared/store.js | 30 +-
examples/with-rematch/shared/utils.js | 12 +-
.../with-route-as-modal/components/Article.js | 8 +-
.../with-route-as-modal/components/Grid.js | 8 +-
.../with-route-as-modal/components/Post.js | 8 +-
examples/with-route-as-modal/pages/_app.js | 6 +-
.../pages/article/[articleId].js | 30 +-
examples/with-route-as-modal/pages/index.js | 20 +-
.../pages/post/[postId].js | 14 +-
.../components/analytics.tsx | 20 +-
.../components/form.tsx | 18 +-
.../components/header.tsx | 4 +-
.../lib/segment.ts | 4 +-
.../pages/_app.tsx | 12 +-
.../pages/about.tsx | 4 +-
.../pages/contact.tsx | 6 +-
.../pages/index.tsx | 4 +-
.../with-segment-analytics/app/about/page.tsx | 6 +-
.../app/contact/page.tsx | 8 +-
.../with-segment-analytics/app/layout.tsx | 12 +-
examples/with-segment-analytics/app/page.tsx | 6 +-
.../components/analytics.tsx | 18 +-
.../components/form.tsx | 20 +-
.../components/header.tsx | 4 +-
.../with-segment-analytics/lib/segment.ts | 4 +-
examples/with-semantic-ui/pages/_app.js | 6 +-
examples/with-semantic-ui/pages/index.js | 10 +-
examples/with-sentry/next.config.js | 6 +-
examples/with-sentry/pages/404.tsx | 4 +-
examples/with-sentry/pages/_app.tsx | 4 +-
examples/with-sentry/pages/_document.tsx | 4 +-
examples/with-sentry/pages/_error.tsx | 14 +-
examples/with-sentry/pages/api/test1.ts | 6 +-
examples/with-sentry/pages/api/test2.ts | 6 +-
examples/with-sentry/pages/api/test3.ts | 6 +-
examples/with-sentry/pages/api/test4.ts | 8 +-
examples/with-sentry/pages/client/test1.tsx | 8 +-
examples/with-sentry/pages/client/test2.tsx | 8 +-
examples/with-sentry/pages/client/test3.tsx | 12 +-
examples/with-sentry/pages/client/test4.tsx | 16 +-
examples/with-sentry/pages/client/test5.tsx | 20 +-
examples/with-sentry/pages/index.tsx | 50 +-
examples/with-sentry/pages/ssr/test1.tsx | 6 +-
examples/with-sentry/pages/ssr/test2.tsx | 6 +-
examples/with-sentry/pages/ssr/test3.tsx | 10 +-
examples/with-sentry/pages/ssr/test4.tsx | 14 +-
examples/with-sentry/sentry.client.config.js | 6 +-
examples/with-sentry/sentry.edge.config.js | 6 +-
examples/with-sentry/sentry.server.config.js | 6 +-
examples/with-sentry/styles/Home.module.css | 4 +-
examples/with-sentry/styles/globals.css | 6 +-
examples/with-service-worker/pages/index.tsx | 16 +-
examples/with-service-worker/public/sw.js | 6 +-
examples/with-sfcc/components/Footer.tsx | 2 +-
examples/with-sfcc/components/Header.tsx | 6 +-
examples/with-sfcc/components/ProductCard.tsx | 18 +-
examples/with-sfcc/next.config.js | 8 +-
examples/with-sfcc/pages/_app.tsx | 16 +-
examples/with-sfcc/pages/_document.tsx | 4 +-
examples/with-sfcc/pages/index.tsx | 26 +-
examples/with-sfcc/pages/products/[slug].tsx | 22 +-
examples/with-sfcc/postcss.config.js | 2 +-
examples/with-sfcc/sfcc.js | 36 +-
examples/with-sfcc/tailwind.config.js | 10 +-
examples/with-shallow-routing/pages/about.js | 2 +-
examples/with-shallow-routing/pages/index.js | 30 +-
examples/with-sitemap/next.config.js | 6 +-
examples/with-sitemap/pages/contact.js | 6 +-
examples/with-sitemap/pages/index.js | 6 +-
.../with-sitemap/scripts/generate-sitemap.js | 26 +-
examples/with-slate/pages/api/editor-state.ts | 18 +-
examples/with-slate/pages/index.tsx | 34 +-
examples/with-slate/types/slate.d.ts | 18 +-
.../with-static-export/app/about/page.tsx | 4 +-
examples/with-static-export/app/layout.tsx | 4 +-
examples/with-static-export/app/page.tsx | 8 +-
examples/with-static-export/next.config.js | 6 +-
.../test-component/src/components.d.ts | 32 +-
.../my-component/my-component.e2e.ts | 50 +-
.../components/my-component/my-component.tsx | 18 +-
.../packages/test-component/src/index.ts | 2 +-
.../test-component/src/utils/utils.spec.ts | 34 +-
.../test-component/src/utils/utils.ts | 4 +-
.../packages/test-component/stencil.config.ts | 14 +-
.../packages/web-app/pages/_app.js | 12 +-
.../packages/web-app/pages/index.js | 2 +-
.../with-stitches/components/StitchesLogo.tsx | 4 +-
examples/with-stitches/next.config.js | 4 +-
examples/with-stitches/pages/_document.tsx | 6 +-
examples/with-stitches/pages/index.tsx | 48 +-
examples/with-stitches/stitches.config.ts | 84 +-
.../.storybook/main.js | 8 +-
.../.storybook/preview.js | 4 +-
.../components/Button.tsx | 28 +-
.../components/Header.tsx | 16 +-
.../components/Page.tsx | 30 +-
.../pages/_app.tsx | 8 +-
.../pages/index.tsx | 12 +-
.../stories/Button.stories.tsx | 42 +-
.../stories/Header.stories.tsx | 20 +-
.../stories/Introduction.stories.mdx | 20 +-
.../stories/Page.stories.tsx | 22 +-
examples/with-storybook/.storybook/main.ts | 18 +-
examples/with-storybook/.storybook/preview.ts | 8 +-
.../with-storybook/app/api/hello/route.ts | 2 +-
examples/with-storybook/app/globals.css | 6 +-
examples/with-storybook/app/layout.tsx | 12 +-
examples/with-storybook/app/page.module.css | 2 +-
examples/with-storybook/app/page.tsx | 12 +-
.../with-storybook/stories/Button.stories.ts | 36 +-
examples/with-storybook/stories/Button.tsx | 28 +-
.../with-storybook/stories/Header.stories.ts | 22 +-
examples/with-storybook/stories/Header.tsx | 20 +-
.../with-storybook/stories/Introduction.mdx | 22 +-
.../with-storybook/stories/Page.stories.ts | 28 +-
examples/with-storybook/stories/Page.tsx | 30 +-
examples/with-storybook/stories/button.css | 2 +-
examples/with-storybook/stories/header.css | 2 +-
examples/with-storybook/stories/page.css | 2 +-
examples/with-strict-csp/app/layout.js | 2 +-
examples/with-strict-csp/app/page.js | 8 +-
examples/with-strict-csp/middleware.js | 38 +-
.../app/actions/stripe.ts | 42 +-
.../app/api/webhooks/route.ts | 72 +-
.../app/components/CheckoutForm.tsx | 24 +-
.../app/components/CustomDonationInput.tsx | 20 +-
.../app/components/ElementsForm.tsx | 120 +-
.../app/components/PrintObject.tsx | 8 +-
.../app/components/StripeTestCards.tsx | 8 +-
.../app/donate-with-checkout/page.tsx | 10 +-
.../app/donate-with-checkout/result/error.tsx | 4 +-
.../donate-with-checkout/result/layout.tsx | 10 +-
.../app/donate-with-checkout/result/page.tsx | 18 +-
.../app/donate-with-elements/page.tsx | 12 +-
.../app/donate-with-elements/result/error.tsx | 4 +-
.../donate-with-elements/result/layout.tsx | 10 +-
.../app/donate-with-elements/result/page.tsx | 14 +-
.../with-stripe-typescript/app/layout.tsx | 30 +-
examples/with-stripe-typescript/app/page.tsx | 10 +-
.../with-stripe-typescript/config/index.ts | 8 +-
examples/with-stripe-typescript/lib/stripe.ts | 12 +-
.../with-stripe-typescript/next.config.js | 2 +-
examples/with-stripe-typescript/styles.css | 10 +-
.../utils/get-stripejs.ts | 10 +-
.../utils/stripe-helpers.ts | 32 +-
.../pages/_app.tsx | 16 +-
.../pages/_document.tsx | 20 +-
.../pages/index.tsx | 6 +-
.../with-styled-components-rtl/next.config.js | 4 +-
.../with-styled-components-rtl/pages/_app.tsx | 12 +-
.../pages/_document.tsx | 24 +-
.../pages/index.tsx | 6 +-
.../with-styled-components-rtl/styled.d.ts | 8 +-
examples/with-styled-components/README.md | 12 +-
.../components/cards.tsx | 12 +-
.../components/globalstyles.tsx | 6 +-
.../components/sharedstyles.tsx | 14 +-
.../with-styled-components/next.config.js | 4 +-
.../with-styled-components/pages/_app.tsx | 14 +-
.../pages/_document.tsx | 20 +-
.../with-styled-components/pages/about.tsx | 6 +-
.../with-styled-components/pages/index.tsx | 8 +-
examples/with-styled-components/styled.d.ts | 10 +-
.../with-styled-jsx-plugins/pages/index.tsx | 2 +-
examples/with-styled-jsx-scss/pages/index.tsx | 4 +-
examples/with-styled-jsx/pages/index.tsx | 2 +-
examples/with-styletron/next.config.js | 8 +-
examples/with-styletron/pages/_app.js | 6 +-
examples/with-styletron/pages/_document.js | 20 +-
examples/with-styletron/pages/index.js | 22 +-
examples/with-styletron/styletron.js | 8 +-
.../with-supabase/app/auth/callback/route.ts | 18 +-
examples/with-supabase/app/layout.tsx | 16 +-
examples/with-supabase/app/login/page.tsx | 52 +-
examples/with-supabase/app/page.tsx | 30 +-
.../with-supabase/components/AuthButton.tsx | 28 +-
examples/with-supabase/components/Code.tsx | 20 +-
.../components/ConnectSupabaseSteps.tsx | 22 +-
.../with-supabase/components/DeployButton.tsx | 2 +-
examples/with-supabase/components/Header.tsx | 12 +-
.../with-supabase/components/NextLogo.tsx | 2 +-
.../components/SignUpUserSteps.tsx | 30 +-
examples/with-supabase/components/Step.tsx | 6 +-
.../with-supabase/components/SupabaseLogo.tsx | 2 +-
examples/with-supabase/middleware.ts | 16 +-
examples/with-supabase/next.config.js | 4 +-
examples/with-supabase/postcss.config.js | 2 +-
examples/with-supabase/tailwind.config.js | 14 +-
.../with-supabase/utils/supabase/client.ts | 6 +-
.../utils/supabase/middleware.ts | 32 +-
.../with-supabase/utils/supabase/server.ts | 16 +-
.../app/api/auth/[...path]/route.ts | 32 +-
.../with-supertokens/app/api/user/route.ts | 12 +-
.../app/auth/[[...path]]/page.tsx | 22 +-
.../app/components/callApiButton.tsx | 22 +-
.../with-supertokens/app/components/home.tsx | 30 +-
.../app/components/linksComponent.tsx | 56 +-
.../app/components/sessionAuthForNextJS.tsx | 22 +-
.../app/components/supertokensProvider.tsx | 22 +-
.../components/tryRefreshClientComponent.tsx | 30 +-
.../with-supertokens/app/config/appInfo.ts | 12 +-
.../with-supertokens/app/config/backend.ts | 54 +-
.../with-supertokens/app/config/frontend.tsx | 32 +-
examples/with-supertokens/app/layout.tsx | 20 +-
examples/with-supertokens/app/page.module.css | 14 +-
examples/with-supertokens/app/page.tsx | 6 +-
examples/with-supertokens/app/sessionUtils.ts | 90 +-
.../with-supertokens/assets/images/index.ts | 14 +-
examples/with-supertokens/middleware.ts | 34 +-
examples/with-supertokens/next.config.js | 4 +-
examples/with-temporal/components/Layout.tsx | 20 +-
examples/with-temporal/pages/about.tsx | 10 +-
.../with-temporal/pages/api/orders/index.ts | 34 +-
examples/with-temporal/pages/index.tsx | 26 +-
.../with-temporal/temporal/src/activities.ts | 32 +-
examples/with-temporal/temporal/src/worker.ts | 18 +-
.../with-temporal/temporal/src/workflows.ts | 28 +-
examples/with-three-js/components/Bird.js | 22 +-
examples/with-three-js/components/Box.js | 18 +-
examples/with-three-js/pages/_app.js | 6 +-
examples/with-three-js/pages/birds.js | 34 +-
examples/with-three-js/pages/boxes.js | 8 +-
examples/with-three-js/pages/index.js | 4 +-
examples/with-tigris/components/EachToDo.tsx | 30 +-
.../with-tigris/components/LoaderWave.tsx | 10 +-
examples/with-tigris/db/models/todoItems.ts | 10 +-
examples/with-tigris/lib/tigris.ts | 8 +-
examples/with-tigris/pages/_app.tsx | 10 +-
examples/with-tigris/pages/api/item/[id].ts | 80 +-
examples/with-tigris/pages/api/items/index.ts | 54 +-
.../with-tigris/pages/api/items/search.ts | 34 +-
examples/with-tigris/pages/index.tsx | 174 +--
examples/with-tigris/scripts/setup.ts | 12 +-
.../with-tigris/styles/EachToDo.module.css | 2 +-
examples/with-tigris/styles/globals.css | 2 +-
.../with-turbopack-loaders/next.config.js | 14 +-
.../with-turbopack-loaders/pages/index.js | 6 +-
examples/with-turbopack/app/layout.tsx | 4 +-
examples/with-turbopack/app/page.tsx | 2 +-
examples/with-typescript-graphql/README.md | 10 +-
examples/with-typescript-graphql/codegen.ts | 18 +-
.../with-typescript-graphql/jest.config.js | 18 +-
.../with-typescript-graphql/lib/apollo.ts | 56 +-
.../lib/gql/fragment-masking.ts | 28 +-
.../with-typescript-graphql/lib/gql/gql.ts | 24 +-
.../lib/gql/graphql.ts | 140 +--
.../with-typescript-graphql/lib/gql/index.ts | 4 +-
.../with-typescript-graphql/lib/resolvers.ts | 18 +-
.../with-typescript-graphql/lib/schema.ts | 4 +-
.../with-typescript-graphql/next.config.js | 10 +-
.../with-typescript-graphql/pages/_app.tsx | 10 +-
.../with-typescript-graphql/pages/about.tsx | 4 +-
.../pages/api/graphql.ts | 20 +-
.../with-typescript-graphql/pages/index.tsx | 52 +-
.../test/index.test.tsx | 36 +-
.../with-typescript-types/pages/index.tsx | 10 +-
examples/with-typescript-types/types/index.ts | 2 +-
.../with-typescript-types/types/package-1.ts | 4 +-
.../with-typescript/components/Layout.tsx | 22 +-
examples/with-typescript/components/List.tsx | 14 +-
.../with-typescript/components/ListDetail.tsx | 12 +-
.../with-typescript/components/ListItem.tsx | 14 +-
examples/with-typescript/interfaces/index.ts | 6 +-
examples/with-typescript/pages/about.tsx | 8 +-
.../with-typescript/pages/api/users/index.ts | 14 +-
examples/with-typescript/pages/index.tsx | 8 +-
examples/with-typescript/pages/users/[id].tsx | 44 +-
.../with-typescript/pages/users/index.tsx | 26 +-
examples/with-typescript/utils/sample-data.ts | 12 +-
.../Collections/Collections.module.css | 2 +-
.../components/Collections/index.tsx | 30 +-
.../components/Gallery/index.tsx | 26 +-
.../with-unsplash/components/Layout/index.tsx | 14 +-
.../with-unsplash/components/Social/index.tsx | 16 +-
.../with-unsplash/components/Stats/index.tsx | 22 +-
.../with-unsplash/components/UIcon/index.tsx | 8 +-
.../with-unsplash/components/UImage/index.tsx | 10 +-
.../with-unsplash/components/User/index.tsx | 26 +-
examples/with-unsplash/libs/fetcher.tsx | 6 +-
examples/with-unsplash/libs/slug.tsx | 10 +-
examples/with-unsplash/pages/_app.js | 4 +-
examples/with-unsplash/pages/_document.tsx | 4 +-
.../pages/api/collection/[id].tsx | 24 +-
.../pages/api/collection/index.tsx | 28 +-
.../with-unsplash/pages/api/photo/[id].tsx | 24 +-
.../pages/api/photo/download/[id].tsx | 45 +-
.../with-unsplash/pages/api/photo/index.tsx | 22 +-
.../with-unsplash/pages/api/stats/index.tsx | 22 +-
.../with-unsplash/pages/api/user/index.tsx | 20 +-
.../with-unsplash/pages/collection/[slug].tsx | 20 +-
examples/with-unsplash/pages/index.tsx | 16 +-
examples/with-unstated/components/Clock.js | 12 +-
examples/with-unstated/components/Counter.js | 6 +-
examples/with-unstated/containers/clock.js | 18 +-
examples/with-unstated/containers/counter.js | 16 +-
examples/with-unstated/pages/about.js | 12 +-
examples/with-unstated/pages/index.js | 12 +-
examples/with-urql/graphql/client.js | 6 +-
examples/with-urql/graphql/getPokemon.js | 10 +-
examples/with-urql/graphql/getPokemons.js | 10 +-
examples/with-urql/pages/index.js | 14 +-
examples/with-urql/pages/pokemon/[name].js | 20 +-
.../with-userbase/components/layout/index.js | 4 +-
.../with-userbase/components/modal/index.js | 62 +-
.../with-userbase/components/nav/index.js | 26 +-
.../components/todo-form/index.js | 82 +-
examples/with-userbase/pages/_app.js | 18 +-
examples/with-userbase/pages/index.js | 8 +-
examples/with-userbase/postcss.config.js | 2 +-
examples/with-userbase/styles/index.css | 2 +-
examples/with-userbase/tailwind.config.js | 6 +-
.../app/globalStyle.css.ts | 68 +-
examples/with-vanilla-extract/app/layout.tsx | 6 +-
examples/with-vanilla-extract/app/page.css.ts | 10 +-
examples/with-vanilla-extract/app/page.tsx | 10 +-
.../components/Button.css.ts | 72 +-
.../components/Button.tsx | 8 +-
.../components/Footer.css.ts | 60 +-
.../components/Footer.tsx | 12 +-
.../components/Logo.css.ts | 12 +-
.../with-vanilla-extract/components/Logo.tsx | 6 +-
examples/with-vanilla-extract/next.config.js | 6 +-
examples/with-vercel-fetch/github.d.ts | 12 +-
examples/with-vercel-fetch/pages/index.tsx | 16 +-
examples/with-videojs/components/Player.tsx | 40 +-
.../with-videojs/components/PlayerCss.tsx | 4 +-
examples/with-videojs/pages/_app.tsx | 6 +-
examples/with-videojs/pages/index.tsx | 14 +-
examples/with-videojs/videojs.d.ts | 2 +-
examples/with-vitest/__tests__/Home.test.tsx | 24 +-
.../with-vitest/app/blog/[slug]/page.test.tsx | 16 +-
examples/with-vitest/app/blog/[slug]/page.tsx | 10 +-
examples/with-vitest/app/counter.test.tsx | 18 +-
examples/with-vitest/app/counter.tsx | 8 +-
examples/with-vitest/app/layout.tsx | 4 +-
examples/with-vitest/app/page.test.tsx | 16 +-
examples/with-vitest/app/page.tsx | 6 +-
examples/with-vitest/app/utils/add.test.ts | 16 +-
examples/with-vitest/app/utils/add.ts | 4 +-
examples/with-vitest/pages/_app.tsx | 6 +-
examples/with-vitest/pages/home/index.tsx | 18 +-
examples/with-vitest/vitest.config.ts | 8 +-
examples/with-web-worker/pages/index.tsx | 20 +-
examples/with-web-worker/utils/pi.ts | 6 +-
examples/with-web-worker/worker.ts | 8 +-
.../components/RustComponent.tsx | 16 +-
examples/with-webassembly/next.config.js | 12 +-
examples/with-webassembly/pages/api/edge.ts | 18 +-
examples/with-webassembly/pages/index.tsx | 12 +-
examples/with-webassembly/wasm.d.ts | 2 +-
examples/with-windicss/next.config.js | 10 +-
examples/with-windicss/pages/_app.tsx | 10 +-
examples/with-windicss/pages/index.tsx | 18 +-
examples/with-windicss/windi.config.ts | 8 +-
examples/with-xata/pages/_app.tsx | 20 +-
examples/with-xata/pages/api/clean-xata.ts | 20 +-
.../pages/api/write-links-to-xata.ts | 38 +-
examples/with-xata/pages/index.tsx | 44 +-
examples/with-xata/styles/root.css | 12 +-
examples/with-xata/utils/xata.codegen.ts | 36 +-
examples/with-xstate/README.md | 6 +-
examples/with-xstate/components/Counter.tsx | 14 +-
examples/with-xstate/components/Toggle.tsx | 12 +-
examples/with-xstate/machines/counter.ts | 14 +-
examples/with-xstate/machines/toggle.ts | 20 +-
examples/with-xstate/pages/index.tsx | 6 +-
.../packages/bar/index.js | 4 +-
.../packages/foo/index.js | 2 +-
.../packages/web-app/next.config.js | 4 +-
.../packages/web-app/pages/api/echo/[word].js | 2 +-
.../packages/web-app/pages/index.js | 6 +-
examples/with-yoga/next.config.js | 4 +-
examples/with-yoga/pages/_app.tsx | 6 +-
examples/with-yoga/pages/index.tsx | 4 +-
examples/with-yoga/yoga.d.ts | 2 +-
examples/with-youtube-embed/app/layout.js | 2 +-
examples/with-youtube-embed/app/page.js | 4 +-
examples/with-zones/blog/next.config.js | 6 +-
examples/with-zones/blog/pages/index.tsx | 4 +-
examples/with-zones/blog/pages/post/[id].tsx | 8 +-
.../with-zones/home/components/Header.tsx | 2 +-
examples/with-zones/home/next.config.js | 14 +-
examples/with-zones/home/pages/about.tsx | 4 +-
examples/with-zones/home/pages/index.tsx | 8 +-
examples/with-zustand/src/app/layout.tsx | 6 +-
examples/with-zustand/src/app/page.tsx | 6 +-
.../with-zustand/src/components/clock.tsx | 30 +-
.../with-zustand/src/components/counter.tsx | 16 +-
.../with-zustand/src/lib/StoreProvider.tsx | 16 +-
examples/with-zustand/src/lib/store.ts | 36 +-
examples/with-zustand/src/lib/useInterval.ts | 20 +-
.../templates/.prettierrc.json | 5 +
.../templates/app-tw/js/app/layout.js | 14 +-
.../templates/app-tw/js/app/page.js | 14 +-
.../templates/app-tw/js/next.config.mjs | 4 +-
.../templates/app-tw/js/postcss.config.js | 2 +-
.../templates/app-tw/js/tailwind.config.js | 14 +-
.../templates/app-tw/ts/app/layout.tsx | 18 +-
.../templates/app-tw/ts/app/page.tsx | 14 +-
.../templates/app-tw/ts/next.config.mjs | 4 +-
.../templates/app-tw/ts/postcss.config.js | 2 +-
.../templates/app-tw/ts/tailwind.config.ts | 18 +-
.../templates/app/js/app/globals.css | 6 +-
.../templates/app/js/app/layout.js | 14 +-
.../templates/app/js/app/page.js | 8 +-
.../templates/app/js/app/page.module.css | 2 +-
.../templates/app/js/next.config.mjs | 4 +-
.../templates/app/ts/app/globals.css | 6 +-
.../templates/app/ts/app/layout.tsx | 18 +-
.../templates/app/ts/app/page.module.css | 2 +-
.../templates/app/ts/app/page.tsx | 8 +-
.../templates/app/ts/next.config.mjs | 4 +-
.../templates/default-tw/js/next.config.mjs | 4 +-
.../templates/default-tw/js/pages/_app.js | 4 +-
.../default-tw/js/pages/_document.js | 4 +-
.../default-tw/js/pages/api/hello.js | 2 +-
.../templates/default-tw/js/pages/index.js | 18 +-
.../templates/default-tw/js/postcss.config.js | 2 +-
.../default-tw/js/tailwind.config.js | 14 +-
.../templates/default-tw/ts/next.config.mjs | 4 +-
.../templates/default-tw/ts/pages/_app.tsx | 6 +-
.../default-tw/ts/pages/_document.tsx | 4 +-
.../default-tw/ts/pages/api/hello.ts | 10 +-
.../templates/default-tw/ts/pages/index.tsx | 18 +-
.../templates/default-tw/ts/postcss.config.js | 2 +-
.../default-tw/ts/tailwind.config.ts | 18 +-
.../templates/default/js/next.config.mjs | 4 +-
.../templates/default/js/pages/_app.js | 4 +-
.../templates/default/js/pages/_document.js | 4 +-
.../templates/default/js/pages/api/hello.js | 2 +-
.../templates/default/js/pages/index.js | 14 +-
.../default/js/styles/Home.module.css | 2 +-
.../templates/default/js/styles/globals.css | 6 +-
.../templates/default/ts/next.config.mjs | 4 +-
.../templates/default/ts/pages/_app.tsx | 6 +-
.../templates/default/ts/pages/_document.tsx | 4 +-
.../templates/default/ts/pages/api/hello.ts | 10 +-
.../templates/default/ts/pages/index.tsx | 14 +-
.../default/ts/styles/Home.module.css | 2 +-
.../templates/default/ts/styles/globals.css | 6 +-
packages/create-next-app/templates/index.ts | 210 ++--
packages/create-next-app/templates/types.ts | 32 +-
2559 files changed, 21384 insertions(+), 21309 deletions(-)
create mode 100644 examples/.prettierrc.json
delete mode 100644 examples/convex/.prettierrc.json
create mode 100644 packages/create-next-app/templates/.prettierrc.json
diff --git a/.prettierrc.json b/.prettierrc.json
index fd496a820e..eaaa46cd3d 100644
--- a/.prettierrc.json
+++ b/.prettierrc.json
@@ -1,4 +1,5 @@
{
+ "trailingComma": "es5",
"singleQuote": true,
"semi": false
}
diff --git a/examples/.prettierrc.json b/examples/.prettierrc.json
new file mode 100644
index 0000000000..a7d8824a65
--- /dev/null
+++ b/examples/.prettierrc.json
@@ -0,0 +1,5 @@
+{
+ "trailingComma": "all",
+ "singleQuote": false,
+ "semi": true
+}
diff --git a/examples/active-class-name/components/ActiveLink.tsx b/examples/active-class-name/components/ActiveLink.tsx
index 5745eff025..6bae8c9639 100644
--- a/examples/active-class-name/components/ActiveLink.tsx
+++ b/examples/active-class-name/components/ActiveLink.tsx
@@ -1,11 +1,11 @@
-import { useRouter } from 'next/router'
-import Link, { LinkProps } from 'next/link'
-import React, { PropsWithChildren, useState, useEffect } from 'react'
+import { useRouter } from "next/router";
+import Link, { LinkProps } from "next/link";
+import React, { PropsWithChildren, useState, useEffect } from "react";
type ActiveLinkProps = LinkProps & {
- className?: string
- activeClassName: string
-}
+ className?: string;
+ activeClassName: string;
+};
const ActiveLink = ({
children,
@@ -13,8 +13,8 @@ const ActiveLink = ({
className,
...props
}: PropsWithChildren) => {
- const { asPath, isReady } = useRouter()
- const [computedClassName, setComputedClassName] = useState(className)
+ const { asPath, isReady } = useRouter();
+ const [computedClassName, setComputedClassName] = useState(className);
useEffect(() => {
// Check if the router fields are updated client-side
@@ -23,19 +23,19 @@ const ActiveLink = ({
// Static route will be matched via props.href
const linkPathname = new URL(
(props.as || props.href) as string,
- location.href
- ).pathname
+ location.href,
+ ).pathname;
// Using URL().pathname to get rid of query and hash
- const activePathname = new URL(asPath, location.href).pathname
+ const activePathname = new URL(asPath, location.href).pathname;
const newClassName =
linkPathname === activePathname
? `${className} ${activeClassName}`.trim()
- : className
+ : className;
if (newClassName !== computedClassName) {
- setComputedClassName(newClassName)
+ setComputedClassName(newClassName);
}
}
}, [
@@ -46,13 +46,13 @@ const ActiveLink = ({
activeClassName,
className,
computedClassName,
- ])
+ ]);
return (
{children}
- )
-}
+ );
+};
-export default ActiveLink
+export default ActiveLink;
diff --git a/examples/active-class-name/components/Nav.tsx b/examples/active-class-name/components/Nav.tsx
index b2f02bf985..f7b0bdaaf2 100644
--- a/examples/active-class-name/components/Nav.tsx
+++ b/examples/active-class-name/components/Nav.tsx
@@ -1,4 +1,4 @@
-import ActiveLink from './ActiveLink'
+import ActiveLink from "./ActiveLink";
const Nav = () => (
@@ -8,7 +8,7 @@ const Nav = () => (
}
.active:after {
- content: ' (current page)';
+ content: " (current page)";
}
`}
@@ -39,6 +39,6 @@ const Nav = () => (
-)
+);
-export default Nav
+export default Nav;
diff --git a/examples/active-class-name/next.config.js b/examples/active-class-name/next.config.js
index 3116440794..2adf0e71e4 100644
--- a/examples/active-class-name/next.config.js
+++ b/examples/active-class-name/next.config.js
@@ -3,9 +3,9 @@ module.exports = {
async rewrites() {
return [
{
- source: '/blog',
- destination: '/news',
+ source: "/blog",
+ destination: "/news",
},
- ]
+ ];
},
-}
+};
diff --git a/examples/active-class-name/pages/[slug].tsx b/examples/active-class-name/pages/[slug].tsx
index 0f8f73e588..7f19ea2f42 100644
--- a/examples/active-class-name/pages/[slug].tsx
+++ b/examples/active-class-name/pages/[slug].tsx
@@ -1,14 +1,14 @@
-import { useRouter } from 'next/router'
-import Nav from '../components/Nav'
+import { useRouter } from "next/router";
+import Nav from "../components/Nav";
const SlugPage = () => {
- const { asPath } = useRouter()
+ const { asPath } = useRouter();
return (
<>
Hello, I'm the {asPath} page
>
- )
-}
+ );
+};
-export default SlugPage
+export default SlugPage;
diff --git a/examples/active-class-name/pages/about.tsx b/examples/active-class-name/pages/about.tsx
index df5d05e085..f61dd42fde 100644
--- a/examples/active-class-name/pages/about.tsx
+++ b/examples/active-class-name/pages/about.tsx
@@ -1,10 +1,10 @@
-import Nav from '../components/Nav'
+import Nav from "../components/Nav";
const AboutPage = () => (
<>
Hello, I'm the about page
>
-)
+);
-export default AboutPage
+export default AboutPage;
diff --git a/examples/active-class-name/pages/index.tsx b/examples/active-class-name/pages/index.tsx
index c233c6c0b9..e2b0316b61 100644
--- a/examples/active-class-name/pages/index.tsx
+++ b/examples/active-class-name/pages/index.tsx
@@ -1,10 +1,10 @@
-import Nav from '../components/Nav'
+import Nav from "../components/Nav";
const IndexPage = () => (
<>
Hello, I'm the index page
>
-)
+);
-export default IndexPage
+export default IndexPage;
diff --git a/examples/active-class-name/pages/news.tsx b/examples/active-class-name/pages/news.tsx
index 74a8005a4c..1bd42f02e0 100644
--- a/examples/active-class-name/pages/news.tsx
+++ b/examples/active-class-name/pages/news.tsx
@@ -1,10 +1,10 @@
-import Nav from '../components/Nav'
+import Nav from "../components/Nav";
const News = () => (
<>
Hello, I'm the news page
>
-)
+);
-export default News
+export default News;
diff --git a/examples/amp/additional.d.ts b/examples/amp/additional.d.ts
index 8cb81833b6..7ece0c934d 100644
--- a/examples/amp/additional.d.ts
+++ b/examples/amp/additional.d.ts
@@ -3,16 +3,16 @@
// Only the intrinsic elements defined here will be accepted, and only with the attributes defined here
declare namespace JSX {
interface AmpImg {
- alt?: string
- src?: string
- width?: string | number
- height?: string | number
- layout?: string
- fallback?: string
- children?: React.ReactNode
+ alt?: string;
+ src?: string;
+ width?: string | number;
+ height?: string | number;
+ layout?: string;
+ fallback?: string;
+ children?: React.ReactNode;
}
interface IntrinsicElements {
- 'amp-img': AmpImg
+ "amp-img": AmpImg;
}
}
diff --git a/examples/amp/components/Byline.tsx b/examples/amp/components/Byline.tsx
index 2cdc8c28e0..8145ecc8d0 100644
--- a/examples/amp/components/Byline.tsx
+++ b/examples/amp/components/Byline.tsx
@@ -1,6 +1,6 @@
type BylineProps = {
- author: string
-}
+ author: string;
+};
export default function Byline({ author }: BylineProps) {
return (
@@ -13,5 +13,5 @@ export default function Byline({ author }: BylineProps) {
}
`}
>
- )
+ );
}
diff --git a/examples/amp/components/Layout.tsx b/examples/amp/components/Layout.tsx
index c7b6a84866..624b259ec0 100644
--- a/examples/amp/components/Layout.tsx
+++ b/examples/amp/components/Layout.tsx
@@ -1,6 +1,6 @@
type LayoutProps = {
- children?: React.ReactNode
-}
+ children?: React.ReactNode;
+};
export default function Layout({ children }: LayoutProps) {
return (
@@ -14,5 +14,5 @@ export default function Layout({ children }: LayoutProps) {
}
`}
>
- )
+ );
}
diff --git a/examples/amp/pages/dog.tsx b/examples/amp/pages/dog.tsx
index 168d2681a5..ea899a8a3d 100644
--- a/examples/amp/pages/dog.tsx
+++ b/examples/amp/pages/dog.tsx
@@ -1,13 +1,13 @@
-import Head from 'next/head'
-import { useAmp } from 'next/amp'
-import Byline from '../components/Byline'
+import Head from "next/head";
+import { useAmp } from "next/amp";
+import Byline from "../components/Byline";
export const config = {
- amp: 'hybrid',
-}
+ amp: "hybrid",
+};
export default function DogPage() {
- const isAmp = useAmp()
+ const isAmp = useAmp();
return (
@@ -17,14 +17,14 @@ export default function DogPage() {
The Dog (Hybrid AMP Page)
-
- {isAmp ? 'View Non-AMP' : 'View AMP'} Version
+
+ {isAmp ? "View Non-AMP" : "View AMP"} Version
Woooooooooooof
- Wafer donut candy soufflé{' '}
- lemon drops icing. Marzipan gummi
+ Wafer donut candy soufflé{" "}
+ lemon drops icing. Marzipan gummi
bears pie danish lollipop pudding powder gummi bears sweet. Pie sweet
roll sweet roll topping chocolate bar dragée pudding chocolate cake.
Croissant sweet chocolate bar cheesecake candy canes. Tootsie roll icing
@@ -90,5 +90,5 @@ export default function DogPage() {
tiramisu.
- )
+ );
}
diff --git a/examples/amp/pages/index.tsx b/examples/amp/pages/index.tsx
index 5395cb8f9e..c6d494822f 100644
--- a/examples/amp/pages/index.tsx
+++ b/examples/amp/pages/index.tsx
@@ -1,14 +1,14 @@
-import Head from 'next/head'
-import { useAmp } from 'next/amp'
-import Layout from '../components/Layout'
-import Byline from '../components/Byline'
+import Head from "next/head";
+import { useAmp } from "next/amp";
+import Layout from "../components/Layout";
+import Byline from "../components/Byline";
export const config = {
amp: true,
-}
+};
export default function IndexPage() {
- const isAmp = useAmp()
+ const isAmp = useAmp();
return (
@@ -35,7 +35,7 @@ export default function IndexPage() {
>
- Cat ipsum dolor sit amet ,
+ Cat ipsum dolor sit amet ,
eat grass, throw it back up but refuse to leave cardboard box or groom
yourself 4 hours - checked, have your beauty sleep 18 hours - checked,
be fabulous for the rest of the day - checked!. Hide from vacuum
@@ -233,5 +233,5 @@ export default function IndexPage() {
}
`}
- )
+ );
}
diff --git a/examples/amp/pages/normal.tsx b/examples/amp/pages/normal.tsx
index a2868d2da0..e68778583b 100644
--- a/examples/amp/pages/normal.tsx
+++ b/examples/amp/pages/normal.tsx
@@ -1,3 +1,3 @@
export default function NormalPage() {
- return I'm just a normal old page, no AMP for me
+ return I'm just a normal old page, no AMP for me
;
}
diff --git a/examples/analyze-bundles/next.config.js b/examples/analyze-bundles/next.config.js
index 2538b04e1b..017842c82e 100644
--- a/examples/analyze-bundles/next.config.js
+++ b/examples/analyze-bundles/next.config.js
@@ -1,10 +1,10 @@
-const withBundleAnalyzer = require('@next/bundle-analyzer')({
- enabled: process.env.ANALYZE === 'true',
-})
+const withBundleAnalyzer = require("@next/bundle-analyzer")({
+ enabled: process.env.ANALYZE === "true",
+});
/** @type {import('next').NextConfig} */
const nextConfig = {
// any configs you need
-}
+};
-module.exports = withBundleAnalyzer(nextConfig)
+module.exports = withBundleAnalyzer(nextConfig);
diff --git a/examples/analyze-bundles/pages/about.tsx b/examples/analyze-bundles/pages/about.tsx
index 9901700a8f..ecca67a085 100644
--- a/examples/analyze-bundles/pages/about.tsx
+++ b/examples/analyze-bundles/pages/about.tsx
@@ -1,5 +1,5 @@
const About = () => {
- return About us
-}
+ return About us
;
+};
-export default About
+export default About;
diff --git a/examples/analyze-bundles/pages/contact.tsx b/examples/analyze-bundles/pages/contact.tsx
index 7003aa222e..db2f34c8f7 100644
--- a/examples/analyze-bundles/pages/contact.tsx
+++ b/examples/analyze-bundles/pages/contact.tsx
@@ -1,5 +1,5 @@
const Contact = () => {
- return This is the contact page.
-}
+ return This is the contact page.
;
+};
-export default Contact
+export default Contact;
diff --git a/examples/analyze-bundles/pages/index.tsx b/examples/analyze-bundles/pages/index.tsx
index 19e5cf0462..544a13c81a 100644
--- a/examples/analyze-bundles/pages/index.tsx
+++ b/examples/analyze-bundles/pages/index.tsx
@@ -1,10 +1,10 @@
-import { NextPage, GetStaticProps } from 'next'
-import Link from 'next/link'
-import { faker } from '@faker-js/faker'
+import { NextPage, GetStaticProps } from "next";
+import Link from "next/link";
+import { faker } from "@faker-js/faker";
type IndexProps = {
- name: string
-}
+ name: string;
+};
const Index: NextPage = ({ name }) => {
return (
@@ -15,16 +15,16 @@ const Index: NextPage = ({ name }) => {
About Page
- )
-}
+ );
+};
-export default Index
+export default Index;
export const getStaticProps: GetStaticProps = async () => {
// The name will be generated at build time only
- const name = faker.name.findName()
+ const name = faker.name.findName();
return {
props: { name },
- }
-}
+ };
+};
diff --git a/examples/api-routes-apollo-server-and-client-auth/apollo/client.tsx b/examples/api-routes-apollo-server-and-client-auth/apollo/client.tsx
index 7c11f3e9b7..64c3438a17 100644
--- a/examples/api-routes-apollo-server-and-client-auth/apollo/client.tsx
+++ b/examples/api-routes-apollo-server-and-client-auth/apollo/client.tsx
@@ -1,54 +1,54 @@
-import { useMemo } from 'react'
-import { ApolloClient, InMemoryCache, HttpLink } from '@apollo/client'
-import { SchemaLink } from '@apollo/client/link/schema'
-import { schema } from '../apollo/schema'
-import merge from 'deepmerge'
+import { useMemo } from "react";
+import { ApolloClient, InMemoryCache, HttpLink } from "@apollo/client";
+import { SchemaLink } from "@apollo/client/link/schema";
+import { schema } from "../apollo/schema";
+import merge from "deepmerge";
-let apolloClient
+let apolloClient;
function createIsomorphLink() {
- if (typeof window === 'undefined') {
- return new SchemaLink({ schema })
+ if (typeof window === "undefined") {
+ return new SchemaLink({ schema });
} else {
return new HttpLink({
- uri: '/api/graphql',
- credentials: 'same-origin',
- })
+ uri: "/api/graphql",
+ credentials: "same-origin",
+ });
}
}
function createApolloClient() {
return new ApolloClient({
- ssrMode: typeof window === 'undefined',
+ ssrMode: typeof window === "undefined",
link: createIsomorphLink(),
cache: new InMemoryCache(),
- })
+ });
}
export function initializeApollo(initialState = null) {
- const _apolloClient = apolloClient ?? createApolloClient()
+ const _apolloClient = apolloClient ?? createApolloClient();
// If your page has Next.js data fetching methods that use Apollo Client, the initial state
// get hydrated here
if (initialState) {
// Get existing cache, loaded during client side data fetching
- const existingCache = _apolloClient.extract()
+ const existingCache = _apolloClient.extract();
// Merge the existing cache into data passed from getStaticProps/getServerSideProps
- const data = merge(initialState, existingCache)
+ const data = merge(initialState, existingCache);
// Restore the cache with the merged data
- _apolloClient.cache.restore(data)
+ _apolloClient.cache.restore(data);
}
// For SSG and SSR always create a new Apollo Client
- if (typeof window === 'undefined') return _apolloClient
+ if (typeof window === "undefined") return _apolloClient;
// Create the Apollo Client once in the client
- if (!apolloClient) apolloClient = _apolloClient
+ if (!apolloClient) apolloClient = _apolloClient;
- return _apolloClient
+ return _apolloClient;
}
export function useApollo(initialState) {
- const store = useMemo(() => initializeApollo(initialState), [initialState])
- return store
+ const store = useMemo(() => initializeApollo(initialState), [initialState]);
+ return store;
}
diff --git a/examples/api-routes-apollo-server-and-client-auth/apollo/resolvers.ts b/examples/api-routes-apollo-server-and-client-auth/apollo/resolvers.ts
index d05e8788d7..17ad9b63f3 100644
--- a/examples/api-routes-apollo-server-and-client-auth/apollo/resolvers.ts
+++ b/examples/api-routes-apollo-server-and-client-auth/apollo/resolvers.ts
@@ -1,53 +1,53 @@
-import { createUser, findUser, validatePassword } from '../lib/user'
-import { setLoginSession, getLoginSession } from '../lib/auth'
-import { removeTokenCookie } from '../lib/auth-cookies'
-import { GraphQLError } from 'graphql'
+import { createUser, findUser, validatePassword } from "../lib/user";
+import { setLoginSession, getLoginSession } from "../lib/auth";
+import { removeTokenCookie } from "../lib/auth-cookies";
+import { GraphQLError } from "graphql";
export const resolvers = {
Query: {
async viewer(_root, _args, context, _info) {
try {
- const session = await getLoginSession(context.req)
+ const session = await getLoginSession(context.req);
if (session) {
- return findUser({ email: session.email })
+ return findUser({ email: session.email });
}
} catch (error) {
throw new GraphQLError(
- 'Authentication token is invalid, please log in',
+ "Authentication token is invalid, please log in",
{
extensions: {
- code: 'UNAUTHENTICATED',
+ code: "UNAUTHENTICATED",
},
- }
- )
+ },
+ );
}
},
},
Mutation: {
async signUp(_parent, args, _context, _info) {
- const user = await createUser(args.input)
- return { user }
+ const user = await createUser(args.input);
+ return { user };
},
async signIn(_parent, args, context, _info) {
- const user = await findUser({ email: args.input.email })
+ const user = await findUser({ email: args.input.email });
if (user && (await validatePassword(user, args.input.password))) {
const session = {
id: user.id,
email: user.email,
- }
+ };
- await setLoginSession(context.res, session)
+ await setLoginSession(context.res, session);
- return { user }
+ return { user };
}
- throw new GraphQLError('Invalid email and password combination')
+ throw new GraphQLError("Invalid email and password combination");
},
async signOut(_parent, _args, context, _info) {
- removeTokenCookie(context.res)
- return true
+ removeTokenCookie(context.res);
+ return true;
},
},
-}
+};
diff --git a/examples/api-routes-apollo-server-and-client-auth/apollo/schema.ts b/examples/api-routes-apollo-server-and-client-auth/apollo/schema.ts
index 0f14aa64f6..0aef15f2c3 100644
--- a/examples/api-routes-apollo-server-and-client-auth/apollo/schema.ts
+++ b/examples/api-routes-apollo-server-and-client-auth/apollo/schema.ts
@@ -1,8 +1,8 @@
-import { makeExecutableSchema } from '@graphql-tools/schema'
-import { typeDefs } from './type-defs'
-import { resolvers } from './resolvers'
+import { makeExecutableSchema } from "@graphql-tools/schema";
+import { typeDefs } from "./type-defs";
+import { resolvers } from "./resolvers";
export const schema = makeExecutableSchema({
typeDefs,
resolvers,
-})
+});
diff --git a/examples/api-routes-apollo-server-and-client-auth/apollo/type-defs.ts b/examples/api-routes-apollo-server-and-client-auth/apollo/type-defs.ts
index e9ae131763..66261d9eb3 100644
--- a/examples/api-routes-apollo-server-and-client-auth/apollo/type-defs.ts
+++ b/examples/api-routes-apollo-server-and-client-auth/apollo/type-defs.ts
@@ -1,4 +1,4 @@
-import { gql } from '@apollo/client'
+import { gql } from "@apollo/client";
export const typeDefs = gql`
type User {
@@ -36,4 +36,4 @@ export const typeDefs = gql`
signIn(input: SignInInput!): SignInPayload!
signOut: Boolean!
}
-`
+`;
diff --git a/examples/api-routes-apollo-server-and-client-auth/components/field.tsx b/examples/api-routes-apollo-server-and-client-auth/components/field.tsx
index c33baa1e17..9e5503cb56 100644
--- a/examples/api-routes-apollo-server-and-client-auth/components/field.tsx
+++ b/examples/api-routes-apollo-server-and-client-auth/components/field.tsx
@@ -1,17 +1,17 @@
export default function Field({ name, label, type, autoComplete, required }) {
return (
-
+
{label} {required ? * : undefined}
- )
+ );
}
diff --git a/examples/api-routes-apollo-server-and-client-auth/lib/auth-cookies.ts b/examples/api-routes-apollo-server-and-client-auth/lib/auth-cookies.ts
index b0fbf5030b..6e829c760c 100644
--- a/examples/api-routes-apollo-server-and-client-auth/lib/auth-cookies.ts
+++ b/examples/api-routes-apollo-server-and-client-auth/lib/auth-cookies.ts
@@ -1,41 +1,41 @@
-import { serialize, parse } from 'cookie'
+import { serialize, parse } from "cookie";
-const TOKEN_NAME = 'token'
+const TOKEN_NAME = "token";
-export const MAX_AGE = 60 * 60 * 8 // 8 hours
+export const MAX_AGE = 60 * 60 * 8; // 8 hours
export function setTokenCookie(res, token) {
const cookie = serialize(TOKEN_NAME, token, {
maxAge: MAX_AGE,
expires: new Date(Date.now() + MAX_AGE * 1000),
httpOnly: true,
- secure: process.env.NODE_ENV === 'production',
- path: '/',
- sameSite: 'lax',
- })
+ secure: process.env.NODE_ENV === "production",
+ path: "/",
+ sameSite: "lax",
+ });
- res.setHeader('Set-Cookie', cookie)
+ res.setHeader("Set-Cookie", cookie);
}
export function removeTokenCookie(res) {
- const cookie = serialize(TOKEN_NAME, '', {
+ const cookie = serialize(TOKEN_NAME, "", {
maxAge: -1,
- path: '/',
- })
+ path: "/",
+ });
- res.setHeader('Set-Cookie', cookie)
+ res.setHeader("Set-Cookie", cookie);
}
export function parseCookies(req) {
// For API Routes we don't need to parse the cookies.
- if (req.cookies) return req.cookies
+ if (req.cookies) return req.cookies;
// For pages we do need to parse the cookies.
- const cookie = req.headers?.cookie
- return parse(cookie || '')
+ const cookie = req.headers?.cookie;
+ return parse(cookie || "");
}
export function getTokenCookie(req) {
- const cookies = parseCookies(req)
- return cookies[TOKEN_NAME]
+ const cookies = parseCookies(req);
+ return cookies[TOKEN_NAME];
}
diff --git a/examples/api-routes-apollo-server-and-client-auth/lib/auth.ts b/examples/api-routes-apollo-server-and-client-auth/lib/auth.ts
index fe830e95d5..15bcaec77a 100644
--- a/examples/api-routes-apollo-server-and-client-auth/lib/auth.ts
+++ b/examples/api-routes-apollo-server-and-client-auth/lib/auth.ts
@@ -1,29 +1,29 @@
-import Iron from '@hapi/iron'
-import { MAX_AGE, setTokenCookie, getTokenCookie } from './auth-cookies'
+import Iron from "@hapi/iron";
+import { MAX_AGE, setTokenCookie, getTokenCookie } from "./auth-cookies";
-const TOKEN_SECRET = process.env.TOKEN_SECRET
+const TOKEN_SECRET = process.env.TOKEN_SECRET;
export async function setLoginSession(res, session) {
- const createdAt = Date.now()
+ const createdAt = Date.now();
// Create a session object with a max age that we can validate later
- const obj = { ...session, createdAt, maxAge: MAX_AGE }
- const token = await Iron.seal(obj, TOKEN_SECRET, Iron.defaults)
+ const obj = { ...session, createdAt, maxAge: MAX_AGE };
+ const token = await Iron.seal(obj, TOKEN_SECRET, Iron.defaults);
- setTokenCookie(res, token)
+ setTokenCookie(res, token);
}
export async function getLoginSession(req) {
- const token = getTokenCookie(req)
+ const token = getTokenCookie(req);
- if (!token) return
+ if (!token) return;
- const session = await Iron.unseal(token, TOKEN_SECRET, Iron.defaults)
- const expiresAt = session.createdAt + session.maxAge * 1000
+ const session = await Iron.unseal(token, TOKEN_SECRET, Iron.defaults);
+ const expiresAt = session.createdAt + session.maxAge * 1000;
// Validate the expiration date of the session
if (Date.now() > expiresAt) {
- throw new Error('Session expired')
+ throw new Error("Session expired");
}
- return session
+ return session;
}
diff --git a/examples/api-routes-apollo-server-and-client-auth/lib/form.ts b/examples/api-routes-apollo-server-and-client-auth/lib/form.ts
index 7fef9d257d..78426be423 100644
--- a/examples/api-routes-apollo-server-and-client-auth/lib/form.ts
+++ b/examples/api-routes-apollo-server-and-client-auth/lib/form.ts
@@ -3,11 +3,11 @@ export function getErrorMessage(error) {
for (const graphQLError of error.graphQLErrors) {
if (
graphQLError.extensions &&
- graphQLError.extensions.code === 'BAD_USER_INPUT'
+ graphQLError.extensions.code === "BAD_USER_INPUT"
) {
- return graphQLError.message
+ return graphQLError.message;
}
}
}
- return error.message
+ return error.message;
}
diff --git a/examples/api-routes-apollo-server-and-client-auth/lib/user.ts b/examples/api-routes-apollo-server-and-client-auth/lib/user.ts
index df9b1fca53..da0284f491 100644
--- a/examples/api-routes-apollo-server-and-client-auth/lib/user.ts
+++ b/examples/api-routes-apollo-server-and-client-auth/lib/user.ts
@@ -1,46 +1,46 @@
-import crypto from 'crypto'
-import { v4 as uuidv4 } from 'uuid'
+import crypto from "crypto";
+import { v4 as uuidv4 } from "uuid";
/**
* User methods. The example doesn't contain a DB, but for real applications you must use a
* db here, such as MongoDB, Fauna, SQL, etc.
*/
-const users = []
+const users = [];
export async function createUser({ email, password }) {
// Here you should create the user and save the salt and hashed password (some dbs may have
// authentication methods that will do it for you so you don't have to worry about it):
- const salt = crypto.randomBytes(16).toString('hex')
+ const salt = crypto.randomBytes(16).toString("hex");
const hash = crypto
- .pbkdf2Sync(password, salt, 1000, 64, 'sha512')
- .toString('hex')
+ .pbkdf2Sync(password, salt, 1000, 64, "sha512")
+ .toString("hex");
const user = {
id: uuidv4(),
createdAt: Date.now(),
email,
hash,
salt,
- }
+ };
// This is an in memory store for users, there is no data persistence without a proper DB
- users.push(user)
+ users.push(user);
- return user
+ return user;
}
// Here you should lookup for the user in your DB
export async function findUser({ email }) {
// This is an in memory store for users, there is no data persistence without a proper DB
- return users.find((user) => user.email === email)
+ return users.find((user) => user.email === email);
}
// Compare the password of an already fetched user (using `findUser`) and compare the
// password for a potential match
export async function validatePassword(user, inputPassword) {
const inputHash = crypto
- .pbkdf2Sync(inputPassword, user.salt, 1000, 64, 'sha512')
- .toString('hex')
- const passwordsMatch = user.hash === inputHash
- return passwordsMatch
+ .pbkdf2Sync(inputPassword, user.salt, 1000, 64, "sha512")
+ .toString("hex");
+ const passwordsMatch = user.hash === inputHash;
+ return passwordsMatch;
}
diff --git a/examples/api-routes-apollo-server-and-client-auth/pages/_app.tsx b/examples/api-routes-apollo-server-and-client-auth/pages/_app.tsx
index 482728ae76..5d5e890078 100644
--- a/examples/api-routes-apollo-server-and-client-auth/pages/_app.tsx
+++ b/examples/api-routes-apollo-server-and-client-auth/pages/_app.tsx
@@ -1,12 +1,12 @@
-import { ApolloProvider } from '@apollo/client'
-import { useApollo } from '../apollo/client'
+import { ApolloProvider } from "@apollo/client";
+import { useApollo } from "../apollo/client";
export default function App({ Component, pageProps }) {
- const apolloClient = useApollo(pageProps.initialApolloState)
+ const apolloClient = useApollo(pageProps.initialApolloState);
return (
- )
+ );
}
diff --git a/examples/api-routes-apollo-server-and-client-auth/pages/about.tsx b/examples/api-routes-apollo-server-and-client-auth/pages/about.tsx
index cd008b885a..f2486bf89a 100644
--- a/examples/api-routes-apollo-server-and-client-auth/pages/about.tsx
+++ b/examples/api-routes-apollo-server-and-client-auth/pages/about.tsx
@@ -1,9 +1,9 @@
-import Link from 'next/link'
+import Link from "next/link";
export default function About() {
return (
Welcome to the about page. Go to the Home page.
- )
+ );
}
diff --git a/examples/api-routes-apollo-server-and-client-auth/pages/api/graphql.ts b/examples/api-routes-apollo-server-and-client-auth/pages/api/graphql.ts
index 6f8a37a9f1..62c2357e2b 100644
--- a/examples/api-routes-apollo-server-and-client-auth/pages/api/graphql.ts
+++ b/examples/api-routes-apollo-server-and-client-auth/pages/api/graphql.ts
@@ -1,15 +1,15 @@
-import { ApolloServer } from '@apollo/server'
-import { startServerAndCreateNextHandler } from '@as-integrations/next'
-import { NextApiRequest, NextApiResponse } from 'next'
-import { schema } from '../../apollo/schema'
+import { ApolloServer } from "@apollo/server";
+import { startServerAndCreateNextHandler } from "@as-integrations/next";
+import { NextApiRequest, NextApiResponse } from "next";
+import { schema } from "../../apollo/schema";
type ExampleContext = {
- req: NextApiRequest
- res: NextApiResponse
-}
+ req: NextApiRequest;
+ res: NextApiResponse;
+};
-const apolloServer = new ApolloServer({ schema })
+const apolloServer = new ApolloServer({ schema });
export default startServerAndCreateNextHandler(apolloServer, {
context: async (req, res) => ({ req, res }),
-})
+});
diff --git a/examples/api-routes-apollo-server-and-client-auth/pages/index.tsx b/examples/api-routes-apollo-server-and-client-auth/pages/index.tsx
index a700aae4d7..c1dfa6ca10 100644
--- a/examples/api-routes-apollo-server-and-client-auth/pages/index.tsx
+++ b/examples/api-routes-apollo-server-and-client-auth/pages/index.tsx
@@ -1,7 +1,7 @@
-import { useEffect } from 'react'
-import { useRouter } from 'next/router'
-import Link from 'next/link'
-import { gql, useQuery } from '@apollo/client'
+import { useEffect } from "react";
+import { useRouter } from "next/router";
+import Link from "next/link";
+import { gql, useQuery } from "@apollo/client";
const ViewerQuery = gql`
query ViewerQuery {
@@ -10,36 +10,36 @@ const ViewerQuery = gql`
email
}
}
-`
+`;
const Index = () => {
- const router = useRouter()
- const { data, loading, error } = useQuery(ViewerQuery)
- const viewer = data?.viewer
- const shouldRedirect = !(loading || error || viewer)
+ const router = useRouter();
+ const { data, loading, error } = useQuery(ViewerQuery);
+ const viewer = data?.viewer;
+ const shouldRedirect = !(loading || error || viewer);
useEffect(() => {
if (shouldRedirect) {
- router.push('/signin')
+ router.push("/signin");
}
// eslint-disable-next-line react-hooks/exhaustive-deps
- }, [shouldRedirect])
+ }, [shouldRedirect]);
if (error) {
- return {error.message}
+ return {error.message}
;
}
if (viewer) {
return (
- You're signed in as {viewer.email}. Go to{' '}
- about page or{' '}
+ You're signed in as {viewer.email}. Go to{" "}
+ about page or{" "}
signout.
- )
+ );
}
- return Loading...
-}
+ return Loading...
;
+};
-export default Index
+export default Index;
diff --git a/examples/api-routes-apollo-server-and-client-auth/pages/signin.tsx b/examples/api-routes-apollo-server-and-client-auth/pages/signin.tsx
index a52618d680..91638502d6 100644
--- a/examples/api-routes-apollo-server-and-client-auth/pages/signin.tsx
+++ b/examples/api-routes-apollo-server-and-client-auth/pages/signin.tsx
@@ -1,10 +1,10 @@
-import { useState } from 'react'
-import { useRouter } from 'next/router'
-import Link from 'next/link'
-import { gql } from '@apollo/client'
-import { useMutation, useApolloClient } from '@apollo/client'
-import { getErrorMessage } from '../lib/form'
-import Field from '../components/field'
+import { useState } from "react";
+import { useRouter } from "next/router";
+import Link from "next/link";
+import { gql } from "@apollo/client";
+import { useMutation, useApolloClient } from "@apollo/client";
+import { getErrorMessage } from "../lib/form";
+import Field from "../components/field";
const SignInMutation = gql`
mutation SignInMutation($email: String!, $password: String!) {
@@ -15,33 +15,33 @@ const SignInMutation = gql`
}
}
}
-`
+`;
function SignIn() {
- const client = useApolloClient()
- const [signIn] = useMutation(SignInMutation)
- const [errorMsg, setErrorMsg] = useState()
- const router = useRouter()
+ const client = useApolloClient();
+ const [signIn] = useMutation(SignInMutation);
+ const [errorMsg, setErrorMsg] = useState();
+ const router = useRouter();
async function handleSubmit(event) {
- event.preventDefault()
+ event.preventDefault();
- const emailElement = event.currentTarget.elements.email
- const passwordElement = event.currentTarget.elements.password
+ const emailElement = event.currentTarget.elements.email;
+ const passwordElement = event.currentTarget.elements.password;
try {
- await client.resetStore()
+ await client.resetStore();
const { data } = await signIn({
variables: {
email: emailElement.value,
password: passwordElement.value,
},
- })
+ });
if (data.signIn.user) {
- await router.push('/')
+ await router.push("/");
}
} catch (error) {
- setErrorMsg(getErrorMessage(error))
+ setErrorMsg(getErrorMessage(error));
}
}
@@ -64,11 +64,11 @@ function SignIn() {
required
label="Password"
/>
- Sign in or{' '}
+ Sign in or{" "}
Sign up
>
- )
+ );
}
-export default SignIn
+export default SignIn;
diff --git a/examples/api-routes-apollo-server-and-client-auth/pages/signout.tsx b/examples/api-routes-apollo-server-and-client-auth/pages/signout.tsx
index 046310db75..fb37dbe976 100644
--- a/examples/api-routes-apollo-server-and-client-auth/pages/signout.tsx
+++ b/examples/api-routes-apollo-server-and-client-auth/pages/signout.tsx
@@ -1,27 +1,27 @@
-import { useEffect } from 'react'
-import { useRouter } from 'next/router'
-import { gql, useMutation, useApolloClient } from '@apollo/client'
+import { useEffect } from "react";
+import { useRouter } from "next/router";
+import { gql, useMutation, useApolloClient } from "@apollo/client";
const SignOutMutation = gql`
mutation SignOutMutation {
signOut
}
-`
+`;
function SignOut() {
- const client = useApolloClient()
- const router = useRouter()
- const [signOut] = useMutation(SignOutMutation)
+ const client = useApolloClient();
+ const router = useRouter();
+ const [signOut] = useMutation(SignOutMutation);
useEffect(() => {
signOut().then(() => {
client.resetStore().then(() => {
- router.push('/signin')
- })
- })
- }, [signOut, router, client])
+ router.push("/signin");
+ });
+ });
+ }, [signOut, router, client]);
- return Signing out...
+ return Signing out...
;
}
-export default SignOut
+export default SignOut;
diff --git a/examples/api-routes-apollo-server-and-client-auth/pages/signup.tsx b/examples/api-routes-apollo-server-and-client-auth/pages/signup.tsx
index 2a6d4fb8bc..c781c12c6b 100644
--- a/examples/api-routes-apollo-server-and-client-auth/pages/signup.tsx
+++ b/examples/api-routes-apollo-server-and-client-auth/pages/signup.tsx
@@ -1,9 +1,9 @@
-import { useState } from 'react'
-import { useRouter } from 'next/router'
-import Link from 'next/link'
-import { gql, useMutation } from '@apollo/client'
-import { getErrorMessage } from '../lib/form'
-import Field from '../components/field'
+import { useState } from "react";
+import { useRouter } from "next/router";
+import Link from "next/link";
+import { gql, useMutation } from "@apollo/client";
+import { getErrorMessage } from "../lib/form";
+import Field from "../components/field";
const SignUpMutation = gql`
mutation SignUpMutation($email: String!, $password: String!) {
@@ -14,17 +14,17 @@ const SignUpMutation = gql`
}
}
}
-`
+`;
function SignUp() {
- const [signUp] = useMutation(SignUpMutation)
- const [errorMsg, setErrorMsg] = useState()
- const router = useRouter()
+ const [signUp] = useMutation(SignUpMutation);
+ const [errorMsg, setErrorMsg] = useState();
+ const router = useRouter();
async function handleSubmit(event) {
- event.preventDefault()
- const emailElement = event.currentTarget.elements.email
- const passwordElement = event.currentTarget.elements.password
+ event.preventDefault();
+ const emailElement = event.currentTarget.elements.email;
+ const passwordElement = event.currentTarget.elements.password;
try {
await signUp({
@@ -32,11 +32,11 @@ function SignUp() {
email: emailElement.value,
password: passwordElement.value,
},
- })
+ });
- router.push('/signin')
+ router.push("/signin");
} catch (error) {
- setErrorMsg(getErrorMessage(error))
+ setErrorMsg(getErrorMessage(error));
}
}
@@ -59,11 +59,11 @@ function SignUp() {
required
label="Password"
/>
- Sign up or{' '}
+ Sign up or{" "}
Sign in
>
- )
+ );
}
-export default SignUp
+export default SignUp;
diff --git a/examples/api-routes-apollo-server-and-client/apollo/client.tsx b/examples/api-routes-apollo-server-and-client/apollo/client.tsx
index a6d28253a2..d5d95d81d5 100644
--- a/examples/api-routes-apollo-server-and-client/apollo/client.tsx
+++ b/examples/api-routes-apollo-server-and-client/apollo/client.tsx
@@ -1,54 +1,54 @@
-import { useMemo } from 'react'
-import { ApolloClient, InMemoryCache, HttpLink } from '@apollo/client'
-import { SchemaLink } from '@apollo/client/link/schema'
-import { schema } from '../apollo/schema'
-import merge from 'deepmerge'
+import { useMemo } from "react";
+import { ApolloClient, InMemoryCache, HttpLink } from "@apollo/client";
+import { SchemaLink } from "@apollo/client/link/schema";
+import { schema } from "../apollo/schema";
+import merge from "deepmerge";
-let apolloClient
+let apolloClient;
function createIsomorphLink() {
- if (typeof window === 'undefined') {
- return new SchemaLink({ schema })
+ if (typeof window === "undefined") {
+ return new SchemaLink({ schema });
} else {
return new HttpLink({
- uri: '/api/graphql',
- credentials: 'same-origin',
- })
+ uri: "/api/graphql",
+ credentials: "same-origin",
+ });
}
}
function createApolloClient() {
return new ApolloClient({
- ssrMode: typeof window === 'undefined',
+ ssrMode: typeof window === "undefined",
link: createIsomorphLink(),
cache: new InMemoryCache(),
- })
+ });
}
export function initializeApollo(initialState = null) {
- const _apolloClient = apolloClient ?? createApolloClient()
+ const _apolloClient = apolloClient ?? createApolloClient();
// If your page has Next.js data fetching methods that use Apollo Client, the initial state
// gets hydrated here
if (initialState) {
// Get existing cache, loaded during client side data fetching
- const existingCache = _apolloClient.extract()
+ const existingCache = _apolloClient.extract();
// Merge the existing cache into data passed from getStaticProps/getServerSideProps
- const data = merge(initialState, existingCache)
+ const data = merge(initialState, existingCache);
// Restore the cache with the merged data
- _apolloClient.cache.restore(data)
+ _apolloClient.cache.restore(data);
}
// For SSG and SSR always create a new Apollo Client
- if (typeof window === 'undefined') return _apolloClient
+ if (typeof window === "undefined") return _apolloClient;
// Create the Apollo Client once in the client
- if (!apolloClient) apolloClient = _apolloClient
+ if (!apolloClient) apolloClient = _apolloClient;
- return _apolloClient
+ return _apolloClient;
}
export function useApollo(initialState) {
- const store = useMemo(() => initializeApollo(initialState), [initialState])
- return store
+ const store = useMemo(() => initializeApollo(initialState), [initialState]);
+ return store;
}
diff --git a/examples/api-routes-apollo-server-and-client/apollo/resolvers.ts b/examples/api-routes-apollo-server-and-client/apollo/resolvers.ts
index f85c477223..577abb43ad 100644
--- a/examples/api-routes-apollo-server-and-client/apollo/resolvers.ts
+++ b/examples/api-routes-apollo-server-and-client/apollo/resolvers.ts
@@ -1,7 +1,7 @@
export const resolvers = {
Query: {
viewer() {
- return { id: 1, name: 'John Smith', status: 'cached' }
+ return { id: 1, name: "John Smith", status: "cached" };
},
},
-}
+};
diff --git a/examples/api-routes-apollo-server-and-client/apollo/schema.ts b/examples/api-routes-apollo-server-and-client/apollo/schema.ts
index 0f14aa64f6..0aef15f2c3 100644
--- a/examples/api-routes-apollo-server-and-client/apollo/schema.ts
+++ b/examples/api-routes-apollo-server-and-client/apollo/schema.ts
@@ -1,8 +1,8 @@
-import { makeExecutableSchema } from '@graphql-tools/schema'
-import { typeDefs } from './type-defs'
-import { resolvers } from './resolvers'
+import { makeExecutableSchema } from "@graphql-tools/schema";
+import { typeDefs } from "./type-defs";
+import { resolvers } from "./resolvers";
export const schema = makeExecutableSchema({
typeDefs,
resolvers,
-})
+});
diff --git a/examples/api-routes-apollo-server-and-client/apollo/type-defs.ts b/examples/api-routes-apollo-server-and-client/apollo/type-defs.ts
index 53c485d64e..c213ed0199 100644
--- a/examples/api-routes-apollo-server-and-client/apollo/type-defs.ts
+++ b/examples/api-routes-apollo-server-and-client/apollo/type-defs.ts
@@ -1,4 +1,4 @@
-import { gql } from '@apollo/client'
+import { gql } from "@apollo/client";
export const typeDefs = gql`
type User {
@@ -10,4 +10,4 @@ export const typeDefs = gql`
type Query {
viewer: User
}
-`
+`;
diff --git a/examples/api-routes-apollo-server-and-client/pages/_app.tsx b/examples/api-routes-apollo-server-and-client/pages/_app.tsx
index 482728ae76..5d5e890078 100644
--- a/examples/api-routes-apollo-server-and-client/pages/_app.tsx
+++ b/examples/api-routes-apollo-server-and-client/pages/_app.tsx
@@ -1,12 +1,12 @@
-import { ApolloProvider } from '@apollo/client'
-import { useApollo } from '../apollo/client'
+import { ApolloProvider } from "@apollo/client";
+import { useApollo } from "../apollo/client";
export default function App({ Component, pageProps }) {
- const apolloClient = useApollo(pageProps.initialApolloState)
+ const apolloClient = useApollo(pageProps.initialApolloState);
return (
- )
+ );
}
diff --git a/examples/api-routes-apollo-server-and-client/pages/about.tsx b/examples/api-routes-apollo-server-and-client/pages/about.tsx
index 1a13743a81..81e2c82dcc 100644
--- a/examples/api-routes-apollo-server-and-client/pages/about.tsx
+++ b/examples/api-routes-apollo-server-and-client/pages/about.tsx
@@ -1,9 +1,9 @@
-import Link from 'next/link'
+import Link from "next/link";
export default function About() {
return (
This is a static page goto dynamic page.
- )
+ );
}
diff --git a/examples/api-routes-apollo-server-and-client/pages/api/graphql.ts b/examples/api-routes-apollo-server-and-client/pages/api/graphql.ts
index 046f133748..3d8280dfe9 100644
--- a/examples/api-routes-apollo-server-and-client/pages/api/graphql.ts
+++ b/examples/api-routes-apollo-server-and-client/pages/api/graphql.ts
@@ -1,7 +1,7 @@
-import { ApolloServer } from '@apollo/server'
-import { startServerAndCreateNextHandler } from '@as-integrations/next'
-import { schema } from '../../apollo/schema'
+import { ApolloServer } from "@apollo/server";
+import { startServerAndCreateNextHandler } from "@as-integrations/next";
+import { schema } from "../../apollo/schema";
-const apolloServer = new ApolloServer({ schema })
+const apolloServer = new ApolloServer({ schema });
-export default startServerAndCreateNextHandler(apolloServer)
+export default startServerAndCreateNextHandler(apolloServer);
diff --git a/examples/api-routes-apollo-server-and-client/pages/index.tsx b/examples/api-routes-apollo-server-and-client/pages/index.tsx
index 42b09c1c93..7db4542db2 100644
--- a/examples/api-routes-apollo-server-and-client/pages/index.tsx
+++ b/examples/api-routes-apollo-server-and-client/pages/index.tsx
@@ -1,7 +1,7 @@
-import gql from 'graphql-tag'
-import Link from 'next/link'
-import { useQuery } from '@apollo/client'
-import { initializeApollo } from '../apollo/client'
+import gql from "graphql-tag";
+import Link from "next/link";
+import { useQuery } from "@apollo/client";
+import { initializeApollo } from "../apollo/client";
const ViewerQuery = gql`
query ViewerQuery {
@@ -11,33 +11,33 @@ const ViewerQuery = gql`
status
}
}
-`
+`;
const Index = () => {
const {
data: { viewer },
- } = useQuery(ViewerQuery)
+ } = useQuery(ViewerQuery);
return (
- You're signed in as {viewer.name} and you're {viewer.status} goto{' '}
+ You're signed in as {viewer.name} and you're {viewer.status} goto{" "}
static page.
- )
-}
+ );
+};
export async function getStaticProps() {
- const apolloClient = initializeApollo()
+ const apolloClient = initializeApollo();
await apolloClient.query({
query: ViewerQuery,
- })
+ });
return {
props: {
initialApolloState: apolloClient.cache.extract(),
},
- }
+ };
}
-export default Index
+export default Index;
diff --git a/examples/api-routes-apollo-server/pages/[username].tsx b/examples/api-routes-apollo-server/pages/[username].tsx
index c9e3dc7bae..a59791cd5a 100644
--- a/examples/api-routes-apollo-server/pages/[username].tsx
+++ b/examples/api-routes-apollo-server/pages/[username].tsx
@@ -1,19 +1,19 @@
-import queryGraphql from '../shared/query-graphql'
+import queryGraphql from "../shared/query-graphql";
export default function UserProfile({ user }) {
if (!user) {
- return User Not Found
+ return User Not Found ;
}
return (
{user.username} is {user.name}
- )
+ );
}
export async function getStaticProps(context) {
- const { params } = context
- const { username } = params
+ const { params } = context;
+ const { username } = params;
const { user = null } = await queryGraphql(
`
query($username: String) {
@@ -23,9 +23,9 @@ export async function getStaticProps(context) {
}
}
`,
- { username }
- )
- return { props: { user } }
+ { username },
+ );
+ return { props: { user } };
}
export async function getStaticPaths() {
@@ -35,12 +35,12 @@ export async function getStaticPaths() {
username
}
}
- `)) as { users: { username: string }[] }
+ `)) as { users: { username: string }[] };
return {
paths: users.map(({ username }) => ({
params: { username },
})),
fallback: true,
- }
+ };
}
diff --git a/examples/api-routes-apollo-server/pages/api/graphql.ts b/examples/api-routes-apollo-server/pages/api/graphql.ts
index cc9ef44795..89a5feef3f 100644
--- a/examples/api-routes-apollo-server/pages/api/graphql.ts
+++ b/examples/api-routes-apollo-server/pages/api/graphql.ts
@@ -1,7 +1,7 @@
-import { ApolloServer } from '@apollo/server'
-import { startServerAndCreateNextHandler } from '@as-integrations/next'
-import { makeExecutableSchema } from '@graphql-tools/schema'
-import { gql } from 'graphql-tag'
+import { ApolloServer } from "@apollo/server";
+import { startServerAndCreateNextHandler } from "@as-integrations/next";
+import { makeExecutableSchema } from "@graphql-tools/schema";
+import { gql } from "graphql-tag";
const typeDefs = gql`
type Query {
@@ -12,28 +12,28 @@ const typeDefs = gql`
name: String
username: String
}
-`
+`;
const users = [
- { name: 'Leeroy Jenkins', username: 'leeroy' },
- { name: 'Foo Bar', username: 'foobar' },
-]
+ { name: "Leeroy Jenkins", username: "leeroy" },
+ { name: "Foo Bar", username: "foobar" },
+];
const resolvers = {
Query: {
users() {
- return users
+ return users;
},
user(parent, { username }) {
- return users.find((user) => user.username === username)
+ return users.find((user) => user.username === username);
},
},
-}
+};
-export const schema = makeExecutableSchema({ typeDefs, resolvers })
+export const schema = makeExecutableSchema({ typeDefs, resolvers });
const server = new ApolloServer({
schema,
-})
+});
-export default startServerAndCreateNextHandler(server)
+export default startServerAndCreateNextHandler(server);
diff --git a/examples/api-routes-apollo-server/pages/index.tsx b/examples/api-routes-apollo-server/pages/index.tsx
index 9c101413b2..fdd5df29ab 100644
--- a/examples/api-routes-apollo-server/pages/index.tsx
+++ b/examples/api-routes-apollo-server/pages/index.tsx
@@ -1,6 +1,6 @@
-import Link from 'next/link'
+import Link from "next/link";
-import queryGraphql from '../shared/query-graphql'
+import queryGraphql from "../shared/query-graphql";
export default function UserListing({ users }) {
return (
@@ -16,7 +16,7 @@ export default function UserListing({ users }) {
))}
- )
+ );
}
export async function getStaticProps() {
@@ -27,6 +27,6 @@ export async function getStaticProps() {
username
}
}
- `)
- return { props: { users } }
+ `);
+ return { props: { users } };
}
diff --git a/examples/api-routes-apollo-server/shared/query-graphql/index.ts b/examples/api-routes-apollo-server/shared/query-graphql/index.ts
index 9393dbf8f2..5fb5700873 100644
--- a/examples/api-routes-apollo-server/shared/query-graphql/index.ts
+++ b/examples/api-routes-apollo-server/shared/query-graphql/index.ts
@@ -1,8 +1,8 @@
-import { graphql } from 'graphql'
+import { graphql } from "graphql";
-import { schema } from '../../pages/api/graphql'
+import { schema } from "../../pages/api/graphql";
export default async function queryGraphql(query, variableValues = {}) {
- const { data } = await graphql({ schema, source: query, variableValues })
- return data || {}
+ const { data } = await graphql({ schema, source: query, variableValues });
+ return data || {};
}
diff --git a/examples/api-routes-cors/pages/api/cors.ts b/examples/api-routes-cors/pages/api/cors.ts
index 8266295ff9..aa982c845c 100644
--- a/examples/api-routes-cors/pages/api/cors.ts
+++ b/examples/api-routes-cors/pages/api/cors.ts
@@ -1,37 +1,37 @@
-import type { NextApiRequest, NextApiResponse } from 'next'
-import Cors from 'cors'
+import type { NextApiRequest, NextApiResponse } from "next";
+import Cors from "cors";
// Initializing the cors middleware
// You can read more about the available options here: https://github.com/expressjs/cors#configuration-options
const cors = Cors({
- methods: ['POST', 'GET', 'HEAD'],
-})
+ methods: ["POST", "GET", "HEAD"],
+});
// Helper method to wait for a middleware to execute before continuing
// And to throw an error when an error happens in a middleware
function runMiddleware(
req: NextApiRequest,
res: NextApiResponse,
- fn: Function
+ fn: Function,
) {
return new Promise((resolve, reject) => {
fn(req, res, (result: any) => {
if (result instanceof Error) {
- return reject(result)
+ return reject(result);
}
- return resolve(result)
- })
- })
+ return resolve(result);
+ });
+ });
}
export default async function handler(
req: NextApiRequest,
- res: NextApiResponse
+ res: NextApiResponse,
) {
// Run the middleware
- await runMiddleware(req, res, cors)
+ await runMiddleware(req, res, cors);
// Rest of the API logic
- res.json({ message: 'Hello Everyone!' })
+ res.json({ message: "Hello Everyone!" });
}
diff --git a/examples/api-routes-cors/pages/index.tsx b/examples/api-routes-cors/pages/index.tsx
index 9506fde9d8..9b1f22df7e 100644
--- a/examples/api-routes-cors/pages/index.tsx
+++ b/examples/api-routes-cors/pages/index.tsx
@@ -5,5 +5,5 @@ export default function Index() {
domain and make a POST / GET / OPTIONS request to /api/cors . Using
a different method from those mentioned will be blocked by CORS
- )
+ );
}
diff --git a/examples/api-routes-graphql/pages/api/graphql.ts b/examples/api-routes-graphql/pages/api/graphql.ts
index aaa4305b5a..6d90136b7b 100644
--- a/examples/api-routes-graphql/pages/api/graphql.ts
+++ b/examples/api-routes-graphql/pages/api/graphql.ts
@@ -1,4 +1,4 @@
-import { createYoga, createSchema } from 'graphql-yoga'
+import { createYoga, createSchema } from "graphql-yoga";
const typeDefs = /* GraphQL */ `
type Query {
@@ -7,30 +7,30 @@ const typeDefs = /* GraphQL */ `
type User {
name: String
}
-`
+`;
const resolvers = {
Query: {
users() {
- return [{ name: 'Nextjs' }]
+ return [{ name: "Nextjs" }];
},
},
-}
+};
const schema = createSchema({
typeDefs,
resolvers,
-})
+});
export const config = {
api: {
// Disable body parsing (required for file uploads)
bodyParser: false,
},
-}
+};
export default createYoga({
schema,
// Needed to be defined explicitly because our endpoint lives at a different path other than `/graphql`
- graphqlEndpoint: '/api/graphql',
-})
+ graphqlEndpoint: "/api/graphql",
+});
diff --git a/examples/api-routes-graphql/pages/index.tsx b/examples/api-routes-graphql/pages/index.tsx
index 03e13596ab..39c9b93c3e 100644
--- a/examples/api-routes-graphql/pages/index.tsx
+++ b/examples/api-routes-graphql/pages/index.tsx
@@ -1,30 +1,33 @@
-import useSWR from 'swr'
+import useSWR from "swr";
const fetcher = (query: string) =>
- fetch('/api/graphql', {
- method: 'POST',
+ fetch("/api/graphql", {
+ method: "POST",
headers: {
- 'Content-type': 'application/json',
+ "Content-type": "application/json",
},
body: JSON.stringify({ query }),
})
.then((res) => res.json())
- .then((json) => json.data)
+ .then((json) => json.data);
type Data = {
users: {
- name: string
- }[]
-}
+ name: string;
+ }[];
+};
export default function Index() {
- const { data, error, isLoading } = useSWR('{ users { name } }', fetcher)
+ const { data, error, isLoading } = useSWR(
+ "{ users { name } }",
+ fetcher,
+ );
- if (error) return Failed to load
- if (isLoading) return Loading...
- if (!data) return null
+ if (error) return Failed to load
;
+ if (isLoading) return Loading...
;
+ if (!data) return null;
- const { users } = data
+ const { users } = data;
return (
@@ -32,5 +35,5 @@ export default function Index() {
{user.name}
))}
- )
+ );
}
diff --git a/examples/api-routes-middleware/pages/api/cookies.ts b/examples/api-routes-middleware/pages/api/cookies.ts
index 2b43c28047..8de356368b 100644
--- a/examples/api-routes-middleware/pages/api/cookies.ts
+++ b/examples/api-routes-middleware/pages/api/cookies.ts
@@ -1,9 +1,9 @@
-import type { NextApiRequest, NextApiResponse } from 'next'
-import { setCookie } from '../../utils/cookies'
+import type { NextApiRequest, NextApiResponse } from "next";
+import { setCookie } from "../../utils/cookies";
export default function handler(_req: NextApiRequest, res: NextApiResponse) {
// Calling our pure function using the `res` object, it will add the `set-cookie` header
- setCookie(res, 'Next.js', 'api-middleware!')
+ setCookie(res, "Next.js", "api-middleware!");
// Return the `set-cookie` header so we can display it in the browser and show that it works!
- res.end(res.getHeader('Set-Cookie'))
+ res.end(res.getHeader("Set-Cookie"));
}
diff --git a/examples/api-routes-middleware/pages/index.tsx b/examples/api-routes-middleware/pages/index.tsx
index 566a92ff73..373602c82e 100644
--- a/examples/api-routes-middleware/pages/index.tsx
+++ b/examples/api-routes-middleware/pages/index.tsx
@@ -1,13 +1,13 @@
-import useSWR from 'swr'
+import useSWR from "swr";
-const fetcher = (url: string) => fetch(url).then((res) => res.text())
+const fetcher = (url: string) => fetch(url).then((res) => res.text());
export default function Index() {
- const { data, error, isLoading } = useSWR('/api/cookies', fetcher)
+ const { data, error, isLoading } = useSWR("/api/cookies", fetcher);
- if (error) return Failed to load
- if (isLoading) return Loading...
- if (!data) return null
+ if (error) return Failed to load
;
+ if (isLoading) return Loading...
;
+ if (!data) return null;
- return {`Cookie from response: "${data}"`}
+ return {`Cookie from response: "${data}"`}
;
}
diff --git a/examples/api-routes-middleware/utils/cookies.ts b/examples/api-routes-middleware/utils/cookies.ts
index fffe89978f..975df362cd 100644
--- a/examples/api-routes-middleware/utils/cookies.ts
+++ b/examples/api-routes-middleware/utils/cookies.ts
@@ -1,5 +1,5 @@
-import type { NextApiResponse } from 'next'
-import { serialize, CookieSerializeOptions } from 'cookie'
+import type { NextApiResponse } from "next";
+import { serialize, CookieSerializeOptions } from "cookie";
/**
* This sets `cookie` using the `res` object
@@ -9,14 +9,14 @@ export const setCookie = (
res: NextApiResponse,
name: string,
value: unknown,
- options: CookieSerializeOptions = {}
+ options: CookieSerializeOptions = {},
) => {
const stringValue =
- typeof value === 'object' ? 'j:' + JSON.stringify(value) : String(value)
+ typeof value === "object" ? "j:" + JSON.stringify(value) : String(value);
- if (typeof options.maxAge === 'number') {
- options.expires = new Date(Date.now() + options.maxAge * 1000)
+ if (typeof options.maxAge === "number") {
+ options.expires = new Date(Date.now() + options.maxAge * 1000);
}
- res.setHeader('Set-Cookie', serialize(name, stringValue, options))
-}
+ res.setHeader("Set-Cookie", serialize(name, stringValue, options));
+};
diff --git a/examples/api-routes-rate-limit/pages/api/user.ts b/examples/api-routes-rate-limit/pages/api/user.ts
index ff3f446476..eddd2334c9 100644
--- a/examples/api-routes-rate-limit/pages/api/user.ts
+++ b/examples/api-routes-rate-limit/pages/api/user.ts
@@ -1,20 +1,20 @@
-import type { NextApiRequest, NextApiResponse } from 'next'
-import { v4 as uuidv4 } from 'uuid'
-import rateLimit from '../../utils/rate-limit'
+import type { NextApiRequest, NextApiResponse } from "next";
+import { v4 as uuidv4 } from "uuid";
+import rateLimit from "../../utils/rate-limit";
const limiter = rateLimit({
interval: 60 * 1000, // 60 seconds
uniqueTokenPerInterval: 500, // Max 500 users per second
-})
+});
export default async function handler(
_req: NextApiRequest,
- res: NextApiResponse
+ res: NextApiResponse,
) {
try {
- await limiter.check(res, 10, 'CACHE_TOKEN') // 10 requests per minute
- res.status(200).json({ id: uuidv4() })
+ await limiter.check(res, 10, "CACHE_TOKEN"); // 10 requests per minute
+ res.status(200).json({ id: uuidv4() });
} catch {
- res.status(429).json({ error: 'Rate limit exceeded' })
+ res.status(429).json({ error: "Rate limit exceeded" });
}
}
diff --git a/examples/api-routes-rate-limit/pages/index.tsx b/examples/api-routes-rate-limit/pages/index.tsx
index 5de685d4c7..df910094e3 100644
--- a/examples/api-routes-rate-limit/pages/index.tsx
+++ b/examples/api-routes-rate-limit/pages/index.tsx
@@ -1,25 +1,27 @@
-import { useState } from 'react'
-import styles from '../styles.module.css'
+import { useState } from "react";
+import styles from "../styles.module.css";
export default function Index() {
- const [response, setResponse] = useState | null>(null)
+ const [response, setResponse] = useState | null>(
+ null,
+ );
const makeRequest = async () => {
- const res = await fetch('/api/user')
+ const res = await fetch("/api/user");
setResponse({
status: res.status,
body: await res.json(),
- limit: res.headers.get('X-RateLimit-Limit'),
- remaining: res.headers.get('X-RateLimit-Remaining'),
- })
- }
+ limit: res.headers.get("X-RateLimit-Limit"),
+ remaining: res.headers.get("X-RateLimit-Remaining"),
+ });
+ };
return (
Next.js API Routes Rate Limiting
- This example uses lru-cache
{' '}
+ This example uses lru-cache
{" "}
to implement a simple rate limiter for API routes (Serverless
Functions).
@@ -30,5 +32,5 @@ export default function Index() {
)}
- )
+ );
}
diff --git a/examples/api-routes-rate-limit/styles.module.css b/examples/api-routes-rate-limit/styles.module.css
index f2cd0c79e7..855d9c01c9 100644
--- a/examples/api-routes-rate-limit/styles.module.css
+++ b/examples/api-routes-rate-limit/styles.module.css
@@ -47,7 +47,7 @@
.inlineCode::before,
.inlineCode::after {
- content: '`';
+ content: "`";
}
.code {
diff --git a/examples/api-routes-rate-limit/utils/rate-limit.ts b/examples/api-routes-rate-limit/utils/rate-limit.ts
index 2c6c57ec6f..ab1aac4b1e 100644
--- a/examples/api-routes-rate-limit/utils/rate-limit.ts
+++ b/examples/api-routes-rate-limit/utils/rate-limit.ts
@@ -1,35 +1,35 @@
-import type { NextApiResponse } from 'next'
-import { LRUCache } from 'lru-cache'
+import type { NextApiResponse } from "next";
+import { LRUCache } from "lru-cache";
type Options = {
- uniqueTokenPerInterval?: number
- interval?: number
-}
+ uniqueTokenPerInterval?: number;
+ interval?: number;
+};
export default function rateLimit(options?: Options) {
const tokenCache = new LRUCache({
max: options?.uniqueTokenPerInterval || 500,
ttl: options?.interval || 60000,
- })
+ });
return {
check: (res: NextApiResponse, limit: number, token: string) =>
new Promise((resolve, reject) => {
- const tokenCount = (tokenCache.get(token) as number[]) || [0]
+ const tokenCount = (tokenCache.get(token) as number[]) || [0];
if (tokenCount[0] === 0) {
- tokenCache.set(token, tokenCount)
+ tokenCache.set(token, tokenCount);
}
- tokenCount[0] += 1
+ tokenCount[0] += 1;
- const currentUsage = tokenCount[0]
- const isRateLimited = currentUsage >= limit
- res.setHeader('X-RateLimit-Limit', limit)
+ const currentUsage = tokenCount[0];
+ const isRateLimited = currentUsage >= limit;
+ res.setHeader("X-RateLimit-Limit", limit);
res.setHeader(
- 'X-RateLimit-Remaining',
- isRateLimited ? 0 : limit - currentUsage
- )
+ "X-RateLimit-Remaining",
+ isRateLimited ? 0 : limit - currentUsage,
+ );
- return isRateLimited ? reject() : resolve()
+ return isRateLimited ? reject() : resolve();
}),
- }
+ };
}
diff --git a/examples/api-routes-rest/interfaces/index.ts b/examples/api-routes-rest/interfaces/index.ts
index 6ea90ddd53..584eb6908f 100644
--- a/examples/api-routes-rest/interfaces/index.ts
+++ b/examples/api-routes-rest/interfaces/index.ts
@@ -1,4 +1,4 @@
export type User = {
- id: number
- name?: string
-}
+ id: number;
+ name?: string;
+};
diff --git a/examples/api-routes-rest/pages/api/user/[id].ts b/examples/api-routes-rest/pages/api/user/[id].ts
index 3d48e81e07..3813227685 100644
--- a/examples/api-routes-rest/pages/api/user/[id].ts
+++ b/examples/api-routes-rest/pages/api/user/[id].ts
@@ -1,25 +1,25 @@
-import type { NextApiRequest, NextApiResponse } from 'next'
-import type { User } from '../../../interfaces'
+import type { NextApiRequest, NextApiResponse } from "next";
+import type { User } from "../../../interfaces";
export default function userHandler(
req: NextApiRequest,
- res: NextApiResponse
+ res: NextApiResponse,
) {
- const { query, method } = req
- const id = parseInt(query.id as string, 10)
- const name = query.name as string
+ const { query, method } = req;
+ const id = parseInt(query.id as string, 10);
+ const name = query.name as string;
switch (method) {
- case 'GET':
+ case "GET":
// Get data from your database
- res.status(200).json({ id, name: `User ${id}` })
- break
- case 'PUT':
+ res.status(200).json({ id, name: `User ${id}` });
+ break;
+ case "PUT":
// Update or create data in your database
- res.status(200).json({ id, name: name || `User ${id}` })
- break
+ res.status(200).json({ id, name: name || `User ${id}` });
+ break;
default:
- res.setHeader('Allow', ['GET', 'PUT'])
- res.status(405).end(`Method ${method} Not Allowed`)
+ res.setHeader("Allow", ["GET", "PUT"]);
+ res.status(405).end(`Method ${method} Not Allowed`);
}
}
diff --git a/examples/api-routes-rest/pages/api/users.ts b/examples/api-routes-rest/pages/api/users.ts
index afb48839ec..478fe62cda 100644
--- a/examples/api-routes-rest/pages/api/users.ts
+++ b/examples/api-routes-rest/pages/api/users.ts
@@ -1,13 +1,13 @@
-import type { NextApiRequest, NextApiResponse } from 'next'
-import type { User } from '../../interfaces'
+import type { NextApiRequest, NextApiResponse } from "next";
+import type { User } from "../../interfaces";
// Fake users data
-const users: User[] = [{ id: 1 }, { id: 2 }, { id: 3 }]
+const users: User[] = [{ id: 1 }, { id: 2 }, { id: 3 }];
export default function handler(
_req: NextApiRequest,
- res: NextApiResponse
+ res: NextApiResponse,
) {
// Get data from your database
- res.status(200).json(users)
+ res.status(200).json(users);
}
diff --git a/examples/api-routes-rest/pages/index.tsx b/examples/api-routes-rest/pages/index.tsx
index 6ab5eb5816..785909acdf 100644
--- a/examples/api-routes-rest/pages/index.tsx
+++ b/examples/api-routes-rest/pages/index.tsx
@@ -1,15 +1,15 @@
-import type { User } from '../interfaces'
-import useSwr from 'swr'
-import Link from 'next/link'
+import type { User } from "../interfaces";
+import useSwr from "swr";
+import Link from "next/link";
-const fetcher = (url: string) => fetch(url).then((res) => res.json())
+const fetcher = (url: string) => fetch(url).then((res) => res.json());
export default function Index() {
- const { data, error, isLoading } = useSwr('/api/users', fetcher)
+ const { data, error, isLoading } = useSwr("/api/users", fetcher);
- if (error) return Failed to load users
- if (isLoading) return Loading...
- if (!data) return null
+ if (error) return Failed to load users
;
+ if (isLoading) return Loading...
;
+ if (!data) return null;
return (
@@ -21,5 +21,5 @@ export default function Index() {
))}
- )
+ );
}
diff --git a/examples/api-routes-rest/pages/user/[id].tsx b/examples/api-routes-rest/pages/user/[id].tsx
index e2f52257b1..daef61cdb1 100644
--- a/examples/api-routes-rest/pages/user/[id].tsx
+++ b/examples/api-routes-rest/pages/user/[id].tsx
@@ -1,19 +1,19 @@
-import type { User } from '../../interfaces'
-import { useRouter } from 'next/router'
-import useSwr from 'swr'
+import type { User } from "../../interfaces";
+import { useRouter } from "next/router";
+import useSwr from "swr";
-const fetcher = (url: string) => fetch(url).then((res) => res.json())
+const fetcher = (url: string) => fetch(url).then((res) => res.json());
export default function UserPage() {
- const { query } = useRouter()
+ const { query } = useRouter();
const { data, error, isLoading } = useSwr(
query.id ? `/api/user/${query.id}` : null,
- fetcher
- )
+ fetcher,
+ );
- if (error) return Failed to load user
- if (isLoading) return Loading...
- if (!data) return null
+ if (error) return Failed to load user
;
+ if (isLoading) return Loading...
;
+ if (!data) return null;
- return {data.name}
+ return {data.name}
;
}
diff --git a/examples/api-routes/components/Person.tsx b/examples/api-routes/components/Person.tsx
index 1925bb0bfc..e6092839c0 100644
--- a/examples/api-routes/components/Person.tsx
+++ b/examples/api-routes/components/Person.tsx
@@ -1,9 +1,9 @@
-import Link from 'next/link'
-import { Person } from '../interfaces'
+import Link from "next/link";
+import { Person } from "../interfaces";
type PersonProps = {
- person: Person
-}
+ person: Person;
+};
export default function PersonComponent({ person }: PersonProps) {
return (
@@ -12,5 +12,5 @@ export default function PersonComponent({ person }: PersonProps) {
{person.name}
- )
+ );
}
diff --git a/examples/api-routes/data.ts b/examples/api-routes/data.ts
index f57a9d0786..86eca18115 100644
--- a/examples/api-routes/data.ts
+++ b/examples/api-routes/data.ts
@@ -1,102 +1,102 @@
export const people = [
{
- id: '1',
- name: 'Luke Skywalker',
- height: '172',
- mass: '77',
- hair_color: 'blond',
- skin_color: 'fair',
- eye_color: 'blue',
- gender: 'male',
+ id: "1",
+ name: "Luke Skywalker",
+ height: "172",
+ mass: "77",
+ hair_color: "blond",
+ skin_color: "fair",
+ eye_color: "blue",
+ gender: "male",
},
{
- id: '2',
- name: 'C-3PO',
- height: '167',
- mass: '75',
- hair_color: 'n/a',
- skin_color: 'gold',
- eye_color: 'yellow',
- gender: 'n/a',
+ id: "2",
+ name: "C-3PO",
+ height: "167",
+ mass: "75",
+ hair_color: "n/a",
+ skin_color: "gold",
+ eye_color: "yellow",
+ gender: "n/a",
},
{
- id: '3',
- name: 'R2-D2',
- height: '96',
- mass: '32',
- hair_color: 'n/a',
- skin_color: 'white, blue',
- eye_color: 'red',
- gender: 'n/a',
+ id: "3",
+ name: "R2-D2",
+ height: "96",
+ mass: "32",
+ hair_color: "n/a",
+ skin_color: "white, blue",
+ eye_color: "red",
+ gender: "n/a",
},
{
- id: '4',
- name: 'Darth Vader',
- height: '202',
- mass: '136',
- hair_color: 'none',
- skin_color: 'white',
- eye_color: 'yellow',
- gender: 'male',
+ id: "4",
+ name: "Darth Vader",
+ height: "202",
+ mass: "136",
+ hair_color: "none",
+ skin_color: "white",
+ eye_color: "yellow",
+ gender: "male",
},
{
- id: '5',
- name: 'Leia Organa',
- height: '150',
- mass: '49',
- hair_color: 'brown',
- skin_color: 'light',
- eye_color: 'brown',
- gender: 'female',
+ id: "5",
+ name: "Leia Organa",
+ height: "150",
+ mass: "49",
+ hair_color: "brown",
+ skin_color: "light",
+ eye_color: "brown",
+ gender: "female",
},
{
- id: '6',
- name: 'Owen Lars',
- height: '178',
- mass: '120',
- hair_color: 'brown, grey',
- skin_color: 'light',
- eye_color: 'blue',
- gender: 'male',
+ id: "6",
+ name: "Owen Lars",
+ height: "178",
+ mass: "120",
+ hair_color: "brown, grey",
+ skin_color: "light",
+ eye_color: "blue",
+ gender: "male",
},
{
- id: '7',
- name: 'Beru Whitesun Lars',
- height: '165',
- mass: '75',
- hair_color: 'brown',
- skin_color: 'light',
- eye_color: 'blue',
- gender: 'female',
+ id: "7",
+ name: "Beru Whitesun Lars",
+ height: "165",
+ mass: "75",
+ hair_color: "brown",
+ skin_color: "light",
+ eye_color: "blue",
+ gender: "female",
},
{
- id: '8',
- name: 'R5-D4',
- height: '97',
- mass: '32',
- hair_color: 'n/a',
- skin_color: 'white, red',
- eye_color: 'red',
- gender: 'n/a',
+ id: "8",
+ name: "R5-D4",
+ height: "97",
+ mass: "32",
+ hair_color: "n/a",
+ skin_color: "white, red",
+ eye_color: "red",
+ gender: "n/a",
},
{
- id: '9',
- name: 'Biggs Darklighter',
- height: '183',
- mass: '84',
- hair_color: 'black',
- skin_color: 'light',
- eye_color: 'brown',
- gender: 'male',
+ id: "9",
+ name: "Biggs Darklighter",
+ height: "183",
+ mass: "84",
+ hair_color: "black",
+ skin_color: "light",
+ eye_color: "brown",
+ gender: "male",
},
{
- id: '10',
- name: 'Obi-Wan Kenobi',
- height: '182',
- mass: '77',
- hair_color: 'auburn, white',
- skin_color: 'fair',
- eye_color: 'blue-gray',
- gender: 'male',
+ id: "10",
+ name: "Obi-Wan Kenobi",
+ height: "182",
+ mass: "77",
+ hair_color: "auburn, white",
+ skin_color: "fair",
+ eye_color: "blue-gray",
+ gender: "male",
},
-]
+];
diff --git a/examples/api-routes/interfaces/index.ts b/examples/api-routes/interfaces/index.ts
index 72fee97a5f..3c30cbbefe 100644
--- a/examples/api-routes/interfaces/index.ts
+++ b/examples/api-routes/interfaces/index.ts
@@ -1,14 +1,14 @@
export type Person = {
- id: string
- name: string
- height: string
- mass: string
- hair_color: string
- skin_color: string
- eye_color: string
- gender: string
-}
+ id: string;
+ name: string;
+ height: string;
+ mass: string;
+ hair_color: string;
+ skin_color: string;
+ eye_color: string;
+ gender: string;
+};
export type ResponseError = {
- message: string
-}
+ message: string;
+};
diff --git a/examples/api-routes/pages/api/people/[id].ts b/examples/api-routes/pages/api/people/[id].ts
index 64ece80304..84588b2dd6 100644
--- a/examples/api-routes/pages/api/people/[id].ts
+++ b/examples/api-routes/pages/api/people/[id].ts
@@ -1,17 +1,17 @@
-import { NextApiRequest, NextApiResponse } from 'next'
-import { people } from '../../../data'
-import type { Person, ResponseError } from '../../../interfaces'
+import { NextApiRequest, NextApiResponse } from "next";
+import { people } from "../../../data";
+import type { Person, ResponseError } from "../../../interfaces";
export default function personHandler(
req: NextApiRequest,
- res: NextApiResponse
+ res: NextApiResponse,
) {
- const { query } = req
- const { id } = query
- const person = people.find((p) => p.id === id)
+ const { query } = req;
+ const { id } = query;
+ const person = people.find((p) => p.id === id);
// User with id exists
return person
? res.status(200).json(person)
- : res.status(404).json({ message: `User with id: ${id} not found.` })
+ : res.status(404).json({ message: `User with id: ${id} not found.` });
}
diff --git a/examples/api-routes/pages/api/people/index.ts b/examples/api-routes/pages/api/people/index.ts
index 661139b92e..90bbcfcd84 100644
--- a/examples/api-routes/pages/api/people/index.ts
+++ b/examples/api-routes/pages/api/people/index.ts
@@ -1,10 +1,10 @@
-import { NextApiResponse, NextApiRequest } from 'next'
-import { people } from '../../../data'
-import { Person } from '../../../interfaces'
+import { NextApiResponse, NextApiRequest } from "next";
+import { people } from "../../../data";
+import { Person } from "../../../interfaces";
export default function handler(
_req: NextApiRequest,
- res: NextApiResponse
+ res: NextApiResponse,
) {
- return res.status(200).json(people)
+ return res.status(200).json(people);
}
diff --git a/examples/api-routes/pages/index.tsx b/examples/api-routes/pages/index.tsx
index 5d6c334fd6..f4a3b0bea9 100644
--- a/examples/api-routes/pages/index.tsx
+++ b/examples/api-routes/pages/index.tsx
@@ -1,15 +1,15 @@
-import useSWR from 'swr'
-import PersonComponent from '../components/Person'
-import type { Person } from '../interfaces'
+import useSWR from "swr";
+import PersonComponent from "../components/Person";
+import type { Person } from "../interfaces";
-const fetcher = (url: string) => fetch(url).then((res) => res.json())
+const fetcher = (url: string) => fetch(url).then((res) => res.json());
export default function Index() {
- const { data, error, isLoading } = useSWR('/api/people', fetcher)
+ const { data, error, isLoading } = useSWR("/api/people", fetcher);
- if (error) return Failed to load
- if (isLoading) return Loading...
- if (!data) return null
+ if (error) return Failed to load
;
+ if (isLoading) return Loading...
;
+ if (!data) return null;
return (
@@ -17,5 +17,5 @@ export default function Index() {
))}
- )
+ );
}
diff --git a/examples/api-routes/pages/person/[id].tsx b/examples/api-routes/pages/person/[id].tsx
index 116e914a99..229a4ce6a6 100644
--- a/examples/api-routes/pages/person/[id].tsx
+++ b/examples/api-routes/pages/person/[id].tsx
@@ -1,27 +1,27 @@
-import { useRouter } from 'next/router'
-import useSWR from 'swr'
-import type { Person, ResponseError } from '../../interfaces'
+import { useRouter } from "next/router";
+import useSWR from "swr";
+import type { Person, ResponseError } from "../../interfaces";
const fetcher = async (url: string) => {
- const res = await fetch(url)
- const data = await res.json()
+ const res = await fetch(url);
+ const data = await res.json();
if (res.status !== 200) {
- throw new Error(data.message)
+ throw new Error(data.message);
}
- return data
-}
+ return data;
+};
export default function PersonPage() {
- const { query } = useRouter()
+ const { query } = useRouter();
const { data, error, isLoading, isValidating } = useSWR<
Person,
ResponseError
- >(() => (query.id ? `/api/people/${query.id}` : null), fetcher)
+ >(() => (query.id ? `/api/people/${query.id}` : null), fetcher);
- if (error) return {error.message}
- if (isLoading) return Loading...
- if (!data) return null
+ if (error) return {error.message}
;
+ if (isLoading) return Loading...
;
+ if (!data) return null;
return (
@@ -56,5 +56,5 @@ export default function PersonPage() {
- )
+ );
}
diff --git a/examples/app-dir-i18n-routing/app/[lang]/components/counter.tsx b/examples/app-dir-i18n-routing/app/[lang]/components/counter.tsx
index b65b161488..0b59c94e27 100644
--- a/examples/app-dir-i18n-routing/app/[lang]/components/counter.tsx
+++ b/examples/app-dir-i18n-routing/app/[lang]/components/counter.tsx
@@ -1,14 +1,14 @@
-'use client'
+"use client";
-import { useState } from 'react'
-import { type getDictionary } from '../../../get-dictionary'
+import { useState } from "react";
+import { type getDictionary } from "../../../get-dictionary";
export default function Counter({
dictionary,
}: {
- dictionary: Awaited>['counter']
+ dictionary: Awaited>["counter"];
}) {
- const [count, setCount] = useState(0)
+ const [count, setCount] = useState(0);
return (
This component is rendered on client:
@@ -20,5 +20,5 @@ export default function Counter({
{dictionary.increment}
- )
+ );
}
diff --git a/examples/app-dir-i18n-routing/app/[lang]/components/locale-switcher.tsx b/examples/app-dir-i18n-routing/app/[lang]/components/locale-switcher.tsx
index 1d34e7c248..8fd654e844 100644
--- a/examples/app-dir-i18n-routing/app/[lang]/components/locale-switcher.tsx
+++ b/examples/app-dir-i18n-routing/app/[lang]/components/locale-switcher.tsx
@@ -1,17 +1,17 @@
-'use client'
+"use client";
-import { usePathname } from 'next/navigation'
-import Link from 'next/link'
-import { i18n, type Locale } from '../../../i18n-config'
+import { usePathname } from "next/navigation";
+import Link from "next/link";
+import { i18n, type Locale } from "../../../i18n-config";
export default function LocaleSwitcher() {
- const pathName = usePathname()
+ const pathName = usePathname();
const redirectedPathName = (locale: Locale) => {
- if (!pathName) return '/'
- const segments = pathName.split('/')
- segments[1] = locale
- return segments.join('/')
- }
+ if (!pathName) return "/";
+ const segments = pathName.split("/");
+ segments[1] = locale;
+ return segments.join("/");
+ };
return (
@@ -22,9 +22,9 @@ export default function LocaleSwitcher() {
{locale}
- )
+ );
})}
- )
+ );
}
diff --git a/examples/app-dir-i18n-routing/app/[lang]/layout.tsx b/examples/app-dir-i18n-routing/app/[lang]/layout.tsx
index fd422b4786..0ed9c37a43 100644
--- a/examples/app-dir-i18n-routing/app/[lang]/layout.tsx
+++ b/examples/app-dir-i18n-routing/app/[lang]/layout.tsx
@@ -1,24 +1,24 @@
-import { i18n, type Locale } from '../../i18n-config'
+import { i18n, type Locale } from "../../i18n-config";
export async function generateStaticParams() {
- return i18n.locales.map((locale) => ({ lang: locale }))
+ return i18n.locales.map((locale) => ({ lang: locale }));
}
export default function Root({
children,
params,
}: {
- children: React.ReactNode
- params: { lang: Locale }
+ children: React.ReactNode;
+ params: { lang: Locale };
}) {
return (
{children}
- )
+ );
}
export const metadata = {
- title: 'i18n within app directory - Vercel Examples',
- description: 'How to do i18n in Next.js 13 within app directory',
-}
+ title: "i18n within app directory - Vercel Examples",
+ description: "How to do i18n in Next.js 13 within app directory",
+};
diff --git a/examples/app-dir-i18n-routing/app/[lang]/page.tsx b/examples/app-dir-i18n-routing/app/[lang]/page.tsx
index fbad660311..d9654b9a7a 100644
--- a/examples/app-dir-i18n-routing/app/[lang]/page.tsx
+++ b/examples/app-dir-i18n-routing/app/[lang]/page.tsx
@@ -1,24 +1,24 @@
-import { getDictionary } from '../../get-dictionary'
-import { Locale } from '../../i18n-config'
-import Counter from './components/counter'
-import LocaleSwitcher from './components/locale-switcher'
+import { getDictionary } from "../../get-dictionary";
+import { Locale } from "../../i18n-config";
+import Counter from "./components/counter";
+import LocaleSwitcher from "./components/locale-switcher";
export default async function IndexPage({
params: { lang },
}: {
- params: { lang: Locale }
+ params: { lang: Locale };
}) {
- const dictionary = await getDictionary(lang)
+ const dictionary = await getDictionary(lang);
return (
Current locale: {lang}
- This text is rendered on the server:{' '}
- {dictionary['server-component'].welcome}
+ This text is rendered on the server:{" "}
+ {dictionary["server-component"].welcome}
- )
+ );
}
diff --git a/examples/app-dir-i18n-routing/get-dictionary.ts b/examples/app-dir-i18n-routing/get-dictionary.ts
index ee3e7fb016..455c405b49 100644
--- a/examples/app-dir-i18n-routing/get-dictionary.ts
+++ b/examples/app-dir-i18n-routing/get-dictionary.ts
@@ -1,13 +1,13 @@
-import 'server-only'
-import type { Locale } from './i18n-config'
+import "server-only";
+import type { Locale } from "./i18n-config";
// We enumerate all dictionaries here for better linting and typescript support
// We also get the default import for cleaner types
const dictionaries = {
- en: () => import('./dictionaries/en.json').then((module) => module.default),
- de: () => import('./dictionaries/de.json').then((module) => module.default),
- cs: () => import('./dictionaries/cs.json').then((module) => module.default),
-}
+ en: () => import("./dictionaries/en.json").then((module) => module.default),
+ de: () => import("./dictionaries/de.json").then((module) => module.default),
+ cs: () => import("./dictionaries/cs.json").then((module) => module.default),
+};
export const getDictionary = async (locale: Locale) =>
- dictionaries[locale]?.() ?? dictionaries.en()
+ dictionaries[locale]?.() ?? dictionaries.en();
diff --git a/examples/app-dir-i18n-routing/i18n-config.ts b/examples/app-dir-i18n-routing/i18n-config.ts
index 712c8e6347..09b0a373db 100644
--- a/examples/app-dir-i18n-routing/i18n-config.ts
+++ b/examples/app-dir-i18n-routing/i18n-config.ts
@@ -1,6 +1,6 @@
export const i18n = {
- defaultLocale: 'en',
- locales: ['en', 'de', 'cs'],
-} as const
+ defaultLocale: "en",
+ locales: ["en", "de", "cs"],
+} as const;
-export type Locale = (typeof i18n)['locales'][number]
+export type Locale = (typeof i18n)["locales"][number];
diff --git a/examples/app-dir-i18n-routing/middleware.ts b/examples/app-dir-i18n-routing/middleware.ts
index c0287edb51..253df78fb5 100644
--- a/examples/app-dir-i18n-routing/middleware.ts
+++ b/examples/app-dir-i18n-routing/middleware.ts
@@ -1,31 +1,31 @@
-import { NextResponse } from 'next/server'
-import type { NextRequest } from 'next/server'
+import { NextResponse } from "next/server";
+import type { NextRequest } from "next/server";
-import { i18n } from './i18n-config'
+import { i18n } from "./i18n-config";
-import { match as matchLocale } from '@formatjs/intl-localematcher'
-import Negotiator from 'negotiator'
+import { match as matchLocale } from "@formatjs/intl-localematcher";
+import Negotiator from "negotiator";
function getLocale(request: NextRequest): string | undefined {
// Negotiator expects plain object so we need to transform headers
- const negotiatorHeaders: Record = {}
- request.headers.forEach((value, key) => (negotiatorHeaders[key] = value))
+ const negotiatorHeaders: Record = {};
+ request.headers.forEach((value, key) => (negotiatorHeaders[key] = value));
// @ts-ignore locales are readonly
- const locales: string[] = i18n.locales
+ const locales: string[] = i18n.locales;
// Use negotiator and intl-localematcher to get best locale
let languages = new Negotiator({ headers: negotiatorHeaders }).languages(
- locales
- )
+ locales,
+ );
- const locale = matchLocale(languages, locales, i18n.defaultLocale)
+ const locale = matchLocale(languages, locales, i18n.defaultLocale);
- return locale
+ return locale;
}
export function middleware(request: NextRequest) {
- const pathname = request.nextUrl.pathname
+ const pathname = request.nextUrl.pathname;
// // `/_next/` and `/api/` are ignored by the watcher, but we need to ignore files in `public` manually.
// // If you have one
@@ -40,25 +40,26 @@ export function middleware(request: NextRequest) {
// Check if there is any supported locale in the pathname
const pathnameIsMissingLocale = i18n.locales.every(
- (locale) => !pathname.startsWith(`/${locale}/`) && pathname !== `/${locale}`
- )
+ (locale) =>
+ !pathname.startsWith(`/${locale}/`) && pathname !== `/${locale}`,
+ );
// Redirect if there is no locale
if (pathnameIsMissingLocale) {
- const locale = getLocale(request)
+ const locale = getLocale(request);
// e.g. incoming request is /products
// The new URL is now /en-US/products
return NextResponse.redirect(
new URL(
- `/${locale}${pathname.startsWith('/') ? '' : '/'}${pathname}`,
- request.url
- )
- )
+ `/${locale}${pathname.startsWith("/") ? "" : "/"}${pathname}`,
+ request.url,
+ ),
+ );
}
}
export const config = {
// Matcher ignoring `/_next/` and `/api/`
- matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)'],
-}
+ matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"],
+};
diff --git a/examples/app-dir-mdx/app/globals.css b/examples/app-dir-mdx/app/globals.css
index 2527aea354..ee04ea4622 100644
--- a/examples/app-dir-mdx/app/globals.css
+++ b/examples/app-dir-mdx/app/globals.css
@@ -1,9 +1,9 @@
:root {
--max-width: 1100px;
--border-radius: 12px;
- --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono',
- 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro',
- 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace;
+ --font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono",
+ "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro",
+ "Fira Mono", "Droid Sans Mono", "Courier New", monospace;
--foreground-rgb: 0, 0, 0;
--background-start-rgb: 214, 219, 220;
diff --git a/examples/app-dir-mdx/app/layout.tsx b/examples/app-dir-mdx/app/layout.tsx
index a962055f9a..9e93601451 100644
--- a/examples/app-dir-mdx/app/layout.tsx
+++ b/examples/app-dir-mdx/app/layout.tsx
@@ -1,18 +1,18 @@
-import './globals.css'
+import "./globals.css";
export default function RootLayout({
children,
}: {
- children: React.ReactNode
+ children: React.ReactNode;
}) {
return (
{children}
- )
+ );
}
export const metadata = {
- title: 'Create Next App',
- description: 'Generated by create next app',
-}
+ title: "Create Next App",
+ description: "Generated by create next app",
+};
diff --git a/examples/app-dir-mdx/app/page.module.css b/examples/app-dir-mdx/app/page.module.css
index 11c54801bd..87f36d6d85 100644
--- a/examples/app-dir-mdx/app/page.module.css
+++ b/examples/app-dir-mdx/app/page.module.css
@@ -102,7 +102,7 @@
.center::before,
.center::after {
- content: '';
+ content: "";
left: 50%;
position: absolute;
filter: blur(45px);
@@ -130,7 +130,7 @@
.thirteen::before,
.thirteen::after {
- content: '';
+ content: "";
position: absolute;
z-index: -1;
}
diff --git a/examples/app-dir-mdx/app/page.tsx b/examples/app-dir-mdx/app/page.tsx
index ac6a2f73f8..72d710fba3 100644
--- a/examples/app-dir-mdx/app/page.tsx
+++ b/examples/app-dir-mdx/app/page.tsx
@@ -1,9 +1,9 @@
-import Image from 'next/image'
-import { Inter } from 'next/font/google'
-import styles from './page.module.css'
-import Content from './message.mdx'
+import Image from "next/image";
+import { Inter } from "next/font/google";
+import styles from "./page.module.css";
+import Content from "./message.mdx";
-const inter = Inter({ subsets: ['latin'] })
+const inter = Inter({ subsets: ["latin"] });
export default function Home() {
return (
@@ -19,7 +19,7 @@ export default function Home() {
target="_blank"
rel="noopener noreferrer"
>
- By{' '}
+ By{" "}
- )
+ );
}
diff --git a/examples/app-dir-mdx/mdx-components.tsx b/examples/app-dir-mdx/mdx-components.tsx
index 5e157b1df7..9851ff60b2 100644
--- a/examples/app-dir-mdx/mdx-components.tsx
+++ b/examples/app-dir-mdx/mdx-components.tsx
@@ -1,4 +1,4 @@
-import type { MDXComponents } from 'mdx/types'
+import type { MDXComponents } from "mdx/types";
// This file is required to use MDX in `app` directory.
export function useMDXComponents(components: MDXComponents): MDXComponents {
@@ -6,5 +6,5 @@ export function useMDXComponents(components: MDXComponents): MDXComponents {
// Allows customizing built-in components, e.g. to add styling.
// h1: ({ children }) => {children} ,
...components,
- }
+ };
}
diff --git a/examples/app-dir-mdx/next.config.js b/examples/app-dir-mdx/next.config.js
index b24b0b216a..7787c36fc2 100644
--- a/examples/app-dir-mdx/next.config.js
+++ b/examples/app-dir-mdx/next.config.js
@@ -1,10 +1,10 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
- pageExtensions: ['js', 'jsx', 'ts', 'tsx', 'mdx'],
+ pageExtensions: ["js", "jsx", "ts", "tsx", "mdx"],
experimental: {
mdxRs: true,
},
-}
+};
-const withMDX = require('@next/mdx')()
-module.exports = withMDX(nextConfig)
+const withMDX = require("@next/mdx")();
+module.exports = withMDX(nextConfig);
diff --git a/examples/app-dir-mdx/types/mdx.d.ts b/examples/app-dir-mdx/types/mdx.d.ts
index a9831edba2..8ca9cdfcb9 100644
--- a/examples/app-dir-mdx/types/mdx.d.ts
+++ b/examples/app-dir-mdx/types/mdx.d.ts
@@ -1,5 +1,5 @@
// types/mdx.d.ts
-declare module '*.mdx' {
- let MDXComponent: (props) => JSX.Element
- export default MDXComponent
+declare module "*.mdx" {
+ let MDXComponent: (props) => JSX.Element;
+ export default MDXComponent;
}
diff --git a/examples/auth-with-stytch/components/LoginEntryPoint.tsx b/examples/auth-with-stytch/components/LoginEntryPoint.tsx
index a8bf3562dc..d2ad45bc9f 100644
--- a/examples/auth-with-stytch/components/LoginEntryPoint.tsx
+++ b/examples/auth-with-stytch/components/LoginEntryPoint.tsx
@@ -1,14 +1,14 @@
-import React from 'react'
-import styles from '../styles/Home.module.css'
-import { LoginMethod } from '../lib/types'
-import StytchContainer from './StytchContainer'
+import React from "react";
+import styles from "../styles/Home.module.css";
+import { LoginMethod } from "../lib/types";
+import StytchContainer from "./StytchContainer";
type Props = {
- setLoginMethod: (loginMethod: LoginMethod) => void
-}
+ setLoginMethod: (loginMethod: LoginMethod) => void;
+};
const LoginEntryPoint = (props: Props) => {
- const { setLoginMethod } = props
+ const { setLoginMethod } = props;
return (
Hello Vercel!
@@ -29,7 +29,7 @@ const LoginEntryPoint = (props: Props) => {
API Integration (SMS Passcodes)
- )
-}
+ );
+};
-export default LoginEntryPoint
+export default LoginEntryPoint;
diff --git a/examples/auth-with-stytch/components/LoginWithSMS.tsx b/examples/auth-with-stytch/components/LoginWithSMS.tsx
index 1c5e2fe229..b8eb855f7a 100644
--- a/examples/auth-with-stytch/components/LoginWithSMS.tsx
+++ b/examples/auth-with-stytch/components/LoginWithSMS.tsx
@@ -1,12 +1,12 @@
-import React, { useState } from 'react'
-import SendOTPForm from './SendOTPForm'
-import VerifyOTPForm from './VerifyOTPForm'
-import StytchContainer from './StytchContainer'
+import React, { useState } from "react";
+import SendOTPForm from "./SendOTPForm";
+import VerifyOTPForm from "./VerifyOTPForm";
+import StytchContainer from "./StytchContainer";
const LoginWithSMS = () => {
- const [otpSent, setOTPSent] = useState(false)
- const [phoneNumber, setPhoneNumber] = useState('')
- const [methodId, setMethodId] = useState('')
+ const [otpSent, setOTPSent] = useState(false);
+ const [phoneNumber, setPhoneNumber] = useState("");
+ const [methodId, setMethodId] = useState("");
return (
@@ -21,7 +21,7 @@ const LoginWithSMS = () => {
)}
- )
-}
+ );
+};
-export default LoginWithSMS
+export default LoginWithSMS;
diff --git a/examples/auth-with-stytch/components/SendOTPForm.tsx b/examples/auth-with-stytch/components/SendOTPForm.tsx
index b2276b0760..0d34230965 100644
--- a/examples/auth-with-stytch/components/SendOTPForm.tsx
+++ b/examples/auth-with-stytch/components/SendOTPForm.tsx
@@ -1,44 +1,44 @@
-import React from 'react'
-import { sendOTP } from '../lib/otpUtils'
-import styles from '../styles/Home.module.css'
+import React from "react";
+import { sendOTP } from "../lib/otpUtils";
+import styles from "../styles/Home.module.css";
type Props = {
- phoneNumber: string
- setMethodId: (methodId: string) => void
- setOTPSent: (submitted: boolean) => void
- setPhoneNumber: (phoneNumber: string) => void
-}
+ phoneNumber: string;
+ setMethodId: (methodId: string) => void;
+ setOTPSent: (submitted: boolean) => void;
+ setPhoneNumber: (phoneNumber: string) => void;
+};
const SendOTPForm = (props: Props): JSX.Element => {
- const { phoneNumber, setMethodId, setOTPSent, setPhoneNumber } = props
- const [isDisabled, setIsDisabled] = React.useState(true)
+ const { phoneNumber, setMethodId, setOTPSent, setPhoneNumber } = props;
+ const [isDisabled, setIsDisabled] = React.useState(true);
const isValidNumber = (phoneNumberValue: string) => {
// Regex validates phone numbers in (xxx)xxx-xxxx, xxx-xxx-xxxx, xxxxxxxxxx, and xxx.xxx.xxxx format
- const regex = /^[(]?[0-9]{3}[)]?[-s.]?[0-9]{3}[-s.]?[0-9]{4}$/g
+ const regex = /^[(]?[0-9]{3}[)]?[-s.]?[0-9]{3}[-s.]?[0-9]{4}$/g;
if (phoneNumberValue.match(regex)) {
- return true
+ return true;
}
- return false
- }
+ return false;
+ };
const onPhoneNumberChange = (e: React.ChangeEvent<{ value: string }>) => {
- setPhoneNumber(e.target.value)
+ setPhoneNumber(e.target.value);
if (isValidNumber(e.target.value)) {
- setIsDisabled(false)
+ setIsDisabled(false);
} else {
- setIsDisabled(true)
+ setIsDisabled(true);
}
- }
+ };
const onSubmit = async (e: React.FormEvent) => {
- e.preventDefault()
+ e.preventDefault();
if (isValidNumber(phoneNumber)) {
- const methodId = await sendOTP(phoneNumber)
- setMethodId(methodId)
- setOTPSent(true)
+ const methodId = await sendOTP(phoneNumber);
+ setMethodId(methodId);
+ setOTPSent(true);
}
- }
+ };
return (
@@ -77,7 +77,7 @@ const SendOTPForm = (props: Props): JSX.Element => {
/>
- )
-}
+ );
+};
-export default SendOTPForm
+export default SendOTPForm;
diff --git a/examples/auth-with-stytch/components/StytchContainer.tsx b/examples/auth-with-stytch/components/StytchContainer.tsx
index e0972d98f9..0222ff20d2 100644
--- a/examples/auth-with-stytch/components/StytchContainer.tsx
+++ b/examples/auth-with-stytch/components/StytchContainer.tsx
@@ -1,20 +1,20 @@
-import React from 'react'
-import styles from '../styles/Home.module.css'
-import Image from 'next/image'
-import lockup from '/public/powered-by-stytch.svg'
+import React from "react";
+import styles from "../styles/Home.module.css";
+import Image from "next/image";
+import lockup from "/public/powered-by-stytch.svg";
type Props = {
- children: React.ReactElement | React.ReactElement[]
-}
+ children: React.ReactElement | React.ReactElement[];
+};
const StytchContainer = (props: Props) => {
- const { children } = props
+ const { children } = props;
return (
- )
-}
+ );
+};
-export default StytchContainer
+export default StytchContainer;
diff --git a/examples/auth-with-stytch/components/VerifyOTPForm.tsx b/examples/auth-with-stytch/components/VerifyOTPForm.tsx
index cf62eb5e73..b4f2da0980 100644
--- a/examples/auth-with-stytch/components/VerifyOTPForm.tsx
+++ b/examples/auth-with-stytch/components/VerifyOTPForm.tsx
@@ -1,113 +1,113 @@
-import React from 'react'
-import styles from '../styles/Home.module.css'
-import { sendOTP } from '../lib/otpUtils'
-import { useRouter } from 'next/router'
+import React from "react";
+import styles from "../styles/Home.module.css";
+import { sendOTP } from "../lib/otpUtils";
+import { useRouter } from "next/router";
// Handles auto-tabbing to next passcode digit input.
// Logic inspired from https://stackoverflow.com/questions/15595652/focus-next-input-once-reaching-maxlength-value.
const autoTab = (target: HTMLInputElement, key?: string) => {
if (target.value.length >= target.maxLength) {
- let next = target
+ let next = target;
while ((next = next.nextElementSibling as HTMLInputElement)) {
- if (next == null) break
- if (next.tagName.toLowerCase() === 'input') {
- next?.focus()
- break
+ if (next == null) break;
+ if (next.tagName.toLowerCase() === "input") {
+ next?.focus();
+ break;
}
}
}
// Move to previous field if empty (user pressed backspace)
else if (target.value.length === 0) {
- let previous = target
+ let previous = target;
while ((previous = previous.previousElementSibling as HTMLInputElement)) {
- if (previous == null) break
- if (previous.tagName.toLowerCase() === 'input') {
- previous.focus()
- break
+ if (previous == null) break;
+ if (previous.tagName.toLowerCase() === "input") {
+ previous.focus();
+ break;
}
}
}
-}
+};
type Props = {
- methodId: string
- phoneNumber: string
-}
+ methodId: string;
+ phoneNumber: string;
+};
const VerifyOTPForm = (props: Props) => {
- const { methodId, phoneNumber } = props
- const [isDisabled, setIsDisabled] = React.useState(true)
- const [currentMethodId, setCurrentMethodId] = React.useState(methodId)
- const [isError, setIsError] = React.useState(false)
- const router = useRouter()
+ const { methodId, phoneNumber } = props;
+ const [isDisabled, setIsDisabled] = React.useState(true);
+ const [currentMethodId, setCurrentMethodId] = React.useState(methodId);
+ const [isError, setIsError] = React.useState(false);
+ const router = useRouter();
- const strippedNumber = phoneNumber.replace(/\D/g, '')
+ const strippedNumber = phoneNumber.replace(/\D/g, "");
const parsedPhoneNumber = `(${strippedNumber.slice(
0,
- 3
- )}) ${strippedNumber.slice(3, 6)}-${strippedNumber.slice(6, 10)}`
+ 3,
+ )}) ${strippedNumber.slice(3, 6)}-${strippedNumber.slice(6, 10)}`;
const isValidPasscode = () => {
- const regex = /^[0-9]$/g
- const inputs = document.getElementsByClassName(styles.passcodeInput)
+ const regex = /^[0-9]$/g;
+ const inputs = document.getElementsByClassName(styles.passcodeInput);
for (let i = 0; i < inputs.length; i++) {
if (!(inputs[i] as HTMLInputElement).value.match(regex)) {
- return false
+ return false;
}
}
- return true
- }
+ return true;
+ };
const onPasscodeDigitChange = () => {
if (isValidPasscode()) {
- setIsDisabled(false)
- setIsError(false)
+ setIsDisabled(false);
+ setIsError(false);
} else {
- setIsDisabled(true)
+ setIsDisabled(true);
}
- }
+ };
const resetPasscode = () => {
- const inputs = document.getElementsByClassName(styles.passcodeInput)
+ const inputs = document.getElementsByClassName(styles.passcodeInput);
for (let i = 0; i < inputs.length; i++) {
- ;(inputs[i] as HTMLInputElement).value = ''
+ (inputs[i] as HTMLInputElement).value = "";
}
- document.getElementById('digit-0')?.focus()
- setIsDisabled(true)
- }
+ document.getElementById("digit-0")?.focus();
+ setIsDisabled(true);
+ };
const resendCode = async () => {
- const methodId = await sendOTP(phoneNumber)
- setCurrentMethodId(methodId)
- resetPasscode()
- setIsError(false)
- }
+ const methodId = await sendOTP(phoneNumber);
+ setCurrentMethodId(methodId);
+ resetPasscode();
+ setIsError(false);
+ };
const onSubmit = async (e: React.FormEvent) => {
- e.preventDefault()
+ e.preventDefault();
if (isValidPasscode()) {
- let otpInput = ''
- const inputs = document.getElementsByClassName(styles.passcodeInput)
+ let otpInput = "";
+ const inputs = document.getElementsByClassName(styles.passcodeInput);
for (let i = 0; i < inputs.length; i++) {
- otpInput += (inputs[i] as HTMLInputElement).value
+ otpInput += (inputs[i] as HTMLInputElement).value;
}
- const resp = await fetch('/api/authenticate_otp', {
- method: 'POST',
+ const resp = await fetch("/api/authenticate_otp", {
+ method: "POST",
body: JSON.stringify({ otpInput, methodId: currentMethodId }),
- })
+ });
if (resp.status === 200) {
- router.push('/profile')
+ router.push("/profile");
} else {
- setIsError(true)
- resetPasscode()
+ setIsError(true);
+ resetPasscode();
}
}
- }
+ };
const renderPasscodeInputs = () => {
- const inputs = []
+ const inputs = [];
for (let i = 0; i < 6; i += 1) {
inputs.push(
{
placeholder="0"
size={1}
type="text"
- />
- )
+ />,
+ );
}
- return inputs
- }
+ return inputs;
+ };
return (
Enter passcode
- A 6-digit passcode was sent to you at{' '}
+ A 6-digit passcode was sent to you at{" "}
{parsedPhoneNumber} .