Feat/front metadata request (#1977)
* wip * Wip * Wip * Finished v1 * Fix from PR * Removed unused fragment masking feature
This commit is contained in:
@ -58,7 +58,7 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
],
|
||||
ignorePatterns: ['.eslintrc.js', 'codegen.js', '**/generated/*', '*.config.js'],
|
||||
ignorePatterns: ['.eslintrc.js', 'codegen*.js', '**/generated*/*', '*.config.js'],
|
||||
rules: {
|
||||
'@typescript-eslint/interface-name-prefix': 'off',
|
||||
'@typescript-eslint/explicit-function-return-type': 'off',
|
||||
|
||||
13
front/codegen-metadata.js
Normal file
13
front/codegen-metadata.js
Normal file
@ -0,0 +1,13 @@
|
||||
module.exports = {
|
||||
schema: process.env.REACT_APP_SERVER_BASE_URL + "/metadata",
|
||||
documents: ['./src/modules/metadata/graphql/*.tsx', './src/modules/metadata/graphql/*.ts'],
|
||||
overwrite: true,
|
||||
generates: {
|
||||
'./src/generated-metadata/': {
|
||||
preset: 'client',
|
||||
presetConfig: {
|
||||
fragmentMasking: false
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
@ -1,6 +1,6 @@
|
||||
module.exports = {
|
||||
schema: process.env.REACT_APP_SERVER_BASE_URL + "/graphql",
|
||||
documents: ['./src/**/*.tsx', './src/**/*.ts'],
|
||||
documents: ['!./src/modules/metadata/**', './src/modules/**/*.tsx', './src/modules/**/*.ts'],
|
||||
overwrite: true,
|
||||
generates: {
|
||||
'./src/generated/graphql.tsx': {
|
||||
|
||||
@ -82,7 +82,8 @@
|
||||
"storybook:pages:build": "STORYBOOK_STORIES_FOLDER=pages yarn storybook:build",
|
||||
"storybook:modules:coverage": "STORYBOOK_STORIES_FOLDER=modules yarn storybook:coverage",
|
||||
"storybook:pages:coverage": "STORYBOOK_STORIES_FOLDER=pages yarn storybook:coverage",
|
||||
"graphql:generate": "dotenv cross-var graphql-codegen --config codegen.js",
|
||||
"graphql:data:generate": "dotenv cross-var graphql-codegen -- --config codegen.js",
|
||||
"graphql:metadata:generate": "dotenv cross-var graphql-codegen -- --config codegen-metadata.js",
|
||||
"chromatic": "dotenv cross-var npx chromatic --project-token=$CHROMATIC_PROJECT_TOKEN",
|
||||
"install": "yarn eslint-plugin:setup"
|
||||
},
|
||||
@ -126,6 +127,7 @@
|
||||
"devDependencies": {
|
||||
"@craco/craco": "^7.1.0",
|
||||
"@graphql-codegen/cli": "^3.3.1",
|
||||
"@graphql-codegen/client-preset": "^4.1.0",
|
||||
"@graphql-codegen/typescript": "^3.0.4",
|
||||
"@graphql-codegen/typescript-operations": "^3.0.4",
|
||||
"@graphql-codegen/typescript-react-apollo": "^3.3.7",
|
||||
|
||||
42
front/src/generated-metadata/gql.ts
Normal file
42
front/src/generated-metadata/gql.ts
Normal file
@ -0,0 +1,42 @@
|
||||
/* eslint-disable */
|
||||
import * as types from './graphql';
|
||||
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
|
||||
|
||||
/**
|
||||
* Map of all GraphQL operations in the project.
|
||||
*
|
||||
* This map has several performance disadvantages:
|
||||
* 1. It is not tree-shakeable, so it will include all operations in the project.
|
||||
* 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.
|
||||
* 3. It does not support dead code elimination, so it will add unused operations.
|
||||
*
|
||||
* Therefore it is highly recommended to use the babel or swc plugin for production.
|
||||
*/
|
||||
const documents = {
|
||||
"\n query Objects {\n objects(paging: { first: 100 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 100 }) {\n edges {\n node {\n id\n type\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n": types.ObjectsDocument,
|
||||
};
|
||||
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* ```ts
|
||||
* const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);
|
||||
* ```
|
||||
*
|
||||
* The query argument is unknown!
|
||||
* Please regenerate the types.
|
||||
*/
|
||||
export function graphql(source: string): unknown;
|
||||
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
export function graphql(source: "\n query Objects {\n objects(paging: { first: 100 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 100 }) {\n edges {\n node {\n id\n type\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"): (typeof documents)["\n query Objects {\n objects(paging: { first: 100 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 100 }) {\n edges {\n node {\n id\n type\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"];
|
||||
|
||||
export function graphql(source: string) {
|
||||
return (documents as any)[source] ?? {};
|
||||
}
|
||||
|
||||
export type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never;
|
||||
823
front/src/generated-metadata/graphql.ts
Normal file
823
front/src/generated-metadata/graphql.ts
Normal file
@ -0,0 +1,823 @@
|
||||
/* eslint-disable */
|
||||
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
|
||||
export type Maybe<T> = T | null;
|
||||
export type InputMaybe<T> = Maybe<T>;
|
||||
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
|
||||
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
|
||||
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
|
||||
export type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };
|
||||
export type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };
|
||||
/** All built-in and custom scalars, mapped to their actual values */
|
||||
export type Scalars = {
|
||||
ID: { input: string; output: string; }
|
||||
String: { input: string; output: string; }
|
||||
Boolean: { input: boolean; output: boolean; }
|
||||
Int: { input: number; output: number; }
|
||||
Float: { input: number; output: number; }
|
||||
/** Cursor for paging through collections */
|
||||
ConnectionCursor: { input: any; output: any; }
|
||||
/** A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format. */
|
||||
DateTime: { input: any; output: any; }
|
||||
/** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */
|
||||
JSON: { input: any; output: any; }
|
||||
};
|
||||
|
||||
export type Activity = {
|
||||
__typename?: 'Activity';
|
||||
activityTargets?: Maybe<Array<ActivityTarget>>;
|
||||
assignee?: Maybe<User>;
|
||||
assigneeId?: Maybe<Scalars['String']['output']>;
|
||||
attachments?: Maybe<Array<Attachment>>;
|
||||
author: User;
|
||||
authorId: Scalars['String']['output'];
|
||||
body?: Maybe<Scalars['String']['output']>;
|
||||
comments?: Maybe<Array<Comment>>;
|
||||
completedAt?: Maybe<Scalars['DateTime']['output']>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
dueAt?: Maybe<Scalars['DateTime']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
reminderAt?: Maybe<Scalars['DateTime']['output']>;
|
||||
title?: Maybe<Scalars['String']['output']>;
|
||||
type: ActivityType;
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
workspaceMemberAssignee?: Maybe<WorkspaceMember>;
|
||||
workspaceMemberAssigneeId?: Maybe<Scalars['String']['output']>;
|
||||
workspaceMemberAuthor?: Maybe<WorkspaceMember>;
|
||||
workspaceMemberAuthorId?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export type ActivityTarget = {
|
||||
__typename?: 'ActivityTarget';
|
||||
activity: Activity;
|
||||
activityId: Scalars['String']['output'];
|
||||
company?: Maybe<Company>;
|
||||
companyId?: Maybe<Scalars['String']['output']>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
id: Scalars['ID']['output'];
|
||||
person?: Maybe<Person>;
|
||||
personId?: Maybe<Scalars['String']['output']>;
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
};
|
||||
|
||||
export enum ActivityType {
|
||||
Note = 'Note',
|
||||
Task = 'Task'
|
||||
}
|
||||
|
||||
export type ApiKey = {
|
||||
__typename?: 'ApiKey';
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
expiresAt?: Maybe<Scalars['DateTime']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
};
|
||||
|
||||
export type Attachment = {
|
||||
__typename?: 'Attachment';
|
||||
activity?: Maybe<Activity>;
|
||||
activityId?: Maybe<Scalars['String']['output']>;
|
||||
author: User;
|
||||
authorId: Scalars['String']['output'];
|
||||
company?: Maybe<Company>;
|
||||
companyId?: Maybe<Scalars['String']['output']>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
fullPath: Scalars['String']['output'];
|
||||
id: Scalars['ID']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
person?: Maybe<Person>;
|
||||
personId?: Maybe<Scalars['String']['output']>;
|
||||
type: AttachmentType;
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
workspace: Workspace;
|
||||
workspaceMemberAuthor?: Maybe<WorkspaceMember>;
|
||||
workspaceMemberAuthorId?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export enum AttachmentType {
|
||||
Archive = 'Archive',
|
||||
Audio = 'Audio',
|
||||
Image = 'Image',
|
||||
Other = 'Other',
|
||||
Spreadsheet = 'Spreadsheet',
|
||||
TextDocument = 'TextDocument',
|
||||
Video = 'Video'
|
||||
}
|
||||
|
||||
export type AuthProviders = {
|
||||
__typename?: 'AuthProviders';
|
||||
google: Scalars['Boolean']['output'];
|
||||
magicLink: Scalars['Boolean']['output'];
|
||||
password: Scalars['Boolean']['output'];
|
||||
};
|
||||
|
||||
export type AuthToken = {
|
||||
__typename?: 'AuthToken';
|
||||
expiresAt: Scalars['DateTime']['output'];
|
||||
token: Scalars['String']['output'];
|
||||
};
|
||||
|
||||
export type AuthTokenPair = {
|
||||
__typename?: 'AuthTokenPair';
|
||||
accessToken: AuthToken;
|
||||
refreshToken: AuthToken;
|
||||
};
|
||||
|
||||
export enum ColorScheme {
|
||||
Dark = 'Dark',
|
||||
Light = 'Light',
|
||||
System = 'System'
|
||||
}
|
||||
|
||||
export type Comment = {
|
||||
__typename?: 'Comment';
|
||||
activity?: Maybe<Activity>;
|
||||
activityId?: Maybe<Scalars['String']['output']>;
|
||||
author: User;
|
||||
authorId: Scalars['String']['output'];
|
||||
body: Scalars['String']['output'];
|
||||
commentThreadId?: Maybe<Scalars['String']['output']>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
id: Scalars['ID']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
workspaceMemberAuthor?: Maybe<WorkspaceMember>;
|
||||
workspaceMemberAuthorId?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export type Company = {
|
||||
__typename?: 'Company';
|
||||
ActivityTarget?: Maybe<Array<ActivityTarget>>;
|
||||
Attachment?: Maybe<Array<Attachment>>;
|
||||
Favorite?: Maybe<Array<Favorite>>;
|
||||
PipelineProgress?: Maybe<Array<PipelineProgress>>;
|
||||
accountOwner?: Maybe<User>;
|
||||
accountOwnerId?: Maybe<Scalars['String']['output']>;
|
||||
address: Scalars['String']['output'];
|
||||
annualRecurringRevenue?: Maybe<Scalars['Int']['output']>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
domainName: Scalars['String']['output'];
|
||||
employees?: Maybe<Scalars['Int']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
idealCustomerProfile: Scalars['Boolean']['output'];
|
||||
linkedinUrl?: Maybe<Scalars['String']['output']>;
|
||||
name: Scalars['String']['output'];
|
||||
people?: Maybe<Array<Person>>;
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
workspaceMemberAccountOwner?: Maybe<WorkspaceMember>;
|
||||
workspaceMemberAccountOwnerId?: Maybe<Scalars['String']['output']>;
|
||||
xUrl?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export type CreateFieldInput = {
|
||||
description?: InputMaybe<Scalars['String']['input']>;
|
||||
icon?: InputMaybe<Scalars['String']['input']>;
|
||||
labelPlural?: InputMaybe<Scalars['String']['input']>;
|
||||
labelSingular: Scalars['String']['input'];
|
||||
namePlural?: InputMaybe<Scalars['String']['input']>;
|
||||
nameSingular: Scalars['String']['input'];
|
||||
objectId: Scalars['String']['input'];
|
||||
placeholder?: InputMaybe<Scalars['String']['input']>;
|
||||
type: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type CreateObjectInput = {
|
||||
description?: InputMaybe<Scalars['String']['input']>;
|
||||
icon?: InputMaybe<Scalars['String']['input']>;
|
||||
labelPlural: Scalars['String']['input'];
|
||||
labelSingular: Scalars['String']['input'];
|
||||
namePlural: Scalars['String']['input'];
|
||||
nameSingular: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type CreateOneFieldInput = {
|
||||
/** The record to create */
|
||||
field: CreateFieldInput;
|
||||
};
|
||||
|
||||
export type CreateOneObjectInput = {
|
||||
/** The record to create */
|
||||
object: CreateObjectInput;
|
||||
};
|
||||
|
||||
export enum Currency {
|
||||
Aed = 'AED',
|
||||
Afn = 'AFN',
|
||||
All = 'ALL',
|
||||
Amd = 'AMD',
|
||||
Ang = 'ANG',
|
||||
Aoa = 'AOA',
|
||||
Ars = 'ARS',
|
||||
Aud = 'AUD',
|
||||
Awg = 'AWG',
|
||||
Azn = 'AZN',
|
||||
Bam = 'BAM',
|
||||
Bbd = 'BBD',
|
||||
Bdt = 'BDT',
|
||||
Bgn = 'BGN',
|
||||
Bhd = 'BHD',
|
||||
Bif = 'BIF',
|
||||
Bmd = 'BMD',
|
||||
Bnd = 'BND',
|
||||
Bob = 'BOB',
|
||||
Bov = 'BOV',
|
||||
Brl = 'BRL',
|
||||
Bsd = 'BSD',
|
||||
Btn = 'BTN',
|
||||
Bwp = 'BWP',
|
||||
Byn = 'BYN',
|
||||
Bzd = 'BZD',
|
||||
Cad = 'CAD',
|
||||
Cdf = 'CDF',
|
||||
Chf = 'CHF',
|
||||
Clf = 'CLF',
|
||||
Clp = 'CLP',
|
||||
Cny = 'CNY',
|
||||
Cop = 'COP',
|
||||
Cou = 'COU',
|
||||
Crc = 'CRC',
|
||||
Cuc = 'CUC',
|
||||
Cup = 'CUP',
|
||||
Cve = 'CVE',
|
||||
Czk = 'CZK',
|
||||
Djf = 'DJF',
|
||||
Dkk = 'DKK',
|
||||
Dop = 'DOP',
|
||||
Dzd = 'DZD',
|
||||
Egp = 'EGP',
|
||||
Ern = 'ERN',
|
||||
Etb = 'ETB',
|
||||
Eur = 'EUR',
|
||||
Fjd = 'FJD',
|
||||
Fkp = 'FKP',
|
||||
Gbp = 'GBP',
|
||||
Gel = 'GEL',
|
||||
Ghs = 'GHS',
|
||||
Gip = 'GIP',
|
||||
Gmd = 'GMD',
|
||||
Gnf = 'GNF',
|
||||
Gtq = 'GTQ',
|
||||
Gyd = 'GYD',
|
||||
Hkd = 'HKD',
|
||||
Hnl = 'HNL',
|
||||
Hrk = 'HRK',
|
||||
Htg = 'HTG',
|
||||
Huf = 'HUF',
|
||||
Idr = 'IDR',
|
||||
Ils = 'ILS',
|
||||
Inr = 'INR',
|
||||
Iqd = 'IQD',
|
||||
Irr = 'IRR',
|
||||
Isk = 'ISK',
|
||||
Jmd = 'JMD',
|
||||
Jod = 'JOD',
|
||||
Jpy = 'JPY',
|
||||
Kes = 'KES',
|
||||
Kgs = 'KGS',
|
||||
Khr = 'KHR',
|
||||
Kmf = 'KMF',
|
||||
Kpw = 'KPW',
|
||||
Krw = 'KRW',
|
||||
Kwd = 'KWD',
|
||||
Kyd = 'KYD',
|
||||
Kzt = 'KZT',
|
||||
Lak = 'LAK',
|
||||
Lbp = 'LBP',
|
||||
Lkr = 'LKR',
|
||||
Lrd = 'LRD',
|
||||
Lsl = 'LSL',
|
||||
Lyd = 'LYD',
|
||||
Mad = 'MAD',
|
||||
Mdl = 'MDL',
|
||||
Mga = 'MGA',
|
||||
Mkd = 'MKD',
|
||||
Mmk = 'MMK',
|
||||
Mnt = 'MNT',
|
||||
Mop = 'MOP',
|
||||
Mro = 'MRO',
|
||||
Mru = 'MRU',
|
||||
Mur = 'MUR',
|
||||
Mvr = 'MVR',
|
||||
Mwk = 'MWK',
|
||||
Mxn = 'MXN',
|
||||
Mxv = 'MXV',
|
||||
Myr = 'MYR',
|
||||
Mzn = 'MZN',
|
||||
Nad = 'NAD',
|
||||
Ngn = 'NGN',
|
||||
Nio = 'NIO',
|
||||
Nok = 'NOK',
|
||||
Npr = 'NPR',
|
||||
Nzd = 'NZD',
|
||||
Omr = 'OMR',
|
||||
Pab = 'PAB',
|
||||
Pen = 'PEN',
|
||||
Pgk = 'PGK',
|
||||
Php = 'PHP',
|
||||
Pkr = 'PKR',
|
||||
Pln = 'PLN',
|
||||
Pyg = 'PYG',
|
||||
Qar = 'QAR',
|
||||
Ron = 'RON',
|
||||
Rsd = 'RSD',
|
||||
Rub = 'RUB',
|
||||
Rwf = 'RWF',
|
||||
Sar = 'SAR',
|
||||
Sbd = 'SBD',
|
||||
Scr = 'SCR',
|
||||
Sdd = 'SDD',
|
||||
Sdg = 'SDG',
|
||||
Sek = 'SEK',
|
||||
Sgd = 'SGD',
|
||||
Shp = 'SHP',
|
||||
Sll = 'SLL',
|
||||
Sos = 'SOS',
|
||||
Srd = 'SRD',
|
||||
Ssp = 'SSP',
|
||||
Std = 'STD',
|
||||
Stn = 'STN',
|
||||
Svc = 'SVC',
|
||||
Syp = 'SYP',
|
||||
Szl = 'SZL',
|
||||
Thb = 'THB',
|
||||
Tjs = 'TJS',
|
||||
Tmm = 'TMM',
|
||||
Tmt = 'TMT',
|
||||
Tnd = 'TND',
|
||||
Top = 'TOP',
|
||||
Try = 'TRY',
|
||||
Ttd = 'TTD',
|
||||
Twd = 'TWD',
|
||||
Tzs = 'TZS',
|
||||
Uah = 'UAH',
|
||||
Ugx = 'UGX',
|
||||
Usd = 'USD',
|
||||
Uyu = 'UYU',
|
||||
Uzs = 'UZS',
|
||||
Vef = 'VEF',
|
||||
Ves = 'VES',
|
||||
Vnd = 'VND',
|
||||
Vuv = 'VUV',
|
||||
Wst = 'WST',
|
||||
Xaf = 'XAF',
|
||||
Xcd = 'XCD',
|
||||
Xof = 'XOF',
|
||||
Xpf = 'XPF',
|
||||
Xsu = 'XSU',
|
||||
Xua = 'XUA',
|
||||
Yer = 'YER',
|
||||
Zar = 'ZAR',
|
||||
Zmw = 'ZMW',
|
||||
Zwl = 'ZWL'
|
||||
}
|
||||
|
||||
export type CursorPaging = {
|
||||
/** Paginate after opaque cursor */
|
||||
after?: InputMaybe<Scalars['ConnectionCursor']['input']>;
|
||||
/** Paginate before opaque cursor */
|
||||
before?: InputMaybe<Scalars['ConnectionCursor']['input']>;
|
||||
/** Paginate first */
|
||||
first?: InputMaybe<Scalars['Int']['input']>;
|
||||
/** Paginate last */
|
||||
last?: InputMaybe<Scalars['Int']['input']>;
|
||||
};
|
||||
|
||||
export type Favorite = {
|
||||
__typename?: 'Favorite';
|
||||
company?: Maybe<Company>;
|
||||
companyId?: Maybe<Scalars['String']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
person?: Maybe<Person>;
|
||||
personId?: Maybe<Scalars['String']['output']>;
|
||||
workspaceId?: Maybe<Scalars['String']['output']>;
|
||||
workspaceMember?: Maybe<WorkspaceMember>;
|
||||
workspaceMemberId?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export type FieldConnection = {
|
||||
__typename?: 'FieldConnection';
|
||||
/** Array of edges. */
|
||||
edges: Array<FieldEdge>;
|
||||
/** Paging information */
|
||||
pageInfo: PageInfo;
|
||||
/** Fetch total count of records */
|
||||
totalCount: Scalars['Int']['output'];
|
||||
};
|
||||
|
||||
export type Mutation = {
|
||||
__typename?: 'Mutation';
|
||||
createOneField: Field;
|
||||
createOneObject: Object;
|
||||
updateOneField: Field;
|
||||
updateOneObject: Object;
|
||||
};
|
||||
|
||||
|
||||
export type MutationCreateOneFieldArgs = {
|
||||
input: CreateOneFieldInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationCreateOneObjectArgs = {
|
||||
input: CreateOneObjectInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationUpdateOneFieldArgs = {
|
||||
input: UpdateOneFieldInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationUpdateOneObjectArgs = {
|
||||
input: UpdateOneObjectInput;
|
||||
};
|
||||
|
||||
export type ObjectConnection = {
|
||||
__typename?: 'ObjectConnection';
|
||||
/** Array of edges. */
|
||||
edges: Array<ObjectEdge>;
|
||||
/** Paging information */
|
||||
pageInfo: PageInfo;
|
||||
/** Fetch total count of records */
|
||||
totalCount: Scalars['Int']['output'];
|
||||
};
|
||||
|
||||
export type ObjectFieldsConnection = {
|
||||
__typename?: 'ObjectFieldsConnection';
|
||||
/** Array of edges. */
|
||||
edges: Array<FieldEdge>;
|
||||
/** Paging information */
|
||||
pageInfo: PageInfo;
|
||||
/** Fetch total count of records */
|
||||
totalCount: Scalars['Int']['output'];
|
||||
};
|
||||
|
||||
export type PageInfo = {
|
||||
__typename?: 'PageInfo';
|
||||
/** The cursor of the last returned record. */
|
||||
endCursor?: Maybe<Scalars['ConnectionCursor']['output']>;
|
||||
/** true if paging forward and there are more records. */
|
||||
hasNextPage?: Maybe<Scalars['Boolean']['output']>;
|
||||
/** true if paging backwards and there are more records. */
|
||||
hasPreviousPage?: Maybe<Scalars['Boolean']['output']>;
|
||||
/** The cursor of the first returned record. */
|
||||
startCursor?: Maybe<Scalars['ConnectionCursor']['output']>;
|
||||
};
|
||||
|
||||
export type Person = {
|
||||
__typename?: 'Person';
|
||||
ActivityTarget?: Maybe<Array<ActivityTarget>>;
|
||||
Attachment?: Maybe<Array<Attachment>>;
|
||||
Favorite?: Maybe<Array<Favorite>>;
|
||||
PipelineProgress?: Maybe<Array<PipelineProgress>>;
|
||||
avatarUrl?: Maybe<Scalars['String']['output']>;
|
||||
city?: Maybe<Scalars['String']['output']>;
|
||||
company?: Maybe<Company>;
|
||||
companyId?: Maybe<Scalars['String']['output']>;
|
||||
contactPipelineProgresses?: Maybe<Array<PipelineProgress>>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
email?: Maybe<Scalars['String']['output']>;
|
||||
firstName?: Maybe<Scalars['String']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
jobTitle?: Maybe<Scalars['String']['output']>;
|
||||
lastName?: Maybe<Scalars['String']['output']>;
|
||||
linkedinUrl?: Maybe<Scalars['String']['output']>;
|
||||
phone?: Maybe<Scalars['String']['output']>;
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
xUrl?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export type Pipeline = {
|
||||
__typename?: 'Pipeline';
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
currency: Currency;
|
||||
icon: Scalars['String']['output'];
|
||||
id: Scalars['ID']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
pipelineProgressableType: PipelineProgressableType;
|
||||
pipelineProgresses?: Maybe<Array<PipelineProgress>>;
|
||||
pipelineStages?: Maybe<Array<PipelineStage>>;
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
};
|
||||
|
||||
export type PipelineProgress = {
|
||||
__typename?: 'PipelineProgress';
|
||||
amount?: Maybe<Scalars['Int']['output']>;
|
||||
closeDate?: Maybe<Scalars['DateTime']['output']>;
|
||||
company?: Maybe<Company>;
|
||||
companyId?: Maybe<Scalars['String']['output']>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
id: Scalars['ID']['output'];
|
||||
person?: Maybe<Person>;
|
||||
personId?: Maybe<Scalars['String']['output']>;
|
||||
pipeline: Pipeline;
|
||||
pipelineId: Scalars['String']['output'];
|
||||
pipelineStage: PipelineStage;
|
||||
pipelineStageId: Scalars['String']['output'];
|
||||
pointOfContact?: Maybe<Person>;
|
||||
pointOfContactId?: Maybe<Scalars['String']['output']>;
|
||||
probability?: Maybe<Scalars['Int']['output']>;
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
};
|
||||
|
||||
export enum PipelineProgressableType {
|
||||
Company = 'Company',
|
||||
Person = 'Person'
|
||||
}
|
||||
|
||||
export type PipelineStage = {
|
||||
__typename?: 'PipelineStage';
|
||||
color: Scalars['String']['output'];
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
id: Scalars['ID']['output'];
|
||||
index?: Maybe<Scalars['Int']['output']>;
|
||||
name: Scalars['String']['output'];
|
||||
pipeline: Pipeline;
|
||||
pipelineId: Scalars['String']['output'];
|
||||
pipelineProgresses?: Maybe<Array<PipelineProgress>>;
|
||||
type: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
};
|
||||
|
||||
export type Query = {
|
||||
__typename?: 'Query';
|
||||
field: Field;
|
||||
fields: FieldConnection;
|
||||
object: Object;
|
||||
objects: ObjectConnection;
|
||||
};
|
||||
|
||||
|
||||
export type QueryFieldArgs = {
|
||||
id: Scalars['ID']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type QueryFieldsArgs = {
|
||||
paging?: CursorPaging;
|
||||
};
|
||||
|
||||
|
||||
export type QueryObjectArgs = {
|
||||
id: Scalars['ID']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type QueryObjectsArgs = {
|
||||
paging?: CursorPaging;
|
||||
};
|
||||
|
||||
export type Support = {
|
||||
__typename?: 'Support';
|
||||
supportDriver: Scalars['String']['output'];
|
||||
supportFrontChatId?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export type Telemetry = {
|
||||
__typename?: 'Telemetry';
|
||||
anonymizationEnabled: Scalars['Boolean']['output'];
|
||||
enabled: Scalars['Boolean']['output'];
|
||||
};
|
||||
|
||||
export type UpdateFieldInput = {
|
||||
description?: InputMaybe<Scalars['String']['input']>;
|
||||
icon?: InputMaybe<Scalars['String']['input']>;
|
||||
isActive?: InputMaybe<Scalars['Boolean']['input']>;
|
||||
labelPlural?: InputMaybe<Scalars['String']['input']>;
|
||||
labelSingular?: InputMaybe<Scalars['String']['input']>;
|
||||
namePlural?: InputMaybe<Scalars['String']['input']>;
|
||||
nameSingular?: InputMaybe<Scalars['String']['input']>;
|
||||
placeholder?: InputMaybe<Scalars['String']['input']>;
|
||||
};
|
||||
|
||||
export type UpdateObjectInput = {
|
||||
description?: InputMaybe<Scalars['String']['input']>;
|
||||
icon?: InputMaybe<Scalars['String']['input']>;
|
||||
isActive?: InputMaybe<Scalars['Boolean']['input']>;
|
||||
labelPlural: Scalars['String']['input'];
|
||||
labelSingular: Scalars['String']['input'];
|
||||
namePlural: Scalars['String']['input'];
|
||||
nameSingular: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type UpdateOneFieldInput = {
|
||||
/** The id of the record to update */
|
||||
id: Scalars['ID']['input'];
|
||||
/** The update to apply. */
|
||||
update: UpdateFieldInput;
|
||||
};
|
||||
|
||||
export type UpdateOneObjectInput = {
|
||||
/** The id of the record to update */
|
||||
id: Scalars['ID']['input'];
|
||||
/** The update to apply. */
|
||||
update: UpdateObjectInput;
|
||||
};
|
||||
|
||||
export type User = {
|
||||
__typename?: 'User';
|
||||
assignedActivities?: Maybe<Array<Activity>>;
|
||||
authoredActivities?: Maybe<Array<Activity>>;
|
||||
authoredAttachments?: Maybe<Array<Attachment>>;
|
||||
avatarUrl?: Maybe<Scalars['String']['output']>;
|
||||
canImpersonate: Scalars['Boolean']['output'];
|
||||
comments?: Maybe<Array<Comment>>;
|
||||
companies?: Maybe<Array<Company>>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
disabled: Scalars['Boolean']['output'];
|
||||
email: Scalars['String']['output'];
|
||||
emailVerified: Scalars['Boolean']['output'];
|
||||
firstName?: Maybe<Scalars['String']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
lastName?: Maybe<Scalars['String']['output']>;
|
||||
lastSeen?: Maybe<Scalars['DateTime']['output']>;
|
||||
locale: Scalars['String']['output'];
|
||||
metadata?: Maybe<Scalars['JSON']['output']>;
|
||||
phoneNumber?: Maybe<Scalars['String']['output']>;
|
||||
settings: UserSettings;
|
||||
settingsId: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
workspaceMember?: Maybe<WorkspaceMember>;
|
||||
};
|
||||
|
||||
export type UserSettings = {
|
||||
__typename?: 'UserSettings';
|
||||
WorkspaceMember?: Maybe<Array<WorkspaceMember>>;
|
||||
colorScheme: ColorScheme;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
id: Scalars['ID']['output'];
|
||||
locale: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
user?: Maybe<User>;
|
||||
};
|
||||
|
||||
export type View = {
|
||||
__typename?: 'View';
|
||||
fields?: Maybe<Array<ViewField>>;
|
||||
filters?: Maybe<Array<ViewFilter>>;
|
||||
id: Scalars['ID']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
objectId: Scalars['String']['output'];
|
||||
sorts?: Maybe<Array<ViewSort>>;
|
||||
type: ViewType;
|
||||
};
|
||||
|
||||
export type ViewField = {
|
||||
__typename?: 'ViewField';
|
||||
index: Scalars['Float']['output'];
|
||||
isVisible: Scalars['Boolean']['output'];
|
||||
key: Scalars['String']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
objectId: Scalars['String']['output'];
|
||||
size?: Maybe<Scalars['Int']['output']>;
|
||||
view: View;
|
||||
viewId: Scalars['String']['output'];
|
||||
};
|
||||
|
||||
export type ViewFilter = {
|
||||
__typename?: 'ViewFilter';
|
||||
displayValue: Scalars['String']['output'];
|
||||
key: Scalars['String']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
operand: ViewFilterOperand;
|
||||
value: Scalars['String']['output'];
|
||||
view: View;
|
||||
viewId: Scalars['String']['output'];
|
||||
};
|
||||
|
||||
export enum ViewFilterOperand {
|
||||
Contains = 'Contains',
|
||||
DoesNotContain = 'DoesNotContain',
|
||||
GreaterThan = 'GreaterThan',
|
||||
Is = 'Is',
|
||||
IsNot = 'IsNot',
|
||||
IsNotNull = 'IsNotNull',
|
||||
LessThan = 'LessThan'
|
||||
}
|
||||
|
||||
export type ViewSort = {
|
||||
__typename?: 'ViewSort';
|
||||
direction: ViewSortDirection;
|
||||
key: Scalars['String']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
view: View;
|
||||
viewId: Scalars['String']['output'];
|
||||
};
|
||||
|
||||
export enum ViewSortDirection {
|
||||
Asc = 'asc',
|
||||
Desc = 'desc'
|
||||
}
|
||||
|
||||
export enum ViewType {
|
||||
Pipeline = 'Pipeline',
|
||||
Table = 'Table'
|
||||
}
|
||||
|
||||
export type Workspace = {
|
||||
__typename?: 'Workspace';
|
||||
Attachment?: Maybe<Array<Attachment>>;
|
||||
activities?: Maybe<Array<Activity>>;
|
||||
activityTargets?: Maybe<Array<ActivityTarget>>;
|
||||
apiKeys?: Maybe<Array<ApiKey>>;
|
||||
comments?: Maybe<Array<Comment>>;
|
||||
companies?: Maybe<Array<Company>>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
displayName?: Maybe<Scalars['String']['output']>;
|
||||
domainName?: Maybe<Scalars['String']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
inviteHash?: Maybe<Scalars['String']['output']>;
|
||||
logo?: Maybe<Scalars['String']['output']>;
|
||||
people?: Maybe<Array<Person>>;
|
||||
pipelineProgresses?: Maybe<Array<PipelineProgress>>;
|
||||
pipelineStages?: Maybe<Array<PipelineStage>>;
|
||||
pipelines?: Maybe<Array<Pipeline>>;
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
viewFields?: Maybe<Array<ViewField>>;
|
||||
viewFilters?: Maybe<Array<ViewFilter>>;
|
||||
viewSorts?: Maybe<Array<ViewSort>>;
|
||||
views?: Maybe<Array<View>>;
|
||||
workspaceMember?: Maybe<Array<WorkspaceMember>>;
|
||||
};
|
||||
|
||||
export type WorkspaceMember = {
|
||||
__typename?: 'WorkspaceMember';
|
||||
Favorite?: Maybe<Array<Favorite>>;
|
||||
allowImpersonation: Scalars['Boolean']['output'];
|
||||
assignedActivities?: Maybe<Array<Activity>>;
|
||||
authoredActivities?: Maybe<Array<Activity>>;
|
||||
authoredAttachments?: Maybe<Array<Attachment>>;
|
||||
comments?: Maybe<Array<Comment>>;
|
||||
companies?: Maybe<Array<Company>>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
id: Scalars['ID']['output'];
|
||||
settings?: Maybe<UserSettings>;
|
||||
settingsId?: Maybe<Scalars['String']['output']>;
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
user: User;
|
||||
userId: Scalars['String']['output'];
|
||||
workspace: Workspace;
|
||||
};
|
||||
|
||||
export type Field = {
|
||||
__typename?: 'field';
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
description?: Maybe<Scalars['String']['output']>;
|
||||
icon?: Maybe<Scalars['String']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
isActive: Scalars['Boolean']['output'];
|
||||
isCustom: Scalars['Boolean']['output'];
|
||||
isNullable: Scalars['Boolean']['output'];
|
||||
labelPlural: Scalars['String']['output'];
|
||||
labelSingular: Scalars['String']['output'];
|
||||
namePlural: Scalars['String']['output'];
|
||||
nameSingular: Scalars['String']['output'];
|
||||
placeholder?: Maybe<Scalars['String']['output']>;
|
||||
type: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
};
|
||||
|
||||
export type FieldEdge = {
|
||||
__typename?: 'fieldEdge';
|
||||
/** Cursor for this node. */
|
||||
cursor: Scalars['ConnectionCursor']['output'];
|
||||
/** The node containing the field */
|
||||
node: Field;
|
||||
};
|
||||
|
||||
export type Object = {
|
||||
__typename?: 'object';
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
dataSourceId: Scalars['String']['output'];
|
||||
description?: Maybe<Scalars['String']['output']>;
|
||||
fields: ObjectFieldsConnection;
|
||||
icon?: Maybe<Scalars['String']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
isActive: Scalars['Boolean']['output'];
|
||||
isCustom: Scalars['Boolean']['output'];
|
||||
labelPlural: Scalars['String']['output'];
|
||||
labelSingular: Scalars['String']['output'];
|
||||
namePlural: Scalars['String']['output'];
|
||||
nameSingular: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
};
|
||||
|
||||
|
||||
export type ObjectFieldsArgs = {
|
||||
paging?: CursorPaging;
|
||||
};
|
||||
|
||||
export type ObjectEdge = {
|
||||
__typename?: 'objectEdge';
|
||||
/** Cursor for this node. */
|
||||
cursor: Scalars['ConnectionCursor']['output'];
|
||||
/** The node containing the object */
|
||||
node: Object;
|
||||
};
|
||||
|
||||
export type ObjectsQueryVariables = Exact<{ [key: string]: never; }>;
|
||||
|
||||
|
||||
export type ObjectsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', totalCount: number, edges: Array<{ __typename?: 'objectEdge', node: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any, fields: { __typename?: 'ObjectFieldsConnection', totalCount: number, edges: Array<{ __typename?: 'fieldEdge', node: { __typename?: 'field', id: string, type: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } };
|
||||
|
||||
|
||||
export const ObjectsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"Objects"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"objects"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"100"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"fields"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"100"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]} as unknown as DocumentNode<ObjectsQuery, ObjectsQueryVariables>;
|
||||
1
front/src/generated-metadata/index.ts
Normal file
1
front/src/generated-metadata/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from "./gql";
|
||||
@ -13,6 +13,7 @@ export type Scalars = {
|
||||
Boolean: boolean;
|
||||
Int: number;
|
||||
Float: number;
|
||||
ConnectionCursor: any;
|
||||
DateTime: string;
|
||||
JSON: any;
|
||||
Upload: any;
|
||||
@ -445,6 +446,63 @@ export type Analytics = {
|
||||
success: Scalars['Boolean'];
|
||||
};
|
||||
|
||||
export type ApiKey = {
|
||||
__typename?: 'ApiKey';
|
||||
createdAt: Scalars['DateTime'];
|
||||
expiresAt?: Maybe<Scalars['DateTime']>;
|
||||
id: Scalars['ID'];
|
||||
name: Scalars['String'];
|
||||
updatedAt: Scalars['DateTime'];
|
||||
};
|
||||
|
||||
export type ApiKeyCreateInput = {
|
||||
createdAt?: InputMaybe<Scalars['DateTime']>;
|
||||
expiresAt?: InputMaybe<Scalars['DateTime']>;
|
||||
id?: InputMaybe<Scalars['String']>;
|
||||
name: Scalars['String'];
|
||||
updatedAt?: InputMaybe<Scalars['DateTime']>;
|
||||
};
|
||||
|
||||
export type ApiKeyOrderByWithRelationInput = {
|
||||
createdAt?: InputMaybe<SortOrder>;
|
||||
expiresAt?: InputMaybe<SortOrder>;
|
||||
id?: InputMaybe<SortOrder>;
|
||||
name?: InputMaybe<SortOrder>;
|
||||
updatedAt?: InputMaybe<SortOrder>;
|
||||
};
|
||||
|
||||
export enum ApiKeyScalarFieldEnum {
|
||||
CreatedAt = 'createdAt',
|
||||
DeletedAt = 'deletedAt',
|
||||
ExpiresAt = 'expiresAt',
|
||||
Id = 'id',
|
||||
Name = 'name',
|
||||
RevokedAt = 'revokedAt',
|
||||
UpdatedAt = 'updatedAt',
|
||||
WorkspaceId = 'workspaceId'
|
||||
}
|
||||
|
||||
export type ApiKeyUpdateManyWithoutWorkspaceNestedInput = {
|
||||
connect?: InputMaybe<Array<ApiKeyWhereUniqueInput>>;
|
||||
disconnect?: InputMaybe<Array<ApiKeyWhereUniqueInput>>;
|
||||
set?: InputMaybe<Array<ApiKeyWhereUniqueInput>>;
|
||||
};
|
||||
|
||||
export type ApiKeyWhereInput = {
|
||||
AND?: InputMaybe<Array<ApiKeyWhereInput>>;
|
||||
NOT?: InputMaybe<Array<ApiKeyWhereInput>>;
|
||||
OR?: InputMaybe<Array<ApiKeyWhereInput>>;
|
||||
createdAt?: InputMaybe<DateTimeFilter>;
|
||||
expiresAt?: InputMaybe<DateTimeNullableFilter>;
|
||||
id?: InputMaybe<StringFilter>;
|
||||
name?: InputMaybe<StringFilter>;
|
||||
updatedAt?: InputMaybe<DateTimeFilter>;
|
||||
};
|
||||
|
||||
export type ApiKeyWhereUniqueInput = {
|
||||
id?: InputMaybe<Scalars['String']>;
|
||||
};
|
||||
|
||||
export type Attachment = {
|
||||
__typename?: 'Attachment';
|
||||
activity?: Maybe<Activity>;
|
||||
@ -1070,6 +1128,17 @@ export enum Currency {
|
||||
Zwl = 'ZWL'
|
||||
}
|
||||
|
||||
export type CursorPaging = {
|
||||
/** Paginate after opaque cursor */
|
||||
after?: InputMaybe<Scalars['ConnectionCursor']>;
|
||||
/** Paginate before opaque cursor */
|
||||
before?: InputMaybe<Scalars['ConnectionCursor']>;
|
||||
/** Paginate first */
|
||||
first?: InputMaybe<Scalars['Int']>;
|
||||
/** Paginate last */
|
||||
last?: InputMaybe<Scalars['Int']>;
|
||||
};
|
||||
|
||||
export type DateTimeFilter = {
|
||||
equals?: InputMaybe<Scalars['DateTime']>;
|
||||
gt?: InputMaybe<Scalars['DateTime']>;
|
||||
@ -1219,6 +1288,16 @@ export type FavoriteWhereUniqueInput = {
|
||||
id?: InputMaybe<Scalars['String']>;
|
||||
};
|
||||
|
||||
export type FieldConnection = {
|
||||
__typename?: 'FieldConnection';
|
||||
/** Array of edges. */
|
||||
edges: Array<FieldEdge>;
|
||||
/** Paging information */
|
||||
pageInfo: PageInfo;
|
||||
/** Fetch total count of records */
|
||||
totalCount: Scalars['Int'];
|
||||
};
|
||||
|
||||
export enum FileFolder {
|
||||
Attachment = 'Attachment',
|
||||
PersonPicture = 'PersonPicture',
|
||||
@ -1274,7 +1353,6 @@ export type Mutation = {
|
||||
UpdateOneWorkspaceMember: WorkspaceMember;
|
||||
allowImpersonation: WorkspaceMember;
|
||||
challenge: LoginToken;
|
||||
createCustomField: Scalars['String'];
|
||||
createEvent: Analytics;
|
||||
createFavoriteForCompany: Favorite;
|
||||
createFavoriteForPerson: Favorite;
|
||||
@ -1285,6 +1363,7 @@ export type Mutation = {
|
||||
createManyViewFilter: AffectedRows;
|
||||
createManyViewSort: AffectedRows;
|
||||
createOneActivity: Activity;
|
||||
createOneApiKey: AuthToken;
|
||||
createOneComment: Comment;
|
||||
createOneCompany: Company;
|
||||
createOnePerson: Person;
|
||||
@ -1307,6 +1386,7 @@ export type Mutation = {
|
||||
deleteWorkspaceMember: WorkspaceMember;
|
||||
impersonate: Verify;
|
||||
renewToken: AuthTokens;
|
||||
revokeOneApiKey: ApiKey;
|
||||
signUp: LoginToken;
|
||||
updateOneActivity: Activity;
|
||||
updateOneCompany?: Maybe<Company>;
|
||||
@ -1346,13 +1426,6 @@ export type MutationChallengeArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type MutationCreateCustomFieldArgs = {
|
||||
name: Scalars['String'];
|
||||
objectId: Scalars['String'];
|
||||
type: Scalars['String'];
|
||||
};
|
||||
|
||||
|
||||
export type MutationCreateEventArgs = {
|
||||
data: Scalars['JSON'];
|
||||
type: Scalars['String'];
|
||||
@ -1410,6 +1483,11 @@ export type MutationCreateOneActivityArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type MutationCreateOneApiKeyArgs = {
|
||||
data: ApiKeyCreateInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationCreateOneCommentArgs = {
|
||||
data: CommentCreateInput;
|
||||
};
|
||||
@ -1510,6 +1588,11 @@ export type MutationRenewTokenArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type MutationRevokeOneApiKeyArgs = {
|
||||
where: ApiKeyWhereUniqueInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationSignUpArgs = {
|
||||
email: Scalars['String'];
|
||||
password: Scalars['String'];
|
||||
@ -1755,19 +1838,36 @@ export type NestedStringNullableFilter = {
|
||||
startsWith?: InputMaybe<Scalars['String']>;
|
||||
};
|
||||
|
||||
export type PageInfo = {
|
||||
__typename?: 'PageInfo';
|
||||
endCursor?: Maybe<Scalars['String']>;
|
||||
hasNextPage: Scalars['Boolean'];
|
||||
hasPreviousPage: Scalars['Boolean'];
|
||||
startCursor?: Maybe<Scalars['String']>;
|
||||
export type ObjectConnection = {
|
||||
__typename?: 'ObjectConnection';
|
||||
/** Array of edges. */
|
||||
edges: Array<ObjectEdge>;
|
||||
/** Paging information */
|
||||
pageInfo: PageInfo;
|
||||
/** Fetch total count of records */
|
||||
totalCount: Scalars['Int'];
|
||||
};
|
||||
|
||||
export type PaginatedUniversalEntity = {
|
||||
__typename?: 'PaginatedUniversalEntity';
|
||||
edges?: Maybe<Array<UniversalEntityEdge>>;
|
||||
pageInfo?: Maybe<PageInfo>;
|
||||
totalCount: Scalars['Float'];
|
||||
export type ObjectFieldsConnection = {
|
||||
__typename?: 'ObjectFieldsConnection';
|
||||
/** Array of edges. */
|
||||
edges: Array<FieldEdge>;
|
||||
/** Paging information */
|
||||
pageInfo: PageInfo;
|
||||
/** Fetch total count of records */
|
||||
totalCount: Scalars['Int'];
|
||||
};
|
||||
|
||||
export type PageInfo = {
|
||||
__typename?: 'PageInfo';
|
||||
/** The cursor of the last returned record. */
|
||||
endCursor?: Maybe<Scalars['ConnectionCursor']>;
|
||||
/** true if paging forward and there are more records. */
|
||||
hasNextPage?: Maybe<Scalars['Boolean']>;
|
||||
/** true if paging backwards and there are more records. */
|
||||
hasPreviousPage?: Maybe<Scalars['Boolean']>;
|
||||
/** The cursor of the first returned record. */
|
||||
startCursor?: Maybe<Scalars['ConnectionCursor']>;
|
||||
};
|
||||
|
||||
export type Person = {
|
||||
@ -2350,10 +2450,9 @@ export type Query = {
|
||||
clientConfig: ClientConfig;
|
||||
currentUser: User;
|
||||
currentWorkspace: Workspace;
|
||||
deleteOneCustom: UniversalEntity;
|
||||
findFavorites: Array<Favorite>;
|
||||
findMany: PaginatedUniversalEntity;
|
||||
findManyActivities: Array<Activity>;
|
||||
findManyApiKey: Array<ApiKey>;
|
||||
findManyCompany: Array<Company>;
|
||||
findManyPerson: Array<Person>;
|
||||
findManyPipeline: Array<Pipeline>;
|
||||
@ -2365,11 +2464,9 @@ export type Query = {
|
||||
findManyViewFilter: Array<ViewFilter>;
|
||||
findManyViewSort: Array<ViewSort>;
|
||||
findManyWorkspaceMember: Array<WorkspaceMember>;
|
||||
findUnique: UniversalEntity;
|
||||
findUniqueCompany: Company;
|
||||
findUniquePerson: Person;
|
||||
findWorkspaceFromInviteHash: Workspace;
|
||||
updateOneCustom: UniversalEntity;
|
||||
};
|
||||
|
||||
|
||||
@ -2383,21 +2480,6 @@ export type QueryCheckWorkspaceInviteHashIsValidArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type QueryFindManyArgs = {
|
||||
after?: InputMaybe<Scalars['String']>;
|
||||
before?: InputMaybe<Scalars['String']>;
|
||||
cursor?: InputMaybe<Scalars['JSON']>;
|
||||
distinct?: InputMaybe<Array<Scalars['String']>>;
|
||||
entity: Scalars['String'];
|
||||
first?: InputMaybe<Scalars['Float']>;
|
||||
last?: InputMaybe<Scalars['Float']>;
|
||||
orderBy?: InputMaybe<UniversalEntityOrderByRelationInput>;
|
||||
skip?: InputMaybe<Scalars['Int']>;
|
||||
take?: InputMaybe<Scalars['Int']>;
|
||||
where?: InputMaybe<UniversalEntityInput>;
|
||||
};
|
||||
|
||||
|
||||
export type QueryFindManyActivitiesArgs = {
|
||||
cursor?: InputMaybe<ActivityWhereUniqueInput>;
|
||||
distinct?: InputMaybe<Array<ActivityScalarFieldEnum>>;
|
||||
@ -2408,6 +2490,16 @@ export type QueryFindManyActivitiesArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type QueryFindManyApiKeyArgs = {
|
||||
cursor?: InputMaybe<ApiKeyWhereUniqueInput>;
|
||||
distinct?: InputMaybe<Array<ApiKeyScalarFieldEnum>>;
|
||||
orderBy?: InputMaybe<Array<ApiKeyOrderByWithRelationInput>>;
|
||||
skip?: InputMaybe<Scalars['Int']>;
|
||||
take?: InputMaybe<Scalars['Int']>;
|
||||
where?: InputMaybe<ApiKeyWhereInput>;
|
||||
};
|
||||
|
||||
|
||||
export type QueryFindManyCompanyArgs = {
|
||||
cursor?: InputMaybe<CompanyWhereUniqueInput>;
|
||||
distinct?: InputMaybe<Array<CompanyScalarFieldEnum>>;
|
||||
@ -2518,12 +2610,6 @@ export type QueryFindManyWorkspaceMemberArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type QueryFindUniqueArgs = {
|
||||
entity: Scalars['String'];
|
||||
where?: InputMaybe<UniversalEntityInput>;
|
||||
};
|
||||
|
||||
|
||||
export type QueryFindUniqueCompanyArgs = {
|
||||
where: CompanyWhereUniqueInput;
|
||||
};
|
||||
@ -2590,39 +2676,6 @@ export type Telemetry = {
|
||||
enabled: Scalars['Boolean'];
|
||||
};
|
||||
|
||||
export enum TypeOrmSortOrder {
|
||||
Asc = 'ASC',
|
||||
Desc = 'DESC'
|
||||
}
|
||||
|
||||
export type UniversalEntity = {
|
||||
__typename?: 'UniversalEntity';
|
||||
createdAt: Scalars['DateTime'];
|
||||
data: Scalars['JSON'];
|
||||
id: Scalars['ID'];
|
||||
updatedAt: Scalars['DateTime'];
|
||||
};
|
||||
|
||||
export type UniversalEntityEdge = {
|
||||
__typename?: 'UniversalEntityEdge';
|
||||
cursor?: Maybe<Scalars['String']>;
|
||||
node?: Maybe<UniversalEntity>;
|
||||
};
|
||||
|
||||
export type UniversalEntityInput = {
|
||||
createdAt?: InputMaybe<Scalars['DateTime']>;
|
||||
data?: InputMaybe<Scalars['JSON']>;
|
||||
id?: InputMaybe<Scalars['ID']>;
|
||||
updatedAt?: InputMaybe<Scalars['DateTime']>;
|
||||
};
|
||||
|
||||
export type UniversalEntityOrderByRelationInput = {
|
||||
createdAt?: InputMaybe<TypeOrmSortOrder>;
|
||||
data?: InputMaybe<Scalars['JSON']>;
|
||||
id?: InputMaybe<TypeOrmSortOrder>;
|
||||
updatedAt?: InputMaybe<TypeOrmSortOrder>;
|
||||
};
|
||||
|
||||
export type User = {
|
||||
__typename?: 'User';
|
||||
assignedActivities?: Maybe<Array<Activity>>;
|
||||
@ -3282,6 +3335,7 @@ export type Workspace = {
|
||||
Attachment?: Maybe<Array<Attachment>>;
|
||||
activities?: Maybe<Array<Activity>>;
|
||||
activityTargets?: Maybe<Array<ActivityTarget>>;
|
||||
apiKeys?: Maybe<Array<ApiKey>>;
|
||||
comments?: Maybe<Array<Comment>>;
|
||||
companies?: Maybe<Array<Company>>;
|
||||
createdAt: Scalars['DateTime'];
|
||||
@ -3456,6 +3510,7 @@ export type WorkspaceUpdateInput = {
|
||||
Attachment?: InputMaybe<AttachmentUpdateManyWithoutWorkspaceNestedInput>;
|
||||
activities?: InputMaybe<ActivityUpdateManyWithoutWorkspaceNestedInput>;
|
||||
activityTargets?: InputMaybe<ActivityTargetUpdateManyWithoutWorkspaceNestedInput>;
|
||||
apiKeys?: InputMaybe<ApiKeyUpdateManyWithoutWorkspaceNestedInput>;
|
||||
comments?: InputMaybe<CommentUpdateManyWithoutWorkspaceNestedInput>;
|
||||
companies?: InputMaybe<CompanyUpdateManyWithoutWorkspaceNestedInput>;
|
||||
createdAt?: InputMaybe<Scalars['DateTime']>;
|
||||
@ -3476,6 +3531,62 @@ export type WorkspaceUpdateInput = {
|
||||
workspaceMember?: InputMaybe<WorkspaceMemberUpdateManyWithoutWorkspaceNestedInput>;
|
||||
};
|
||||
|
||||
export type Field = {
|
||||
__typename?: 'field';
|
||||
createdAt: Scalars['DateTime'];
|
||||
description?: Maybe<Scalars['String']>;
|
||||
icon?: Maybe<Scalars['String']>;
|
||||
id: Scalars['ID'];
|
||||
isActive: Scalars['Boolean'];
|
||||
isCustom: Scalars['Boolean'];
|
||||
isNullable: Scalars['Boolean'];
|
||||
labelPlural: Scalars['String'];
|
||||
labelSingular: Scalars['String'];
|
||||
namePlural: Scalars['String'];
|
||||
nameSingular: Scalars['String'];
|
||||
placeholder?: Maybe<Scalars['String']>;
|
||||
type: Scalars['String'];
|
||||
updatedAt: Scalars['DateTime'];
|
||||
};
|
||||
|
||||
export type FieldEdge = {
|
||||
__typename?: 'fieldEdge';
|
||||
/** Cursor for this node. */
|
||||
cursor: Scalars['ConnectionCursor'];
|
||||
/** The node containing the field */
|
||||
node: Field;
|
||||
};
|
||||
|
||||
export type Object = {
|
||||
__typename?: 'object';
|
||||
createdAt: Scalars['DateTime'];
|
||||
dataSourceId: Scalars['String'];
|
||||
description?: Maybe<Scalars['String']>;
|
||||
fields: ObjectFieldsConnection;
|
||||
icon?: Maybe<Scalars['String']>;
|
||||
id: Scalars['ID'];
|
||||
isActive: Scalars['Boolean'];
|
||||
isCustom: Scalars['Boolean'];
|
||||
labelPlural: Scalars['String'];
|
||||
labelSingular: Scalars['String'];
|
||||
namePlural: Scalars['String'];
|
||||
nameSingular: Scalars['String'];
|
||||
updatedAt: Scalars['DateTime'];
|
||||
};
|
||||
|
||||
|
||||
export type ObjectFieldsArgs = {
|
||||
paging?: CursorPaging;
|
||||
};
|
||||
|
||||
export type ObjectEdge = {
|
||||
__typename?: 'objectEdge';
|
||||
/** Cursor for this node. */
|
||||
cursor: Scalars['ConnectionCursor'];
|
||||
/** The node containing the object */
|
||||
node: Object;
|
||||
};
|
||||
|
||||
export type ActivityWithTargetsFragment = { __typename?: 'Activity', id: string, createdAt: string, updatedAt: string, activityTargets?: Array<{ __typename?: 'ActivityTarget', id: string, createdAt: string, updatedAt: string, companyId?: string | null, personId?: string | null }> | null };
|
||||
|
||||
export type ActivityQueryFragmentFragment = { __typename?: 'Activity', id: string, createdAt: string, title?: string | null, body?: string | null, type: ActivityType, completedAt?: string | null, dueAt?: string | null, assignee?: { __typename?: 'User', id: string, firstName?: string | null, lastName?: string | null, displayName: string, avatarUrl?: string | null } | null, author: { __typename?: 'User', id: string, firstName?: string | null, lastName?: string | null, displayName: string }, comments?: Array<{ __typename?: 'Comment', id: string, body: string, createdAt: string, updatedAt: string, author: { __typename?: 'User', id: string, displayName: string, firstName?: string | null, lastName?: string | null, avatarUrl?: string | null } }> | null, activityTargets?: Array<{ __typename?: 'ActivityTarget', id: string, companyId?: string | null, personId?: string | null, company?: { __typename?: 'Company', id: string, name: string, domainName: string } | null, person?: { __typename?: 'Person', id: string, displayName: string, avatarUrl?: string | null } | null }> | null };
|
||||
|
||||
@ -16,6 +16,8 @@ import { UserProvider } from '@/users/components/UserProvider';
|
||||
import '@emotion/react';
|
||||
|
||||
import { PageChangeEffect } from './effect-components/PageChangeEffect';
|
||||
import { ApolloClientMetadataProvider } from './modules/metadata/components/ApolloClientMetadataProvider';
|
||||
import { FetchMetadataEffect } from './modules/metadata/components/FetchMetadataEffect';
|
||||
import { App } from './App';
|
||||
|
||||
import './index.css';
|
||||
@ -33,16 +35,19 @@ root.render(
|
||||
<HelmetProvider>
|
||||
<ClientConfigProvider>
|
||||
<UserProvider>
|
||||
<PageChangeEffect />
|
||||
<AppThemeProvider>
|
||||
<SnackBarProvider>
|
||||
<DialogProvider>
|
||||
<StrictMode>
|
||||
<App />
|
||||
</StrictMode>
|
||||
</DialogProvider>
|
||||
</SnackBarProvider>
|
||||
</AppThemeProvider>
|
||||
<ApolloClientMetadataProvider>
|
||||
<FetchMetadataEffect />
|
||||
<PageChangeEffect />
|
||||
<AppThemeProvider>
|
||||
<SnackBarProvider>
|
||||
<DialogProvider>
|
||||
<StrictMode>
|
||||
<App />
|
||||
</StrictMode>
|
||||
</DialogProvider>
|
||||
</SnackBarProvider>
|
||||
</AppThemeProvider>
|
||||
</ApolloClientMetadataProvider>
|
||||
</UserProvider>
|
||||
</ClientConfigProvider>
|
||||
</HelmetProvider>
|
||||
|
||||
@ -2,9 +2,12 @@ import { DateTime } from 'luxon';
|
||||
import { useRecoilState } from 'recoil';
|
||||
|
||||
import { currentUserState } from '@/auth/states/currentUserState';
|
||||
import { FilterOperand } from '@/ui/view-bar/types/FilterOperand';
|
||||
import { turnFilterIntoWhereClause } from '@/ui/view-bar/utils/turnFilterIntoWhereClause';
|
||||
import { ActivityType, useGetActivitiesQuery } from '~/generated/graphql';
|
||||
import {
|
||||
ActivityType,
|
||||
useGetActivitiesQuery,
|
||||
ViewFilterOperand,
|
||||
} from '~/generated/graphql';
|
||||
import { parseDate } from '~/utils/date-utils';
|
||||
|
||||
export const useCurrentUserTaskCount = () => {
|
||||
@ -20,7 +23,7 @@ export const useCurrentUserTaskCount = () => {
|
||||
key: 'assigneeId',
|
||||
type: 'entity',
|
||||
value: currentUser.id,
|
||||
operand: FilterOperand.Is,
|
||||
operand: ViewFilterOperand.Is,
|
||||
displayValue: currentUser.displayName,
|
||||
displayAvatarUrl: currentUser.avatarUrl ?? undefined,
|
||||
})
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
/* eslint-disable no-console */
|
||||
import { useMemo } from 'react';
|
||||
import { ApolloClient, InMemoryCache } from '@apollo/client';
|
||||
import { useRecoilState } from 'recoil';
|
||||
|
||||
import { tokenPairState } from '@/auth/states/tokenPairState';
|
||||
|
||||
import { ApolloClientMetadataContext } from '../context/ApolloClientMetadataContext';
|
||||
|
||||
export const ApolloClientMetadataProvider = ({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) => {
|
||||
const [tokenPair] = useRecoilState(tokenPairState);
|
||||
|
||||
const apolloClientMetadata = useMemo(() => {
|
||||
if (tokenPair?.accessToken.token) {
|
||||
return new ApolloClient({
|
||||
uri: `${process.env.REACT_APP_SERVER_BASE_URL}/metadata`,
|
||||
cache: new InMemoryCache(),
|
||||
headers: {
|
||||
Authorization: `Bearer ${tokenPair.accessToken.token}`,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}, [tokenPair]);
|
||||
|
||||
return (
|
||||
<ApolloClientMetadataContext.Provider value={apolloClientMetadata}>
|
||||
{children}
|
||||
</ApolloClientMetadataContext.Provider>
|
||||
);
|
||||
};
|
||||
@ -0,0 +1,37 @@
|
||||
import { useEffect } from 'react';
|
||||
import { useRecoilState } from 'recoil';
|
||||
|
||||
import { ObjectsQuery } from '~/generated-metadata/graphql';
|
||||
|
||||
import { GET_ALL_OBJECTS } from '../graphql/queries';
|
||||
import { useApolloClientMetadata } from '../hooks/useApolloClientMetadata';
|
||||
import { metadataObjectsState } from '../states/metadataObjectsState';
|
||||
import { MetadataObject } from '../types/MetadataObject';
|
||||
|
||||
export const FetchMetadataEffect = () => {
|
||||
const [metadataObjects, setMetadataObjects] =
|
||||
useRecoilState(metadataObjectsState);
|
||||
|
||||
const apolloClientMetadata = useApolloClientMetadata();
|
||||
|
||||
useEffect(() => {
|
||||
(async () => {
|
||||
if (apolloClientMetadata && metadataObjects.length === 0) {
|
||||
const objects = await apolloClientMetadata.query<ObjectsQuery>({
|
||||
query: GET_ALL_OBJECTS,
|
||||
});
|
||||
|
||||
if (objects.data.objects.edges.length > 0) {
|
||||
const formattedObjects: MetadataObject[] =
|
||||
objects.data.objects.edges.map((object) => ({
|
||||
...object.node,
|
||||
fields: object.node.fields.edges.map((field) => field.node),
|
||||
}));
|
||||
setMetadataObjects(formattedObjects);
|
||||
}
|
||||
}
|
||||
})();
|
||||
}, [metadataObjects, setMetadataObjects, apolloClientMetadata]);
|
||||
|
||||
return <></>;
|
||||
};
|
||||
@ -0,0 +1,5 @@
|
||||
import { createContext } from 'react';
|
||||
import { ApolloClient, NormalizedCacheObject } from '@apollo/client';
|
||||
|
||||
export const ApolloClientMetadataContext =
|
||||
createContext<ApolloClient<NormalizedCacheObject> | null>(null);
|
||||
58
front/src/modules/metadata/graphql/queries.ts
Normal file
58
front/src/modules/metadata/graphql/queries.ts
Normal file
@ -0,0 +1,58 @@
|
||||
import { gql } from '@apollo/client';
|
||||
|
||||
export const GET_ALL_OBJECTS = gql`
|
||||
query Objects {
|
||||
objects(paging: { first: 100 }) {
|
||||
edges {
|
||||
node {
|
||||
id
|
||||
dataSourceId
|
||||
nameSingular
|
||||
namePlural
|
||||
labelSingular
|
||||
labelPlural
|
||||
description
|
||||
icon
|
||||
isCustom
|
||||
isActive
|
||||
createdAt
|
||||
updatedAt
|
||||
fields(paging: { first: 100 }) {
|
||||
edges {
|
||||
node {
|
||||
id
|
||||
type
|
||||
nameSingular
|
||||
namePlural
|
||||
labelSingular
|
||||
labelPlural
|
||||
description
|
||||
icon
|
||||
placeholder
|
||||
isCustom
|
||||
isActive
|
||||
isNullable
|
||||
createdAt
|
||||
updatedAt
|
||||
}
|
||||
}
|
||||
pageInfo {
|
||||
hasNextPage
|
||||
hasPreviousPage
|
||||
startCursor
|
||||
endCursor
|
||||
}
|
||||
totalCount
|
||||
}
|
||||
}
|
||||
}
|
||||
pageInfo {
|
||||
hasNextPage
|
||||
hasPreviousPage
|
||||
startCursor
|
||||
endCursor
|
||||
}
|
||||
totalCount
|
||||
}
|
||||
}
|
||||
`;
|
||||
@ -0,0 +1,7 @@
|
||||
import { useContext } from 'react';
|
||||
|
||||
import { ApolloClientMetadataContext } from '../context/ApolloClientMetadataContext';
|
||||
|
||||
export const useApolloClientMetadata = () => {
|
||||
return useContext(ApolloClientMetadataContext);
|
||||
};
|
||||
@ -0,0 +1,8 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { MetadataObject } from '../types/MetadataObject';
|
||||
|
||||
export const metadataObjectsState = atom<MetadataObject[]>({
|
||||
key: 'metadataObjectsState',
|
||||
default: [],
|
||||
});
|
||||
5
front/src/modules/metadata/types/MetadataObject.ts
Normal file
5
front/src/modules/metadata/types/MetadataObject.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { Field, Object as GeneratedObject } from '~/generated-metadata/graphql';
|
||||
|
||||
export type MetadataObject = Omit<GeneratedObject, 'fields'> & {
|
||||
fields: Field[];
|
||||
};
|
||||
@ -10,10 +10,10 @@ import { useUpsertFilter } from '@/ui/view-bar/hooks/useUpsertFilter';
|
||||
import { filterDefinitionUsedInDropdownScopedState } from '@/ui/view-bar/states/filterDefinitionUsedInDropdownScopedState';
|
||||
import { filterDropdownSelectedEntityIdScopedState } from '@/ui/view-bar/states/filterDropdownSelectedEntityIdScopedState';
|
||||
import { selectedOperandInDropdownScopedState } from '@/ui/view-bar/states/selectedOperandInDropdownScopedState';
|
||||
import { ViewFilterOperand } from '~/generated/graphql';
|
||||
|
||||
import { useViewBarContext } from '../hooks/useViewBarContext';
|
||||
import { filterDropdownSearchInputScopedState } from '../states/filterDropdownSearchInputScopedState';
|
||||
import { FilterOperand } from '../types/FilterOperand';
|
||||
|
||||
export const FilterDropdownEntitySearchSelect = ({
|
||||
entitiesForSelect,
|
||||
@ -113,7 +113,7 @@ export const FilterDropdownEntitySearchSelect = ({
|
||||
upsertFilter({
|
||||
displayValue: filterDefinitionUsedInDropdown.selectAllLabel,
|
||||
key: filterDefinitionUsedInDropdown.key,
|
||||
operand: FilterOperand.IsNotNull,
|
||||
operand: ViewFilterOperand.IsNotNull,
|
||||
type: filterDefinitionUsedInDropdown.type,
|
||||
value: '',
|
||||
});
|
||||
@ -126,7 +126,7 @@ export const FilterDropdownEntitySearchSelect = ({
|
||||
} else {
|
||||
setFilterDropdownSelectedEntityId(filterCurrentlyEdited.value);
|
||||
setIsAllEntitySelected(
|
||||
filterCurrentlyEdited.operand === FilterOperand.IsNotNull,
|
||||
filterCurrentlyEdited.operand === ViewFilterOperand.IsNotNull,
|
||||
);
|
||||
}
|
||||
}, [
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
|
||||
import { MenuItem } from '@/ui/menu-item/components/MenuItem';
|
||||
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
||||
import { ViewFilterOperand } from '~/generated/graphql';
|
||||
|
||||
import { useFilterCurrentlyEdited } from '../hooks/useFilterCurrentlyEdited';
|
||||
import { useUpsertFilter } from '../hooks/useUpsertFilter';
|
||||
@ -8,7 +9,6 @@ import { useViewBarContext } from '../hooks/useViewBarContext';
|
||||
import { filterDefinitionUsedInDropdownScopedState } from '../states/filterDefinitionUsedInDropdownScopedState';
|
||||
import { isFilterDropdownOperandSelectUnfoldedScopedState } from '../states/isFilterDropdownOperandSelectUnfoldedScopedState';
|
||||
import { selectedOperandInDropdownScopedState } from '../states/selectedOperandInDropdownScopedState';
|
||||
import { FilterOperand } from '../types/FilterOperand';
|
||||
import { getOperandLabel } from '../utils/getOperandLabel';
|
||||
import { getOperandsForFilterType } from '../utils/getOperandsForFilterType';
|
||||
|
||||
@ -41,7 +41,7 @@ export const FilterDropdownOperandSelect = () => {
|
||||
|
||||
const upsertFilter = useUpsertFilter();
|
||||
|
||||
const handleOperangeChange = (newOperand: FilterOperand) => {
|
||||
const handleOperangeChange = (newOperand: ViewFilterOperand) => {
|
||||
setSelectedOperandInDropdown(newOperand);
|
||||
setIsFilterDropdownOperandSelectUnfolded(false);
|
||||
|
||||
|
||||
@ -10,11 +10,11 @@ import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
||||
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
||||
import { filterDefinitionUsedInDropdownScopedState } from '@/ui/view-bar/states/filterDefinitionUsedInDropdownScopedState';
|
||||
import { selectedOperandInDropdownScopedState } from '@/ui/view-bar/states/selectedOperandInDropdownScopedState';
|
||||
import { ViewFilterOperand } from '~/generated/graphql';
|
||||
|
||||
import { useViewBarContext } from '../hooks/useViewBarContext';
|
||||
import { availableFiltersScopedState } from '../states/availableFiltersScopedState';
|
||||
import { filtersScopedState } from '../states/filtersScopedState';
|
||||
import { FilterOperand } from '../types/FilterOperand';
|
||||
import { getOperandsForFilterType } from '../utils/getOperandsForFilterType';
|
||||
|
||||
import { FilterDropdownEntitySearchInput } from './FilterDropdownEntitySearchInput';
|
||||
@ -72,7 +72,7 @@ export const SingleEntityFilterDropdownButton = ({
|
||||
<GenericEntityFilterChip
|
||||
filter={filters[0]}
|
||||
Icon={
|
||||
filters[0].operand === FilterOperand.IsNotNull
|
||||
filters[0].operand === ViewFilterOperand.IsNotNull
|
||||
? availableFilter.SelectAllIcon
|
||||
: undefined
|
||||
}
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { atomFamily } from 'recoil';
|
||||
|
||||
import { FilterOperand } from '../types/FilterOperand';
|
||||
import { ViewFilterOperand } from '~/generated/graphql';
|
||||
|
||||
export const selectedOperandInDropdownScopedState = atomFamily<
|
||||
FilterOperand | null,
|
||||
ViewFilterOperand | null,
|
||||
string
|
||||
>({
|
||||
key: 'selectedOperandInDropdownScopedState',
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { FilterOperand } from './FilterOperand';
|
||||
import { ViewFilterOperand } from '~/generated/graphql';
|
||||
|
||||
import { FilterType } from './FilterType';
|
||||
|
||||
export type Filter = {
|
||||
@ -7,5 +8,5 @@ export type Filter = {
|
||||
value: string;
|
||||
displayValue: string;
|
||||
displayAvatarUrl?: string;
|
||||
operand: FilterOperand;
|
||||
operand: ViewFilterOperand;
|
||||
};
|
||||
|
||||
@ -1 +0,0 @@
|
||||
export { ViewFilterOperand as FilterOperand } from '~/generated/graphql';
|
||||
@ -1,20 +1,22 @@
|
||||
import { FilterOperand } from '../types/FilterOperand';
|
||||
import { ViewFilterOperand } from '~/generated/graphql';
|
||||
|
||||
export const getOperandLabel = (operand: FilterOperand | null | undefined) => {
|
||||
export const getOperandLabel = (
|
||||
operand: ViewFilterOperand | null | undefined,
|
||||
) => {
|
||||
switch (operand) {
|
||||
case FilterOperand.Contains:
|
||||
case ViewFilterOperand.Contains:
|
||||
return 'Contains';
|
||||
case FilterOperand.DoesNotContain:
|
||||
case ViewFilterOperand.DoesNotContain:
|
||||
return "Doesn't contain";
|
||||
case FilterOperand.GreaterThan:
|
||||
case ViewFilterOperand.GreaterThan:
|
||||
return 'Greater than';
|
||||
case FilterOperand.LessThan:
|
||||
case ViewFilterOperand.LessThan:
|
||||
return 'Less than';
|
||||
case FilterOperand.Is:
|
||||
case ViewFilterOperand.Is:
|
||||
return 'Is';
|
||||
case FilterOperand.IsNot:
|
||||
case ViewFilterOperand.IsNot:
|
||||
return 'Is not';
|
||||
case FilterOperand.IsNotNull:
|
||||
case ViewFilterOperand.IsNotNull:
|
||||
return 'Is not null';
|
||||
default:
|
||||
return '';
|
||||
@ -22,20 +24,20 @@ export const getOperandLabel = (operand: FilterOperand | null | undefined) => {
|
||||
};
|
||||
|
||||
export const getOperandLabelShort = (
|
||||
operand: FilterOperand | null | undefined,
|
||||
operand: ViewFilterOperand | null | undefined,
|
||||
) => {
|
||||
switch (operand) {
|
||||
case FilterOperand.Is:
|
||||
case FilterOperand.Contains:
|
||||
case ViewFilterOperand.Is:
|
||||
case ViewFilterOperand.Contains:
|
||||
return ': ';
|
||||
case FilterOperand.IsNot:
|
||||
case FilterOperand.DoesNotContain:
|
||||
case ViewFilterOperand.IsNot:
|
||||
case ViewFilterOperand.DoesNotContain:
|
||||
return ': Not';
|
||||
case FilterOperand.IsNotNull:
|
||||
case ViewFilterOperand.IsNotNull:
|
||||
return ': NotNull';
|
||||
case FilterOperand.GreaterThan:
|
||||
case ViewFilterOperand.GreaterThan:
|
||||
return '\u00A0> ';
|
||||
case FilterOperand.LessThan:
|
||||
case ViewFilterOperand.LessThan:
|
||||
return '\u00A0< ';
|
||||
default:
|
||||
return ': ';
|
||||
|
||||
@ -1,17 +1,18 @@
|
||||
import { FilterOperand } from '../types/FilterOperand';
|
||||
import { ViewFilterOperand } from '~/generated/graphql';
|
||||
|
||||
import { FilterType } from '../types/FilterType';
|
||||
|
||||
export const getOperandsForFilterType = (
|
||||
filterType: FilterType | null | undefined,
|
||||
): FilterOperand[] => {
|
||||
): ViewFilterOperand[] => {
|
||||
switch (filterType) {
|
||||
case 'text':
|
||||
return [FilterOperand.Contains, FilterOperand.DoesNotContain];
|
||||
return [ViewFilterOperand.Contains, ViewFilterOperand.DoesNotContain];
|
||||
case 'number':
|
||||
case 'date':
|
||||
return [FilterOperand.GreaterThan, FilterOperand.LessThan];
|
||||
return [ViewFilterOperand.GreaterThan, ViewFilterOperand.LessThan];
|
||||
case 'entity':
|
||||
return [FilterOperand.Is, FilterOperand.IsNot];
|
||||
return [ViewFilterOperand.Is, ViewFilterOperand.IsNot];
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
import { QueryMode } from '~/generated/graphql';
|
||||
import { QueryMode, ViewFilterOperand } from '~/generated/graphql';
|
||||
|
||||
import { Filter } from '../types/Filter';
|
||||
import { FilterOperand } from '../types/FilterOperand';
|
||||
|
||||
export const turnFilterIntoWhereClause = (filter: Filter) => {
|
||||
switch (filter.operand) {
|
||||
case FilterOperand.IsNotNull:
|
||||
case ViewFilterOperand.IsNotNull:
|
||||
return {
|
||||
[filter.key]: {
|
||||
not: null,
|
||||
@ -15,14 +14,14 @@ export const turnFilterIntoWhereClause = (filter: Filter) => {
|
||||
switch (filter.type) {
|
||||
case 'text':
|
||||
switch (filter.operand) {
|
||||
case FilterOperand.Contains:
|
||||
case ViewFilterOperand.Contains:
|
||||
return {
|
||||
[filter.key]: {
|
||||
contains: filter.value,
|
||||
mode: QueryMode.Insensitive,
|
||||
},
|
||||
};
|
||||
case FilterOperand.DoesNotContain:
|
||||
case ViewFilterOperand.DoesNotContain:
|
||||
return {
|
||||
[filter.key]: {
|
||||
not: {
|
||||
@ -38,13 +37,13 @@ export const turnFilterIntoWhereClause = (filter: Filter) => {
|
||||
}
|
||||
case 'number':
|
||||
switch (filter.operand) {
|
||||
case FilterOperand.GreaterThan:
|
||||
case ViewFilterOperand.GreaterThan:
|
||||
return {
|
||||
[filter.key]: {
|
||||
gte: parseFloat(filter.value),
|
||||
},
|
||||
};
|
||||
case FilterOperand.LessThan:
|
||||
case ViewFilterOperand.LessThan:
|
||||
return {
|
||||
[filter.key]: {
|
||||
lte: parseFloat(filter.value),
|
||||
@ -57,13 +56,13 @@ export const turnFilterIntoWhereClause = (filter: Filter) => {
|
||||
}
|
||||
case 'date':
|
||||
switch (filter.operand) {
|
||||
case FilterOperand.GreaterThan:
|
||||
case ViewFilterOperand.GreaterThan:
|
||||
return {
|
||||
[filter.key]: {
|
||||
gte: filter.value,
|
||||
},
|
||||
};
|
||||
case FilterOperand.LessThan:
|
||||
case ViewFilterOperand.LessThan:
|
||||
return {
|
||||
[filter.key]: {
|
||||
lte: filter.value,
|
||||
@ -76,13 +75,13 @@ export const turnFilterIntoWhereClause = (filter: Filter) => {
|
||||
}
|
||||
case 'entity':
|
||||
switch (filter.operand) {
|
||||
case FilterOperand.Is:
|
||||
case ViewFilterOperand.Is:
|
||||
return {
|
||||
[filter.key]: {
|
||||
equals: filter.value,
|
||||
},
|
||||
};
|
||||
case FilterOperand.IsNot:
|
||||
case ViewFilterOperand.IsNot:
|
||||
return {
|
||||
[filter.key]: {
|
||||
not: { equals: filter.value },
|
||||
|
||||
@ -6,7 +6,7 @@ import { currentUserState } from '@/auth/states/currentUserState';
|
||||
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
||||
import { availableFiltersScopedState } from '@/ui/view-bar/states/availableFiltersScopedState';
|
||||
import { filtersScopedState } from '@/ui/view-bar/states/filtersScopedState';
|
||||
import { FilterOperand } from '@/ui/view-bar/types/FilterOperand';
|
||||
import { ViewFilterOperand } from '~/generated/graphql';
|
||||
|
||||
import { tasksFilters } from './tasks-filters';
|
||||
|
||||
@ -33,7 +33,7 @@ export const TasksEffect = () => {
|
||||
key: 'assigneeId',
|
||||
type: 'entity',
|
||||
value: currentUser.id,
|
||||
operand: FilterOperand.Is,
|
||||
operand: ViewFilterOperand.Is,
|
||||
displayValue: currentUser.displayName,
|
||||
displayAvatarUrl: currentUser.avatarUrl ?? undefined,
|
||||
},
|
||||
|
||||
141
front/yarn.lock
141
front/yarn.lock
@ -1940,6 +1940,14 @@
|
||||
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.1.tgz#1a5b1959a528e374e8037c4396c3e825d6cf4a83"
|
||||
integrity sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==
|
||||
|
||||
"@graphql-codegen/add@^5.0.0":
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/add/-/add-5.0.0.tgz#578ebaf4fa87c1e934c381cd679bcedcf79feaba"
|
||||
integrity sha512-ynWDOsK2yxtFHwcJTB9shoSkUd7YXd6ZE57f0nk7W5cu/nAgxZZpEsnTPEpZB/Mjf14YRGe2uJHQ7AfElHjqUQ==
|
||||
dependencies:
|
||||
"@graphql-codegen/plugin-helpers" "^5.0.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/cli@^3.3.1":
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-3.3.1.tgz#103e7a2263126fdde168a1ce623fc2bdc05352f0"
|
||||
@ -1981,6 +1989,25 @@
|
||||
yaml "^1.10.0"
|
||||
yargs "^17.0.0"
|
||||
|
||||
"@graphql-codegen/client-preset@^4.1.0":
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/client-preset/-/client-preset-4.1.0.tgz#81becd32b78b207b0e966876900537ec172d8df1"
|
||||
integrity sha512-/3Ymb/fjxIF1+HGmaI1YwSZbWsrZAWMSQjh3dU425eBjctjsVQ6gzGRr+l/gE5F1mtmCf+vlbTAT03heAc/QIw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/template" "^7.20.7"
|
||||
"@graphql-codegen/add" "^5.0.0"
|
||||
"@graphql-codegen/gql-tag-operations" "4.0.1"
|
||||
"@graphql-codegen/plugin-helpers" "^5.0.1"
|
||||
"@graphql-codegen/typed-document-node" "^5.0.1"
|
||||
"@graphql-codegen/typescript" "^4.0.1"
|
||||
"@graphql-codegen/typescript-operations" "^4.0.1"
|
||||
"@graphql-codegen/visitor-plugin-common" "^4.0.1"
|
||||
"@graphql-tools/documents" "^1.0.0"
|
||||
"@graphql-tools/utils" "^10.0.0"
|
||||
"@graphql-typed-document-node/core" "3.2.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/core@^3.1.0":
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-3.1.0.tgz#ad859d52d509a4eb2ebe5aabba6543a628fb181b"
|
||||
@ -1991,6 +2018,17 @@
|
||||
"@graphql-tools/utils" "^9.1.1"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/gql-tag-operations@4.0.1":
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.1.tgz#36c7d40a135b9889d7f225166be323c3d48cee87"
|
||||
integrity sha512-qF6wIbBzW8BNT+wiVsBxrYOs2oYcsxQ7mRvCpfEI3HnNZMAST/uX76W8MqFEJvj4mw7NIDv7xYJAcAZIWM5LWw==
|
||||
dependencies:
|
||||
"@graphql-codegen/plugin-helpers" "^5.0.0"
|
||||
"@graphql-codegen/visitor-plugin-common" "4.0.1"
|
||||
"@graphql-tools/utils" "^10.0.0"
|
||||
auto-bind "~4.0.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/plugin-helpers@^2.7.2":
|
||||
version "2.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz#6544f739d725441c826a8af6a49519f588ff9bed"
|
||||
@ -2015,6 +2053,18 @@
|
||||
lodash "~4.17.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/plugin-helpers@^5.0.0", "@graphql-codegen/plugin-helpers@^5.0.1":
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.1.tgz#e2429fcfba3f078d5aa18aa062d46c922bbb0d55"
|
||||
integrity sha512-6L5sb9D8wptZhnhLLBcheSPU7Tg//DGWgc5tQBWX46KYTOTQHGqDpv50FxAJJOyFVJrveN9otWk9UT9/yfY4ww==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "^10.0.0"
|
||||
change-case-all "1.0.15"
|
||||
common-tags "1.8.2"
|
||||
import-from "4.0.0"
|
||||
lodash "~4.17.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/schema-ast@^3.0.1":
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-3.0.1.tgz#37b458bb57b95715a9eb4259341c856dae2a461d"
|
||||
@ -2024,6 +2074,26 @@
|
||||
"@graphql-tools/utils" "^9.0.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/schema-ast@^4.0.0":
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-4.0.0.tgz#5d60996c87b64f81847da8fcb2d8ef50ede89755"
|
||||
integrity sha512-WIzkJFa9Gz28FITAPILbt+7A8+yzOyd1NxgwFh7ie+EmO9a5zQK6UQ3U/BviirguXCYnn+AR4dXsoDrSrtRA1g==
|
||||
dependencies:
|
||||
"@graphql-codegen/plugin-helpers" "^5.0.0"
|
||||
"@graphql-tools/utils" "^10.0.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/typed-document-node@^5.0.1":
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/typed-document-node/-/typed-document-node-5.0.1.tgz#ac90cf67c61554f63ec100d6076b47c9f0b18b27"
|
||||
integrity sha512-VFkhCuJnkgtbbgzoCAwTdJe2G1H6sd3LfCrDqWUrQe53y2ukfSb5Ov1PhAIkCBStKCMQBUY9YgGz9GKR40qQ8g==
|
||||
dependencies:
|
||||
"@graphql-codegen/plugin-helpers" "^5.0.0"
|
||||
"@graphql-codegen/visitor-plugin-common" "4.0.1"
|
||||
auto-bind "~4.0.0"
|
||||
change-case-all "1.0.15"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/typescript-operations@^3.0.4":
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-3.0.4.tgz#60163c07f0ef73655779ece450d02c1172c44027"
|
||||
@ -2035,6 +2105,17 @@
|
||||
auto-bind "~4.0.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/typescript-operations@^4.0.1":
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-4.0.1.tgz#930af3e2d2ae8ff06de696291be28fe7046a2fef"
|
||||
integrity sha512-GpUWWdBVUec/Zqo23aFLBMrXYxN2irypHqDcKjN78JclDPdreasAEPcIpMfqf4MClvpmvDLy4ql+djVAwmkjbw==
|
||||
dependencies:
|
||||
"@graphql-codegen/plugin-helpers" "^5.0.0"
|
||||
"@graphql-codegen/typescript" "^4.0.1"
|
||||
"@graphql-codegen/visitor-plugin-common" "4.0.1"
|
||||
auto-bind "~4.0.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/typescript-react-apollo@^3.3.7":
|
||||
version "3.3.7"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-react-apollo/-/typescript-react-apollo-3.3.7.tgz#e856caa22c5f7bc9a546c44f54e5f3bd5801ab67"
|
||||
@ -2057,6 +2138,17 @@
|
||||
auto-bind "~4.0.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/typescript@^4.0.1":
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-4.0.1.tgz#7481d68f59bea802dd10e278dce73c8a1552b2a4"
|
||||
integrity sha512-3YziQ21dCVdnHb+Us1uDb3pA6eG5Chjv0uTK+bt9dXeMlwYBU8MbtzvQTo4qvzWVC1AxSOKj0rgfNu1xCXqJyA==
|
||||
dependencies:
|
||||
"@graphql-codegen/plugin-helpers" "^5.0.0"
|
||||
"@graphql-codegen/schema-ast" "^4.0.0"
|
||||
"@graphql-codegen/visitor-plugin-common" "4.0.1"
|
||||
auto-bind "~4.0.0"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/visitor-plugin-common@2.13.1":
|
||||
version "2.13.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz#2228660f6692bcdb96b1f6d91a0661624266b76b"
|
||||
@ -2089,6 +2181,22 @@
|
||||
parse-filepath "^1.0.2"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-codegen/visitor-plugin-common@4.0.1", "@graphql-codegen/visitor-plugin-common@^4.0.1":
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-4.0.1.tgz#64e293728b3c186f6767141e41fcdb310e50d367"
|
||||
integrity sha512-Bi/1z0nHg4QMsAqAJhds+ForyLtk7A3HQOlkrZNm3xEkY7lcBzPtiOTLBtvziwopBsXUxqeSwVjOOFPLS5Yw1Q==
|
||||
dependencies:
|
||||
"@graphql-codegen/plugin-helpers" "^5.0.0"
|
||||
"@graphql-tools/optimize" "^2.0.0"
|
||||
"@graphql-tools/relay-operation-optimizer" "^7.0.0"
|
||||
"@graphql-tools/utils" "^10.0.0"
|
||||
auto-bind "~4.0.0"
|
||||
change-case-all "1.0.15"
|
||||
dependency-graph "^0.11.0"
|
||||
graphql-tag "^2.11.0"
|
||||
parse-filepath "^1.0.2"
|
||||
tslib "~2.5.0"
|
||||
|
||||
"@graphql-tools/apollo-engine-loader@^7.3.6":
|
||||
version "7.3.26"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.26.tgz#91e54460d5579933e42a2010b8688c3459c245d8"
|
||||
@ -2133,6 +2241,14 @@
|
||||
tslib "^2.5.0"
|
||||
value-or-promise "^1.0.12"
|
||||
|
||||
"@graphql-tools/documents@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/documents/-/documents-1.0.0.tgz#e3ed97197cc22ec830ca227fd7d17e86d8424bdf"
|
||||
integrity sha512-rHGjX1vg/nZ2DKqRGfDPNC55CWZBMldEVcH+91BThRa6JeT80NqXknffLLEZLRUxyikCfkwMsk6xR3UNMqG0Rg==
|
||||
dependencies:
|
||||
lodash.sortby "^4.7.0"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/executor-graphql-ws@^0.0.14":
|
||||
version "0.0.14"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.14.tgz#e0f53fc4cfc8a06cc461b2bc1edb4bb9a8e837ed"
|
||||
@ -2274,6 +2390,13 @@
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/optimize@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-2.0.0.tgz#7a9779d180824511248a50c5a241eff6e7a2d906"
|
||||
integrity sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg==
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/prisma-loader@^7.2.49":
|
||||
version "7.2.72"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.72.tgz#6304fc23600458396f3ede713d8e2371df7850e3"
|
||||
@ -2307,6 +2430,15 @@
|
||||
"@graphql-tools/utils" "^9.2.1"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/relay-operation-optimizer@^7.0.0":
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-7.0.0.tgz#24367666af87bc5a81748de5e8e9b3c523fd4207"
|
||||
integrity sha512-UNlJi5y3JylhVWU4MBpL0Hun4Q7IoJwv9xYtmAz+CgRa066szzY7dcuPfxrA7cIGgG/Q6TVsKsYaiF4OHPs1Fw==
|
||||
dependencies:
|
||||
"@ardatan/relay-compiler" "12.0.0"
|
||||
"@graphql-tools/utils" "^10.0.0"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/schema@^9.0.0", "@graphql-tools/schema@^9.0.18", "@graphql-tools/schema@^9.0.19":
|
||||
version "9.0.19"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7"
|
||||
@ -2336,6 +2468,15 @@
|
||||
value-or-promise "^1.0.11"
|
||||
ws "^8.12.0"
|
||||
|
||||
"@graphql-tools/utils@^10.0.0":
|
||||
version "10.0.7"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.0.7.tgz#ed88968b5ce53dabacbdd185df967aaab35f8549"
|
||||
integrity sha512-KOdeMj6Hd/MENDaqPbws3YJl3wVy0DeYnL7PyUms5Skyf7uzI9INynDwPMhLXfSb0/ph6BXTwMd5zBtWbF8tBQ==
|
||||
dependencies:
|
||||
"@graphql-typed-document-node/core" "^3.1.1"
|
||||
dset "^3.1.2"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/utils@^8.8.0":
|
||||
version "8.13.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.13.1.tgz#b247607e400365c2cd87ff54654d4ad25a7ac491"
|
||||
|
||||
Reference in New Issue
Block a user