diff --git a/packages/backend/package.json b/packages/backend/package.json
index 281134fe..7140bacc 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -23,8 +23,6 @@
"dependencies": {
"@bull-board/express": "^3.10.1",
"@casl/ability": "^6.5.0",
- "@graphql-tools/graphql-file-loader": "^7.3.4",
- "@graphql-tools/load": "^7.5.2",
"@node-saml/passport-saml": "^4.0.4",
"@rudderstack/rudder-sdk-node": "^1.1.2",
"@sentry/node": "^7.42.0",
@@ -41,11 +39,7 @@
"express": "~4.18.2",
"express-async-errors": "^3.1.1",
"express-basic-auth": "^1.2.1",
- "express-graphql": "^0.12.0",
"fast-xml-parser": "^4.0.11",
- "graphql-middleware": "^6.1.15",
- "graphql-shield": "^7.5.0",
- "graphql-tools": "^8.2.0",
"handlebars": "^4.7.7",
"http-errors": "~1.6.3",
"http-proxy-agent": "^7.0.0",
diff --git a/packages/backend/src/graphql/mutation-resolvers.js b/packages/backend/src/graphql/mutation-resolvers.js
deleted file mode 100644
index fa95c17c..00000000
--- a/packages/backend/src/graphql/mutation-resolvers.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const mutationResolvers = {};
-
-export default mutationResolvers;
diff --git a/packages/backend/src/graphql/mutations/delete-app-auth-client.ee.js b/packages/backend/src/graphql/mutations/delete-app-auth-client.ee.js
deleted file mode 100644
index 0bc84e45..00000000
--- a/packages/backend/src/graphql/mutations/delete-app-auth-client.ee.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import AppAuthClient from '../../models/app-auth-client';
-
-const deleteAppAuthClient = async (_parent, params, context) => {
- context.currentUser.can('delete', 'App');
-
- await AppAuthClient.query()
- .delete()
- .findOne({
- id: params.input.id,
- })
- .throwIfNotFound();
-
- return;
-};
-
-export default deleteAppAuthClient;
diff --git a/packages/backend/src/graphql/mutations/update-flow.js b/packages/backend/src/graphql/mutations/update-flow.js
deleted file mode 100644
index e8e21ef9..00000000
--- a/packages/backend/src/graphql/mutations/update-flow.js
+++ /dev/null
@@ -1,18 +0,0 @@
-const updateFlow = async (_parent, params, context) => {
- context.currentUser.can('update', 'Flow');
-
- let flow = await context.currentUser
- .$relatedQuery('flows')
- .findOne({
- id: params.input.id,
- })
- .throwIfNotFound();
-
- flow = await flow.$query().patchAndFetch({
- name: params.input.name,
- });
-
- return flow;
-};
-
-export default updateFlow;
diff --git a/packages/backend/src/graphql/mutations/update-role.ee.js b/packages/backend/src/graphql/mutations/update-role.ee.js
deleted file mode 100644
index 2566dc40..00000000
--- a/packages/backend/src/graphql/mutations/update-role.ee.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import Role from '../../models/role.js';
-import Permission from '../../models/permission.js';
-import permissionCatalog from '../../helpers/permission-catalog.ee.js';
-
-const updateRole = async (_parent, params, context) => {
- context.currentUser.can('update', 'Role');
-
- const { id, name, description, permissions } = params.input;
-
- const role = await Role.query().findById(id).throwIfNotFound();
-
- try {
- const updatedRole = await Role.transaction(async (trx) => {
- await role.$relatedQuery('permissions', trx).delete();
-
- if (permissions?.length) {
- const sanitizedPermissions = permissions
- .filter((permission) => {
- const { action, subject, conditions } = permission;
-
- const relevantAction = permissionCatalog.actions.find(
- (actionCatalogItem) => actionCatalogItem.key === action
- );
- const validSubject = relevantAction.subjects.includes(subject);
- const validConditions = conditions.every((condition) => {
- return !!permissionCatalog.conditions.find(
- (conditionCatalogItem) => conditionCatalogItem.key === condition
- );
- });
-
- return validSubject && validConditions;
- })
- .map((permission) => ({
- ...permission,
- roleId: role.id,
- }));
-
- await Permission.query().insert(sanitizedPermissions);
- }
-
- await role.$query(trx).patch({
- name,
- description,
- });
-
- return await Role.query(trx)
- .leftJoinRelated({
- permissions: true,
- })
- .withGraphFetched({
- permissions: true,
- })
- .findById(id);
- });
-
- return updatedRole;
- } catch (err) {
- throw new Error('The role could not be updated!');
- }
-};
-
-export default updateRole;
diff --git a/packages/backend/src/graphql/resolvers.js b/packages/backend/src/graphql/resolvers.js
deleted file mode 100644
index 70021c51..00000000
--- a/packages/backend/src/graphql/resolvers.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import mutationResolvers from './mutation-resolvers.js';
-
-const resolvers = {
- Mutation: mutationResolvers,
-};
-
-export default resolvers;
diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql
deleted file mode 100644
index cade7b74..00000000
--- a/packages/backend/src/graphql/schema.graphql
+++ /dev/null
@@ -1,324 +0,0 @@
-type Query {
- placeholderQuery(name: String): Boolean
-}
-
-type Mutation {
- placeholderQuery(name: String): Boolean
-}
-
-type Trigger {
- name: String
- key: String
- description: String
- showWebhookUrl: Boolean
- pollInterval: Int
- type: String
- substeps: [Substep]
-}
-
-type Action {
- name: String
- key: String
- description: String
- substeps: [Substep]
-}
-
-type Substep {
- key: String
- name: String
- arguments: [SubstepArgument]
-}
-
-type SubstepArgument {
- label: String
- key: String
- type: String
- description: String
- required: Boolean
- variables: Boolean
- options: [SubstepArgumentOption]
- source: SubstepArgumentSource
- additionalFields: SubstepArgumentAdditionalFields
- dependsOn: [String]
- fields: [SubstepArgument]
- value: JSONObject
-}
-
-type SubstepArgumentOption {
- label: String
- value: JSONObject
-}
-
-type SubstepArgumentSource {
- type: String
- name: String
- arguments: [SubstepArgumentSourceArgument]
-}
-
-type SubstepArgumentSourceArgument {
- name: String
- value: String
-}
-
-type SubstepArgumentAdditionalFields {
- type: String
- name: String
- arguments: [SubstepArgumentAdditionalFieldsArgument]
-}
-
-type SubstepArgumentAdditionalFieldsArgument {
- name: String
- value: String
-}
-
-type App {
- name: String
- key: String
- connectionCount: Int
- flowCount: Int
- iconUrl: String
- docUrl: String
- authDocUrl: String
- primaryColor: String
- supportsConnections: Boolean
- auth: AppAuth
- triggers: [Trigger]
- actions: [Action]
- connections: [Connection]
-}
-
-type AppAuth {
- fields: [Field]
- authenticationSteps: [AuthenticationStep]
- sharedAuthenticationSteps: [AuthenticationStep]
- reconnectionSteps: [ReconnectionStep]
- sharedReconnectionSteps: [ReconnectionStep]
-}
-
-enum ArgumentEnumType {
- integer
- string
-}
-
-type AuthenticationStep {
- type: String
- name: String
- arguments: [AuthenticationStepArgument]
-}
-
-type AuthenticationStepArgument {
- name: String
- value: String
- type: ArgumentEnumType
- properties: [AuthenticationStepProperty]
-}
-
-type AuthenticationStepProperty {
- name: String
- value: String
-}
-
-type Connection {
- id: String
- key: String
- reconnectable: Boolean
- appAuthClientId: String
- formattedData: ConnectionData
- verified: Boolean
- app: App
- createdAt: String
- flowCount: Int
-}
-
-type ConnectionData {
- screenName: String
-}
-
-type ExecutionStep {
- id: String
- executionId: String
- stepId: String
- step: Step
- status: String
- dataIn: JSONObject
- dataOut: JSONObject
- errorDetails: JSONObject
- createdAt: String
- updatedAt: String
-}
-
-type Field {
- key: String
- label: String
- type: String
- required: Boolean
- readOnly: Boolean
- value: String
- placeholder: String
- description: String
- docUrl: String
- clickToCopy: Boolean
- options: [SubstepArgumentOption]
-}
-
-enum FlowStatus {
- paused
- published
- draft
-}
-
-type Flow {
- id: String
- name: String
- active: Boolean
- steps: [Step]
- createdAt: String
- updatedAt: String
- status: FlowStatus
-}
-
-type SamlAuthProvidersRoleMapping {
- id: String
- samlAuthProviderId: String
- roleId: String
- remoteRoleName: String
-}
-
-input UserRoleInput {
- id: String
-}
-
-"""
-The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
-"""
-scalar JSONObject
-
-input PreviousStepInput {
- id: String
-}
-
-type ReconnectionStep {
- type: String
- name: String
- arguments: [ReconnectionStepArgument]
-}
-
-type ReconnectionStepArgument {
- name: String
- value: String
- type: ArgumentEnumType
- properties: [ReconnectionStepProperty]
-}
-
-type ReconnectionStepProperty {
- name: String
- value: String
-}
-
-type Step {
- id: String
- previousStepId: String
- key: String
- appKey: String
- iconUrl: String
- webhookUrl: String
- type: StepEnumType
- parameters: JSONObject
- connection: Connection
- flow: Flow
- position: Int
- status: String
- executionSteps: [ExecutionStep]
-}
-
-input StepConnectionInput {
- id: String
-}
-
-enum StepEnumType {
- trigger
- action
-}
-
-input StepFlowInput {
- id: String
-}
-
-input StepInput {
- id: String
- previousStepId: String
- key: String
- appKey: String
- connection: StepConnectionInput
- flow: StepFlowInput
- parameters: JSONObject
- previousStep: PreviousStepInput
-}
-
-type User {
- id: String
- fullName: String
- email: String
- role: Role
- permissions: [Permission]
- createdAt: String
- updatedAt: String
-}
-
-type Role {
- id: String
- name: String
- key: String
- description: String
- isAdmin: Boolean
- permissions: [Permission]
-}
-
-type PageInfo {
- currentPage: Int!
- totalPages: Int!
-}
-
-type ExecutionStepEdge {
- node: ExecutionStep
-}
-
-type ExecutionStepConnection {
- edges: [ExecutionStepEdge]
- pageInfo: PageInfo
-}
-
-type License {
- id: String
- name: String
- expireAt: String
- verified: Boolean
-}
-
-type Permission {
- id: String
- action: String
- subject: String
- conditions: [String]
-}
-
-type Action {
- label: String
- key: String
- subjects: [String]
-}
-
-type Condition {
- key: String
- label: String
-}
-
-type Subject {
- label: String
- key: String
-}
-
-schema {
- query: Query
- mutation: Mutation
-}
diff --git a/packages/backend/src/helpers/authentication.js b/packages/backend/src/helpers/authentication.js
index b2eeeffa..cfbb20d4 100644
--- a/packages/backend/src/helpers/authentication.js
+++ b/packages/backend/src/helpers/authentication.js
@@ -1,8 +1,7 @@
-import { rule, shield } from 'graphql-shield';
import User from '../models/user.js';
import AccessToken from '../models/access-token.js';
-export const isAuthenticated = async (_parent, _args, req) => {
+export const isAuthenticated = async (req) => {
const token = req.headers['authorization'];
if (token == null) return false;
@@ -41,25 +40,9 @@ export const isAuthenticated = async (_parent, _args, req) => {
};
export const authenticateUser = async (request, response, next) => {
- if (await isAuthenticated(null, null, request)) {
+ if (await isAuthenticated(request)) {
next();
} else {
return response.status(401).end();
}
};
-
-const isAuthenticatedRule = rule()(isAuthenticated);
-
-export const authenticationRules = {
- Mutation: {
- '*': isAuthenticatedRule,
- },
-};
-
-const authenticationOptions = {
- allowExternalErrors: true,
-};
-
-const authentication = shield(authenticationRules, authenticationOptions);
-
-export default authentication;
diff --git a/packages/backend/src/helpers/authentication.test.js b/packages/backend/src/helpers/authentication.test.js
index a5a4b60f..1b5f1620 100644
--- a/packages/backend/src/helpers/authentication.test.js
+++ b/packages/backend/src/helpers/authentication.test.js
@@ -1,18 +1,17 @@
import { describe, it, expect } from 'vitest';
-import { allow } from 'graphql-shield';
-import { isAuthenticated, authenticationRules } from './authentication.js';
+import { isAuthenticated } from './authentication.js';
import { createUser } from '../../test/factories/user.js';
import createAuthTokenByUserId from '../helpers/create-auth-token-by-user-id.js';
describe('isAuthenticated', () => {
it('should return false if no token is provided', async () => {
const req = { headers: {} };
- expect(await isAuthenticated(null, null, req)).toBe(false);
+ expect(await isAuthenticated(req)).toBe(false);
});
it('should return false if token is invalid', async () => {
const req = { headers: { authorization: 'invalidToken' } };
- expect(await isAuthenticated(null, null, req)).toBe(false);
+ expect(await isAuthenticated(req)).toBe(false);
});
it('should return true if token is valid and there is a user', async () => {
@@ -20,7 +19,7 @@ describe('isAuthenticated', () => {
const token = await createAuthTokenByUserId(user.id);
const req = { headers: { authorization: token } };
- expect(await isAuthenticated(null, null, req)).toBe(true);
+ expect(await isAuthenticated(req)).toBe(true);
});
it('should return false if token is valid and but there is no user', async () => {
@@ -29,46 +28,6 @@ describe('isAuthenticated', () => {
await user.$query().delete();
const req = { headers: { authorization: token } };
- expect(await isAuthenticated(null, null, req)).toBe(false);
- });
-});
-
-describe('authentication rules', () => {
- const getQueryAndMutationNames = (rules) => {
- const queries = Object.keys(rules.Query || {});
- const mutations = Object.keys(rules.Mutation || {});
- return { queries, mutations };
- };
-
- const { queries, mutations } = getQueryAndMutationNames(authenticationRules);
-
- if (queries.length) {
- describe('for queries', () => {
- queries.forEach((query) => {
- it(`should apply correct rule for query: ${query}`, () => {
- const ruleApplied = authenticationRules.Query[query];
-
- if (query === '*') {
- expect(ruleApplied.func).toBe(isAuthenticated);
- } else {
- expect(ruleApplied).toEqual(allow);
- }
- });
- });
- });
- }
-
- describe('for mutations', () => {
- mutations.forEach((mutation) => {
- it(`should apply correct rule for mutation: ${mutation}`, () => {
- const ruleApplied = authenticationRules.Mutation[mutation];
-
- if (mutation === '*') {
- expect(ruleApplied.func).toBe(isAuthenticated);
- } else {
- expect(ruleApplied).toBe(allow);
- }
- });
- });
+ expect(await isAuthenticated(req)).toBe(false);
});
});
diff --git a/packages/backend/src/helpers/graphql-instance.js b/packages/backend/src/helpers/graphql-instance.js
deleted file mode 100644
index a8a50db7..00000000
--- a/packages/backend/src/helpers/graphql-instance.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import path, { join } from 'path';
-import { fileURLToPath } from 'url';
-import { graphqlHTTP } from 'express-graphql';
-import { loadSchemaSync } from '@graphql-tools/load';
-import { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader';
-import { addResolversToSchema } from '@graphql-tools/schema';
-import { applyMiddleware } from 'graphql-middleware';
-
-import appConfig from '../config/app.js';
-import logger from './logger.js';
-import authentication from './authentication.js';
-import * as Sentry from './sentry.ee.js';
-import resolvers from '../graphql/resolvers.js';
-import HttpError from '../errors/http.js';
-
-const __dirname = path.dirname(fileURLToPath(import.meta.url));
-
-const schema = loadSchemaSync(join(__dirname, '../graphql/schema.graphql'), {
- loaders: [new GraphQLFileLoader()],
-});
-
-const schemaWithResolvers = addResolversToSchema({
- schema,
- resolvers,
-});
-
-const graphQLInstance = graphqlHTTP({
- schema: applyMiddleware(
- schemaWithResolvers,
- authentication.generate(schemaWithResolvers)
- ),
- graphiql: appConfig.isDev,
- customFormatErrorFn: (error) => {
- logger.error(error.path + ' : ' + error.message + '\n' + error.stack);
-
- if (error.originalError instanceof HttpError) {
- delete error.originalError.response;
- }
-
- Sentry.captureException(error, {
- tags: { graphql: true },
- extra: {
- source: error.source?.body,
- positions: error.positions,
- path: error.path,
- },
- });
-
- return error;
- },
-});
-
-export default graphQLInstance;
diff --git a/packages/backend/src/helpers/morgan.js b/packages/backend/src/helpers/morgan.js
index 63d78538..12484f2d 100644
--- a/packages/backend/src/helpers/morgan.js
+++ b/packages/backend/src/helpers/morgan.js
@@ -6,18 +6,8 @@ const stream = {
logger.http(message.substring(0, message.lastIndexOf('\n'))),
};
-const registerGraphQLToken = () => {
- morgan.token('graphql-query', (req) => {
- if (req.body.query) {
- return `\n GraphQL ${req.body.query}`;
- }
- });
-};
-
-registerGraphQLToken();
-
const morganMiddleware = morgan(
- ':method :url :status :res[content-length] - :response-time ms :graphql-query',
+ ':method :url :status :res[content-length] - :response-time ms',
{ stream }
);
diff --git a/packages/backend/src/helpers/sentry.ee.js b/packages/backend/src/helpers/sentry.ee.js
index f8f8b6f7..141c5238 100644
--- a/packages/backend/src/helpers/sentry.ee.js
+++ b/packages/backend/src/helpers/sentry.ee.js
@@ -17,7 +17,6 @@ export function init(app) {
integrations: [
app && new Sentry.Integrations.Http({ tracing: true }),
app && new Tracing.Integrations.Express({ app }),
- app && new Tracing.Integrations.GraphQL(),
].filter(Boolean),
tracesSampleRate: 1.0,
});
diff --git a/packages/backend/src/routes/index.js b/packages/backend/src/routes/index.js
index 59de8561..c3ad6de0 100644
--- a/packages/backend/src/routes/index.js
+++ b/packages/backend/src/routes/index.js
@@ -1,5 +1,4 @@
import { Router } from 'express';
-import graphQLInstance from '../helpers/graphql-instance.js';
import webhooksRouter from './webhooks.js';
import paddleRouter from './paddle.ee.js';
import healthcheckRouter from './healthcheck.js';
@@ -23,7 +22,6 @@ import installationUsersRouter from './api/v1/installation/users.js';
const router = Router();
-router.use('/graphql', graphQLInstance);
router.use('/webhooks', webhooksRouter);
router.use('/paddle', paddleRouter);
router.use('/healthcheck', healthcheckRouter);
diff --git a/packages/web/package.json b/packages/web/package.json
index a785985b..b811465c 100644
--- a/packages/web/package.json
+++ b/packages/web/package.json
@@ -4,7 +4,6 @@
"license": "See LICENSE file",
"description": "The open source Zapier alternative. Build workflow automation without spending time and money.",
"dependencies": {
- "@apollo/client": "^3.6.9",
"@casl/ability": "^6.5.0",
"@casl/react": "^3.1.0",
"@dagrejs/dagre": "^1.1.2",
@@ -21,7 +20,6 @@
"@testing-library/user-event": "^12.1.10",
"clipboard-copy": "^4.0.1",
"compare-versions": "^4.1.3",
- "graphql": "^15.6.0",
"lodash": "^4.17.21",
"luxon": "^2.3.1",
"mui-color-input": "^2.0.0",
diff --git a/packages/web/src/components/AccountDropdownMenu/index.jsx b/packages/web/src/components/AccountDropdownMenu/index.jsx
index 4c69a8be..0bfb2ad7 100644
--- a/packages/web/src/components/AccountDropdownMenu/index.jsx
+++ b/packages/web/src/components/AccountDropdownMenu/index.jsx
@@ -6,11 +6,11 @@ import Menu from '@mui/material/Menu';
import { Link } from 'react-router-dom';
import Can from 'components/Can';
-import apolloClient from 'graphql/client';
import * as URLS from 'config/urls';
import useAuthentication from 'hooks/useAuthentication';
import useFormatMessage from 'hooks/useFormatMessage';
import useRevokeAccessToken from 'hooks/useRevokeAccessToken';
+
function AccountDropdownMenu(props) {
const formatMessage = useFormatMessage();
const authentication = useAuthentication();
@@ -23,7 +23,6 @@ function AccountDropdownMenu(props) {
await revokeAccessTokenMutation.mutateAsync();
authentication.removeToken();
- await apolloClient.clearStore();
onClose();
navigate(URLS.LOGIN);
};
diff --git a/packages/web/src/components/AdminApplicationAuthClientDialog/index.jsx b/packages/web/src/components/AdminApplicationAuthClientDialog/index.jsx
index 9172bc1b..2a0aec33 100644
--- a/packages/web/src/components/AdminApplicationAuthClientDialog/index.jsx
+++ b/packages/web/src/components/AdminApplicationAuthClientDialog/index.jsx
@@ -7,7 +7,6 @@ import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import CircularProgress from '@mui/material/CircularProgress';
-import { ApolloError } from '@apollo/client';
import { FieldPropType } from 'propTypes/propTypes';
import useFormatMessage from 'hooks/useFormatMessage';
@@ -89,7 +88,9 @@ function AdminApplicationAuthClientDialog(props) {
}
AdminApplicationAuthClientDialog.propTypes = {
- error: PropTypes.instanceOf(ApolloError),
+ error: PropTypes.shape({
+ message: PropTypes.string,
+ }),
onClose: PropTypes.func.isRequired,
title: PropTypes.string.isRequired,
loading: PropTypes.bool.isRequired,
diff --git a/packages/web/src/components/ApolloProvider/index.jsx b/packages/web/src/components/ApolloProvider/index.jsx
deleted file mode 100644
index 2f74988a..00000000
--- a/packages/web/src/components/ApolloProvider/index.jsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import { ApolloProvider as BaseApolloProvider } from '@apollo/client';
-import * as React from 'react';
-
-import { mutateAndGetClient } from 'graphql/client';
-import useAuthentication from 'hooks/useAuthentication';
-import useEnqueueSnackbar from 'hooks/useEnqueueSnackbar';
-
-const ApolloProvider = (props) => {
- const enqueueSnackbar = useEnqueueSnackbar();
- const authentication = useAuthentication();
-
- const onError = React.useCallback(
- (message) => {
- enqueueSnackbar(message, {
- variant: 'error',
- SnackbarProps: {
- 'data-test': 'snackbar-error',
- },
- });
- },
- [enqueueSnackbar],
- );
-
- const client = React.useMemo(() => {
- return mutateAndGetClient({
- onError,
- token: authentication.token,
- });
- }, [onError, authentication]);
-
- return ;
-};
-
-export default ApolloProvider;
diff --git a/packages/web/src/components/DeleteAccountDialog/index.ee.jsx b/packages/web/src/components/DeleteAccountDialog/index.ee.jsx
index cd5354a5..59fa55ab 100644
--- a/packages/web/src/components/DeleteAccountDialog/index.ee.jsx
+++ b/packages/web/src/components/DeleteAccountDialog/index.ee.jsx
@@ -4,7 +4,6 @@ import { useNavigate } from 'react-router-dom';
import * as URLS from 'config/urls';
import ConfirmationDialog from 'components/ConfirmationDialog';
-import apolloClient from 'graphql/client';
import useAuthentication from 'hooks/useAuthentication';
import useFormatMessage from 'hooks/useFormatMessage';
import useCurrentUser from 'hooks/useCurrentUser';
@@ -27,8 +26,6 @@ function DeleteAccountDialog(props) {
authentication.removeToken();
- await apolloClient.clearStore();
-
navigate(URLS.LOGIN);
}, [deleteCurrentUser, authentication, navigate]);
diff --git a/packages/web/src/components/EditorNew/EditorNew.jsx b/packages/web/src/components/EditorNew/EditorNew.jsx
index 89e655c4..fc7a5589 100644
--- a/packages/web/src/components/EditorNew/EditorNew.jsx
+++ b/packages/web/src/components/EditorNew/EditorNew.jsx
@@ -1,5 +1,4 @@
import { useEffect, useCallback, createContext, useRef, useState } from 'react';
-import { useMutation } from '@apollo/client';
import { useQueryClient } from '@tanstack/react-query';
import { FlowPropType } from 'propTypes/propTypes';
import ReactFlow, { useNodesState, useEdgesState } from 'reactflow';
diff --git a/packages/web/src/components/SignUpForm/index.ee.jsx b/packages/web/src/components/SignUpForm/index.ee.jsx
index a9f140c2..33ab7ab8 100644
--- a/packages/web/src/components/SignUpForm/index.ee.jsx
+++ b/packages/web/src/components/SignUpForm/index.ee.jsx
@@ -1,6 +1,5 @@
import * as React from 'react';
import { useNavigate } from 'react-router-dom';
-import { useMutation } from '@apollo/client';
import Paper from '@mui/material/Paper';
import Typography from '@mui/material/Typography';
import LoadingButton from '@mui/lab/LoadingButton';
diff --git a/packages/web/src/config/app.js b/packages/web/src/config/app.js
index 1a314640..1cb2466c 100644
--- a/packages/web/src/config/app.js
+++ b/packages/web/src/config/app.js
@@ -16,7 +16,6 @@ const computeUrl = (url, backendUrl) => {
const config = {
baseUrl: process.env.REACT_APP_BASE_URL,
- graphqlUrl: computeUrl('/graphql', backendUrl),
restApiUrl: computeUrl('/api', backendUrl),
supportEmailAddress: 'support@automatisch.io',
};
diff --git a/packages/web/src/graphql/cache.js b/packages/web/src/graphql/cache.js
deleted file mode 100644
index 5d44dc73..00000000
--- a/packages/web/src/graphql/cache.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { InMemoryCache } from '@apollo/client';
-const cache = new InMemoryCache({
- typePolicies: {
- App: {
- keyFields: ['key'],
- },
- Mutation: {
- mutationType: true,
- fields: {},
- },
- },
-});
-export default cache;
diff --git a/packages/web/src/graphql/client.js b/packages/web/src/graphql/client.js
deleted file mode 100644
index cbd2ee1b..00000000
--- a/packages/web/src/graphql/client.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { ApolloClient } from '@apollo/client';
-
-import cache from './cache';
-import createLink from './link';
-import appConfig from 'config/app';
-
-const client = new ApolloClient({
- cache,
- link: createLink({ uri: appConfig.graphqlUrl }),
- defaultOptions: {
- watchQuery: {
- fetchPolicy: 'cache-and-network',
- },
- },
-});
-
-export function mutateAndGetClient(options) {
- const { onError, token } = options;
-
- const link = createLink({
- uri: appConfig.graphqlUrl,
- token,
- onError,
- });
-
- client.setLink(link);
-
- return client;
-}
-
-export default client;
diff --git a/packages/web/src/graphql/link.js b/packages/web/src/graphql/link.js
deleted file mode 100644
index 7e5d3c1d..00000000
--- a/packages/web/src/graphql/link.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { HttpLink, from } from '@apollo/client';
-import { onError } from '@apollo/client/link/error';
-import { setItem } from 'helpers/storage';
-import * as URLS from 'config/urls';
-const createHttpLink = (options) => {
- const { uri, token } = options;
- const headers = {
- authorization: token,
- };
- return new HttpLink({ uri, headers });
-};
-const NOT_AUTHORISED = 'Not Authorised!';
-const createErrorLink = (callback) =>
- onError(({ graphQLErrors, networkError, operation }) => {
- const context = operation.getContext();
- const autoSnackbar = context.autoSnackbar ?? true;
- if (graphQLErrors)
- graphQLErrors.forEach(({ message, locations, path }) => {
- if (autoSnackbar) {
- callback?.(message);
- }
- console.error(
- `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`,
- );
- if (message === NOT_AUTHORISED) {
- setItem('token', '');
- if (window.location.pathname !== URLS.LOGIN) {
- window.location.href = URLS.LOGIN;
- }
- }
- });
- if (networkError) {
- if (autoSnackbar) {
- callback?.(networkError.toString());
- }
- console.error(`[Network error]: ${networkError}`);
- }
- });
-
-const noop = () => {};
-const createLink = (options) => {
- const { uri, onError = noop, token } = options;
- const httpOptions = { uri, token };
- return from([createErrorLink(onError), createHttpLink(httpOptions)]);
-};
-export default createLink;
diff --git a/packages/web/src/graphql/pagination.js b/packages/web/src/graphql/pagination.js
deleted file mode 100644
index 3dd0a522..00000000
--- a/packages/web/src/graphql/pagination.js
+++ /dev/null
@@ -1,32 +0,0 @@
-const makeEmptyData = () => {
- return {
- edges: [],
- pageInfo: {
- currentPage: 1,
- totalPages: 1,
- },
- };
-};
-function offsetLimitPagination(keyArgs = false) {
- return {
- keyArgs,
- merge(existing, incoming, { args }) {
- if (!existing) {
- existing = makeEmptyData();
- }
- if (!incoming || incoming === null) return existing;
- const existingEdges = existing?.edges || [];
- const incomingEdges = incoming.edges || [];
- if (args) {
- const newEdges = [...existingEdges, ...incomingEdges];
- return {
- pageInfo: incoming.pageInfo,
- edges: newEdges,
- };
- } else {
- return existing;
- }
- },
- };
-}
-export default offsetLimitPagination;
diff --git a/packages/web/src/graphql/queries/get-dynamic-fields.js b/packages/web/src/graphql/queries/get-dynamic-fields.js
deleted file mode 100644
index 1be20681..00000000
--- a/packages/web/src/graphql/queries/get-dynamic-fields.js
+++ /dev/null
@@ -1,69 +0,0 @@
-import { gql } from '@apollo/client';
-export const GET_DYNAMIC_FIELDS = gql`
- query GetDynamicFields(
- $stepId: String!
- $key: String!
- $parameters: JSONObject
- ) {
- getDynamicFields(stepId: $stepId, key: $key, parameters: $parameters) {
- label
- key
- type
- required
- description
- variables
- dependsOn
- value
- options {
- label
- value
- }
- source {
- type
- name
- arguments {
- name
- value
- }
- }
- additionalFields {
- type
- name
- arguments {
- name
- value
- }
- }
- fields {
- label
- key
- type
- required
- description
- variables
- value
- dependsOn
- options {
- label
- value
- }
- source {
- type
- name
- arguments {
- name
- value
- }
- }
- additionalFields {
- type
- name
- arguments {
- name
- value
- }
- }
- }
- }
- }
-`;
diff --git a/packages/web/src/index.jsx b/packages/web/src/index.jsx
index 608e89d0..8c03da02 100644
--- a/packages/web/src/index.jsx
+++ b/packages/web/src/index.jsx
@@ -3,7 +3,6 @@ import { Settings } from 'luxon';
import ThemeProvider from 'components/ThemeProvider';
import IntlProvider from 'components/IntlProvider';
-import ApolloProvider from 'components/ApolloProvider';
import SnackbarProvider from 'components/SnackbarProvider';
import MetadataProvider from 'components/MetadataProvider';
import { AuthenticationProvider } from 'contexts/Authentication';
@@ -23,13 +22,11 @@ root.render(
-
-
-
- {routes}
-
-
-
+
+
+ {routes}
+
+
diff --git a/yarn.lock b/yarn.lock
index b76da33b..ca62a206 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -134,42 +134,6 @@
jsonpointer "^5.0.0"
leven "^3.1.0"
-"@apollo/client@^3.6.9":
- version "3.6.9"
- resolved "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz"
- integrity sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==
- dependencies:
- "@graphql-typed-document-node/core" "^3.1.1"
- "@wry/context" "^0.6.0"
- "@wry/equality" "^0.5.0"
- "@wry/trie" "^0.3.0"
- graphql-tag "^2.12.6"
- hoist-non-react-statics "^3.3.2"
- optimism "^0.16.1"
- prop-types "^15.7.2"
- symbol-observable "^4.0.0"
- ts-invariant "^0.10.3"
- tslib "^2.3.0"
- zen-observable-ts "^1.2.5"
-
-"@apollo/client@~3.2.5 || ~3.3.0 || ~3.4.0":
- version "3.4.17"
- resolved "https://registry.npmjs.org/@apollo/client/-/client-3.4.17.tgz"
- integrity sha512-MDt2rwMX1GqodiVEKJqmDmAz8xr0qJmq5PdWeIt0yDaT4GOkKYWZiWkyfhfv3raTk8PyJvbsNG9q2CqmUrlGfg==
- dependencies:
- "@graphql-typed-document-node/core" "^3.0.0"
- "@wry/context" "^0.6.0"
- "@wry/equality" "^0.5.0"
- "@wry/trie" "^0.3.0"
- graphql-tag "^2.12.3"
- hoist-non-react-statics "^3.3.2"
- optimism "^0.16.1"
- prop-types "^15.7.2"
- symbol-observable "^4.0.0"
- ts-invariant "^0.9.0"
- tslib "^2.3.0"
- zen-observable-ts "~1.1.0"
-
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.8.3":
version "7.16.7"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz"
@@ -1320,13 +1284,6 @@
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.10.5":
- version "7.17.2"
- resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz"
- integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
- dependencies:
- regenerator-runtime "^0.13.4"
-
"@babel/runtime@^7.17.8":
version "7.17.9"
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz"
@@ -1871,89 +1828,6 @@
resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz"
integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
-"@graphql-tools/batch-execute@^8.3.2":
- version "8.3.2"
- resolved "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.3.2.tgz"
- integrity sha512-ICWqM+MvEkIPHm18Q0cmkvm134zeQMomBKmTRxyxMNhL/ouz6Nqld52/brSlaHnzA3fczupeRJzZ0YatruGBcQ==
- dependencies:
- "@graphql-tools/utils" "^8.6.2"
- dataloader "2.0.0"
- tslib "~2.3.0"
- value-or-promise "1.0.11"
-
-"@graphql-tools/delegate@^8.5.1":
- version "8.5.1"
- resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.5.1.tgz"
- integrity sha512-/YPmVxitt57F8sH50pnfXASzOOjEfaUDkX48eF5q6f16+JBncej2zeu+Zm2c68q8MbIxhPlEGfpd0QZeqTvAxw==
- dependencies:
- "@graphql-tools/batch-execute" "^8.3.2"
- "@graphql-tools/schema" "^8.3.2"
- "@graphql-tools/utils" "^8.6.2"
- dataloader "2.0.0"
- graphql-executor "0.0.18"
- tslib "~2.3.0"
- value-or-promise "1.0.11"
-
-"@graphql-tools/graphql-file-loader@^7.3.4":
- version "7.3.4"
- resolved "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.4.tgz"
- integrity sha512-Q0/YtDq0APR6syRclsQMNguWKRlchd8nFTOpLhfc7Xeiy21VhEEi4Ik+quRySfb7ubDfJGhiUq4MQW43FhWJvg==
- dependencies:
- "@graphql-tools/import" "^6.6.6"
- "@graphql-tools/utils" "^8.6.2"
- globby "^11.0.3"
- tslib "~2.3.0"
- unixify "^1.0.0"
-
-"@graphql-tools/import@^6.6.6":
- version "6.6.6"
- resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.6.tgz"
- integrity sha512-a0aVajxqu1MsL8EwavA44Osw20lBOIhq8IM2ZIHFPP62cPAcOB26P+Sq57DHMsSyX5YQ0ab9XPM2o4e1dQhs0w==
- dependencies:
- "@graphql-tools/utils" "8.6.2"
- resolve-from "5.0.0"
- tslib "~2.3.0"
-
-"@graphql-tools/load@^7.5.2":
- version "7.5.2"
- resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.2.tgz"
- integrity sha512-URPqVP77mYxdZxT895DzrWf2C23S3yC/oAmXD4D4YlxR5eVVH/fxu0aZR78WcEKF331fWSiFwWy9j7BZWvkj7g==
- dependencies:
- "@graphql-tools/schema" "8.3.2"
- "@graphql-tools/utils" "^8.6.2"
- p-limit "3.1.0"
- tslib "~2.3.0"
-
-"@graphql-tools/merge@^8.2.3":
- version "8.2.3"
- resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.3.tgz"
- integrity sha512-XCSmL6/Xg8259OTWNp69B57CPWiVL69kB7pposFrufG/zaAlI9BS68dgzrxmmSqZV5ZHU4r/6Tbf6fwnEJGiSw==
- dependencies:
- "@graphql-tools/utils" "^8.6.2"
- tslib "~2.3.0"
-
-"@graphql-tools/schema@8.3.2", "@graphql-tools/schema@^8.2.0", "@graphql-tools/schema@^8.3.2":
- version "8.3.2"
- resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.2.tgz"
- integrity sha512-77feSmIuHdoxMXRbRyxE8rEziKesd/AcqKV6fmxe7Zt+PgIQITxNDew2XJJg7qFTMNM43W77Ia6njUSBxNOkwg==
- dependencies:
- "@graphql-tools/merge" "^8.2.3"
- "@graphql-tools/utils" "^8.6.2"
- tslib "~2.3.0"
- value-or-promise "1.0.11"
-
-"@graphql-tools/utils@8.6.2", "@graphql-tools/utils@^8.6.2":
- version "8.6.2"
- resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.2.tgz"
- integrity sha512-x1DG0cJgpJtImUlNE780B/dfp8pxvVxOD6UeykFH5rHes26S4kGokbgU8F1IgrJ1vAPm/OVBHtd2kicTsPfwdA==
- dependencies:
- tslib "~2.3.0"
-
-"@graphql-typed-document-node/core@^3.0.0", "@graphql-typed-document-node/core@^3.1.1":
- version "3.1.1"
- resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz"
- integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==
-
"@hookform/resolvers@^2.8.8":
version "2.8.8"
resolved "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-2.8.8.tgz"
@@ -4538,16 +4412,6 @@
dependencies:
"@types/yargs-parser" "*"
-"@types/yup@0.29.11":
- version "0.29.11"
- resolved "https://registry.npmjs.org/@types/yup/-/yup-0.29.11.tgz"
- integrity sha512-9cwk3c87qQKZrT251EDoibiYRILjCmxBvvcb4meofCmx1vdnNcR9gyildy5vOHASpOKMsn42CugxUvcwK5eu1g==
-
-"@types/zen-observable@0.8.3":
- version "0.8.3"
- resolved "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz"
- integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==
-
"@typescript-eslint/eslint-plugin@^5.5.0":
version "5.10.0"
resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.0.tgz"
@@ -5088,27 +4952,6 @@
"@webassemblyjs/ast" "1.11.1"
"@xtuc/long" "4.2.2"
-"@wry/context@^0.6.0":
- version "0.6.1"
- resolved "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz"
- integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==
- dependencies:
- tslib "^2.3.0"
-
-"@wry/equality@^0.5.0":
- version "0.5.2"
- resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz"
- integrity sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==
- dependencies:
- tslib "^2.3.0"
-
-"@wry/trie@^0.3.0":
- version "0.3.1"
- resolved "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz"
- integrity sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==
- dependencies:
- tslib "^2.3.0"
-
"@xmldom/xmldom@0.8.7":
version "0.8.7"
resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.7.tgz"
@@ -5152,7 +4995,7 @@ abbrev@^2.0.0:
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf"
integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==
-accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
+accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
@@ -6110,11 +5953,6 @@ bytes@3.1.0:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
-bytes@3.1.1:
- version "3.1.1"
- resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz"
- integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==
-
bytes@3.1.2:
version "3.1.2"
resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
@@ -6718,7 +6556,7 @@ content-disposition@0.5.4:
dependencies:
safe-buffer "5.2.1"
-content-type@1.0.4, content-type@^1.0.4, content-type@~1.0.4:
+content-type@1.0.4, content-type@~1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
@@ -7248,11 +7086,6 @@ data-urls@^2.0.0:
whatwg-mimetype "^2.3.0"
whatwg-url "^8.0.0"
-dataloader@2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz"
- integrity sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==
-
dateformat@^3.0.0:
version "3.0.3"
resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz"
@@ -8563,16 +8396,6 @@ express-basic-auth@^1.2.1:
dependencies:
basic-auth "^2.0.1"
-express-graphql@^0.12.0:
- version "0.12.0"
- resolved "https://registry.npmjs.org/express-graphql/-/express-graphql-0.12.0.tgz"
- integrity sha512-DwYaJQy0amdy3pgNtiTDuGGM2BLdj+YO2SgbKoLliCfuHv3VVTt7vNG/ZqK2hRYjtYHE2t2KB705EU94mE64zg==
- dependencies:
- accepts "^1.3.7"
- content-type "^1.0.4"
- http-errors "1.8.0"
- raw-body "^2.4.1"
-
express@4.17.3, express@^4.17.1:
version "4.17.3"
resolved "https://registry.npmjs.org/express/-/express-4.17.3.tgz"
@@ -9315,7 +9138,7 @@ globals@^13.6.0, globals@^13.9.0:
dependencies:
type-fest "^0.20.2"
-globby@^11.0.1, globby@^11.0.2, globby@^11.0.3, globby@^11.0.4, globby@^11.1.0:
+globby@^11.0.1, globby@^11.0.2, globby@^11.0.4, globby@^11.1.0:
version "11.1.0"
resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
@@ -9354,50 +9177,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz"
integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
-graphql-executor@0.0.18:
- version "0.0.18"
- resolved "https://registry.npmjs.org/graphql-executor/-/graphql-executor-0.0.18.tgz"
- integrity sha512-upUSl7tfZCZ5dWG1XkOvpG70Yk3duZKcCoi/uJso4WxJVT6KIrcK4nZ4+2X/hzx46pL8wAukgYHY6iNmocRN+g==
-
-graphql-middleware@^6.1.15:
- version "6.1.15"
- resolved "https://registry.npmjs.org/graphql-middleware/-/graphql-middleware-6.1.15.tgz"
- integrity sha512-JiLuIM48EE3QLcr79K0VCCHqMt6c23esLlkZv2Nr9a/yHnv6eU9DKV9eXARl+wV9m4LkT9ZCg4cIamIa9vPidQ==
- dependencies:
- "@graphql-tools/delegate" "^8.5.1"
- "@graphql-tools/schema" "^8.3.2"
-
-graphql-shield@^7.5.0:
- version "7.5.0"
- resolved "https://registry.npmjs.org/graphql-shield/-/graphql-shield-7.5.0.tgz"
- integrity sha512-T1A6OreOe/dHDk/1Qg3AHCrKLmTkDJ3fPFGYpSOmUbYXyDnjubK4J5ab5FjHdKHK5fWQRZNTvA0SrBObYsyfaw==
- dependencies:
- "@types/yup" "0.29.11"
- object-hash "^2.0.3"
- yup "^0.31.0"
-
-graphql-tag@^2.12.3, graphql-tag@^2.12.6:
- version "2.12.6"
- resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz"
- integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==
- dependencies:
- tslib "^2.1.0"
-
-graphql-tools@^8.2.0:
- version "8.2.0"
- resolved "https://registry.npmjs.org/graphql-tools/-/graphql-tools-8.2.0.tgz"
- integrity sha512-9axT/0exEzVCk+vMPykOPannlrA4VQNo6nuWgh25IJ5arPf92OKxvjSHAbm7dQIFmcWxE0hVvyD2rWHjDqZCgQ==
- dependencies:
- "@graphql-tools/schema" "^8.2.0"
- tslib "~2.3.0"
- optionalDependencies:
- "@apollo/client" "~3.2.5 || ~3.3.0 || ~3.4.0"
-
-graphql@^15.6.0:
- version "15.8.0"
- resolved "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz"
- integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==
-
gzip-size@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz"
@@ -9617,17 +9396,6 @@ http-errors@1.7.3:
statuses ">= 1.5.0 < 2"
toidentifier "1.0.0"
-http-errors@1.8.0:
- version "1.8.0"
- resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz"
- integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
- dependencies:
- depd "~1.1.2"
- inherits "2.0.4"
- setprototypeof "1.2.0"
- statuses ">= 1.5.0 < 2"
- toidentifier "1.0.0"
-
http-errors@1.8.1:
version "1.8.1"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz"
@@ -11239,7 +11007,7 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
-lodash-es@^4.17.11, lodash-es@^4.17.21:
+lodash-es@^4.17.21:
version "4.17.21"
resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
@@ -12244,13 +12012,6 @@ normalize-package-data@^3.0.0, normalize-package-data@^3.0.2:
semver "^7.3.4"
validate-npm-package-license "^3.0.1"
-normalize-path@^2.1.1:
- version "2.1.1"
- resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"
- integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
- dependencies:
- remove-trailing-separator "^1.0.1"
-
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
@@ -12440,7 +12201,7 @@ object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1:
resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-object-hash@^2.0.3, object-hash@^2.2.0:
+object-hash@^2.2.0:
version "2.2.0"
resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
@@ -12591,14 +12352,6 @@ open@^8.0.9, open@^8.4.0:
is-docker "^2.1.1"
is-wsl "^2.2.0"
-optimism@^0.16.1:
- version "0.16.1"
- resolved "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz"
- integrity sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==
- dependencies:
- "@wry/context" "^0.6.0"
- "@wry/trie" "^0.3.0"
-
optionator@^0.8.1:
version "0.8.3"
resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz"
@@ -12651,13 +12404,6 @@ p-finally@^1.0.0:
resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-p-limit@3.1.0, p-limit@^3.0.2:
- version "3.1.0"
- resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
- integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
- dependencies:
- yocto-queue "^0.1.0"
-
p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz"
@@ -12672,6 +12418,13 @@ p-limit@^2.0.0, p-limit@^2.2.0:
dependencies:
p-try "^2.0.0"
+p-limit@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
p-limit@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-5.0.0.tgz#6946d5b7140b649b7a33a027d89b4c625b3a5985"
@@ -14030,16 +13783,6 @@ raw-body@2.5.1:
iconv-lite "0.4.24"
unpipe "1.0.0"
-raw-body@^2.4.1:
- version "2.4.2"
- resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz"
- integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==
- dependencies:
- bytes "3.1.1"
- http-errors "1.8.1"
- iconv-lite "0.4.24"
- unpipe "1.0.0"
-
raw-body@^2.5.2:
version "2.5.2"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
@@ -14565,11 +14308,6 @@ relateurl@^0.2.7:
resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz"
integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
-remove-trailing-separator@^1.0.1:
- version "1.1.0"
- resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"
- integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
-
remove-trailing-slash@^0.1.1:
version "0.1.1"
resolved "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz"
@@ -14634,16 +14372,16 @@ resolve-cwd@^3.0.0:
dependencies:
resolve-from "^5.0.0"
-resolve-from@5.0.0, resolve-from@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz"
- integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
resolve-url-loader@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz"
@@ -15842,11 +15580,6 @@ svgo@^2.7.0:
picocolors "^1.0.0"
stable "^0.1.8"
-symbol-observable@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz"
- integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==
-
symbol-tree@^3.2.4:
version "3.2.4"
resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"
@@ -16207,20 +15940,6 @@ ts-api-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b"
integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==
-ts-invariant@^0.10.3:
- version "0.10.3"
- resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz"
- integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==
- dependencies:
- tslib "^2.1.0"
-
-ts-invariant@^0.9.0:
- version "0.9.4"
- resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.9.4.tgz"
- integrity sha512-63jtX/ZSwnUNi/WhXjnK8kz4cHHpYS60AnmA6ixz17l7E12a5puCWFlNpkne5Rl0J8TBPVHpGjsj4fxs8ObVLQ==
- dependencies:
- tslib "^2.1.0"
-
tsconfig-paths@^3.12.0:
version "3.12.0"
resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz"
@@ -16236,7 +15955,7 @@ tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@~2.3.0:
+tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0:
version "2.3.1"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
@@ -16442,13 +16161,6 @@ universalify@^2.0.0:
resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
-unixify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz"
- integrity sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=
- dependencies:
- normalize-path "^2.1.1"
-
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
@@ -16589,11 +16301,6 @@ validate-npm-package-name@^3.0.0:
dependencies:
builtins "^1.0.3"
-value-or-promise@1.0.11:
- version "1.0.11"
- resolved "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz"
- integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==
-
vary@^1, vary@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
@@ -17436,17 +17143,6 @@ yocto-queue@^1.0.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
-yup@^0.31.0:
- version "0.31.1"
- resolved "https://registry.npmjs.org/yup/-/yup-0.31.1.tgz"
- integrity sha512-Lf6648jDYOWR75IlWkVfwesPyW6oj+50NpxlKvsQlpPsB8eI+ndI7b4S1VrwbmeV9hIZDu1MzrlIL4W+gK1jPw==
- dependencies:
- "@babel/runtime" "^7.10.5"
- lodash "^4.17.20"
- lodash-es "^4.17.11"
- property-expr "^2.0.4"
- toposort "^2.0.2"
-
yup@^0.32.11:
version "0.32.11"
resolved "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz"
@@ -17460,26 +17156,6 @@ yup@^0.32.11:
property-expr "^2.0.4"
toposort "^2.0.2"
-zen-observable-ts@^1.2.5:
- version "1.2.5"
- resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz"
- integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==
- dependencies:
- zen-observable "0.8.15"
-
-zen-observable-ts@~1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz"
- integrity sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==
- dependencies:
- "@types/zen-observable" "0.8.3"
- zen-observable "0.8.15"
-
-zen-observable@0.8.15:
- version "0.8.15"
- resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz"
- integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==
-
zustand@^4.4.1:
version "4.5.2"
resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.2.tgz#fddbe7cac1e71d45413b3682cdb47b48034c3848"