From 8325b6808f0fa98c98df8e589ddde1c985a76859 Mon Sep 17 00:00:00 2001 From: Philipp Melab Date: Wed, 17 Jan 2024 09:45:44 +0100 Subject: [PATCH] WIP --- apps/website/gatsby-node.mjs | 15 +- apps/website/package.json | 2 +- apps/website/src/layouts/page.tsx | 4 +- apps/website/src/pages/404.tsx | 5 +- apps/website/src/templates/page.tsx | 5 +- apps/website/src/types/operations.d.ts | 10 +- packages/gatsby-plugin-operations/README.md | 31 +-- .../gatsby-plugin-operations/package.json | 3 - .../gatsby-plugin-operations/src/graphql.ts | 4 +- .../gatsby-plugin-operations/src/index.ts | 3 +- .../src/plugin.test.ts | 12 +- .../gatsby-plugin-operations/src/plugin.ts | 60 +--- .../gatsby-plugin-operations/src/utils.ts | 10 - pnpm-lock.yaml | 263 ++---------------- 14 files changed, 80 insertions(+), 347 deletions(-) delete mode 100644 packages/gatsby-plugin-operations/src/utils.ts diff --git a/apps/website/gatsby-node.mjs b/apps/website/gatsby-node.mjs index 52aa17454..4fbb0a6f1 100644 --- a/apps/website/gatsby-node.mjs +++ b/apps/website/gatsby-node.mjs @@ -1,4 +1,4 @@ -import { graphql, isDefined } from '@amazeelabs/gatsby-plugin-operations'; +import { graphqlQuery } from '@amazeelabs/gatsby-plugin-operations'; import { IndexPagesQuery, ListPagesQuery, Locale } from '@custom/schema'; import { cpSync } from 'fs'; import { resolve } from 'path'; @@ -17,6 +17,15 @@ export const onCreateWebpackConfig = ({ actions }) => { }); }; +/** + * @template T extends any + * @param {T | undefined | null} val + * @returns {val is T} + */ +function isDefined(val) { + return Boolean(val); +} + /** * * @type {import('gatsby').GatsbyNode['createPages']} @@ -36,7 +45,7 @@ export const createPages = async ({ actions }) => { }); // Run the query that lists all pages, both decap and Drupal. - const pages = await graphql(ListPagesQuery); + const pages = await graphqlQuery(ListPagesQuery); // Create a gatsby page for each of these pages. pages.data?.allPages?.filter(isDefined).forEach(({ id, path, locale }) => { @@ -52,7 +61,7 @@ export const createPages = async ({ actions }) => { }); // Search for index page settings. - const settings = await graphql(IndexPagesQuery); + const settings = await graphqlQuery(IndexPagesQuery); if (settings.errors) { settings.errors.map((e) => console.error(e)); diff --git a/apps/website/package.json b/apps/website/package.json index 35239024e..eccdf0f3b 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -2,9 +2,9 @@ "name": "@custom/website", "private": true, "dependencies": { - "@amazeelabs/gatsby-plugin-operations": "workspace:*", "@amazeelabs/bridge-gatsby": "^1.2.7", "@amazeelabs/cloudinary-responsive-image": "^1.6.15", + "@amazeelabs/gatsby-plugin-operations": "workspace:*", "@amazeelabs/gatsby-silverback-cloudinary": "^1.2.7", "@amazeelabs/gatsby-source-silverback": "^1.13.10", "@amazeelabs/publisher": "^2.4.17", diff --git a/apps/website/src/layouts/page.tsx b/apps/website/src/layouts/page.tsx index 3e2df37aa..079dd0b32 100644 --- a/apps/website/src/layouts/page.tsx +++ b/apps/website/src/layouts/page.tsx @@ -1,7 +1,7 @@ +import { graphql, useStaticQuery } from '@amazeelabs/gatsby-plugin-operations'; import { FrameQuery, registerExecutor } from '@custom/schema'; import { IntlProvider } from '@custom/ui/intl'; import { Frame } from '@custom/ui/routes/Frame'; -import { graphqlOperation, useStaticOperation } from 'gatsby'; import React, { PropsWithChildren } from 'react'; export default function Layout({ @@ -10,7 +10,7 @@ export default function Layout({ }: PropsWithChildren<{ locale: string; }>) { - const data = useStaticOperation(graphqlOperation(FrameQuery)); + const data = useStaticQuery(graphql(FrameQuery)); registerExecutor(FrameQuery, data); return ( diff --git a/apps/website/src/pages/404.tsx b/apps/website/src/pages/404.tsx index a3eb516f8..0d2e6fee4 100644 --- a/apps/website/src/pages/404.tsx +++ b/apps/website/src/pages/404.tsx @@ -1,10 +1,11 @@ +import { graphql } from '@amazeelabs/gatsby-plugin-operations'; import { NotFoundPageQuery, registerExecutor, ViewPageQuery, } from '@custom/schema'; import { Page } from '@custom/ui/routes/Page'; -import { graphqlOperation, PageProps } from 'gatsby'; +import { PageProps } from 'gatsby'; import React from 'react'; import { @@ -12,7 +13,7 @@ import { LanguageNegotiatorContent, } from '../utils/language-negotiator'; -export const query = graphqlOperation(NotFoundPageQuery); +export const query = graphql(NotFoundPageQuery); function isTruthy(value: T | undefined | null): value is T { return Boolean(value); diff --git a/apps/website/src/templates/page.tsx b/apps/website/src/templates/page.tsx index d7555cd4f..617ba0089 100644 --- a/apps/website/src/templates/page.tsx +++ b/apps/website/src/templates/page.tsx @@ -1,3 +1,4 @@ +import { graphql } from '@amazeelabs/gatsby-plugin-operations'; import { Locale, PageListEntryFragment, @@ -5,10 +6,10 @@ import { ViewPageQuery, } from '@custom/schema'; import { Page } from '@custom/ui/routes/Page'; -import { graphqlOperation, HeadProps, PageProps } from 'gatsby'; +import { HeadProps, PageProps } from 'gatsby'; import React from 'react'; -export const query = graphqlOperation(ViewPageQuery); +export const query = graphql(ViewPageQuery); export function Head({ data }: HeadProps) { return data.page ? ( diff --git a/apps/website/src/types/operations.d.ts b/apps/website/src/types/operations.d.ts index cdf1616d2..b95b0530b 100644 --- a/apps/website/src/types/operations.d.ts +++ b/apps/website/src/types/operations.d.ts @@ -4,16 +4,14 @@ import { OperationVariables, } from '@custom/schema'; -declare module 'gatsby' { - export const graphqlOperation: ( +declare module '@amazeelabs/gatsby-plugin-operations' { + export const graphql: ( id: OperationId, ) => OperationResult; - function useStaticOperation(id: Input): Input; -} + function useStaticQuery(id: Input): Input; -declare module '@amazeelabs/gatsby-plugin-operations' { - function graphql( + function graphqlQuery( id: OperationId, vars?: OperationVariables, ): Promise<{ diff --git a/packages/gatsby-plugin-operations/README.md b/packages/gatsby-plugin-operations/README.md index c53ed6aeb..d541dafbe 100644 --- a/packages/gatsby-plugin-operations/README.md +++ b/packages/gatsby-plugin-operations/README.md @@ -30,16 +30,14 @@ import { OperationVariables, } from '@custom/schema'; -declare module 'gatsby' { - export const graphqlOperation: ( +declare module '@amazeelabs/gatsby-plugin-operations' { + export const graphql: ( id: OperationId, ) => OperationResult; - function useStaticOperation(id: Input): Input; -} + function useStaticQuery(id: Input): Input; -declare module '@amazeelabs/gatsby-plugin-operations' { - function graphql( + function graphqlQuery( id: OperationId, vars?: OperationVariables, ): Promise<{ @@ -61,10 +59,10 @@ The query variable can be used directly to infer the template components properties. ```typescript -import { graphqlOperation } from 'gatsby'; +import { graphql } from '@amazeelabs/gatsby-plugin-operations'; import { ViewPageQuery } from '@custom/schema'; -export const query = graphqlOperation(ViewPageQuery); +export const query = graphql(ViewPageQuery); export default function Page({ data, pageContext, @@ -75,28 +73,27 @@ export default function Page({ ### In static queries -To run a static query, one can use `graphqlOperation` in combination with -`useStaticOperation`. This will yield a fully typed result of the requested -query. +To run a static query, one can use `graphql` in combination with +`useStaticQuery`. This will yield a fully typed result of the requested query. ```typescript -import { useStaticOperation, graphqlOperation } from 'gatsby'; +import { useStaticQuery, graphql } from '@amazeelabs/gatsby-plugin-operations'; import { ListProductsQuery } from '@custom/schema'; -const myResult = useStaticOperation(graphqlOperation(ListProductsQuery)); +const myResult = useStaticQuery(graphql(ListProductsQuery)); ``` ### In `gatsby-node.mjs` -The `@amazeelabs/gatsby-plugin-operations` package directly exports a `graphql` +The `@amazeelabs/gatsby-plugin-operations` package provides a `graphqlQuery` function that works within the `createPages` hook. ```typescript -import {graphql} from '@amazeelabs/gatsby-plugin-operations'; -import {ListPagesQuery} from '@custom/schema'; +import { graphqlQuery } from '@amazeelabs/gatsby-plugin-operations'; +import { ListPagesQuery } from '@custom/schema'; export const createPages({actions}) { - const result = await graphql(ListPagesQuery); + const result = await graphqlQuery(ListPagesQuery); result.page.forEach((page) => { actions.createPage({}); }) diff --git a/packages/gatsby-plugin-operations/package.json b/packages/gatsby-plugin-operations/package.json index e0c4e7fe6..ebcd73e39 100644 --- a/packages/gatsby-plugin-operations/package.json +++ b/packages/gatsby-plugin-operations/package.json @@ -24,9 +24,6 @@ "vitest": "^1.1.0", "gatsby": ">= 5" }, - "peerDependencies": { - "gatsby": ">= 5" - }, "dependencies": { "@babel/core": "^7.23.6" } diff --git a/packages/gatsby-plugin-operations/src/graphql.ts b/packages/gatsby-plugin-operations/src/graphql.ts index fb1de8bf5..a0f7ec718 100644 --- a/packages/gatsby-plugin-operations/src/graphql.ts +++ b/packages/gatsby-plugin-operations/src/graphql.ts @@ -1,5 +1,5 @@ import { readFileSync } from 'fs'; -import { CreatePagesArgs } from 'gatsby'; +import type { CreatePagesArgs } from 'gatsby'; export let _graphql: CreatePagesArgs['graphql'] | undefined = undefined; let _operations: Record | undefined = undefined; @@ -18,7 +18,7 @@ export function initialize( /** * Execute a graphql query against gatsby. */ -export function graphql(id: string, vars: any): any { +export function graphqlQuery(id: string, vars?: any): any { if (!_graphql) { throw '_graphql has not been initialized'; } diff --git a/packages/gatsby-plugin-operations/src/index.ts b/packages/gatsby-plugin-operations/src/index.ts index 275164c1c..0bda6ae15 100644 --- a/packages/gatsby-plugin-operations/src/index.ts +++ b/packages/gatsby-plugin-operations/src/index.ts @@ -1,2 +1 @@ -export { graphql } from './graphql'; -export { isDefined } from './utils'; +export { graphqlQuery } from './graphql'; diff --git a/packages/gatsby-plugin-operations/src/plugin.test.ts b/packages/gatsby-plugin-operations/src/plugin.test.ts index 8ecec4d34..b5d79ef8d 100644 --- a/packages/gatsby-plugin-operations/src/plugin.test.ts +++ b/packages/gatsby-plugin-operations/src/plugin.test.ts @@ -18,8 +18,8 @@ pluginTester({ title: 'Page query', code: ` import { MyOperation } from '@custom/schema'; -import { graphqlOperation } from 'gatsby'; -export const query = graphqlOperation(MyOperation); +import { graphql } from '@amazeelabs/gatsby-plugin-operations'; +export const query = graphql(MyOperation); `, output: ` import { MyOperation } from '@custom/schema'; @@ -34,9 +34,9 @@ export const query = graphql\` title: 'Static query', code: ` import { MyOperation } from '@custom/schema'; -import { graphqlOperation, useStaticOperation } from 'gatsby'; +import { graphql, useStaticQuery } from '@amazeelabs/gatsby-plugin-operations'; function useData() { - return useStaticOperation(graphqlOperation(MyOperation)); + return useStaticQuery(graphql(MyOperation)); }`, output: ` import { MyOperation } from '@custom/schema'; @@ -55,9 +55,9 @@ function useData() { title: 'Typescript', code: ` import { MyOperation } from '@custom/schema'; -import { graphqlOperation, useStaticOperation } from 'gatsby'; +import { graphql, useStaticQuery } from '@amazeelabs/gatsby-plugin-operations'; function useData() { - return useStaticOperation(graphqlOperation(MyOperation)); + return useStaticQuery(graphql(MyOperation)); } export function Component(props: { message: string }) { diff --git a/packages/gatsby-plugin-operations/src/plugin.ts b/packages/gatsby-plugin-operations/src/plugin.ts index 2f8e0d6b1..56c402593 100644 --- a/packages/gatsby-plugin-operations/src/plugin.ts +++ b/packages/gatsby-plugin-operations/src/plugin.ts @@ -1,20 +1,6 @@ import { PluginObj, PluginPass, types } from '@babel/core'; -import { - ImportDefaultSpecifier, - ImportNamespaceSpecifier, - ImportSpecifier, -} from '@babel/types'; import { readFileSync } from 'fs'; -function hasImport( - specifiers: Array< - ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier - >, - name: string, -) { - return specifiers.filter((spec) => spec.local.name === name).length > 0; -} - function loadOperations(path: string) { const loadedOperations: Record = {}; const loaded = JSON.parse(readFileSync(path).toString()); @@ -27,38 +13,13 @@ function loadOperations(path: string) { export default () => ({ visitor: { - Identifier(path) { - if (path.node.name === 'graphqlQuery') { - path.replaceWith(types.identifier('graphql')); - path.skip(); - } - }, ImportDeclaration(path) { - if (path.node.source.value === 'gatsby') { - const specifiers = path.node.specifiers.filter( - (spec) => - !['graphqlOperation', 'useStaticOperation'].includes( - spec.local.name, - ), - ); - if (hasImport(path.node.specifiers, 'graphqlOperation')) { - specifiers.push( - types.importSpecifier( - types.identifier('graphql'), - types.identifier('graphql'), - ), - ); - } - if (hasImport(path.node.specifiers, 'useStaticOperation')) { - specifiers.push( - types.importSpecifier( - types.identifier('useStaticQuery'), - types.identifier('useStaticQuery'), - ), - ); - } + if (path.node.source.value === '@amazeelabs/gatsby-plugin-operations') { path.replaceWith( - types.importDeclaration(specifiers, path.node.source), + types.importDeclaration( + path.node.specifiers, + types.stringLiteral('gatsby'), + ), ); path.skip(); } @@ -66,7 +27,7 @@ export default () => CallExpression(path, { opts }) { const operations = loadOperations(opts.operations); if (path.node.callee.type === 'Identifier') { - if (path.node.callee.name === 'graphqlOperation') { + if (path.node.callee.name === 'graphql') { if ( !( path.node.arguments.length === 1 && @@ -91,15 +52,6 @@ export default () => path.skip(); return; } - - if (path.node.callee.name === 'useStaticOperation') { - path.replaceWith( - types.callExpression( - types.identifier('useStaticQuery'), - path.node.arguments, - ), - ); - } } }, }, diff --git a/packages/gatsby-plugin-operations/src/utils.ts b/packages/gatsby-plugin-operations/src/utils.ts deleted file mode 100644 index 76c3d7afc..000000000 --- a/packages/gatsby-plugin-operations/src/utils.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Check if something is defined, while retaining its type. - * - * Very commonly used when dealing with GraphQL lists. - */ -export function isDefined>( - value: T | undefined | null, -): value is T { - return !!value; -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f732821b8..1a00ef6f3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7340,7 +7340,7 @@ packages: react-refresh: 0.14.0 schema-utils: 3.3.0 source-map: 0.7.4 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /@pnpm/config.env-replace@1.1.0: resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} @@ -10003,7 +10003,6 @@ packages: typescript: 4.9.5 transitivePeerDependencies: - supports-color - dev: false /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.3.3): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} @@ -10079,7 +10078,6 @@ packages: typescript: 4.9.5 transitivePeerDependencies: - supports-color - dev: false /@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.3.3): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} @@ -10155,7 +10153,6 @@ packages: typescript: 4.9.5 transitivePeerDependencies: - supports-color - dev: false /@typescript-eslint/type-utils@5.62.0(eslint@7.32.0)(typescript@5.3.3): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} @@ -10248,7 +10245,6 @@ packages: typescript: 4.9.5 transitivePeerDependencies: - supports-color - dev: false /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} @@ -10312,7 +10308,6 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: false /@typescript-eslint/utils@5.62.0(eslint@7.32.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} @@ -12107,7 +12102,7 @@ packages: loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /babel-plugin-add-module-exports@1.0.4: resolution: {integrity: sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==} @@ -12200,7 +12195,7 @@ packages: '@babel/core': 7.23.7 '@babel/runtime': 7.23.7 '@babel/types': 7.23.6 - gatsby: 5.13.1(babel-eslint@10.1.0)(esbuild@0.19.11)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.1(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5) gatsby-core-utils: 4.13.0 /babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: @@ -13942,7 +13937,7 @@ packages: postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.5.4 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /css-minimizer-webpack-plugin@2.0.0(webpack@5.89.0): resolution: {integrity: sha512-cG/uc94727tx5pBNtb1Sd7gvUPzwmcQi1lkpfqTpdkuNq75hJCw7bIVsCNijLm4dhDcr1atvuysl2rZqOG8Txw==} @@ -13964,7 +13959,7 @@ packages: schema-utils: 3.3.0 serialize-javascript: 5.0.1 source-map: 0.6.1 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} @@ -16198,7 +16193,6 @@ packages: eslint-plugin-react: 7.33.2(eslint@7.32.0) eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) typescript: 4.9.5 - dev: false /eslint-config-react-app@6.0.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(babel-eslint@10.1.0)(eslint-plugin-flowtype@5.10.0)(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@7.32.0)(typescript@5.3.3): resolution: {integrity: sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==} @@ -16235,6 +16229,7 @@ packages: eslint-plugin-react: 7.33.2(eslint@7.32.0) eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) typescript: 5.3.3 + dev: true /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -16266,7 +16261,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) debug: 3.2.7 eslint: 7.32.0 eslint-import-resolver-node: 0.3.9 @@ -16344,7 +16339,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -16550,7 +16545,7 @@ packages: micromatch: 4.0.5 normalize-path: 3.0.0 schema-utils: 3.3.0 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /eslint@7.32.0: resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} @@ -17218,7 +17213,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /file-system-cache@2.3.0: resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} @@ -17543,7 +17538,6 @@ packages: tapable: 1.1.3 typescript: 4.9.5 webpack: 5.89.0 - dev: false /fork-ts-checker-webpack-plugin@6.5.3(eslint@7.32.0)(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} @@ -17575,6 +17569,7 @@ packages: tapable: 1.1.3 typescript: 5.3.3 webpack: 5.89.0(esbuild@0.19.11) + dev: true /form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} @@ -17832,7 +17827,7 @@ packages: dependencies: '@types/node-fetch': 2.6.10 fs-extra: 9.1.0 - gatsby: 5.13.1(babel-eslint@10.1.0)(esbuild@0.19.11)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.1(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5) lodash: 4.17.21 node-fetch: 2.7.0 p-queue: 6.6.2 @@ -17938,7 +17933,7 @@ packages: chokidar: 3.5.3 fs-exists-cached: 1.0.0 fs-extra: 11.2.0 - gatsby: 5.13.1(babel-eslint@10.1.0)(esbuild@0.19.11)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.1(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5) gatsby-core-utils: 4.13.0 gatsby-page-utils: 3.13.0 gatsby-plugin-utils: 4.13.0(gatsby@5.13.1)(graphql@16.8.1) @@ -18024,7 +18019,7 @@ packages: '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) '@babel/runtime': 7.23.7 babel-plugin-remove-graphql-queries: 5.13.0(@babel/core@7.23.7)(gatsby@5.13.1) - gatsby: 5.13.1(babel-eslint@10.1.0)(esbuild@0.19.11)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.1(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5) transitivePeerDependencies: - supports-color @@ -18038,7 +18033,7 @@ packages: '@babel/runtime': 7.23.7 fastq: 1.16.0 fs-extra: 11.2.0 - gatsby: 5.13.1(babel-eslint@10.1.0)(esbuild@0.19.11)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.1(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5) gatsby-core-utils: 4.13.0 gatsby-sharp: 1.13.0 graphql: 16.8.1 @@ -18128,211 +18123,6 @@ packages: transitivePeerDependencies: - supports-color - /gatsby@5.13.1(babel-eslint@10.1.0)(esbuild@0.19.11)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): - resolution: {integrity: sha512-y8VB381ZnHX3Xxc1n78AAAd+t0EsIyyIRtfqlSQ10CXwZHpZzBR3DTRoHmqIG3/NmdiqWhbHb/nRlmKZUzixtQ==} - engines: {node: '>=18.0.0'} - hasBin: true - requiresBuild: true - peerDependencies: - react: ^18.0.0 || ^0.0.0 - react-dom: ^18.0.0 || ^0.0.0 - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/core': 7.23.7 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@7.32.0) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/parser': 7.23.6 - '@babel/runtime': 7.23.7 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 - '@builder.io/partytown': 0.7.6 - '@gatsbyjs/reach-router': 2.0.1(react-dom@18.2.0)(react@18.2.0) - '@gatsbyjs/webpack-hot-middleware': 2.25.3 - '@graphql-codegen/add': 3.2.3(graphql@16.8.1) - '@graphql-codegen/core': 2.6.8(graphql@16.8.1) - '@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.8.1) - '@graphql-codegen/typescript': 2.8.8(graphql@16.8.1) - '@graphql-codegen/typescript-operations': 2.5.13(graphql@16.8.1) - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.7)(graphql@16.8.1) - '@graphql-tools/load': 7.8.14(graphql@16.8.1) - '@jridgewell/trace-mapping': 0.3.20 - '@nodelib/fs.walk': 1.2.8 - '@parcel/cache': 2.8.3(@parcel/core@2.8.3) - '@parcel/core': 2.8.3 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.14.0)(webpack@5.89.0) - '@types/http-proxy': 1.17.14 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.3.3) - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.3.3) - '@vercel/webpack-asset-relocator-loader': 1.7.3 - acorn-loose: 8.4.0 - acorn-walk: 8.3.1 - address: 1.2.2 - anser: 2.1.1 - autoprefixer: 10.4.16(postcss@8.4.32) - axios: 0.21.4(debug@4.3.4) - babel-jsx-utils: 1.1.0 - babel-loader: 8.3.0(@babel/core@7.23.7)(webpack@5.89.0) - babel-plugin-add-module-exports: 1.0.4 - babel-plugin-dynamic-import-node: 2.3.3 - babel-plugin-lodash: 3.3.4 - babel-plugin-remove-graphql-queries: 5.13.0(@babel/core@7.23.7)(gatsby@5.13.1) - babel-preset-gatsby: 3.13.0(@babel/core@7.23.7)(core-js@3.35.0) - better-opn: 2.1.1 - bluebird: 3.7.2 - body-parser: 1.20.1 - browserslist: 4.22.2 - cache-manager: 2.11.1 - chalk: 4.1.2 - chokidar: 3.5.3 - common-tags: 1.8.2 - compression: 1.7.4 - cookie: 0.5.0 - core-js: 3.35.0 - cors: 2.8.5 - css-loader: 5.2.7(webpack@5.89.0) - css-minimizer-webpack-plugin: 2.0.0(webpack@5.89.0) - css.escape: 1.5.1 - date-fns: 2.30.0 - debug: 4.3.4 - deepmerge: 4.3.1 - detect-port: 1.5.1 - devcert: 1.2.2 - dotenv: 8.6.0 - enhanced-resolve: 5.15.0 - error-stack-parser: 2.1.4 - eslint: 7.32.0 - eslint-config-react-app: 6.0.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(babel-eslint@10.1.0)(eslint-plugin-flowtype@5.10.0)(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@7.32.0)(typescript@5.3.3) - eslint-plugin-flowtype: 5.10.0(eslint@7.32.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint@7.32.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@7.32.0) - eslint-plugin-react: 7.33.2(eslint@7.32.0) - eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) - eslint-webpack-plugin: 2.7.0(eslint@7.32.0)(webpack@5.89.0) - event-source-polyfill: 1.0.31 - execa: 5.1.1 - express: 4.18.2 - express-http-proxy: 1.6.3 - fastest-levenshtein: 1.0.16 - fastq: 1.16.0 - file-loader: 6.2.0(webpack@5.89.0) - find-cache-dir: 3.3.2 - fs-exists-cached: 1.0.0 - fs-extra: 11.2.0 - gatsby-cli: 5.13.1 - gatsby-core-utils: 4.13.0 - gatsby-graphiql-explorer: 3.13.0 - gatsby-legacy-polyfills: 3.13.0 - gatsby-link: 5.13.0(@gatsbyjs/reach-router@2.0.1)(react-dom@18.2.0)(react@18.2.0) - gatsby-page-utils: 3.13.0 - gatsby-parcel-config: 1.13.0(@parcel/core@2.8.3) - gatsby-plugin-page-creator: 5.13.0(gatsby@5.13.1)(graphql@16.8.1) - gatsby-plugin-typescript: 5.13.0(gatsby@5.13.1) - gatsby-plugin-utils: 4.13.0(gatsby@5.13.1)(graphql@16.8.1) - gatsby-react-router-scroll: 6.13.0(@gatsbyjs/reach-router@2.0.1)(react-dom@18.2.0)(react@18.2.0) - gatsby-script: 2.13.0(@gatsbyjs/reach-router@2.0.1)(react-dom@18.2.0)(react@18.2.0) - gatsby-telemetry: 4.13.0 - gatsby-worker: 2.13.0 - glob: 7.2.3 - globby: 11.1.0 - got: 11.8.6 - graphql: 16.8.1 - graphql-compose: 9.0.10(graphql@16.8.1) - graphql-http: 1.22.0(graphql@16.8.1) - graphql-tag: 2.12.6(graphql@16.8.1) - hasha: 5.2.2 - invariant: 2.2.4 - is-relative: 1.0.0 - is-relative-url: 3.0.0 - joi: 17.11.0 - json-loader: 0.5.7 - latest-version: 7.0.0 - linkfs: 2.1.0 - lmdb: 2.5.3 - lodash: 4.17.21 - meant: 1.0.3 - memoizee: 0.4.15 - micromatch: 4.0.5 - mime: 3.0.0 - mini-css-extract-plugin: 1.6.2(webpack@5.89.0) - mitt: 1.2.0 - moment: 2.30.1 - multer: 1.4.5-lts.1 - node-fetch: 2.7.0 - node-html-parser: 5.4.2 - normalize-path: 3.0.0 - null-loader: 4.0.1(webpack@5.89.0) - opentracing: 0.14.7 - p-defer: 3.0.0 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - physical-cpu-count: 2.0.0 - platform: 1.3.6 - postcss: 8.4.32 - postcss-flexbugs-fixes: 5.0.2(postcss@8.4.32) - postcss-loader: 5.3.0(postcss@8.4.32)(webpack@5.89.0) - prompts: 2.4.2 - prop-types: 15.8.1 - query-string: 6.14.1 - raw-loader: 4.0.2(webpack@5.89.0) - react: 18.2.0 - react-dev-utils: 12.0.1(eslint@7.32.0)(typescript@5.3.3)(webpack@5.89.0) - react-dom: 18.2.0(react@18.2.0) - react-refresh: 0.14.0 - react-server-dom-webpack: 0.0.0-experimental-c8b778b7f-20220825(react@18.2.0)(webpack@5.89.0) - redux: 4.2.1 - redux-thunk: 2.4.2(redux@4.2.1) - resolve-from: 5.0.0 - semver: 7.5.4 - shallow-compare: 1.2.2 - signal-exit: 3.0.7 - slugify: 1.6.6 - socket.io: 4.7.1 - socket.io-client: 4.7.1 - stack-trace: 0.0.10 - string-similarity: 1.2.2 - strip-ansi: 6.0.1 - style-loader: 2.0.0(webpack@5.89.0) - style-to-object: 0.4.4 - terser-webpack-plugin: 5.3.10(esbuild@0.19.11)(webpack@5.89.0) - tmp: 0.2.1 - true-case-path: 2.2.1 - type-of: 2.0.1 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.89.0) - uuid: 8.3.2 - webpack: 5.89.0(esbuild@0.19.11) - webpack-dev-middleware: 4.3.0(webpack@5.89.0) - webpack-merge: 5.10.0 - webpack-stats-plugin: 1.1.3 - webpack-virtual-modules: 0.5.0 - xstate: 4.38.3 - yaml-loader: 0.8.0 - optionalDependencies: - gatsby-sharp: 1.13.0 - transitivePeerDependencies: - - '@swc/core' - - '@types/webpack' - - babel-eslint - - bufferutil - - clean-css - - csso - - encoding - - esbuild - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - eslint-plugin-jest - - eslint-plugin-testing-library - - sockjs-client - - supports-color - - type-fest - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - webpack-dev-server - - webpack-hot-middleware - - webpack-plugin-serve - /gatsby@5.13.1(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5): resolution: {integrity: sha512-y8VB381ZnHX3Xxc1n78AAAd+t0EsIyyIRtfqlSQ10CXwZHpZzBR3DTRoHmqIG3/NmdiqWhbHb/nRlmKZUzixtQ==} engines: {node: '>=18.0.0'} @@ -18537,7 +18327,6 @@ packages: - webpack-dev-server - webpack-hot-middleware - webpack-plugin-serve - dev: false /gatsby@5.13.1(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): resolution: {integrity: sha512-y8VB381ZnHX3Xxc1n78AAAd+t0EsIyyIRtfqlSQ10CXwZHpZzBR3DTRoHmqIG3/NmdiqWhbHb/nRlmKZUzixtQ==} @@ -23334,7 +23123,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 webpack-sources: 1.4.3 /mini-svg-data-uri@1.4.4: @@ -24162,7 +23951,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} @@ -25352,7 +25141,7 @@ packages: klona: 2.0.6 postcss: 8.4.32 semver: 7.5.4 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /postcss-merge-longhand@5.1.7(postcss@8.4.32): resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} @@ -26330,7 +26119,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /rbush@3.0.1: resolution: {integrity: sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==} @@ -26467,7 +26256,6 @@ packages: - eslint - supports-color - vue-template-compiler - dev: false /react-dev-utils@12.0.1(eslint@7.32.0)(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} @@ -26509,6 +26297,7 @@ packages: - eslint - supports-color - vue-template-compiler + dev: true /react-dnd-html5-backend@14.1.0: resolution: {integrity: sha512-6ONeqEC3XKVf4eVmMTe0oPds+c5B9Foyj8p/ZKLb7kL2qh9COYxiBHv3szd6gztqi/efkmriywLUVlPotqoJyw==} @@ -26910,7 +26699,7 @@ packages: loose-envify: 1.4.0 neo-async: 2.6.2 react: 18.2.0 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /react-split-pane@0.1.92(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GfXP1xSzLMcLJI5BM36Vh7GgZBpy+U/X0no+VM3fxayv+p1Jly5HpMofZJraeaMl73b3hvlr+N9zJKvLB/uz9w==} @@ -29261,7 +29050,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /style-to-object@0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} @@ -29595,6 +29384,7 @@ packages: serialize-javascript: 6.0.1 terser: 5.26.0 webpack: 5.89.0(esbuild@0.19.11) + dev: true /terser-webpack-plugin@5.3.10(webpack@5.89.0): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} @@ -30087,7 +29877,6 @@ packages: dependencies: tslib: 1.14.1 typescript: 4.9.5 - dev: false /tsutils@3.21.0(typescript@5.3.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -30286,7 +30075,6 @@ packages: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true - dev: false /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} @@ -30786,7 +30574,7 @@ packages: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /url@0.11.3: resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} @@ -31630,7 +31418,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 3.3.0 - webpack: 5.89.0(esbuild@0.19.11) + webpack: 5.89.0 /webpack-merge@5.10.0: resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} @@ -31737,6 +31525,7 @@ packages: - '@swc/core' - esbuild - uglify-js + dev: true /well-known-symbols@2.0.0: resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==}