From 90a3f04718e3bf64da5714f24b7caa29d48590dc Mon Sep 17 00:00:00 2001 From: Jesus Manuel Olivas Date: Thu, 15 Aug 2024 11:26:54 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=9A=20fix:=20rename=20examples=20to=20?= =?UTF-8?q?starters=20(#101)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +- .../drupal/paragraph/ParagraphCodeBlock.tsx | 19 - .../drupal/paragraph/ParagraphText.tsx | 21 - .../paragraph/ParagraphViewReference.tsx | 27 - .../components/helpers/ComponentResolver.tsx | 78 --- .../remix-graphql/app/components/ui/Image.tsx | 33 - .../app/components/ui/RichText.tsx | 7 - .../remix-graphql/app/components/ui/types.ts | 13 - .../next}/.env.example | 11 +- .../next}/.eslintrc.json | 0 .../next-graphql => starters/next}/.gitignore | 0 .../next-graphql => starters/next}/.gitkeep | 0 .../next}/.vscode/settings.json | 0 .../next-graphql => starters/next}/README.md | 2 +- .../next}/app/[[...slug]]/page.tsx | 0 .../next}/app/favicon.ico | Bin .../next}/app/globals.css | 0 .../next}/app/layout.tsx | 0 .../next}/app/preview.css | 0 .../components/drupal/node/NodeArticle.tsx | 0 .../drupal/node/NodeArticleTeaser.tsx | 0 .../next}/components/drupal/node/NodePage.tsx | 0 .../drupal/paragraph/ParagraphCardGroup.tsx | 0 .../drupal/paragraph/ParagraphCodeBlock.tsx | 0 .../drupal/paragraph/ParagraphHero.tsx | 0 .../drupal/paragraph/ParagraphImage.tsx | 0 .../paragraph/ParagraphStaticComponent.tsx | 0 .../drupal/paragraph/ParagraphText.tsx | 0 .../paragraph/ParagraphViewReference.tsx | 0 .../components/drupal/taxonomy/TermTags.tsx | 0 .../components/drupal/view/BlogTeaser.tsx | 0 .../components/helpers/ComponentRenderer.tsx | 0 .../components/helpers/ComponentResolver.tsx | 0 .../next}/components/helpers/VisualEditor.tsx | 0 .../components/helpers/navigationEvents.tsx | 0 .../next}/components/ui/Avatar.tsx | 0 .../next}/components/ui/CardGroup.tsx | 0 .../next}/components/ui/CodeBlock.tsx | 0 .../next}/components/ui/Container.tsx | 0 .../next}/components/ui/Cover.tsx | 0 .../next}/components/ui/CoverImage.tsx | 0 .../next}/components/ui/Footer.tsx | 0 .../next}/components/ui/Header.tsx | 0 .../next}/components/ui/Heading.tsx | 0 .../next}/components/ui/Hero.tsx | 0 .../next}/components/ui/Image.tsx | 0 .../next}/components/ui/RichText.tsx | 0 .../next}/components/ui/types.ts | 0 .../next}/graphql/drupal/fragments/media.ts | 0 .../next}/graphql/drupal/fragments/metatag.ts | 0 .../next}/graphql/drupal/fragments/misc.ts | 0 .../next}/graphql/drupal/fragments/node.ts | 0 .../graphql/drupal/fragments/paragraph.ts | 0 .../next}/graphql/drupal/fragments/terms.ts | 0 .../next}/graphql/drupal/fragments/user.ts | 0 .../next}/graphql/drupal/helpers.ts | 0 .../next}/graphql/drupal/types.ts | 0 .../next}/graphql/gql.tada.cache.ts | 0 .../next}/graphql/gql.tada.instrospection.ts | 0 .../next}/graphql/gql.tada.ts | 0 .../next}/graphql/schema.graphql | 0 .../next}/middleware.ts | 0 .../next}/next.config.mjs | 0 .../next}/package.json | 0 .../next}/postcss.config.mjs | 0 .../next}/public/next.svg | 0 .../next}/public/vercel.svg | 0 .../next}/scripts/fragments.ts | 0 .../next}/scripts/sync.ts | 0 .../next}/tailwind.config.ts | 0 .../next}/tsconfig.json | 0 .../next}/utils/drupal/auth.ts | 0 .../next}/utils/drupal/client.ts | 0 .../next}/utils/drupal/routes.ts | 0 .../next-graphql => starters/next}/yarn.lock | 0 .../remix}/.dev.vars.example | 11 +- .../remix}/.eslintrc.cjs | 0 .../remix}/.gitignore | 0 .../remix}/.vscode/settings.json | 0 .../remix}/README.md | 2 +- .../components/drupal/node/NodeArticle.tsx | 0 .../drupal/node/NodeArticleTeaser.tsx | 0 .../app/components/drupal/node/NodePage.tsx | 0 .../drupal/paragraph/ViewReference.tsx | 31 + .../components/drupal/taxonomy/TermTags.tsx | 0 .../app/components/drupal/view/BlogTeaser.tsx | 2 +- .../components/helpers/ComponentRenderer.tsx | 7 +- .../components/helpers/ComponentResolver.tsx | 122 ++++ .../app/components/helpers/VisualEditor.tsx | 0 .../drupal/ParagraphCardGroupResolver.ts | 13 +- .../helpers/drupal/ParagraphHeroResolver.ts | 15 +- .../helpers/drupal/ParagraphImageResolver.ts | 13 +- .../drupal/ParagraphStaticComponentResover.ts | 16 +- .../helpers/drupal/ParagraphTextResolver.ts | 18 + .../drupal/ParagraphViewReferenceResolver.ts | 17 + .../app/components/helpers/drupal/index.ts | 6 + .../remix}/app/components/ui/Avatar.tsx | 4 +- .../remix}/app/components/ui/CardGroup.tsx | 36 +- .../remix}/app/components/ui/CodeBlock.tsx | 0 .../remix}/app/components/ui/Container.tsx | 0 .../remix}/app/components/ui/Cover.tsx | 3 +- .../remix}/app/components/ui/CoverImage.tsx | 3 +- .../remix}/app/components/ui/Footer.tsx | 0 .../remix}/app/components/ui/Header.tsx | 0 .../remix}/app/components/ui/Heading.tsx | 0 .../remix}/app/components/ui/Hero.tsx | 16 +- starters/remix/app/components/ui/Image.tsx | 54 ++ starters/remix/app/components/ui/RichText.tsx | 22 + starters/remix/app/components/ui/types.ts | 6 + .../remix}/app/entry.client.tsx | 0 .../remix}/app/entry.server.tsx | 0 .../app/graphql/drupal/fragments/media.ts | 0 .../app/graphql/drupal/fragments/metatag.ts | 0 .../app/graphql/drupal/fragments/misc.ts | 0 .../app/graphql/drupal/fragments/node.ts | 0 .../app/graphql/drupal/fragments/paragraph.ts | 0 .../app/graphql/drupal/fragments/terms.ts | 0 .../app/graphql/drupal/fragments/user.ts | 0 .../remix}/app/graphql/drupal/helpers.ts | 3 +- .../remix}/app/graphql/drupal/types.ts | 0 .../remix}/app/graphql/gql.tada.cache.ts | 0 .../app/graphql/gql.tada.instrospection.ts | 0 .../remix}/app/graphql/gql.tada.ts | 0 .../remix}/app/graphql/schema.graphql | 0 .../remix}/app/preview.css | 0 .../remix}/app/root.tsx | 0 .../remix}/app/routes/$.tsx | 10 +- .../remix}/app/routes/_index.tsx | 0 .../remix}/app/tailwind.css | 0 .../remix}/app/utils/drupal/auth.server.ts | 0 .../remix}/app/utils/drupal/client.server.ts | 0 .../remix}/app/utils/drupal/metatags.ts | 0 .../remix}/app/utils/drupal/routes.ts | 0 .../remix}/functions/[[path]].ts | 0 .../remix}/load-context.ts | 0 .../remix}/package.json | 2 + .../remix}/postcss.config.js | 0 .../remix}/prettier.config.js | 0 .../remix}/public/favicon.ico | Bin .../remix}/scripts/fragments.ts | 0 .../remix}/scripts/sync.ts | 0 .../remix}/tailwind.config.js | 0 .../remix}/tsconfig.json | 0 .../remix}/vite.config.ts | 4 +- .../remix}/yarn.lock | 597 +++++++++++++++++- 145 files changed, 967 insertions(+), 291 deletions(-) delete mode 100644 examples/remix-graphql/app/components/drupal/paragraph/ParagraphCodeBlock.tsx delete mode 100644 examples/remix-graphql/app/components/drupal/paragraph/ParagraphText.tsx delete mode 100644 examples/remix-graphql/app/components/drupal/paragraph/ParagraphViewReference.tsx delete mode 100644 examples/remix-graphql/app/components/helpers/ComponentResolver.tsx delete mode 100644 examples/remix-graphql/app/components/ui/Image.tsx delete mode 100644 examples/remix-graphql/app/components/ui/RichText.tsx delete mode 100644 examples/remix-graphql/app/components/ui/types.ts rename {examples/next-graphql => starters/next}/.env.example (67%) rename {examples/next-graphql => starters/next}/.eslintrc.json (100%) rename {examples/next-graphql => starters/next}/.gitignore (100%) rename {examples/next-graphql => starters/next}/.gitkeep (100%) rename {examples/next-graphql => starters/next}/.vscode/settings.json (100%) rename {examples/next-graphql => starters/next}/README.md (73%) rename {examples/next-graphql => starters/next}/app/[[...slug]]/page.tsx (100%) rename {examples/next-graphql => starters/next}/app/favicon.ico (100%) rename {examples/next-graphql => starters/next}/app/globals.css (100%) rename {examples/next-graphql => starters/next}/app/layout.tsx (100%) rename {examples/next-graphql => starters/next}/app/preview.css (100%) rename {examples/next-graphql => starters/next}/components/drupal/node/NodeArticle.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/node/NodeArticleTeaser.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/node/NodePage.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/paragraph/ParagraphCardGroup.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/paragraph/ParagraphCodeBlock.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/paragraph/ParagraphHero.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/paragraph/ParagraphImage.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/paragraph/ParagraphStaticComponent.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/paragraph/ParagraphText.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/paragraph/ParagraphViewReference.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/taxonomy/TermTags.tsx (100%) rename {examples/next-graphql => starters/next}/components/drupal/view/BlogTeaser.tsx (100%) rename {examples/next-graphql => starters/next}/components/helpers/ComponentRenderer.tsx (100%) rename {examples/next-graphql => starters/next}/components/helpers/ComponentResolver.tsx (100%) rename {examples/next-graphql => starters/next}/components/helpers/VisualEditor.tsx (100%) rename {examples/next-graphql => starters/next}/components/helpers/navigationEvents.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/Avatar.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/CardGroup.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/CodeBlock.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/Container.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/Cover.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/CoverImage.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/Footer.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/Header.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/Heading.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/Hero.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/Image.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/RichText.tsx (100%) rename {examples/next-graphql => starters/next}/components/ui/types.ts (100%) rename {examples/next-graphql => starters/next}/graphql/drupal/fragments/media.ts (100%) rename {examples/next-graphql => starters/next}/graphql/drupal/fragments/metatag.ts (100%) rename {examples/next-graphql => starters/next}/graphql/drupal/fragments/misc.ts (100%) rename {examples/next-graphql => starters/next}/graphql/drupal/fragments/node.ts (100%) rename {examples/next-graphql => starters/next}/graphql/drupal/fragments/paragraph.ts (100%) rename {examples/next-graphql => starters/next}/graphql/drupal/fragments/terms.ts (100%) rename {examples/next-graphql => starters/next}/graphql/drupal/fragments/user.ts (100%) rename {examples/next-graphql => starters/next}/graphql/drupal/helpers.ts (100%) rename {examples/next-graphql => starters/next}/graphql/drupal/types.ts (100%) rename {examples/next-graphql => starters/next}/graphql/gql.tada.cache.ts (100%) rename {examples/next-graphql => starters/next}/graphql/gql.tada.instrospection.ts (100%) rename {examples/next-graphql => starters/next}/graphql/gql.tada.ts (100%) rename {examples/next-graphql => starters/next}/graphql/schema.graphql (100%) rename {examples/next-graphql => starters/next}/middleware.ts (100%) rename {examples/next-graphql => starters/next}/next.config.mjs (100%) rename {examples/next-graphql => starters/next}/package.json (100%) rename {examples/next-graphql => starters/next}/postcss.config.mjs (100%) rename {examples/next-graphql => starters/next}/public/next.svg (100%) rename {examples/next-graphql => starters/next}/public/vercel.svg (100%) rename {examples/next-graphql => starters/next}/scripts/fragments.ts (100%) rename {examples/next-graphql => starters/next}/scripts/sync.ts (100%) rename {examples/next-graphql => starters/next}/tailwind.config.ts (100%) rename {examples/next-graphql => starters/next}/tsconfig.json (100%) rename {examples/next-graphql => starters/next}/utils/drupal/auth.ts (100%) rename {examples/next-graphql => starters/next}/utils/drupal/client.ts (100%) rename {examples/next-graphql => starters/next}/utils/drupal/routes.ts (100%) rename {examples/next-graphql => starters/next}/yarn.lock (100%) rename {examples/remix-graphql => starters/remix}/.dev.vars.example (67%) rename {examples/remix-graphql => starters/remix}/.eslintrc.cjs (100%) rename {examples/remix-graphql => starters/remix}/.gitignore (100%) rename {examples/remix-graphql => starters/remix}/.vscode/settings.json (100%) rename {examples/remix-graphql => starters/remix}/README.md (73%) rename {examples/remix-graphql => starters/remix}/app/components/drupal/node/NodeArticle.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/components/drupal/node/NodeArticleTeaser.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/components/drupal/node/NodePage.tsx (100%) create mode 100644 starters/remix/app/components/drupal/paragraph/ViewReference.tsx rename {examples/remix-graphql => starters/remix}/app/components/drupal/taxonomy/TermTags.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/components/drupal/view/BlogTeaser.tsx (92%) rename {examples/remix-graphql => starters/remix}/app/components/helpers/ComponentRenderer.tsx (79%) create mode 100644 starters/remix/app/components/helpers/ComponentResolver.tsx rename {examples/remix-graphql => starters/remix}/app/components/helpers/VisualEditor.tsx (100%) rename examples/remix-graphql/app/components/drupal/paragraph/ParagraphCardGroup.tsx => starters/remix/app/components/helpers/drupal/ParagraphCardGroupResolver.ts (67%) rename examples/remix-graphql/app/components/drupal/paragraph/ParagraphHero.tsx => starters/remix/app/components/helpers/drupal/ParagraphHeroResolver.ts (57%) rename examples/remix-graphql/app/components/drupal/paragraph/ParagraphImage.tsx => starters/remix/app/components/helpers/drupal/ParagraphImageResolver.ts (59%) rename examples/remix-graphql/app/components/drupal/paragraph/ParagraphStaticComponent.tsx => starters/remix/app/components/helpers/drupal/ParagraphStaticComponentResover.ts (59%) create mode 100644 starters/remix/app/components/helpers/drupal/ParagraphTextResolver.ts create mode 100644 starters/remix/app/components/helpers/drupal/ParagraphViewReferenceResolver.ts create mode 100644 starters/remix/app/components/helpers/drupal/index.ts rename {examples/remix-graphql => starters/remix}/app/components/ui/Avatar.tsx (83%) rename {examples/remix-graphql => starters/remix}/app/components/ui/CardGroup.tsx (60%) rename {examples/remix-graphql => starters/remix}/app/components/ui/CodeBlock.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/components/ui/Container.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/components/ui/Cover.tsx (91%) rename {examples/remix-graphql => starters/remix}/app/components/ui/CoverImage.tsx (92%) rename {examples/remix-graphql => starters/remix}/app/components/ui/Footer.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/components/ui/Header.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/components/ui/Heading.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/components/ui/Hero.tsx (64%) create mode 100644 starters/remix/app/components/ui/Image.tsx create mode 100644 starters/remix/app/components/ui/RichText.tsx create mode 100644 starters/remix/app/components/ui/types.ts rename {examples/remix-graphql => starters/remix}/app/entry.client.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/entry.server.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/drupal/fragments/media.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/drupal/fragments/metatag.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/drupal/fragments/misc.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/drupal/fragments/node.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/drupal/fragments/paragraph.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/drupal/fragments/terms.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/drupal/fragments/user.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/drupal/helpers.ts (88%) rename {examples/remix-graphql => starters/remix}/app/graphql/drupal/types.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/gql.tada.cache.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/gql.tada.instrospection.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/gql.tada.ts (100%) rename {examples/remix-graphql => starters/remix}/app/graphql/schema.graphql (100%) rename {examples/remix-graphql => starters/remix}/app/preview.css (100%) rename {examples/remix-graphql => starters/remix}/app/root.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/routes/$.tsx (88%) rename {examples/remix-graphql => starters/remix}/app/routes/_index.tsx (100%) rename {examples/remix-graphql => starters/remix}/app/tailwind.css (100%) rename {examples/remix-graphql => starters/remix}/app/utils/drupal/auth.server.ts (100%) rename {examples/remix-graphql => starters/remix}/app/utils/drupal/client.server.ts (100%) rename {examples/remix-graphql => starters/remix}/app/utils/drupal/metatags.ts (100%) rename {examples/remix-graphql => starters/remix}/app/utils/drupal/routes.ts (100%) rename {examples/remix-graphql => starters/remix}/functions/[[path]].ts (100%) rename {examples/remix-graphql => starters/remix}/load-context.ts (100%) rename {examples/remix-graphql => starters/remix}/package.json (96%) rename {examples/remix-graphql => starters/remix}/postcss.config.js (100%) rename {examples/remix-graphql => starters/remix}/prettier.config.js (100%) rename {examples/remix-graphql => starters/remix}/public/favicon.ico (100%) rename {examples/remix-graphql => starters/remix}/scripts/fragments.ts (100%) rename {examples/remix-graphql => starters/remix}/scripts/sync.ts (100%) rename {examples/remix-graphql => starters/remix}/tailwind.config.js (100%) rename {examples/remix-graphql => starters/remix}/tsconfig.json (100%) rename {examples/remix-graphql => starters/remix}/vite.config.ts (74%) rename {examples/remix-graphql => starters/remix}/yarn.lock (93%) diff --git a/README.md b/README.md index ad8fc19..4bcef58 100644 --- a/README.md +++ b/README.md @@ -2,21 +2,21 @@ Using Drupal as a headless CMS with a Decoupled front-end implementation is a great way to get an enterprise-quality CMS, paired with a great modern development experience using Remix, Next.js, Astro and/or others. -Discover the power of Drupal as a headless CMS with our quickstart ready to use and step-by-step guides and examples. +Discover the power of Drupal as a headless CMS with our quickstart ready to use and step-by-step guides. ## Getting Started Visit the [docs](https://drupal-decoupled.octahedroid.com/) to see how to use this project. ### Quickstart -- [Decoupled Drupal GraphQL Example](https://drupal-decoupled.octahedroid.com/docs/getting-started/examples/drupal-graphql) -- [Integration: Remix](https://drupal-decoupled.octahedroid.com/docs/getting-started/examples/remix-graphql) -- [Integration: Next.js](https://drupal-decoupled.octahedroid.com/docs/getting-started/examples/next-graphql) +- [Drupal](https://drupal-decoupled.octahedroid.com/docs/getting-started/quickstart/drupal) +- [Remix](https://drupal-decoupled.octahedroid.com/docs/getting-started/quickstart/remix) +- [Next.js](https://drupal-decoupled.octahedroid.com/docs/getting-started/quickstart/next) ### Step by step -- [Drupal](https://drupal-decoupled.octahedroid.com/docs/category/drupal) -- [Remix](https://drupal-decoupled.octahedroid.com/docs/getting-started/frontend/remix) -- [Next.js](https://drupal-decoupled.octahedroid.com/docs/getting-started/frontend/next) +- [Drupal](https://drupal-decoupled.octahedroid.com/docs/getting-started/step-by-step/drupal) +- [Remix](https://drupal-decoupled.octahedroid.com/docs/getting-started/step-by-step/starters/remix) +- [Next.js](https://drupal-decoupled.octahedroid.com/docs/getting-started/step-by-step/starters/next) ## Supporting organizations diff --git a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphCodeBlock.tsx b/examples/remix-graphql/app/components/drupal/paragraph/ParagraphCodeBlock.tsx deleted file mode 100644 index ef818bf..0000000 --- a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphCodeBlock.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FragmentOf, readFragment } from "gql.tada"; -import { ParagraphCodeBlockFragment } from "~/graphql/drupal/fragments/paragraph"; -import CodeBlock from "~/components/ui/CodeBlock"; - -interface ParagraphCodeBlockProps { - paragraph: FragmentOf -} - -export default function ParagraphCodeBlock({ paragraph }: ParagraphCodeBlockProps) { - const { titleOptional, code, language, showLineNumbers } = readFragment(ParagraphCodeBlockFragment, paragraph) - return ( - - ); -} \ No newline at end of file diff --git a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphText.tsx b/examples/remix-graphql/app/components/drupal/paragraph/ParagraphText.tsx deleted file mode 100644 index 278d6ae..0000000 --- a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphText.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { FragmentOf, readFragment } from "gql.tada"; -import { TextFragment } from "~/graphql/drupal/fragments/misc"; -import { ParagraphTextFragment } from "~/graphql/drupal/fragments/paragraph"; -import RichText from "~/components/ui/RichText"; -import Heading from "~/components/ui/Heading"; - -interface ParagraphTextProps { - paragraph: FragmentOf -} - -export default function ParagraphText({ paragraph } : ParagraphTextProps) { - const { title, textRich } = readFragment(ParagraphTextFragment, paragraph); - const textFragment = readFragment(TextFragment, textRich) - - return ( - <> - {title} - - - ); -} diff --git a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphViewReference.tsx b/examples/remix-graphql/app/components/drupal/paragraph/ParagraphViewReference.tsx deleted file mode 100644 index 52a185f..0000000 --- a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphViewReference.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { FragmentOf, readFragment } from "gql.tada"; -import { ParagraphViewReferenceFragment } from "~/graphql/drupal/fragments/paragraph"; -import BlogTeaser from "~/components/drupal/view/BlogTeaser"; -import { NodeArticleTeaserFragment } from "~/graphql/drupal/fragments/node"; -interface ParagraphViewReferenceProps { - paragraph: FragmentOf -} - -export default function ParagraphViewReference({ paragraph } : ParagraphViewReferenceProps) { - const { reference: { view, display, results } } = readFragment(ParagraphViewReferenceFragment, paragraph); - - if (view === 'blog' && display === 'blog_teaser') { - return ( - // @todo fix use of NodeArticleTeaserFragment - >} /> - ); - } - - return ( - <> -

ParagraphViewReference

-
-        {JSON.stringify({ view, display, results }, null, 2)}
-      
- - ); -} diff --git a/examples/remix-graphql/app/components/helpers/ComponentResolver.tsx b/examples/remix-graphql/app/components/helpers/ComponentResolver.tsx deleted file mode 100644 index 5c62232..0000000 --- a/examples/remix-graphql/app/components/helpers/ComponentResolver.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { FragmentOf, readFragment } from "gql.tada"; - -// Drupal -import ParagraphHero from "~/components/drupal/paragraph/ParagraphHero"; -import ParagraphCardGroup from "~/components/drupal/paragraph/ParagraphCardGroup"; -import ParagraphText from "~/components/drupal/paragraph/ParagraphText"; -import ParagraphImage from "~/components/drupal/paragraph/ParagraphImage"; -import ParagraphCodeBlock from "~/components/drupal/paragraph/ParagraphCodeBlock"; -import ParagraphStaticComponent from "~/components/drupal/paragraph/ParagraphStaticComponent"; -import ParagraphViewReference from "~/components/drupal/paragraph/ParagraphViewReference"; - -import { - ParagraphHeroFragment, - ParagraphCardGroupFragment, - ParagraphCodeBlockFragment, - ParagraphImageFragment, - ParagraphTextFragment, - ParagraphStaticComponentFragment, - ParagraphUnionFragment, - ParagraphViewReferenceFragment, -} from "~/graphql/drupal/fragments/paragraph"; - -type ParagraphFragmentType = - FragmentOf | - FragmentOf | - FragmentOf | - FragmentOf | - FragmentOf | - FragmentOf | - FragmentOf; - -interface ResolveProps { - data: FragmentOf[] | null; -} - -const calculateComponent = function (type: string, paragraph: ParagraphFragmentType): JSX.Element { - if (type === 'ParagraphHero') { - return } />; - } - if (type === 'ParagraphCardGroup') { - return } />; - } - if (type === 'ParagraphText') { - return } />; - } - if (type === 'ParagraphImage') { - return } />; - } - if (type === 'ParagraphCodeBlock') { - return } />; - } - if (type === 'ParagraphStaticComponent') { - return } />; - } - if (type === 'ParagraphViewReference') { - return } />; - } - - return <>{JSON.stringify(paragraph, null, 2)}; -} - -export const resolve = ({data = []}: ResolveProps) => { - if (!data) { - return [] - } - - const paragraphUnionFragment = readFragment(ParagraphUnionFragment, data); - - return paragraphUnionFragment.map((paragraph) => { - const type = paragraph.__typename; - - if (!type || type === "ParagraphCard") { - return <>; - } - - return calculateComponent(type, paragraph); - }); -}; diff --git a/examples/remix-graphql/app/components/ui/Image.tsx b/examples/remix-graphql/app/components/ui/Image.tsx deleted file mode 100644 index 808ca0e..0000000 --- a/examples/remix-graphql/app/components/ui/Image.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { ImageType } from "./types"; - -type ImageProps = { - variant?: "primary"; - style?: React.CSSProperties; -} & ImageType; - -export default function Image({ - url, - alt = "Enter Image Alt", - width, - height, - className, - title, - variant = "primary", style }: ImageProps) { - const wrapperClass = { - primary: "flex items-center justify-center", - }; - - return ( -
- {alt} -
- ); -} diff --git a/examples/remix-graphql/app/components/ui/RichText.tsx b/examples/remix-graphql/app/components/ui/RichText.tsx deleted file mode 100644 index ae63552..0000000 --- a/examples/remix-graphql/app/components/ui/RichText.tsx +++ /dev/null @@ -1,7 +0,0 @@ -export default function RichText({ content }: { content: string}) { - return ( -
-
-
- ); -} diff --git a/examples/remix-graphql/app/components/ui/types.ts b/examples/remix-graphql/app/components/ui/types.ts deleted file mode 100644 index 7f9e9bd..0000000 --- a/examples/remix-graphql/app/components/ui/types.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type ImageType = { - url: string; - alt: string; - title: string | null; - width: number | string | null; - height: number | string | null; - className: string | null; -} - -export type UserType = { - name: string; - picture: ImageType; -} diff --git a/examples/next-graphql/.env.example b/starters/next/.env.example similarity index 67% rename from examples/next-graphql/.env.example rename to starters/next/.env.example index c116e19..a3088c4 100644 --- a/examples/next-graphql/.env.example +++ b/starters/next/.env.example @@ -1,8 +1,8 @@ # use your site url and comment adding # to the orther # ddev -DRUPAL_AUTH_URI=http://drupal-graphql-example.ddev.site +DRUPAL_AUTH_URI=http://drupal-decoupled.ddev.site # lando -# DRUPAL_AUTH_URI=http://drupal-graphql-example.lndo.site +# DRUPAL_AUTH_URI=http://drupal-decoupled.lndo.site # You can use the previously generated `DRUPAL_CLIENT_ID` and `DRUPAL_CLIENT_SECRET` values shown on the CLI or as a warning message. # You can reuse the previously generated Consumers at the site by visiting `admin/config/services/consumer` to edit the consumers labeled as `Viewer` & `Previewer` and assigning them a new secret value. @@ -12,12 +12,9 @@ DRUPAL_CLIENT_SECRET= # use your site url and comment adding # to the orther # ddev -DRUPAL_GRAPHQL_URI=http://drupal-graphql-example.ddev.site/graphql +DRUPAL_GRAPHQL_URI=http://drupal-decoupled.ddev.site/graphql # lando -# DRUPAL_GRAPHQL_URI=http://drupal-graphql-example.lndo.site/graphql +# DRUPAL_GRAPHQL_URI=http://drupal-decoupled.lndo.site/graphql # use preview or production ENVIRONMENT=preview - -# use your node version -NODE_VERSION=v20.10.0 diff --git a/examples/next-graphql/.eslintrc.json b/starters/next/.eslintrc.json similarity index 100% rename from examples/next-graphql/.eslintrc.json rename to starters/next/.eslintrc.json diff --git a/examples/next-graphql/.gitignore b/starters/next/.gitignore similarity index 100% rename from examples/next-graphql/.gitignore rename to starters/next/.gitignore diff --git a/examples/next-graphql/.gitkeep b/starters/next/.gitkeep similarity index 100% rename from examples/next-graphql/.gitkeep rename to starters/next/.gitkeep diff --git a/examples/next-graphql/.vscode/settings.json b/starters/next/.vscode/settings.json similarity index 100% rename from examples/next-graphql/.vscode/settings.json rename to starters/next/.vscode/settings.json diff --git a/examples/next-graphql/README.md b/starters/next/README.md similarity index 73% rename from examples/next-graphql/README.md rename to starters/next/README.md index 0a66774..987c188 100644 --- a/examples/next-graphql/README.md +++ b/starters/next/README.md @@ -2,7 +2,7 @@ ## Getting Started -Visit the docs to see how to use this [Next.js](https://drupal-decoupled.octahedroid.com/docs/getting-started/examples/next-graphql) project. +Visit the docs to see how to use this [Next.js](https://drupal-decoupled.octahedroid.com/docs/getting-started/quickstart/next) starter. ## Supporting organizations diff --git a/examples/next-graphql/app/[[...slug]]/page.tsx b/starters/next/app/[[...slug]]/page.tsx similarity index 100% rename from examples/next-graphql/app/[[...slug]]/page.tsx rename to starters/next/app/[[...slug]]/page.tsx diff --git a/examples/next-graphql/app/favicon.ico b/starters/next/app/favicon.ico similarity index 100% rename from examples/next-graphql/app/favicon.ico rename to starters/next/app/favicon.ico diff --git a/examples/next-graphql/app/globals.css b/starters/next/app/globals.css similarity index 100% rename from examples/next-graphql/app/globals.css rename to starters/next/app/globals.css diff --git a/examples/next-graphql/app/layout.tsx b/starters/next/app/layout.tsx similarity index 100% rename from examples/next-graphql/app/layout.tsx rename to starters/next/app/layout.tsx diff --git a/examples/next-graphql/app/preview.css b/starters/next/app/preview.css similarity index 100% rename from examples/next-graphql/app/preview.css rename to starters/next/app/preview.css diff --git a/examples/next-graphql/components/drupal/node/NodeArticle.tsx b/starters/next/components/drupal/node/NodeArticle.tsx similarity index 100% rename from examples/next-graphql/components/drupal/node/NodeArticle.tsx rename to starters/next/components/drupal/node/NodeArticle.tsx diff --git a/examples/next-graphql/components/drupal/node/NodeArticleTeaser.tsx b/starters/next/components/drupal/node/NodeArticleTeaser.tsx similarity index 100% rename from examples/next-graphql/components/drupal/node/NodeArticleTeaser.tsx rename to starters/next/components/drupal/node/NodeArticleTeaser.tsx diff --git a/examples/next-graphql/components/drupal/node/NodePage.tsx b/starters/next/components/drupal/node/NodePage.tsx similarity index 100% rename from examples/next-graphql/components/drupal/node/NodePage.tsx rename to starters/next/components/drupal/node/NodePage.tsx diff --git a/examples/next-graphql/components/drupal/paragraph/ParagraphCardGroup.tsx b/starters/next/components/drupal/paragraph/ParagraphCardGroup.tsx similarity index 100% rename from examples/next-graphql/components/drupal/paragraph/ParagraphCardGroup.tsx rename to starters/next/components/drupal/paragraph/ParagraphCardGroup.tsx diff --git a/examples/next-graphql/components/drupal/paragraph/ParagraphCodeBlock.tsx b/starters/next/components/drupal/paragraph/ParagraphCodeBlock.tsx similarity index 100% rename from examples/next-graphql/components/drupal/paragraph/ParagraphCodeBlock.tsx rename to starters/next/components/drupal/paragraph/ParagraphCodeBlock.tsx diff --git a/examples/next-graphql/components/drupal/paragraph/ParagraphHero.tsx b/starters/next/components/drupal/paragraph/ParagraphHero.tsx similarity index 100% rename from examples/next-graphql/components/drupal/paragraph/ParagraphHero.tsx rename to starters/next/components/drupal/paragraph/ParagraphHero.tsx diff --git a/examples/next-graphql/components/drupal/paragraph/ParagraphImage.tsx b/starters/next/components/drupal/paragraph/ParagraphImage.tsx similarity index 100% rename from examples/next-graphql/components/drupal/paragraph/ParagraphImage.tsx rename to starters/next/components/drupal/paragraph/ParagraphImage.tsx diff --git a/examples/next-graphql/components/drupal/paragraph/ParagraphStaticComponent.tsx b/starters/next/components/drupal/paragraph/ParagraphStaticComponent.tsx similarity index 100% rename from examples/next-graphql/components/drupal/paragraph/ParagraphStaticComponent.tsx rename to starters/next/components/drupal/paragraph/ParagraphStaticComponent.tsx diff --git a/examples/next-graphql/components/drupal/paragraph/ParagraphText.tsx b/starters/next/components/drupal/paragraph/ParagraphText.tsx similarity index 100% rename from examples/next-graphql/components/drupal/paragraph/ParagraphText.tsx rename to starters/next/components/drupal/paragraph/ParagraphText.tsx diff --git a/examples/next-graphql/components/drupal/paragraph/ParagraphViewReference.tsx b/starters/next/components/drupal/paragraph/ParagraphViewReference.tsx similarity index 100% rename from examples/next-graphql/components/drupal/paragraph/ParagraphViewReference.tsx rename to starters/next/components/drupal/paragraph/ParagraphViewReference.tsx diff --git a/examples/next-graphql/components/drupal/taxonomy/TermTags.tsx b/starters/next/components/drupal/taxonomy/TermTags.tsx similarity index 100% rename from examples/next-graphql/components/drupal/taxonomy/TermTags.tsx rename to starters/next/components/drupal/taxonomy/TermTags.tsx diff --git a/examples/next-graphql/components/drupal/view/BlogTeaser.tsx b/starters/next/components/drupal/view/BlogTeaser.tsx similarity index 100% rename from examples/next-graphql/components/drupal/view/BlogTeaser.tsx rename to starters/next/components/drupal/view/BlogTeaser.tsx diff --git a/examples/next-graphql/components/helpers/ComponentRenderer.tsx b/starters/next/components/helpers/ComponentRenderer.tsx similarity index 100% rename from examples/next-graphql/components/helpers/ComponentRenderer.tsx rename to starters/next/components/helpers/ComponentRenderer.tsx diff --git a/examples/next-graphql/components/helpers/ComponentResolver.tsx b/starters/next/components/helpers/ComponentResolver.tsx similarity index 100% rename from examples/next-graphql/components/helpers/ComponentResolver.tsx rename to starters/next/components/helpers/ComponentResolver.tsx diff --git a/examples/next-graphql/components/helpers/VisualEditor.tsx b/starters/next/components/helpers/VisualEditor.tsx similarity index 100% rename from examples/next-graphql/components/helpers/VisualEditor.tsx rename to starters/next/components/helpers/VisualEditor.tsx diff --git a/examples/next-graphql/components/helpers/navigationEvents.tsx b/starters/next/components/helpers/navigationEvents.tsx similarity index 100% rename from examples/next-graphql/components/helpers/navigationEvents.tsx rename to starters/next/components/helpers/navigationEvents.tsx diff --git a/examples/next-graphql/components/ui/Avatar.tsx b/starters/next/components/ui/Avatar.tsx similarity index 100% rename from examples/next-graphql/components/ui/Avatar.tsx rename to starters/next/components/ui/Avatar.tsx diff --git a/examples/next-graphql/components/ui/CardGroup.tsx b/starters/next/components/ui/CardGroup.tsx similarity index 100% rename from examples/next-graphql/components/ui/CardGroup.tsx rename to starters/next/components/ui/CardGroup.tsx diff --git a/examples/next-graphql/components/ui/CodeBlock.tsx b/starters/next/components/ui/CodeBlock.tsx similarity index 100% rename from examples/next-graphql/components/ui/CodeBlock.tsx rename to starters/next/components/ui/CodeBlock.tsx diff --git a/examples/next-graphql/components/ui/Container.tsx b/starters/next/components/ui/Container.tsx similarity index 100% rename from examples/next-graphql/components/ui/Container.tsx rename to starters/next/components/ui/Container.tsx diff --git a/examples/next-graphql/components/ui/Cover.tsx b/starters/next/components/ui/Cover.tsx similarity index 100% rename from examples/next-graphql/components/ui/Cover.tsx rename to starters/next/components/ui/Cover.tsx diff --git a/examples/next-graphql/components/ui/CoverImage.tsx b/starters/next/components/ui/CoverImage.tsx similarity index 100% rename from examples/next-graphql/components/ui/CoverImage.tsx rename to starters/next/components/ui/CoverImage.tsx diff --git a/examples/next-graphql/components/ui/Footer.tsx b/starters/next/components/ui/Footer.tsx similarity index 100% rename from examples/next-graphql/components/ui/Footer.tsx rename to starters/next/components/ui/Footer.tsx diff --git a/examples/next-graphql/components/ui/Header.tsx b/starters/next/components/ui/Header.tsx similarity index 100% rename from examples/next-graphql/components/ui/Header.tsx rename to starters/next/components/ui/Header.tsx diff --git a/examples/next-graphql/components/ui/Heading.tsx b/starters/next/components/ui/Heading.tsx similarity index 100% rename from examples/next-graphql/components/ui/Heading.tsx rename to starters/next/components/ui/Heading.tsx diff --git a/examples/next-graphql/components/ui/Hero.tsx b/starters/next/components/ui/Hero.tsx similarity index 100% rename from examples/next-graphql/components/ui/Hero.tsx rename to starters/next/components/ui/Hero.tsx diff --git a/examples/next-graphql/components/ui/Image.tsx b/starters/next/components/ui/Image.tsx similarity index 100% rename from examples/next-graphql/components/ui/Image.tsx rename to starters/next/components/ui/Image.tsx diff --git a/examples/next-graphql/components/ui/RichText.tsx b/starters/next/components/ui/RichText.tsx similarity index 100% rename from examples/next-graphql/components/ui/RichText.tsx rename to starters/next/components/ui/RichText.tsx diff --git a/examples/next-graphql/components/ui/types.ts b/starters/next/components/ui/types.ts similarity index 100% rename from examples/next-graphql/components/ui/types.ts rename to starters/next/components/ui/types.ts diff --git a/examples/next-graphql/graphql/drupal/fragments/media.ts b/starters/next/graphql/drupal/fragments/media.ts similarity index 100% rename from examples/next-graphql/graphql/drupal/fragments/media.ts rename to starters/next/graphql/drupal/fragments/media.ts diff --git a/examples/next-graphql/graphql/drupal/fragments/metatag.ts b/starters/next/graphql/drupal/fragments/metatag.ts similarity index 100% rename from examples/next-graphql/graphql/drupal/fragments/metatag.ts rename to starters/next/graphql/drupal/fragments/metatag.ts diff --git a/examples/next-graphql/graphql/drupal/fragments/misc.ts b/starters/next/graphql/drupal/fragments/misc.ts similarity index 100% rename from examples/next-graphql/graphql/drupal/fragments/misc.ts rename to starters/next/graphql/drupal/fragments/misc.ts diff --git a/examples/next-graphql/graphql/drupal/fragments/node.ts b/starters/next/graphql/drupal/fragments/node.ts similarity index 100% rename from examples/next-graphql/graphql/drupal/fragments/node.ts rename to starters/next/graphql/drupal/fragments/node.ts diff --git a/examples/next-graphql/graphql/drupal/fragments/paragraph.ts b/starters/next/graphql/drupal/fragments/paragraph.ts similarity index 100% rename from examples/next-graphql/graphql/drupal/fragments/paragraph.ts rename to starters/next/graphql/drupal/fragments/paragraph.ts diff --git a/examples/next-graphql/graphql/drupal/fragments/terms.ts b/starters/next/graphql/drupal/fragments/terms.ts similarity index 100% rename from examples/next-graphql/graphql/drupal/fragments/terms.ts rename to starters/next/graphql/drupal/fragments/terms.ts diff --git a/examples/next-graphql/graphql/drupal/fragments/user.ts b/starters/next/graphql/drupal/fragments/user.ts similarity index 100% rename from examples/next-graphql/graphql/drupal/fragments/user.ts rename to starters/next/graphql/drupal/fragments/user.ts diff --git a/examples/next-graphql/graphql/drupal/helpers.ts b/starters/next/graphql/drupal/helpers.ts similarity index 100% rename from examples/next-graphql/graphql/drupal/helpers.ts rename to starters/next/graphql/drupal/helpers.ts diff --git a/examples/next-graphql/graphql/drupal/types.ts b/starters/next/graphql/drupal/types.ts similarity index 100% rename from examples/next-graphql/graphql/drupal/types.ts rename to starters/next/graphql/drupal/types.ts diff --git a/examples/next-graphql/graphql/gql.tada.cache.ts b/starters/next/graphql/gql.tada.cache.ts similarity index 100% rename from examples/next-graphql/graphql/gql.tada.cache.ts rename to starters/next/graphql/gql.tada.cache.ts diff --git a/examples/next-graphql/graphql/gql.tada.instrospection.ts b/starters/next/graphql/gql.tada.instrospection.ts similarity index 100% rename from examples/next-graphql/graphql/gql.tada.instrospection.ts rename to starters/next/graphql/gql.tada.instrospection.ts diff --git a/examples/next-graphql/graphql/gql.tada.ts b/starters/next/graphql/gql.tada.ts similarity index 100% rename from examples/next-graphql/graphql/gql.tada.ts rename to starters/next/graphql/gql.tada.ts diff --git a/examples/next-graphql/graphql/schema.graphql b/starters/next/graphql/schema.graphql similarity index 100% rename from examples/next-graphql/graphql/schema.graphql rename to starters/next/graphql/schema.graphql diff --git a/examples/next-graphql/middleware.ts b/starters/next/middleware.ts similarity index 100% rename from examples/next-graphql/middleware.ts rename to starters/next/middleware.ts diff --git a/examples/next-graphql/next.config.mjs b/starters/next/next.config.mjs similarity index 100% rename from examples/next-graphql/next.config.mjs rename to starters/next/next.config.mjs diff --git a/examples/next-graphql/package.json b/starters/next/package.json similarity index 100% rename from examples/next-graphql/package.json rename to starters/next/package.json diff --git a/examples/next-graphql/postcss.config.mjs b/starters/next/postcss.config.mjs similarity index 100% rename from examples/next-graphql/postcss.config.mjs rename to starters/next/postcss.config.mjs diff --git a/examples/next-graphql/public/next.svg b/starters/next/public/next.svg similarity index 100% rename from examples/next-graphql/public/next.svg rename to starters/next/public/next.svg diff --git a/examples/next-graphql/public/vercel.svg b/starters/next/public/vercel.svg similarity index 100% rename from examples/next-graphql/public/vercel.svg rename to starters/next/public/vercel.svg diff --git a/examples/next-graphql/scripts/fragments.ts b/starters/next/scripts/fragments.ts similarity index 100% rename from examples/next-graphql/scripts/fragments.ts rename to starters/next/scripts/fragments.ts diff --git a/examples/next-graphql/scripts/sync.ts b/starters/next/scripts/sync.ts similarity index 100% rename from examples/next-graphql/scripts/sync.ts rename to starters/next/scripts/sync.ts diff --git a/examples/next-graphql/tailwind.config.ts b/starters/next/tailwind.config.ts similarity index 100% rename from examples/next-graphql/tailwind.config.ts rename to starters/next/tailwind.config.ts diff --git a/examples/next-graphql/tsconfig.json b/starters/next/tsconfig.json similarity index 100% rename from examples/next-graphql/tsconfig.json rename to starters/next/tsconfig.json diff --git a/examples/next-graphql/utils/drupal/auth.ts b/starters/next/utils/drupal/auth.ts similarity index 100% rename from examples/next-graphql/utils/drupal/auth.ts rename to starters/next/utils/drupal/auth.ts diff --git a/examples/next-graphql/utils/drupal/client.ts b/starters/next/utils/drupal/client.ts similarity index 100% rename from examples/next-graphql/utils/drupal/client.ts rename to starters/next/utils/drupal/client.ts diff --git a/examples/next-graphql/utils/drupal/routes.ts b/starters/next/utils/drupal/routes.ts similarity index 100% rename from examples/next-graphql/utils/drupal/routes.ts rename to starters/next/utils/drupal/routes.ts diff --git a/examples/next-graphql/yarn.lock b/starters/next/yarn.lock similarity index 100% rename from examples/next-graphql/yarn.lock rename to starters/next/yarn.lock diff --git a/examples/remix-graphql/.dev.vars.example b/starters/remix/.dev.vars.example similarity index 67% rename from examples/remix-graphql/.dev.vars.example rename to starters/remix/.dev.vars.example index c116e19..a3088c4 100644 --- a/examples/remix-graphql/.dev.vars.example +++ b/starters/remix/.dev.vars.example @@ -1,8 +1,8 @@ # use your site url and comment adding # to the orther # ddev -DRUPAL_AUTH_URI=http://drupal-graphql-example.ddev.site +DRUPAL_AUTH_URI=http://drupal-decoupled.ddev.site # lando -# DRUPAL_AUTH_URI=http://drupal-graphql-example.lndo.site +# DRUPAL_AUTH_URI=http://drupal-decoupled.lndo.site # You can use the previously generated `DRUPAL_CLIENT_ID` and `DRUPAL_CLIENT_SECRET` values shown on the CLI or as a warning message. # You can reuse the previously generated Consumers at the site by visiting `admin/config/services/consumer` to edit the consumers labeled as `Viewer` & `Previewer` and assigning them a new secret value. @@ -12,12 +12,9 @@ DRUPAL_CLIENT_SECRET= # use your site url and comment adding # to the orther # ddev -DRUPAL_GRAPHQL_URI=http://drupal-graphql-example.ddev.site/graphql +DRUPAL_GRAPHQL_URI=http://drupal-decoupled.ddev.site/graphql # lando -# DRUPAL_GRAPHQL_URI=http://drupal-graphql-example.lndo.site/graphql +# DRUPAL_GRAPHQL_URI=http://drupal-decoupled.lndo.site/graphql # use preview or production ENVIRONMENT=preview - -# use your node version -NODE_VERSION=v20.10.0 diff --git a/examples/remix-graphql/.eslintrc.cjs b/starters/remix/.eslintrc.cjs similarity index 100% rename from examples/remix-graphql/.eslintrc.cjs rename to starters/remix/.eslintrc.cjs diff --git a/examples/remix-graphql/.gitignore b/starters/remix/.gitignore similarity index 100% rename from examples/remix-graphql/.gitignore rename to starters/remix/.gitignore diff --git a/examples/remix-graphql/.vscode/settings.json b/starters/remix/.vscode/settings.json similarity index 100% rename from examples/remix-graphql/.vscode/settings.json rename to starters/remix/.vscode/settings.json diff --git a/examples/remix-graphql/README.md b/starters/remix/README.md similarity index 73% rename from examples/remix-graphql/README.md rename to starters/remix/README.md index 85eab43..3e24704 100644 --- a/examples/remix-graphql/README.md +++ b/starters/remix/README.md @@ -2,7 +2,7 @@ ## Getting Started -Visit the docs to see how to use this [Remix](https://drupal-decoupled.octahedroid.com/docs/getting-started/examples/remix-graphql) project. +Visit the docs to see how to use this [Remix](https://drupal-decoupled.octahedroid.com/docs/getting-started/quickstart/remix) starter. ## Supporting organizations diff --git a/examples/remix-graphql/app/components/drupal/node/NodeArticle.tsx b/starters/remix/app/components/drupal/node/NodeArticle.tsx similarity index 100% rename from examples/remix-graphql/app/components/drupal/node/NodeArticle.tsx rename to starters/remix/app/components/drupal/node/NodeArticle.tsx diff --git a/examples/remix-graphql/app/components/drupal/node/NodeArticleTeaser.tsx b/starters/remix/app/components/drupal/node/NodeArticleTeaser.tsx similarity index 100% rename from examples/remix-graphql/app/components/drupal/node/NodeArticleTeaser.tsx rename to starters/remix/app/components/drupal/node/NodeArticleTeaser.tsx diff --git a/examples/remix-graphql/app/components/drupal/node/NodePage.tsx b/starters/remix/app/components/drupal/node/NodePage.tsx similarity index 100% rename from examples/remix-graphql/app/components/drupal/node/NodePage.tsx rename to starters/remix/app/components/drupal/node/NodePage.tsx diff --git a/starters/remix/app/components/drupal/paragraph/ViewReference.tsx b/starters/remix/app/components/drupal/paragraph/ViewReference.tsx new file mode 100644 index 0000000..3a3d9d1 --- /dev/null +++ b/starters/remix/app/components/drupal/paragraph/ViewReference.tsx @@ -0,0 +1,31 @@ +import BlogTeaser from "~/components/drupal/view/BlogTeaser"; + +export type ViewReferenceProps = { + view: string; + display: string; + results?: []; +} + +export const ViewReferenceDefaultProps: ViewReferenceProps = { + view: '', + display: '', + results: [] || null, +} + +export default function ViewReference({ view, display, results = [] } : ViewReferenceProps) { + + if (view === 'blog' && display === 'blog_teaser') { + return ( + + ); + } + + return ( + <> +

ViewReference

+
+        {JSON.stringify({ view, display, results }, null, 2)}
+      
+ + ); +} diff --git a/examples/remix-graphql/app/components/drupal/taxonomy/TermTags.tsx b/starters/remix/app/components/drupal/taxonomy/TermTags.tsx similarity index 100% rename from examples/remix-graphql/app/components/drupal/taxonomy/TermTags.tsx rename to starters/remix/app/components/drupal/taxonomy/TermTags.tsx diff --git a/examples/remix-graphql/app/components/drupal/view/BlogTeaser.tsx b/starters/remix/app/components/drupal/view/BlogTeaser.tsx similarity index 92% rename from examples/remix-graphql/app/components/drupal/view/BlogTeaser.tsx rename to starters/remix/app/components/drupal/view/BlogTeaser.tsx index 45896cf..6b5970d 100644 --- a/examples/remix-graphql/app/components/drupal/view/BlogTeaser.tsx +++ b/starters/remix/app/components/drupal/view/BlogTeaser.tsx @@ -3,7 +3,7 @@ import { NodeArticleFragment, NodeArticleTeaserFragment } from "~/graphql/drupal import NodeArticleTeaser from "~/components/drupal/node/NodeArticleTeaser"; interface BlogTeaserProps { - results: Array> + results: [] } export default function BlogTeaser( diff --git a/examples/remix-graphql/app/components/helpers/ComponentRenderer.tsx b/starters/remix/app/components/helpers/ComponentRenderer.tsx similarity index 79% rename from examples/remix-graphql/app/components/helpers/ComponentRenderer.tsx rename to starters/remix/app/components/helpers/ComponentRenderer.tsx index 34b0d56..a6483a9 100644 --- a/examples/remix-graphql/app/components/helpers/ComponentRenderer.tsx +++ b/starters/remix/app/components/helpers/ComponentRenderer.tsx @@ -11,11 +11,14 @@ export function ComponentRenderer({ components, environment } : ComponentsProps) // If we are in preview mode, render the VisualEditor if (environment === 'preview') { const ids = components.map((component) => { - return component.props.paragraph.id; + const id = component.props.paragraph ? component.props.paragraph.id : component.key; + + return id; }); const componentMapping = components.reduce((acc, component) => { - acc[component.props.paragraph.id] = component; + const id = component.props.paragraph ? component.props.paragraph.id : component.key; + acc[id] = component; return acc; }, {} as { [key: string]: JSX.Element }); diff --git a/starters/remix/app/components/helpers/ComponentResolver.tsx b/starters/remix/app/components/helpers/ComponentResolver.tsx new file mode 100644 index 0000000..8141d8c --- /dev/null +++ b/starters/remix/app/components/helpers/ComponentResolver.tsx @@ -0,0 +1,122 @@ +import { FragmentOf, readFragment } from "gql.tada"; + +// Drupal - fragments +import { + ParagraphHeroFragment, + ParagraphCardGroupFragment, + ParagraphCodeBlockFragment, + ParagraphImageFragment, + ParagraphTextFragment, + ParagraphStaticComponentFragment, + ParagraphUnionFragment, + ParagraphViewReferenceFragment, +} from "~/graphql/drupal/fragments/paragraph"; + +// Drupal - resolvers +import { + ParagraphViewReferenceResolver, + ParagraphCardGroupResolver, + ParagraphTextResolver, + ParagraphImageResolver, + ParagraphHeroResolver, + ParagraphStaticComponentResolver +} from "~/components/helpers/drupal"; + +// Drupal - components +import ViewReference from "~/components/drupal/paragraph/ViewReference"; + +// UI components +import CardGroup from "~/components/ui/CardGroup"; +import RichText from "~/components/ui/RichText"; +import Image from "~/components/ui/Image"; +import Hero from "~/components/ui/Hero"; +import { Fragment } from "react/jsx-runtime"; + +type ParagraphFragmentType = + FragmentOf | + FragmentOf | + FragmentOf | + FragmentOf | + FragmentOf | + FragmentOf | + FragmentOf; + +interface ResolveProps { + data: FragmentOf[] | null; +} + +const calculateComponent = function ( + type: string, + paragraph: ParagraphFragmentType +): JSX.Element { + + if (type === 'ParagraphHero') { + const paragraphHero = ParagraphHeroResolver({ + paragraph: paragraph as FragmentOf + }); + + if (!paragraphHero) { + return <>; + } + + return + } + + if (type === 'ParagraphCardGroup') { + const paragraphCardGroupResolver = ParagraphCardGroupResolver({ + paragraph: paragraph as FragmentOf + }) + + return ; + } + if (type === 'ParagraphText') { + const { id, title, content } = ParagraphTextResolver({ paragraph: paragraph as FragmentOf }); + + return + } + if (type === 'ParagraphImage') { + + const image = ParagraphImageResolver({ + paragraph: paragraph as FragmentOf + }); + + return ; + } + // if (type === 'ParagraphCodeBlock') { + // return } />; + // } + if (type === 'ParagraphStaticComponent') { + const { id, component } = ParagraphStaticComponentResolver({ paragraph: paragraph as FragmentOf }); + return +

ParagraphStaticComponent

+
+        {JSON.stringify({ id, component }, null, 2)}
+      
+
; + } + if (type === 'ParagraphViewReference') { + const { id, display, view, results } = ParagraphViewReferenceResolver({ paragraph: paragraph as FragmentOf }) + + return ; + } + + return <>{JSON.stringify(paragraph, null, 2)}; +} + +export const resolve = ({data = []}: ResolveProps) => { + if (!data) { + return [] + } + + const paragraphUnionFragment = readFragment(ParagraphUnionFragment, data); + + return paragraphUnionFragment.map((paragraph) => { + const type = paragraph.__typename; + + if (!type || type === "ParagraphCard") { + return <>; + } + + return calculateComponent(type, paragraph); + }); +}; diff --git a/examples/remix-graphql/app/components/helpers/VisualEditor.tsx b/starters/remix/app/components/helpers/VisualEditor.tsx similarity index 100% rename from examples/remix-graphql/app/components/helpers/VisualEditor.tsx rename to starters/remix/app/components/helpers/VisualEditor.tsx diff --git a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphCardGroup.tsx b/starters/remix/app/components/helpers/drupal/ParagraphCardGroupResolver.ts similarity index 67% rename from examples/remix-graphql/app/components/drupal/paragraph/ParagraphCardGroup.tsx rename to starters/remix/app/components/helpers/drupal/ParagraphCardGroupResolver.ts index 90137ab..625c9f0 100644 --- a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphCardGroup.tsx +++ b/starters/remix/app/components/helpers/drupal/ParagraphCardGroupResolver.ts @@ -1,14 +1,13 @@ import { FragmentOf, readFragment } from "gql.tada"; import { ParagraphCardGroupFragment, ParagraphCardFragment } from "~/graphql/drupal/fragments/paragraph"; import { extractImageFromMedia } from "~/graphql/drupal/helpers"; -import CardGroup, { Cards } from "~/components/ui/CardGroup"; interface ParagraphHeroProps { paragraph: FragmentOf } -export default function ParagraphCardGroup({ paragraph }: ParagraphHeroProps) { - const { title, items } = readFragment(ParagraphCardGroupFragment, paragraph) +export const ParagraphCardGroupResolver = ({ paragraph }: ParagraphHeroProps) => { + const { id, title, items } = readFragment(ParagraphCardGroupFragment, paragraph) const cards = items.map((item) => { const { title, text, image } = readFragment(ParagraphCardFragment, item as FragmentOf) if (!image) { @@ -18,7 +17,9 @@ export default function ParagraphCardGroup({ paragraph }: ParagraphHeroProps) { return { title, text, image: extractImageFromMedia(image) } }) - return ( - - ); + return { + id, + title, + cards, + } } diff --git a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphHero.tsx b/starters/remix/app/components/helpers/drupal/ParagraphHeroResolver.ts similarity index 57% rename from examples/remix-graphql/app/components/drupal/paragraph/ParagraphHero.tsx rename to starters/remix/app/components/helpers/drupal/ParagraphHeroResolver.ts index cfaedbb..c3b31ef 100644 --- a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphHero.tsx +++ b/starters/remix/app/components/helpers/drupal/ParagraphHeroResolver.ts @@ -1,19 +1,22 @@ import { FragmentOf, readFragment } from "gql.tada"; import { ParagraphHeroFragment } from "~/graphql/drupal/fragments/paragraph"; import { extractImageFromMedia } from "~/graphql/drupal/helpers"; -import Hero from "~/components/ui/Hero" + interface ParagraphHeroProps { paragraph: FragmentOf } -export default function ParagraphHero({ paragraph }: ParagraphHeroProps) { - const { text, title, image: mediaImage } = readFragment(ParagraphHeroFragment, paragraph) +export const ParagraphHeroResolver = ({ paragraph }: ParagraphHeroProps) => { + const { id, text, title, image: mediaImage } = readFragment(ParagraphHeroFragment, paragraph) if (!mediaImage) { return; } const image = extractImageFromMedia(mediaImage); - return ( - - ); + return { + id, + title, + text, + image, + } } diff --git a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphImage.tsx b/starters/remix/app/components/helpers/drupal/ParagraphImageResolver.ts similarity index 59% rename from examples/remix-graphql/app/components/drupal/paragraph/ParagraphImage.tsx rename to starters/remix/app/components/helpers/drupal/ParagraphImageResolver.ts index 92a9b63..0736744 100644 --- a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphImage.tsx +++ b/starters/remix/app/components/helpers/drupal/ParagraphImageResolver.ts @@ -1,20 +1,21 @@ import { FragmentOf, readFragment } from 'gql.tada'; import { ParagraphImageFragment } from '~/graphql/drupal/fragments/paragraph'; import { extractImageFromMedia } from '~/graphql/drupal/helpers'; -import Image from "~/components/ui/Image"; interface ParagraphImageProps { paragraph: FragmentOf } -export default function ParagraphImage({ paragraph }: ParagraphImageProps) { - const { image: mediaImage } = readFragment(ParagraphImageFragment, paragraph); +export const ParagraphImageResolver = ({ paragraph }: ParagraphImageProps) => { + const { id, image: mediaImage } = readFragment(ParagraphImageFragment, paragraph); if (!mediaImage) { return null; } const image = extractImageFromMedia(mediaImage); - return ( - - ); + return { + id, + ...image, + variant: 'primary' + } } diff --git a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphStaticComponent.tsx b/starters/remix/app/components/helpers/drupal/ParagraphStaticComponentResover.ts similarity index 59% rename from examples/remix-graphql/app/components/drupal/paragraph/ParagraphStaticComponent.tsx rename to starters/remix/app/components/helpers/drupal/ParagraphStaticComponentResover.ts index 47d1702..d2da926 100644 --- a/examples/remix-graphql/app/components/drupal/paragraph/ParagraphStaticComponent.tsx +++ b/starters/remix/app/components/helpers/drupal/ParagraphStaticComponentResover.ts @@ -5,20 +5,16 @@ interface ParagraphStaticComponentProps { paragraph: FragmentOf } -export default function ParagraphStaticComponent({ paragraph } : ParagraphStaticComponentProps) { +export const ParagraphStaticComponentResolver = ({ paragraph } : ParagraphStaticComponentProps) => { const { id, component } = readFragment(ParagraphStaticComponentFragment, paragraph); + // @todo: Implement Contact component const componentMap = { 'contact': 'Contact', } - // @todo: Implement Contact component - return ( - <> -

ParagraphStaticComponent

-
-        {JSON.stringify({ id, component, componentMap }, null, 2)}
-      
- - ); + return { + id, + component: component ? componentMap[component] : component, + } } diff --git a/starters/remix/app/components/helpers/drupal/ParagraphTextResolver.ts b/starters/remix/app/components/helpers/drupal/ParagraphTextResolver.ts new file mode 100644 index 0000000..a631dad --- /dev/null +++ b/starters/remix/app/components/helpers/drupal/ParagraphTextResolver.ts @@ -0,0 +1,18 @@ +import { FragmentOf, readFragment } from "gql.tada"; +import { TextFragment } from "~/graphql/drupal/fragments/misc"; +import { ParagraphTextFragment } from "~/graphql/drupal/fragments/paragraph"; + +interface ParagraphTextProps { + paragraph: FragmentOf +} + +export const ParagraphTextResolver = ({ paragraph } : ParagraphTextProps) => { + const { id, title, textRich } = readFragment(ParagraphTextFragment, paragraph); + const textFragment = readFragment(TextFragment, textRich) + + return { + id, + title, + content: textFragment.value ? textFragment.value : "" + } +} diff --git a/starters/remix/app/components/helpers/drupal/ParagraphViewReferenceResolver.ts b/starters/remix/app/components/helpers/drupal/ParagraphViewReferenceResolver.ts new file mode 100644 index 0000000..25cc78b --- /dev/null +++ b/starters/remix/app/components/helpers/drupal/ParagraphViewReferenceResolver.ts @@ -0,0 +1,17 @@ +import { FragmentOf, readFragment } from "gql.tada"; +import { ParagraphViewReferenceFragment } from "~/graphql/drupal/fragments/paragraph"; + +interface ParagraphViewReferenceProps { + paragraph: FragmentOf +} + +export const ParagraphViewReferenceResolver = ({ paragraph } : ParagraphViewReferenceProps) => { + const { id, reference: { view, display, results } } = readFragment(ParagraphViewReferenceFragment, paragraph); + + return { + id, + view, + display, + results + } +} diff --git a/starters/remix/app/components/helpers/drupal/index.ts b/starters/remix/app/components/helpers/drupal/index.ts new file mode 100644 index 0000000..cbf9fcd --- /dev/null +++ b/starters/remix/app/components/helpers/drupal/index.ts @@ -0,0 +1,6 @@ +export * from "./ParagraphCardGroupResolver"; +export * from "./ParagraphHeroResolver"; +export * from "./ParagraphImageResolver"; +export * from "./ParagraphStaticComponentResover"; +export * from "./ParagraphTextResolver"; +export * from "./ParagraphViewReferenceResolver"; diff --git a/examples/remix-graphql/app/components/ui/Avatar.tsx b/starters/remix/app/components/ui/Avatar.tsx similarity index 83% rename from examples/remix-graphql/app/components/ui/Avatar.tsx rename to starters/remix/app/components/ui/Avatar.tsx index 963714e..e981c6b 100644 --- a/examples/remix-graphql/app/components/ui/Avatar.tsx +++ b/starters/remix/app/components/ui/Avatar.tsx @@ -1,5 +1,4 @@ -import { ImageType } from './types'; -import Image from './Image'; +import Image, { ImageType } from './Image'; interface AvatarProps { name: string; @@ -7,7 +6,6 @@ interface AvatarProps { } export default function Avatar({ name, picture }: AvatarProps) { - return (
{picture.alt} diff --git a/examples/remix-graphql/app/components/ui/CardGroup.tsx b/starters/remix/app/components/ui/CardGroup.tsx similarity index 60% rename from examples/remix-graphql/app/components/ui/CardGroup.tsx rename to starters/remix/app/components/ui/CardGroup.tsx index 36f8962..2a2e255 100644 --- a/examples/remix-graphql/app/components/ui/CardGroup.tsx +++ b/starters/remix/app/components/ui/CardGroup.tsx @@ -1,26 +1,43 @@ -import { ImageType } from './types'; -import Image from './Image'; +import Image, { ImageType, ImageDefaultProps } from './Image'; export type Cards = Array; -interface Card { + +type Card = { title: string; - text: string; - image: ImageType + text: string + image: ImageType; } -interface CardGroupProps { +export type CardGroupProps = { title: string; cards: Cards } +const CardPropsDefault: Card = { + title: "Cart Title", + text: "Cart Text", + image: ImageDefaultProps +} + +export const CardGroupPropsDefault: CardGroupProps = { + title: "Card Group Title", + cards: [ + CardPropsDefault, + CardPropsDefault, + CardPropsDefault, + ] +} + export default function CardGroup({ title, cards }: CardGroupProps) { return (

{title}

-
- {cards.map((card, index) => ( +
+ {cards && cards.map((cardItem, index) => { + const card = { ...CardPropsDefault, ...cardItem }; + return (
- ))} + )})}
-
); } \ No newline at end of file diff --git a/examples/remix-graphql/app/components/ui/CodeBlock.tsx b/starters/remix/app/components/ui/CodeBlock.tsx similarity index 100% rename from examples/remix-graphql/app/components/ui/CodeBlock.tsx rename to starters/remix/app/components/ui/CodeBlock.tsx diff --git a/examples/remix-graphql/app/components/ui/Container.tsx b/starters/remix/app/components/ui/Container.tsx similarity index 100% rename from examples/remix-graphql/app/components/ui/Container.tsx rename to starters/remix/app/components/ui/Container.tsx diff --git a/examples/remix-graphql/app/components/ui/Cover.tsx b/starters/remix/app/components/ui/Cover.tsx similarity index 91% rename from examples/remix-graphql/app/components/ui/Cover.tsx rename to starters/remix/app/components/ui/Cover.tsx index 4d23eee..97efd0e 100644 --- a/examples/remix-graphql/app/components/ui/Cover.tsx +++ b/starters/remix/app/components/ui/Cover.tsx @@ -1,7 +1,8 @@ import Avatar from "./Avatar"; import CoverImage from "./CoverImage"; import Heading from "./Heading"; -import { ImageType, UserType } from './types'; +import { ImageType } from './Image'; +import { UserType } from './types'; interface CoverProps { title: string; diff --git a/examples/remix-graphql/app/components/ui/CoverImage.tsx b/starters/remix/app/components/ui/CoverImage.tsx similarity index 92% rename from examples/remix-graphql/app/components/ui/CoverImage.tsx rename to starters/remix/app/components/ui/CoverImage.tsx index 7dfce7e..12594ae 100644 --- a/examples/remix-graphql/app/components/ui/CoverImage.tsx +++ b/starters/remix/app/components/ui/CoverImage.tsx @@ -1,5 +1,4 @@ -import Image from './Image'; -import { ImageType } from './types'; +import Image, { ImageType } from './Image'; interface CoverImageProps { title: string; diff --git a/examples/remix-graphql/app/components/ui/Footer.tsx b/starters/remix/app/components/ui/Footer.tsx similarity index 100% rename from examples/remix-graphql/app/components/ui/Footer.tsx rename to starters/remix/app/components/ui/Footer.tsx diff --git a/examples/remix-graphql/app/components/ui/Header.tsx b/starters/remix/app/components/ui/Header.tsx similarity index 100% rename from examples/remix-graphql/app/components/ui/Header.tsx rename to starters/remix/app/components/ui/Header.tsx diff --git a/examples/remix-graphql/app/components/ui/Heading.tsx b/starters/remix/app/components/ui/Heading.tsx similarity index 100% rename from examples/remix-graphql/app/components/ui/Heading.tsx rename to starters/remix/app/components/ui/Heading.tsx diff --git a/examples/remix-graphql/app/components/ui/Hero.tsx b/starters/remix/app/components/ui/Hero.tsx similarity index 64% rename from examples/remix-graphql/app/components/ui/Hero.tsx rename to starters/remix/app/components/ui/Hero.tsx index daf8cf5..fb6276d 100644 --- a/examples/remix-graphql/app/components/ui/Hero.tsx +++ b/starters/remix/app/components/ui/Hero.tsx @@ -1,12 +1,22 @@ -import { ImageType } from "./types"; -import Image from "./Image"; +import Image, { ImageType , ImageDefaultProps} from "./Image" -interface HeroProps { +export type HeroProps = { title: string; text: string; image: ImageType } +export const HeroPropsDefault: HeroProps = { + title: "Heading", + text: "This is a paragraph. You can use this to write a short description about your product or service.", + image: { + ...ImageDefaultProps, + ...{ + url: "https://drupal-graphql-example.ddev.site/sites/default/files/styles/large/public/2024-07/hero.png?itok=iBaEMRaJ", + } + } +} + export default function Hero({ title, text, image }: HeroProps) { return (
diff --git a/starters/remix/app/components/ui/Image.tsx b/starters/remix/app/components/ui/Image.tsx new file mode 100644 index 0000000..7983309 --- /dev/null +++ b/starters/remix/app/components/ui/Image.tsx @@ -0,0 +1,54 @@ +export type ImageType = { + url: string; + alt: string; + title?: string | null; + width?: number | string | null; + height?: number | string | null; + className?: string | null; +} + +export type ImageProps = { + variant?: "primary"; + style?: React.CSSProperties; +} & ImageType; + +export const ImageDefaultProps: ImageType = { + title: "Lorem ipsum", + url: "https://drupal-graphql-example.ddev.site/sites/default/files/2024-05/doc-tahedroid-avatar.png", + alt: "Placeholder", + width: 'auto', + height: 'auto', + className: "" +}; + +export default function Image( + { + url, + alt = "Enter Image Alt", + width, + height, + className, + title, + variant = "primary", + style + }: ImageProps +) { + + const wrapperClass = { + primary: "flex items-center justify-center", + }; + + return ( +
+ {alt} +
+ ); +} diff --git a/starters/remix/app/components/ui/RichText.tsx b/starters/remix/app/components/ui/RichText.tsx new file mode 100644 index 0000000..3b87238 --- /dev/null +++ b/starters/remix/app/components/ui/RichText.tsx @@ -0,0 +1,22 @@ +import Heading from "./Heading"; + +export type RichTextProps = { + title?: string; + content: string; +} + +export const RichTextDefaultPropos = { + title: '', + content: "Lorem ipsum text here ..." +} + +export default function RichText({ title, content }: RichTextProps ) { + return ( + <> + {title && {title}} +
+
+
+ + ); +} diff --git a/starters/remix/app/components/ui/types.ts b/starters/remix/app/components/ui/types.ts new file mode 100644 index 0000000..f022f68 --- /dev/null +++ b/starters/remix/app/components/ui/types.ts @@ -0,0 +1,6 @@ +import { ImageType } from "./Image"; + +export type UserType = { + name: string; + picture: ImageType; +} diff --git a/examples/remix-graphql/app/entry.client.tsx b/starters/remix/app/entry.client.tsx similarity index 100% rename from examples/remix-graphql/app/entry.client.tsx rename to starters/remix/app/entry.client.tsx diff --git a/examples/remix-graphql/app/entry.server.tsx b/starters/remix/app/entry.server.tsx similarity index 100% rename from examples/remix-graphql/app/entry.server.tsx rename to starters/remix/app/entry.server.tsx diff --git a/examples/remix-graphql/app/graphql/drupal/fragments/media.ts b/starters/remix/app/graphql/drupal/fragments/media.ts similarity index 100% rename from examples/remix-graphql/app/graphql/drupal/fragments/media.ts rename to starters/remix/app/graphql/drupal/fragments/media.ts diff --git a/examples/remix-graphql/app/graphql/drupal/fragments/metatag.ts b/starters/remix/app/graphql/drupal/fragments/metatag.ts similarity index 100% rename from examples/remix-graphql/app/graphql/drupal/fragments/metatag.ts rename to starters/remix/app/graphql/drupal/fragments/metatag.ts diff --git a/examples/remix-graphql/app/graphql/drupal/fragments/misc.ts b/starters/remix/app/graphql/drupal/fragments/misc.ts similarity index 100% rename from examples/remix-graphql/app/graphql/drupal/fragments/misc.ts rename to starters/remix/app/graphql/drupal/fragments/misc.ts diff --git a/examples/remix-graphql/app/graphql/drupal/fragments/node.ts b/starters/remix/app/graphql/drupal/fragments/node.ts similarity index 100% rename from examples/remix-graphql/app/graphql/drupal/fragments/node.ts rename to starters/remix/app/graphql/drupal/fragments/node.ts diff --git a/examples/remix-graphql/app/graphql/drupal/fragments/paragraph.ts b/starters/remix/app/graphql/drupal/fragments/paragraph.ts similarity index 100% rename from examples/remix-graphql/app/graphql/drupal/fragments/paragraph.ts rename to starters/remix/app/graphql/drupal/fragments/paragraph.ts diff --git a/examples/remix-graphql/app/graphql/drupal/fragments/terms.ts b/starters/remix/app/graphql/drupal/fragments/terms.ts similarity index 100% rename from examples/remix-graphql/app/graphql/drupal/fragments/terms.ts rename to starters/remix/app/graphql/drupal/fragments/terms.ts diff --git a/examples/remix-graphql/app/graphql/drupal/fragments/user.ts b/starters/remix/app/graphql/drupal/fragments/user.ts similarity index 100% rename from examples/remix-graphql/app/graphql/drupal/fragments/user.ts rename to starters/remix/app/graphql/drupal/fragments/user.ts diff --git a/examples/remix-graphql/app/graphql/drupal/helpers.ts b/starters/remix/app/graphql/drupal/helpers.ts similarity index 88% rename from examples/remix-graphql/app/graphql/drupal/helpers.ts rename to starters/remix/app/graphql/drupal/helpers.ts index 6bf4d9f..b90e8eb 100644 --- a/examples/remix-graphql/app/graphql/drupal/helpers.ts +++ b/starters/remix/app/graphql/drupal/helpers.ts @@ -2,7 +2,8 @@ import { FragmentOf, readFragment } from "gql.tada"; import { ImageFragment, MediaImageFragment } from "~/graphql/drupal/fragments/media"; import { UserFragment } from "~/graphql/drupal/fragments/user"; import { ImageElement } from "~/graphql/drupal/types"; -import { ImageType, UserType } from "~/components/ui/types"; +import { UserType } from "~/components/ui/types"; +import { ImageType } from "~/components/ui/Image"; export const extractImageFromMedia = (image: ImageElement) => { if (!image) { diff --git a/examples/remix-graphql/app/graphql/drupal/types.ts b/starters/remix/app/graphql/drupal/types.ts similarity index 100% rename from examples/remix-graphql/app/graphql/drupal/types.ts rename to starters/remix/app/graphql/drupal/types.ts diff --git a/examples/remix-graphql/app/graphql/gql.tada.cache.ts b/starters/remix/app/graphql/gql.tada.cache.ts similarity index 100% rename from examples/remix-graphql/app/graphql/gql.tada.cache.ts rename to starters/remix/app/graphql/gql.tada.cache.ts diff --git a/examples/remix-graphql/app/graphql/gql.tada.instrospection.ts b/starters/remix/app/graphql/gql.tada.instrospection.ts similarity index 100% rename from examples/remix-graphql/app/graphql/gql.tada.instrospection.ts rename to starters/remix/app/graphql/gql.tada.instrospection.ts diff --git a/examples/remix-graphql/app/graphql/gql.tada.ts b/starters/remix/app/graphql/gql.tada.ts similarity index 100% rename from examples/remix-graphql/app/graphql/gql.tada.ts rename to starters/remix/app/graphql/gql.tada.ts diff --git a/examples/remix-graphql/app/graphql/schema.graphql b/starters/remix/app/graphql/schema.graphql similarity index 100% rename from examples/remix-graphql/app/graphql/schema.graphql rename to starters/remix/app/graphql/schema.graphql diff --git a/examples/remix-graphql/app/preview.css b/starters/remix/app/preview.css similarity index 100% rename from examples/remix-graphql/app/preview.css rename to starters/remix/app/preview.css diff --git a/examples/remix-graphql/app/root.tsx b/starters/remix/app/root.tsx similarity index 100% rename from examples/remix-graphql/app/root.tsx rename to starters/remix/app/root.tsx diff --git a/examples/remix-graphql/app/routes/$.tsx b/starters/remix/app/routes/$.tsx similarity index 88% rename from examples/remix-graphql/app/routes/$.tsx rename to starters/remix/app/routes/$.tsx index 1d17250..c2f5093 100644 --- a/examples/remix-graphql/app/routes/$.tsx +++ b/starters/remix/app/routes/$.tsx @@ -14,7 +14,6 @@ import { getClient } from "~/utils/drupal/client.server"; import { calculatePath } from "~/utils/drupal/routes"; import { calculateMetaTags } from "~/utils/drupal/metatags"; - export const meta: MetaFunction = ({ data, }) => { @@ -112,10 +111,11 @@ export default function Index() { } return ( - <> - { type === "TermTags" && } />} - { type === "NodePage" && } environment={environment} />} - { type === "NodeArticle" && } environment={environment} />} + <> + { type === "TermTags" && } />} + { type === "NodePage" && } environment={environment} />} + { type === "NodeArticle" && } environment={environment} />} + ); } diff --git a/examples/remix-graphql/app/routes/_index.tsx b/starters/remix/app/routes/_index.tsx similarity index 100% rename from examples/remix-graphql/app/routes/_index.tsx rename to starters/remix/app/routes/_index.tsx diff --git a/examples/remix-graphql/app/tailwind.css b/starters/remix/app/tailwind.css similarity index 100% rename from examples/remix-graphql/app/tailwind.css rename to starters/remix/app/tailwind.css diff --git a/examples/remix-graphql/app/utils/drupal/auth.server.ts b/starters/remix/app/utils/drupal/auth.server.ts similarity index 100% rename from examples/remix-graphql/app/utils/drupal/auth.server.ts rename to starters/remix/app/utils/drupal/auth.server.ts diff --git a/examples/remix-graphql/app/utils/drupal/client.server.ts b/starters/remix/app/utils/drupal/client.server.ts similarity index 100% rename from examples/remix-graphql/app/utils/drupal/client.server.ts rename to starters/remix/app/utils/drupal/client.server.ts diff --git a/examples/remix-graphql/app/utils/drupal/metatags.ts b/starters/remix/app/utils/drupal/metatags.ts similarity index 100% rename from examples/remix-graphql/app/utils/drupal/metatags.ts rename to starters/remix/app/utils/drupal/metatags.ts diff --git a/examples/remix-graphql/app/utils/drupal/routes.ts b/starters/remix/app/utils/drupal/routes.ts similarity index 100% rename from examples/remix-graphql/app/utils/drupal/routes.ts rename to starters/remix/app/utils/drupal/routes.ts diff --git a/examples/remix-graphql/functions/[[path]].ts b/starters/remix/functions/[[path]].ts similarity index 100% rename from examples/remix-graphql/functions/[[path]].ts rename to starters/remix/functions/[[path]].ts diff --git a/examples/remix-graphql/load-context.ts b/starters/remix/load-context.ts similarity index 100% rename from examples/remix-graphql/load-context.ts rename to starters/remix/load-context.ts diff --git a/examples/remix-graphql/package.json b/starters/remix/package.json similarity index 96% rename from examples/remix-graphql/package.json rename to starters/remix/package.json index 0b49e2e..cc7c768 100644 --- a/examples/remix-graphql/package.json +++ b/starters/remix/package.json @@ -28,6 +28,7 @@ "gql.tada": "^1.5.7", "isbot": "^4.1.0", "miniflare": "^3.20231030.4", + "remix-utils": "^7.6.0", "react": "^18.2.0", "react-code-blocks": "^0.1.6", "react-dom": "^18.2.0" @@ -58,6 +59,7 @@ "typescript": "^5.4.5", "vite": "^5.1.0", "vite-tsconfig-paths": "^4.2.1", + "vite-plugin-node-polyfills": "^0.22.0", "wrangler": "^3.24.0" }, "engines": { diff --git a/examples/remix-graphql/postcss.config.js b/starters/remix/postcss.config.js similarity index 100% rename from examples/remix-graphql/postcss.config.js rename to starters/remix/postcss.config.js diff --git a/examples/remix-graphql/prettier.config.js b/starters/remix/prettier.config.js similarity index 100% rename from examples/remix-graphql/prettier.config.js rename to starters/remix/prettier.config.js diff --git a/examples/remix-graphql/public/favicon.ico b/starters/remix/public/favicon.ico similarity index 100% rename from examples/remix-graphql/public/favicon.ico rename to starters/remix/public/favicon.ico diff --git a/examples/remix-graphql/scripts/fragments.ts b/starters/remix/scripts/fragments.ts similarity index 100% rename from examples/remix-graphql/scripts/fragments.ts rename to starters/remix/scripts/fragments.ts diff --git a/examples/remix-graphql/scripts/sync.ts b/starters/remix/scripts/sync.ts similarity index 100% rename from examples/remix-graphql/scripts/sync.ts rename to starters/remix/scripts/sync.ts diff --git a/examples/remix-graphql/tailwind.config.js b/starters/remix/tailwind.config.js similarity index 100% rename from examples/remix-graphql/tailwind.config.js rename to starters/remix/tailwind.config.js diff --git a/examples/remix-graphql/tsconfig.json b/starters/remix/tsconfig.json similarity index 100% rename from examples/remix-graphql/tsconfig.json rename to starters/remix/tsconfig.json diff --git a/examples/remix-graphql/vite.config.ts b/starters/remix/vite.config.ts similarity index 74% rename from examples/remix-graphql/vite.config.ts rename to starters/remix/vite.config.ts index c655f20..980cb9e 100644 --- a/examples/remix-graphql/vite.config.ts +++ b/starters/remix/vite.config.ts @@ -4,6 +4,7 @@ import { } from "@remix-run/dev"; import { defineConfig } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; +import { nodePolyfills } from 'vite-plugin-node-polyfills' import { getLoadContext } from "./load-context"; @@ -11,6 +12,7 @@ export default defineConfig({ plugins: [ remixCloudflareDevProxy({ getLoadContext }), remix(), - tsconfigPaths() + tsconfigPaths(), + nodePolyfills({ include: ['crypto'] }), ], }); diff --git a/examples/remix-graphql/yarn.lock b/starters/remix/yarn.lock similarity index 93% rename from examples/remix-graphql/yarn.lock rename to starters/remix/yarn.lock index 0b31b3a..0408208 100644 --- a/examples/remix-graphql/yarn.lock +++ b/starters/remix/yarn.lock @@ -1014,6 +1014,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" @@ -1284,6 +1289,24 @@ dependencies: web-streams-polyfill "^3.1.1" +"@rollup/plugin-inject@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz#616f3a73fe075765f91c5bec90176608bed277a3" + integrity sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg== + dependencies: + "@rollup/pluginutils" "^5.0.1" + estree-walker "^2.0.2" + magic-string "^0.30.3" + +"@rollup/pluginutils@^5.0.1": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + "@rollup/rollup-android-arm-eabi@4.16.4": version "4.16.4" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz#5e8930291f1e5ead7fb1171d53ba5c87718de062" @@ -1919,6 +1942,26 @@ as-table@^1.0.36: dependencies: printable-characters "^1.0.42" +asn1.js@^4.10.1: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +assert@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== + dependencies: + call-bind "^1.0.2" + is-nan "^1.3.2" + object-is "^1.1.5" + object.assign "^4.1.4" + util "^0.12.5" + ast-types-flow@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" @@ -1994,6 +2037,16 @@ blake3-wasm@^2.1.5: resolved "https://registry.yarnpkg.com/blake3-wasm/-/blake3-wasm-2.1.5.tgz#b22dbb84bc9419ed0159caa76af4b1b132e6ba52" integrity sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + body-parser@1.20.2: version "1.20.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" @@ -2034,6 +2087,73 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-resolve@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" + integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== + dependencies: + resolve "^1.17.0" + +browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.3.tgz#7afe4c01ec7ee59a89a558a4b75bd85ae62d4208" + integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== + dependencies: + bn.js "^5.2.1" + browserify-rsa "^4.1.0" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.5" + hash-base "~3.0" + inherits "^2.0.4" + parse-asn1 "^5.1.7" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" + browserify-zlib@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" @@ -2041,6 +2161,13 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + browserslist@^4.22.2, browserslist@^4.23.0: version "4.23.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" @@ -2056,7 +2183,12 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.5.0: +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@^5.5.0, buffer@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2064,6 +2196,11 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== + builtins@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.1.0.tgz#6d85eeb360c4ebc166c3fdef922a15aa7316a5e8" @@ -2099,7 +2236,7 @@ cacache@^17.1.3: tar "^6.1.11" unique-filename "^3.0.0" -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== @@ -2220,6 +2357,14 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -2296,6 +2441,16 @@ confbox@^0.1.7: resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579" integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== + content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -2338,6 +2493,42 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -2347,6 +2538,23 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + css-color-keywords@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" @@ -2516,6 +2724,14 @@ dequal@^2.0.0, dequal@^2.0.3: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== +des.js@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" @@ -2531,6 +2747,15 @@ diff@^5.0.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2557,6 +2782,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +domain-browser@^4.22.0: + version "4.23.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.23.0.tgz#427ebb91efcb070f05cffdfb8a4e9a6c25f8c94b" + integrity sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA== + dotenv@^16.0.0: version "16.4.5" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" @@ -2607,6 +2837,19 @@ electron-to-chromium@^1.4.668: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.747.tgz#e37fa5b7b7e4c22607c5f59b5cf78f947266e77d" integrity sha512-+FnSWZIAvFHbsNVmUxhEqWiaOiPMcfum1GQzlWCg/wLigVtshOsjXHyEFfmt6cFK6+HkS3QOJBv6/3OPumbBfw== +elliptic@^6.5.3, elliptic@^6.5.5: + version "6.5.6" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.6.tgz#ee5f7c3a00b98a2144ac84d67d01f04d438fa53e" + integrity sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -3194,6 +3437,19 @@ event-target-shim@^5.0.0: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +events@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + execa@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -3677,6 +3933,31 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash-base@~3.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" @@ -3736,6 +4017,15 @@ highlight.js@^10.4.1, highlight.js@~10.7.0: resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + hosted-git-info@^6.0.0, hosted-git-info@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58" @@ -3754,6 +4044,11 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -3807,7 +4102,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4004,6 +4299,14 @@ is-map@^2.0.3: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== +is-nan@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + is-negative-zero@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" @@ -4134,6 +4437,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isomorphic-timers-promises@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz#e4137c24dbc54892de8abae3a4b5c1ffff381598" + integrity sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ== + iterator.prototype@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" @@ -4400,11 +4708,27 @@ magic-string@^0.25.3: dependencies: sourcemap-codec "^1.4.8" +magic-string@^0.30.3: + version "0.30.11" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + markdown-extensions@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz#fea03b539faeaee9b4ef02a3769b455b189f7fc3" integrity sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q== +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + mdast-util-definitions@^5.0.0: version "5.1.2" resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" @@ -4873,6 +5197,14 @@ micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -4923,6 +5255,16 @@ miniflare@3.20240419.0, miniflare@^3.20231030.4: youch "^3.2.2" zod "^3.20.6" +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + minimatch@9.0.3: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" @@ -5118,6 +5460,39 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-stdlib-browser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/node-stdlib-browser/-/node-stdlib-browser-1.2.0.tgz#5ddcfdf4063b88fb282979a1aa6ddab9728d5e4c" + integrity sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg== + dependencies: + assert "^2.0.0" + browser-resolve "^2.0.0" + browserify-zlib "^0.2.0" + buffer "^5.7.1" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + create-require "^1.1.1" + crypto-browserify "^3.11.0" + domain-browser "^4.22.0" + events "^3.0.0" + https-browserify "^1.0.0" + isomorphic-timers-promises "^1.0.1" + os-browserify "^0.3.0" + path-browserify "^1.0.1" + pkg-dir "^5.0.0" + process "^0.11.10" + punycode "^1.4.1" + querystring-es3 "^0.2.1" + readable-stream "^3.6.0" + stream-browserify "^3.0.0" + stream-http "^3.2.0" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.1" + url "^0.11.0" + util "^0.12.4" + vm-browserify "^1.0.1" + normalize-package-data@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-5.0.0.tgz#abcb8d7e724c40d88462b84982f7cbf6859b4588" @@ -5192,6 +5567,14 @@ object-inspect@^1.13.1: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -5301,6 +5684,11 @@ ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== + outdent@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.8.0.tgz#2ebc3e77bf49912543f1008100ff8e7f44428eb0" @@ -5332,6 +5720,11 @@ pako@~0.2.0: resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -5339,6 +5732,18 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-asn1@^5.0.0, parse-asn1@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.7.tgz#73cdaaa822125f9647165625eb45f8a051d2df06" + integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== + dependencies: + asn1.js "^4.10.1" + browserify-aes "^1.2.0" + evp_bytestokey "^1.0.3" + hash-base "~3.0" + pbkdf2 "^3.1.2" + safe-buffer "^5.2.1" + parse-entities@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" @@ -5436,6 +5841,17 @@ pathe@^1.1.1, pathe@^1.1.2: resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== +pbkdf2@^3.0.3, pbkdf2@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + peek-stream@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz#3b35d84b7ccbbd262fff31dc10da56856ead6d67" @@ -5479,6 +5895,13 @@ pirates@^4.0.1: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + pkg-types@^1.0.3: version "1.1.0" resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.0.tgz#3ec1bf33379030fd0a34c227b6c650e8ea7ca271" @@ -5662,6 +6085,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -5704,6 +6132,18 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -5729,6 +6169,11 @@ pumpify@^1.3.3: inherits "^2.0.3" pump "^2.0.0" +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" @@ -5741,11 +6186,38 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" +qs@^6.12.3: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + +querystring-es3@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -5829,7 +6301,7 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -readable-stream@^2.0.0, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.3.8, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -5842,7 +6314,7 @@ readable-stream@^2.0.0, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -5942,6 +6414,13 @@ remark-rehype@^10.0.0: mdast-util-to-hast "^12.1.0" unified "^10.0.0" +remix-utils@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/remix-utils/-/remix-utils-7.6.0.tgz#831e7e75fd128ff7cd4eb1c3daad0d2d3ba176bb" + integrity sha512-BPhCUEy+nwrhDDDg2v3+LFSszV6tluMbeSkbffj2o4tqZxt5Kn69Y9sNpGxYLAj8gjqeYDuxjv55of+gYnnykA== + dependencies: + type-fest "^4.3.3" + "require-like@>= 0.1.1": version "0.1.2" resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" @@ -5962,7 +6441,7 @@ resolve.exports@^2.0.2: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.1.7, resolve@^1.22.2, resolve@^1.22.4, resolve@^1.22.8: +resolve@^1.1.7, resolve@^1.17.0, resolve@^1.22.2, resolve@^1.22.4, resolve@^1.22.8: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -6005,6 +6484,14 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + rollup-plugin-inject@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" @@ -6077,7 +6564,7 @@ safe-array-concat@^1.1.2: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -6184,11 +6671,24 @@ set-function-name@^2.0.1, set-function-name@^2.0.2: functions-have-names "^1.2.3" has-property-descriptors "^1.0.2" +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + shallowequal@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" @@ -6320,6 +6820,24 @@ stoppable@^1.1.0: resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-http@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" + integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" + stream-shift@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" @@ -6335,8 +6853,16 @@ string-hash@^1.1.1: resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: - name string-width-cjs +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -6400,7 +6926,7 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -string_decoder@^1.1.1: +string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -6422,7 +6948,14 @@ stringify-entities@^4.0.0: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -6611,6 +7144,13 @@ through2@^2.0.3: readable-stream "~2.3.6" xtend "~4.0.1" +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -6707,6 +7247,11 @@ tsx@^4.7.2: optionalDependencies: fsevents "~2.3.3" +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + turbo-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/turbo-stream/-/turbo-stream-2.0.0.tgz#e8bc7d30799e2dee654de66e319760f8b462716a" @@ -6724,6 +7269,11 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^4.3.3: + version "4.23.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.23.0.tgz#8196561a6b835175473be744f3e41e2dece1496b" + integrity sha512-ZiBujro2ohr5+Z/hZWHESLz3g08BBdrdLMieYFULJO+tWc437sn8kQsWLJoZErY8alNhxre9K4p3GURAG11n+w== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -6923,12 +7473,20 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" + integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== + dependencies: + punycode "^1.4.1" + qs "^6.12.3" + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.3: +util@^0.12.3, util@^0.12.4, util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -7003,6 +7561,14 @@ vite-node@^1.2.0: picocolors "^1.0.0" vite "^5.0.0" +vite-plugin-node-polyfills@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.22.0.tgz#d0afcf82eb985fc02244620d7cec1ddd1c6e0864" + integrity sha512-F+G3LjiGbG8QpbH9bZ//GSBr9i1InSTkaulfUHFa9jkLqVGORFBoqc2A/Yu5Mmh1kNAbiAeKeK+6aaQUf3x0JA== + dependencies: + "@rollup/plugin-inject" "^5.0.5" + node-stdlib-browser "^1.2.0" + vite-tsconfig-paths@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz#321f02e4b736a90ff62f9086467faf4e2da857a9" @@ -7023,6 +7589,11 @@ vite@^5.0.0, vite@^5.0.11, vite@^5.1.0: optionalDependencies: fsevents "~2.3.3" +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + vue-template-compiler@^2.7.14: version "2.7.16" resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b" @@ -7200,7 +7771,7 @@ ws@^8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== -xtend@^4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==