diff --git a/backend/codegen.ts b/backend/codegen.ts index aff6e02..80491bf 100644 --- a/backend/codegen.ts +++ b/backend/codegen.ts @@ -14,8 +14,8 @@ const config: CodegenConfig = { }, hooks: { afterOneFileWrite: [ - "sed -i '' 's/import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from '\\''graphql'\\'';/import type { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from '\\''graphql'\\'';/g' src/__generated__/resolvers-types.ts\n", - "sed -i '' 's/import { ApolloContext } from '\\''..\\/server\\/apollo.js'\\'';/import type { ApolloContext } from '\\''..\\/server\\/apollo.js'\\'';/g' src/__generated__/resolvers-types.ts\n", + // "sed -i '' 's/import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from '\\''graphql'\\'';/import type { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from '\\''graphql'\\'';/g' src/__generated__/resolvers-types.ts", + // "sed -i '' 's/import { ApolloContext } from '\\''..\\/server\\/apollo.js'\\'';/import type { ApolloContext } from '\\''..\\/server\\/apollo.js'\\'';/g' src/__generated__/resolvers-types.ts", ], }, config: { diff --git a/backend/package.json b/backend/package.json index 231379e..1009dfa 100644 --- a/backend/package.json +++ b/backend/package.json @@ -27,6 +27,7 @@ "@graphql-tools/merge": "^9.0.1", "@hocuspocus/extension-database": "^2.8.1", "@hocuspocus/server": "^2.8.1", + "array-move": "^4.0.0", "axios": "^1.6.0", "dataloader-sequelize": "^2.3.3", "fastify": "^4.25.2", diff --git a/backend/pnpm-lock.yaml b/backend/pnpm-lock.yaml index 4c75ce9..f0dbf1f 100644 --- a/backend/pnpm-lock.yaml +++ b/backend/pnpm-lock.yaml @@ -26,6 +26,9 @@ dependencies: '@hocuspocus/server': specifier: ^2.8.1 version: 2.8.1(bufferutil@4.0.8)(utf-8-validate@6.0.3)(y-protocols@1.0.6)(yjs@13.6.10) + array-move: + specifier: ^4.0.0 + version: 4.0.0 axios: specifier: ^1.6.0 version: 1.6.0 @@ -2855,6 +2858,11 @@ packages: is-string: 1.0.7 dev: true + /array-move@4.0.0: + resolution: {integrity: sha512-+RY54S8OuVvg94THpneQvFRmqWdAHeqtMzgMW6JNurHxe8rsS07cHQdfGkXnTUXiBcyZ0j3SiDIxxj0RPiqCkQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} diff --git a/backend/src/__generated__/resolvers-types.ts b/backend/src/__generated__/resolvers-types.ts index d19d2ba..0dcb061 100644 --- a/backend/src/__generated__/resolvers-types.ts +++ b/backend/src/__generated__/resolvers-types.ts @@ -1,6 +1,6 @@ -import { type GraphQLResolveInfo, GraphQLScalarType, type GraphQLScalarTypeConfig } from 'graphql'; +import type { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from 'graphql'; -import { type ApolloContext } from '../server/apollo.js'; +import type { ApolloContext } from '../server/apollo.js'; export type Maybe = T | null; export type InputMaybe = Maybe; @@ -21,6 +21,13 @@ export type Scalars = { Upload: { input: any; output: any }; }; +export type AddItemToViewStateItemInput = { + boardId: Scalars['String']['input']; + columnPositionIndex?: InputMaybe; + issueId: Scalars['String']['input']; + viewStateId: Scalars['String']['input']; +}; + export type AddUserToProjectInput = { projectId: Scalars['String']['input']; userId: Scalars['String']['input']; @@ -55,6 +62,7 @@ export type Board = { status?: Maybe; style?: Maybe; updatedAt?: Maybe; + version?: Maybe; viewState?: Maybe>>; }; @@ -135,6 +143,12 @@ export type CreateProjectValidationInput = { name?: InputMaybe; }; +export type CreateViewStateInput = { + boardId: Scalars['String']['input']; + positionIndex?: InputMaybe; + title?: InputMaybe; +}; + export type CustomField = { __typename?: 'CustomField'; createdAt?: Maybe; @@ -237,6 +251,7 @@ export type MessageAndStatus = { export type Mutation = { __typename?: 'Mutation'; + addItemToViewState?: Maybe>>; addUserToProject?: Maybe; assignAssetAsAvatar?: Maybe; createBoard?: Maybe; @@ -247,12 +262,14 @@ export type Mutation = { createProject?: Maybe; createProjectCustomField?: Maybe; createProjectTag?: Maybe; + createViewState?: Maybe>>; deleteAsset?: Maybe; deleteIssue?: Maybe; deleteIssueComment?: Maybe; deleteIssueLink?: Maybe; deleteProjectCustomField?: Maybe; deleteProjectTag?: Maybe; + removeItemFromViewState?: Maybe>>; removeUserFromProject?: Maybe; updateBoard?: Maybe; updateIssue?: Maybe; @@ -261,6 +278,10 @@ export type Mutation = { uploadAsset?: Maybe; }; +export type MutationAddItemToViewStateArgs = { + input: AddItemToViewStateItemInput; +}; + export type MutationAddUserToProjectArgs = { input: AddUserToProjectInput; }; @@ -301,6 +322,10 @@ export type MutationCreateProjectTagArgs = { input: CreateProjectTagInput; }; +export type MutationCreateViewStateArgs = { + input: CreateViewStateInput; +}; + export type MutationDeleteAssetArgs = { input: DeleteAssetInput; }; @@ -325,6 +350,10 @@ export type MutationDeleteProjectTagArgs = { input: DeleteProjectTagInput; }; +export type MutationRemoveItemFromViewStateArgs = { + input: RemoveItemFromViewStateItemInput; +}; + export type MutationRemoveUserFromProjectArgs = { input: RemoveUserFromProjectInput; }; @@ -459,6 +488,11 @@ export type QueryProjectTagsInput = { projectId: Scalars['String']['input']; }; +export type RemoveItemFromViewStateItemInput = { + id: Scalars['ID']['input']; + viewStateId: Scalars['String']['input']; +}; + export type RemoveUserFromProjectInput = { projectId: Scalars['String']['input']; userId: Scalars['String']['input']; @@ -634,6 +668,7 @@ export type DirectiveResolverFn>; AddUserToProjectInput: ResolverTypeWrapper>; Asset: ResolverTypeWrapper>; AssignAssetAsAvatarInput: ResolverTypeWrapper>; @@ -651,6 +686,7 @@ export type ResolversTypes = ResolversObject<{ CreateProjectInput: ResolverTypeWrapper>; CreateProjectTagInput: ResolverTypeWrapper>; CreateProjectValidationInput: ResolverTypeWrapper>; + CreateViewStateInput: ResolverTypeWrapper>; CustomField: ResolverTypeWrapper>; CustomFieldValue: ResolverTypeWrapper>; DateTime: ResolverTypeWrapper>; @@ -677,6 +713,7 @@ export type ResolversTypes = ResolversObject<{ QueryIssueInput: ResolverTypeWrapper>; QueryProjectInput: ResolverTypeWrapper>; QueryProjectTagsInput: ResolverTypeWrapper>; + RemoveItemFromViewStateItemInput: ResolverTypeWrapper>; RemoveUserFromProjectInput: ResolverTypeWrapper>; SortBy: ResolverTypeWrapper>; String: ResolverTypeWrapper>; @@ -697,6 +734,7 @@ export type ResolversTypes = ResolversObject<{ /** Mapping between all available schema types and the resolvers parents */ export type ResolversParentTypes = ResolversObject<{ + AddItemToViewStateItemInput: Partial; AddUserToProjectInput: Partial; Asset: Partial; AssignAssetAsAvatarInput: Partial; @@ -712,6 +750,7 @@ export type ResolversParentTypes = ResolversObject<{ CreateProjectInput: Partial; CreateProjectTagInput: Partial; CreateProjectValidationInput: Partial; + CreateViewStateInput: Partial; CustomField: Partial; CustomFieldValue: Partial; DateTime: Partial; @@ -736,6 +775,7 @@ export type ResolversParentTypes = ResolversObject<{ QueryIssueInput: Partial; QueryProjectInput: Partial; QueryProjectTagsInput: Partial; + RemoveItemFromViewStateItemInput: Partial; RemoveUserFromProjectInput: Partial; SortBy: Partial; String: Partial; @@ -778,6 +818,7 @@ export type BoardResolvers, ParentType, ContextType>; style?: Resolver, ParentType, ContextType>; updatedAt?: Resolver, ParentType, ContextType>; + version?: Resolver, ParentType, ContextType>; viewState?: Resolver>>, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn; }>; @@ -889,6 +930,12 @@ export type MutationResolvers< ContextType = ApolloContext, ParentType = ResolversParentTypes['Mutation'], > = ResolversObject<{ + addItemToViewState?: Resolver< + Maybe>>, + ParentType, + ContextType, + RequireFields + >; addUserToProject?: Resolver< Maybe, ParentType, @@ -939,6 +986,12 @@ export type MutationResolvers< ContextType, RequireFields >; + createViewState?: Resolver< + Maybe>>, + ParentType, + ContextType, + RequireFields + >; deleteAsset?: Resolver< Maybe, ParentType, @@ -975,6 +1028,12 @@ export type MutationResolvers< ContextType, RequireFields >; + removeItemFromViewState?: Resolver< + Maybe>>, + ParentType, + ContextType, + RequireFields + >; removeUserFromProject?: Resolver< Maybe, ParentType, diff --git a/backend/src/db/migrations/20240113143058-create-board-item-tables.ts b/backend/src/db/migrations/20240113143058-create-board-item-tables.ts new file mode 100644 index 0000000..d96e0e8 --- /dev/null +++ b/backend/src/db/migrations/20240113143058-create-board-item-tables.ts @@ -0,0 +1,112 @@ +'use strict'; + +const CONTAINER_TABLE_NAME = 'board_containers'; +const ITEMS_TABLE_NAME = 'container_items'; + +/** @type {import('sequelize-cli').Migration} */ +export default { + async up(queryInterface, Sequelize) { + await queryInterface.createTable(CONTAINER_TABLE_NAME, { + id: { + allowNull: false, + autoIncrement: true, + primaryKey: true, + type: Sequelize.INTEGER, + }, + boardId: { + type: Sequelize.INTEGER, + field: 'board_id', + references: { + model: { + tableName: 'boards', + schema: 'public', + }, + key: 'id', + }, + }, + title: { + type: Sequelize.STRING, + field: 'title', + }, + position: { + type: Sequelize.INTEGER, + field: 'position', + }, + createdAt: { + field: 'created_at', + type: Sequelize.DATE, + }, + updatedAt: { + field: 'updated_at', + type: Sequelize.DATE, + }, + }); + + await queryInterface.addIndex(CONTAINER_TABLE_NAME, { + fields: ['board_id'], + unique: false, + }); + + await queryInterface.createTable(ITEMS_TABLE_NAME, { + id: { + allowNull: false, + autoIncrement: true, + primaryKey: true, + type: Sequelize.INTEGER, + }, + issueId: { + type: Sequelize.INTEGER, + field: 'issue_id', + references: { + model: { + tableName: 'issues', + schema: 'public', + }, + key: 'id', + }, + }, + containerId: { + type: Sequelize.INTEGER, + field: 'container_id', + references: { + model: { + tableName: CONTAINER_TABLE_NAME, + schema: 'public', + }, + key: 'id', + }, + }, + position: { + type: Sequelize.INTEGER, + field: 'position', + }, + createdAt: { + field: 'created_at', + type: Sequelize.DATE, + }, + updatedAt: { + field: 'updated_at', + type: Sequelize.DATE, + }, + }); + + await queryInterface.addIndex(ITEMS_TABLE_NAME, { + fields: ['container_id'], + unique: false, + }); + + await queryInterface.addIndex(ITEMS_TABLE_NAME, { + fields: ['issue_id'], + unique: false, + }); + + await queryInterface.addIndex(ITEMS_TABLE_NAME, { + fields: ['container_id', 'issue_id'], + unique: true, + }); + }, + async down(queryInterface, Sequelize) { + await queryInterface.dropTable(CONTAINER_TABLE_NAME); + await queryInterface.dropTable(ITEMS_TABLE_NAME); + }, +}; diff --git a/backend/src/db/migrations/20240116200136-add-version-to-board-table.ts b/backend/src/db/migrations/20240116200136-add-version-to-board-table.ts new file mode 100644 index 0000000..5b7222e --- /dev/null +++ b/backend/src/db/migrations/20240116200136-add-version-to-board-table.ts @@ -0,0 +1,15 @@ +const TABLE_NAME = 'boards'; + +/** @type {import('sequelize-cli').Migration} */ +export default { + async up(queryInterface, Sequelize) { + await queryInterface.addColumn(TABLE_NAME, 'version', { + type: Sequelize.INTEGER, + allowNull: false, + defaultValue: 1, + }); + }, + async down(queryInterface, Sequelize) { + await queryInterface.removeColumn(TABLE_NAME, 'version'); + }, +}; diff --git a/backend/src/db/models/board-container.ts b/backend/src/db/models/board-container.ts new file mode 100644 index 0000000..bf55e31 --- /dev/null +++ b/backend/src/db/models/board-container.ts @@ -0,0 +1,55 @@ +import { DataTypes, Sequelize } from 'sequelize'; + +import { BoardContainer } from './types.js'; + +export default (sequelize: Sequelize) => { + BoardContainer.init( + { + id: { + type: DataTypes.INTEGER, + primaryKey: true, + autoIncrement: true, + }, + boardId: { + type: DataTypes.INTEGER, + field: 'board_id', + }, + position: { + type: DataTypes.INTEGER, + field: 'position', + }, + title: { + type: DataTypes.STRING, + field: 'title', + }, + createdAt: { + type: DataTypes.DATE, + field: 'created_at', + }, + updatedAt: { + type: DataTypes.DATE, + field: 'updated_at', + }, + }, + { + sequelize, + tableName: 'board_containers', + createdAt: 'created_at', + updatedAt: 'updated_at', + indexes: [{ unique: false, fields: ['board_id'] }], + } + ); + + BoardContainer.associate = ({ Board, ContainerItem }) => { + BoardContainer.belongsTo(Board, { + foreignKey: 'board_id', + as: 'board', + }); + BoardContainer.hasMany(ContainerItem, { + foreignKey: 'container_id', + as: 'items', + }); + }; + + return BoardContainer; +}; diff --git a/backend/src/db/models/board.ts b/backend/src/db/models/board.ts index c3ff048..1897512 100644 --- a/backend/src/db/models/board.ts +++ b/backend/src/db/models/board.ts @@ -40,6 +40,12 @@ export default (sequelize: Sequelize) => { type: DataTypes.JSONB, field: 'container_order', }, + version: { + type: DataTypes.INTEGER, + field: 'version', + allowNull: false, + defaultValue: 1, + }, createdAt: { type: DataTypes.DATE, field: 'created_at', @@ -58,7 +64,7 @@ export default (sequelize: Sequelize) => { } ); - Board.associate = ({ IssueBoard, Project, Issue }) => { + Board.associate = ({ IssueBoard, Project, Issue, BoardContainer }) => { Board.belongsToMany(Issue, { through: IssueBoard, foreignKey: 'board_id', @@ -69,6 +75,10 @@ export default (sequelize: Sequelize) => { foreignKey: 'project_id', as: 'project', }); + Board.hasMany(BoardContainer, { + foreignKey: 'board_id', + as: 'containers', + }); }; return Board; diff --git a/backend/src/db/models/container-item.ts b/backend/src/db/models/container-item.ts new file mode 100644 index 0000000..5e8cc04 --- /dev/null +++ b/backend/src/db/models/container-item.ts @@ -0,0 +1,59 @@ +import { DataTypes, Sequelize } from 'sequelize'; + +import { ContainerItem } from './types.js'; + +export default (sequelize: Sequelize) => { + ContainerItem.init( + { + id: { + type: DataTypes.INTEGER, + primaryKey: true, + autoIncrement: true, + }, + containerId: { + type: DataTypes.INTEGER, + field: 'container_id', + }, + issueId: { + type: DataTypes.INTEGER, + field: 'issue_id', + }, + position: { + type: DataTypes.INTEGER, + field: 'position', + }, + createdAt: { + type: DataTypes.DATE, + field: 'created_at', + }, + updatedAt: { + type: DataTypes.DATE, + field: 'updated_at', + }, + }, + { + sequelize, + tableName: 'container_items', + createdAt: 'created_at', + updatedAt: 'updated_at', + indexes: [ + { unique: false, fields: ['container_id'] }, + { unique: false, fields: ['issue_id'] }, + { unique: true, fields: ['container_id', 'issue_id'] }, + ], + } + ); + + ContainerItem.associate = ({ BoardContainer, Issue }) => { + ContainerItem.belongsTo(BoardContainer, { + foreignKey: 'container_id', + as: 'container', + }); + ContainerItem.belongsTo(Issue, { + foreignKey: 'issue_id', + as: 'issue', + }); + }; + + return ContainerItem; +}; diff --git a/backend/src/db/models/index.ts b/backend/src/db/models/index.ts index cfc67c5..63e4e99 100644 --- a/backend/src/db/models/index.ts +++ b/backend/src/db/models/index.ts @@ -3,7 +3,9 @@ import { Sequelize } from 'sequelize'; import { ENABLE_SEQUELIZE_LOGGING, SQL_URI } from '../../services/config.js'; import type { Db } from '../../typings.js'; import Asset from './asset.js'; +import BoardContainer from './board-container.js'; import Board from './board.js'; +import ContainerItem from './container-item.js'; import IssueBoard from './issue-board.js'; import IssueComment from './issue-comment.js'; import IssueLink from './issue-link.js'; @@ -36,6 +38,8 @@ const init = async () => { db.IssueLink = IssueLink(db.sequelize); db.ProjectPermission = ProjectPermission(db.sequelize); db.ProjectCustomField = ProjectCustomField(db.sequelize); + db.BoardContainer = BoardContainer(db.sequelize); + db.ContainerItem = ContainerItem(db.sequelize); Object.values(db).forEach((model: any) => { if (model.associate) { diff --git a/backend/src/db/models/issue.ts b/backend/src/db/models/issue.ts index 83aca43..8c49f05 100644 --- a/backend/src/db/models/issue.ts +++ b/backend/src/db/models/issue.ts @@ -104,7 +104,8 @@ export default (sequelize: Sequelize) => { } ); - Issue.associate = ({ IssueComment, IssueBoard, IssueLink, Issue, Project }) => { + Issue.associate = ({ IssueComment, IssueBoard, IssueLink, Issue, Project, IssueStatuses }) => { + Issue.belongsTo(IssueStatuses, { foreignKey: 'issue_status_id', as: 'issueStatus' }); Issue.belongsTo(Project, { foreignKey: 'project_id', as: 'project' }); Issue.hasMany(IssueComment, { foreignKey: 'issue_id', onDelete: 'CASCADE', as: 'issueComments' }); Issue.hasMany(IssueBoard, { foreignKey: 'issue_id', onDelete: 'CASCADE', as: 'issueBoards' }); diff --git a/backend/src/db/models/types.ts b/backend/src/db/models/types.ts index 37e0dd7..6454389 100644 --- a/backend/src/db/models/types.ts +++ b/backend/src/db/models/types.ts @@ -187,8 +187,8 @@ export class IssueTag extends Model< } export class Board extends Model< - InferAttributes, - InferCreationAttributes + InferAttributes, + InferCreationAttributes > { // id can be undefined during creation when using `autoIncrement` declare id: CreationOptional; @@ -200,15 +200,18 @@ export class Board extends Model< declare backlogEnabled: CreationOptional; declare settings: CreationOptional; declare containerOrder: CreationOptional; + declare version: CreationOptional; declare getIssues: BelongsToManyGetAssociationsMixin; declare static associate: Associate; declare issues?: NonAttribute; // Note this is optional since it's only populated when explicitly requested in code + declare containers?: NonAttribute; // Note this is optional since it's only populated when explicitly requested in code declare static associations: { - issue: Association; + issues: Association; + containers: Association; }; declare createdAt: CreationOptional; @@ -263,8 +266,11 @@ export class IssueBoard extends Model< } export class Issue extends Model< - InferAttributes, - InferCreationAttributes + InferAttributes, + InferCreationAttributes< + Issue, + { omit: 'project' | 'linkedToIssues' | 'linkedByIssues' | 'IssueLink' | 'issueStatus' } + > > { // id can be undefined during creation when using `autoIncrement` declare id: CreationOptional; @@ -298,11 +304,13 @@ export class Issue extends Model< declare linkedToIssues?: NonAttribute; declare linkedByIssues?: NonAttribute; declare IssueLink?: NonAttribute; + declare issueStatus?: NonAttribute; // Note this is optional since it's only populated when explicitly requested in code declare static associations: { project: Association; linkedToIssues: Association; linkedByIssues: Association; + issueStatus: Association; }; // timestamps! @@ -329,3 +337,51 @@ export class Asset extends Model, InferCreationAttributes declare createdAt: CreationOptional; declare updatedAt: CreationOptional; } + +export class BoardContainer extends Model< + InferAttributes, + InferCreationAttributes +> { + // id can be undefined during creation when using `autoIncrement` + declare id: CreationOptional; + declare boardId: ForeignKey; + declare title: CreationOptional; + declare position: CreationOptional; + + declare static associate?: Associate; + + declare board?: NonAttribute; // Note this is optional since it's only populated when explicitly requested in code + declare items?: NonAttribute; // Note this is optional since it's only populated when explicitly requested in code + + declare static associations: { + board: Association; + items: Association; + }; + + declare createdAt: CreationOptional; + declare updatedAt: CreationOptional; +} + +export class ContainerItem extends Model< + InferAttributes, + InferCreationAttributes +> { + // id can be undefined during creation when using `autoIncrement` + declare id: CreationOptional; + declare containerId: ForeignKey; + declare issueId: ForeignKey; + declare position: CreationOptional; + + declare static associate?: Associate; + + declare boardContainer?: NonAttribute; // Note this is optional since it's only populated when explicitly requested in code + declare issue?: NonAttribute; // Note this is optional since it's only populated when explicitly requested in code + + declare static associations: { + boardContainer: Association; + issue: Association; + }; + + declare createdAt: CreationOptional; + declare updatedAt: CreationOptional; +} diff --git a/backend/src/resolvers/board/index.ts b/backend/src/resolvers/board/index.ts index aa6bdd0..a2020f2 100644 --- a/backend/src/resolvers/board/index.ts +++ b/backend/src/resolvers/board/index.ts @@ -1,39 +1,147 @@ +import { arrayMoveImmutable } from 'array-move'; +import { sortBy } from 'lodash-es'; + import type { + Board, BoardResolvers, MutationResolvers, + Project, QueryResolvers, + Resolver, + ResolverTypeWrapper, ViewState, + ViewStateItemResolvers, } from '../../__generated__/resolvers-types.js'; import type { Board as BoardModel } from '../../db/models/types.js'; +import type { ApolloContext } from '../../server/apollo'; import { websocketBroadcast } from '../../services/ws-server.js'; -const formatBoardResponse = (board: BoardModel) => { +const buildViewState = (board: BoardModel): ViewState[] => { + return sortBy( + board.containers.map((container) => { + const containerData = container.toJSON(); + + return { + ...containerData, + id: `container-${containerData.id}`, + // @ts-ignore + items: sortBy(containerData.items, 'position').map((item) => ({ + ...item, + id: `item-${item.issue.id}`, + })), + }; + }), + 'position' + ); +}; + +export const formatBoardResponse = (board: BoardModel): Board => { return { ...board.toJSON(), id: `${board.id}`, projectId: `${board.projectId}`, containerOrder: board.containerOrder ? JSON.stringify(board.containerOrder) : undefined, settings: board.settings ? JSON.stringify(board.settings) : undefined, - viewState: board.viewState ? (board.viewState as ViewState[]) : undefined, // TODO: verify this is correct + viewState: buildViewState(board), + version: Number(board.version), }; }; -const Query: QueryResolvers = { - boards: async (parent, args, { db, dataLoaderContext }) => { - // TODO: should we require a project id to show boards? - const boards = await db.Board.findAll(); +const ViewStateItem: ViewStateItemResolvers = { + title: async (parent, __, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { + const issue = await db.Issue.findByPk(Number(parent.id.replace('item-', '')), { + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + }); - dataLoaderContext.prime(boards); + return issue?.title ?? null; + }, + status: async (parent, __, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { + try { + const issue = await db.Issue.findByPk(Number(parent.id.replace('item-', '')), { + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + include: { + model: db.IssueStatuses, + as: 'issueStatus', + }, + }); - return boards.map(formatBoardResponse); + return { + id: `${issue.issueStatus.id}`, + projectId: `${issue.issueStatus.projectId}`, + name: `${issue.issueStatus.name}`, + }; + } catch (error) { + console.error({ error }); + return null; + } }, +}; + +export const boards: Resolver>[], Project | undefined, ApolloContext, {}> = async ( + parent, + args, + { db, dataLoaderContext }, + info +) => { + const additionalOptions = {}; + + const isParentTypeProject = info?.parentType?.name === 'Project'; + + if (isParentTypeProject && parent.id) { + additionalOptions['where'] = { + projectId: parent.id, + }; + } + + const boards = await db.Board.findAll({ + include: [ + { + model: db.BoardContainer, + as: 'containers', + include: [ + { + model: db.ContainerItem, + as: 'items', + include: [ + { + model: db.Issue, + as: 'issue', + }, + ], + }, + ], + }, + ], + }); + + // dataLoaderContext.prime(boards); + + return boards.map(formatBoardResponse); +}; + +const Query: QueryResolvers = { + boards, board: async (parent, { input: { id } }, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { const board = await db.Board.findByPk(Number(id), { - // include: { - // model: db.Issue, - // as: 'issues', - // }, - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + include: [ + { + model: db.BoardContainer, + as: 'containers', + include: [ + { + model: db.ContainerItem, + as: 'items', + include: [ + { + model: db.Issue, + as: 'issue', + }, + ], + }, + ], + }, + ], + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); return formatBoardResponse(board); @@ -41,14 +149,156 @@ const Query: QueryResolvers = { }; const Mutation: MutationResolvers = { + createViewState: async ( + parent, + { input: { boardId, positionIndex, title } }, + { db, dataLoaderContext, EXPECTED_OPTIONS_KEY } + ) => { + const board = await db.Board.findByPk(Number(boardId), { + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + }); + + return formatBoardResponse(board).viewState; + }, + addItemToViewState: async ( + parent, + { input: { boardId, issueId, viewStateId, columnPositionIndex } }, + { db, dataLoaderContext, EXPECTED_OPTIONS_KEY } + ) => { + const result = await db.sequelize.transaction(async (transaction) => { + const board = await db.Board.findByPk(Number(boardId), { + include: [ + { + model: db.BoardContainer, + as: 'containers', + include: [ + { + model: db.ContainerItem, + as: 'items', + include: [ + { + model: db.Issue, + as: 'issue', + }, + ], + }, + ], + }, + ], + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + transaction, + }); + + board.version += 1; + + await board.save({ transaction }); + + const doesIssueExist = await db.Issue.findByPk(Number(issueId), { + transaction, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + }); + if (!doesIssueExist) { + throw new Error(`Issue with id ${issueId} does not exist`); + } + + const existingBoardContainer = board.containers.find((container) => + container.items.some((item) => Number(item.issueId) === Number(issueId)) + ); + + const destinationBoardContainer = board.containers.find( + (container) => container.id === Number(viewStateId.replace('container-', '')) + ); + + const existingItem = existingBoardContainer?.items.find((item) => Number(item.issueId) === Number(issueId)); + + let incomingItem = null; + + if (typeof columnPositionIndex === undefined) { + columnPositionIndex = Math.max(destinationBoardContainer?.items?.length - 1, 0); + } + + if (existingItem) { + existingItem.position = columnPositionIndex; + existingItem.containerId = Number(viewStateId.replace('container-', '')); + await existingItem.save({ transaction }); + incomingItem = existingItem; + } else { + incomingItem = await db.ContainerItem.create( + { + containerId: Number(viewStateId.replace('container-', '')), + issueId: Number(issueId), + position: columnPositionIndex, + }, + { transaction } + ); + } + + // dataLoaderContext.prime(incomingItem); + + await board.reload({ transaction }); + // dataLoaderContext.prime(board); + + const destinationBoardContainerUpdated = board.containers.find( + (container) => container.id === Number(viewStateId.replace('container-', '')) + ); + + // TODO: Testing out row level locking for re-ordering container items + // const containerItems = sortBy(destinationBoardContainerUpdated.items, 'position'); + const containerItems = await db.ContainerItem.findAll({ + where: { + containerId: destinationBoardContainerUpdated.id, + }, + order: [['position', 'ASC']], + lock: true, + transaction, + }); + + const sortedItems = arrayMoveImmutable( + containerItems, + containerItems.findIndex((item) => item.id === incomingItem.id), + columnPositionIndex + ); + + for (let i = 0; i < sortedItems.length; i++) { + sortedItems[i].position = i; + } + + await Promise.all(sortedItems.map((item) => item.save({ transaction }))); + // dataLoaderContext.prime(sortedItems); + await board.reload({ transaction }); + // dataLoaderContext.prime(board); + + return board; + }); + + return buildViewState(result); + }, updateBoard: async (parent, { input }, { db, websocketServer, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { const { id, name, viewState, backlogEnabled, settings, containerOrder } = input; const board = await db.Board.findByPk(Number(id), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + include: [ + { + model: db.BoardContainer, + as: 'containers', + include: [ + { + model: db.ContainerItem, + as: 'items', + include: [ + { + model: db.Issue, + as: 'issue', + }, + ], + }, + ], + }, + ], }); if (name) board.name = name; - if (typeof viewState !== 'undefined') board.viewState = viewState; + // if (typeof viewState !== 'undefined') board.viewState = viewState; if (backlogEnabled !== undefined) board.backlogEnabled = backlogEnabled; if (typeof settings !== 'undefined') board.settings = JSON.parse(settings); // TODO: lets add some more safety checks here @@ -57,8 +307,9 @@ const Mutation: MutationResolvers = { } await board.save(); + await board.reload(); - dataLoaderContext.prime(board); + // dataLoaderContext.prime(board); websocketBroadcast({ clients: websocketServer.clients, @@ -78,7 +329,7 @@ const Board: BoardResolvers = { model: db.Issue, as: 'issues', }, - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); const boardIssueIdsFromViewState = board.viewState @@ -98,7 +349,7 @@ const Board: BoardResolvers = { raw: true, }); - dataLoaderContext.prime(boardIssues); + // dataLoaderContext.prime(boardIssues); return issuesInViewState.map((issue) => ({ ...issue.toJSON(), @@ -116,6 +367,7 @@ const Board: BoardResolvers = { }; const resolvers = { + ViewStateItem, Query, Mutation, Board, diff --git a/backend/src/resolvers/issue/index.ts b/backend/src/resolvers/issue/index.ts index c2bc042..00f7a3e 100644 --- a/backend/src/resolvers/issue/index.ts +++ b/backend/src/resolvers/issue/index.ts @@ -41,40 +41,12 @@ const Query: QueryResolvers = { if (searchOperator === 'or') queryOperator = Op.or; const issuesListPlain = await db.Issue.findAll({ - // include: [ - // { - // model: db.Project, - // as: 'project', - // }, - // { - // model: db.Issue, - // as: 'linkedToIssues', - // through: { - // attributes: [ - // ['issue_id', 'issueId'], - // ['linked_issue_id', 'linkedIssueId'], - // ['link_type', 'linkType'], - // ], - // }, - // }, - // { - // model: db.Issue, - // as: 'linkedByIssues', - // through: { - // attributes: [ - // ['issue_id', 'issueId'], - // ['linked_issue_id', 'linkedIssueId'], - // ['link_type', 'linkType'], - // ], - // }, - // }, - // ], where: { [queryOperator]: whereOr, }, }); - dataLoaderContext.prime(issuesListPlain); + // dataLoaderContext.prime(issuesListPlain); return ( issuesListPlain && @@ -89,7 +61,7 @@ const Query: QueryResolvers = { }, issue: async (parent, { input: { id } }, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { const databaseIssue = await db.Issue.findByPk(id, { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); return { @@ -145,82 +117,121 @@ const Mutation: MutationResolvers = { customFieldValue, } = input; - const issue = await db.Issue.findByPk(Number(id), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, - }); - - if (issueStatusId) issue.issueStatusId = Number(issueStatusId); - if (assigneeId) issue.assigneeId = Number(assigneeId); - if (reporterId) issue.reporterId = Number(reporterId); - if (title) issue.title = title; - if (description) issue.description = description; - if (priority) issue.priority = Number(priority); - if (tagIds) { - await db.IssueTag.destroy({ where: { issueId: id } }); - await db.IssueTag.bulkCreate( - tagIds.map((tagId) => ({ - issueId: Number(id), - projectTagId: Number(tagId), - })) - ); - } - if (archived !== undefined) issue.archived = archived; - - // TODO: look for better way to handle nullifying user - if (issue.assigneeId === 0) issue.assigneeId = null; - if (issue.reporterId === 0) issue.reporterId = null; + return await db.sequelize.transaction(async (transaction) => { + const issue = await db.Issue.findByPk(Number(id), { + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + transaction, + }); - if (customFieldId && customFieldValue) { - const customField = await db.ProjectCustomField.findByPk(Number(customFieldId), { + if (issueStatusId) issue.issueStatusId = Number(issueStatusId); + if (assigneeId) issue.assigneeId = Number(assigneeId); + if (reporterId) issue.reporterId = Number(reporterId); + if (title) issue.title = title; + if (description) issue.description = description; + if (priority) issue.priority = Number(priority); + if (tagIds) { + await db.IssueTag.destroy({ where: { issueId: id }, transaction }); + await db.IssueTag.bulkCreate( + tagIds.map((tagId) => ({ + issueId: Number(id), + projectTagId: Number(tagId), + })), + { transaction } + ); + } + if (archived !== undefined) issue.archived = archived; + + // TODO: look for better way to handle nullifying user + if (issue.assigneeId === 0) issue.assigneeId = null; + if (issue.reporterId === 0) issue.reporterId = null; + + if (customFieldId && customFieldValue) { + const customField = await db.ProjectCustomField.findByPk(Number(customFieldId), { + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + transaction, + }); + if (!customField) throw new Error('Custom field not found'); + + let valueCasted: number | string | boolean = customFieldValue; + + if (customField.fieldType.toLowerCase() === 'number') valueCasted = Number(customFieldValue); + else if (customField.fieldType.toLowerCase() === 'boolean') valueCasted = yn(customFieldValue); + + const customFieldObject = { + id: `${issue.id}-${customField.id}`, + customFieldId, + value: valueCasted, + createdAt: new Date(), // TODO: improve date format decision + }; + + // TODO: investigate how to deep set the value instead of this to leverage DB level updating + issue.customFields = issue.customFields + ? values(merge(keyBy(issue.customFields, 'id'), keyBy([customFieldObject], 'id'))) + : [customFieldObject]; + } + + await issue.save({ transaction }); + // dataLoaderContext.prime(issue); + + const issueStatus = await db.IssueStatuses.findByPk(Number(issueStatusId ?? issue.issueStatusId), { [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + transaction, }); - if (!customField) throw new Error('Custom field not found'); - let valueCasted: number | string | boolean = customFieldValue; + // START: This is specific to the issue board + const board = await db.Board.findOne({ + where: { projectId: issue.projectId }, + transaction, + }); - if (customField.fieldType.toLowerCase() === 'number') valueCasted = Number(customFieldValue); - else if (customField.fieldType.toLowerCase() === 'boolean') valueCasted = yn(customFieldValue); + board.version += 1; - const customFieldObject = { - id: `${issue.id}-${customField.id}`, - customFieldId, - value: valueCasted, - createdAt: new Date(), // TODO: improve date format decision - }; + await board.save({ transaction }); - // TODO: investigate how to deep set the value instead of this to leverage DB level updating - issue.customFields = issue.customFields - ? values(merge(keyBy(issue.customFields, 'id'), keyBy([customFieldObject], 'id'))) - : [customFieldObject]; - } + // This is the destination column on the board we want to move to + const boardContainer = await db.BoardContainer.findOne({ + where: { boardId: board.id, title: issueStatus.name }, + transaction, + }); - await issue.save(); - dataLoaderContext.prime(issue); + const issueOnBoard = await db.ContainerItem.findOne({ + where: { issueId: issue.id }, + transaction, + }); - const issueStatus = await db.IssueStatuses.findByPk(Number(issueStatusId ?? issue.issueStatusId), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, - }); + const maxPosition = Number( + await db.ContainerItem.max('position', { + where: { containerId: boardContainer.id }, + transaction, + }) + ); - const returnData = { - ...issue.toJSON(), - id: `${issue.id}`, - projectId: `${issue.projectId}`, - project: undefined, - customFields: undefined, - status: { - ...issueStatus.toJSON(), - id: `${issueStatus.id}`, - projectId: `${issueStatus.projectId}`, - }, - }; + issueOnBoard.containerId = boardContainer.id; + issueOnBoard.position = maxPosition > 0 ? maxPosition + 1 : 0; + await issueOnBoard.save(); + // END: This is specific to the issue board - websocketBroadcast({ - clients: websocketServer.clients, - namespace: 'ws', - message: JSON.stringify({ type: 'ISSUE_UPDATED', payload: returnData }), - }); + const returnData = { + ...issue.toJSON(), + id: `${issue.id}`, + projectId: `${issue.projectId}`, + project: undefined, + customFields: undefined, + status: { + ...issueStatus.toJSON(), + id: `${issueStatus.id}`, + projectId: `${issueStatus.projectId}`, + }, + }; + + websocketBroadcast({ + clients: websocketServer.clients, + namespace: 'ws', + message: JSON.stringify({ type: 'ISSUE_UPDATED', payload: returnData }), + }); - return returnData; + return returnData; + }); }, createIssue: async (parent, { input }, { db, user, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { const { projectId, boardId, issueStatusId, assigneeId, title, description, priority } = input; @@ -237,7 +248,7 @@ const Mutation: MutationResolvers = { priority, }); - dataLoaderContext.prime(issue); + // dataLoaderContext.prime(issue); // TODO: This isnt currently implemented in the UI if (typeof boardId !== 'undefined') { @@ -246,11 +257,11 @@ const Mutation: MutationResolvers = { issueId: Number(issue.id), }); - dataLoaderContext.prime(issueBoard); + // dataLoaderContext.prime(issueBoard); } const issueStatus = await db.IssueStatuses.findByPk(issueStatusId, { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); return { @@ -290,7 +301,7 @@ const CustomFieldValue: CustomFieldValueResolvers = { if (!parent.customFieldId) return null; const customFieldData = await db.ProjectCustomField.findByPk(Number(parent.customFieldId), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); return { @@ -305,7 +316,7 @@ const CustomFieldValue: CustomFieldValueResolvers = { const Issue: IssueResolvers = { links: async (parent, args, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { const databaseIssues = await db.Issue.findByPk(Number(parent.id), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, include: [ { model: db.Issue, @@ -350,12 +361,12 @@ const Issue: IssueResolvers = { }, tags: async (parent, args, { db, dataLoaderContext }) => { const issueTags = await db.IssueTag.findAll({ where: { issueId: parent.id } }); - dataLoaderContext.prime(issueTags); + // dataLoaderContext.prime(issueTags); const projectTags = await db.ProjectTag.findAll({ where: { id: issueTags.map((issueTag) => issueTag.projectTagId) }, }); - dataLoaderContext.prime(projectTags); + // dataLoaderContext.prime(projectTags); return projectTags.map((projectTag) => ({ ...projectTag.toJSON(), @@ -368,7 +379,7 @@ const Issue: IssueResolvers = { where: { issueId: Number(parent.id) }, order: [['createdAt', 'DESC']], }); - dataLoaderContext.prime(comments); + // dataLoaderContext.prime(comments); return comments.map((comment) => ({ ...comment.toJSON(), @@ -379,13 +390,13 @@ const Issue: IssueResolvers = { status: async (parent, args, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { // TODO: parent.issueStatusId does exist but since it is not part of the graphql type it is not available according to typescript const issue = await db.Issue.findByPk(Number(parent.id), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); if (!issue.issueStatusId) return null; const issueStatus = await db.IssueStatuses.findByPk(issue.issueStatusId, { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); return { @@ -396,11 +407,11 @@ const Issue: IssueResolvers = { }, reporter: async (parent, args, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { const issue = await db.Issue.findByPk(Number(parent.id), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); const reporterUser = await db.User.findByPk(Number(issue.reporterId), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); if (!reporterUser) return null; @@ -409,13 +420,13 @@ const Issue: IssueResolvers = { }, assignee: async (parent, args, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { const databaseIssue = await db.Issue.findByPk(Number(parent.id), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); if (!databaseIssue?.assigneeId) return null; const user = await db.User.findByPk(Number(databaseIssue.assigneeId), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); return formatUserForGraphql(user); @@ -424,7 +435,7 @@ const Issue: IssueResolvers = { if (parent.project) return parent.project; const databaseProject = await db.Project.findByPk(Number(parent.projectId), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); return { diff --git a/backend/src/resolvers/project/index.ts b/backend/src/resolvers/project/index.ts index 51f06ec..2b32c47 100644 --- a/backend/src/resolvers/project/index.ts +++ b/backend/src/resolvers/project/index.ts @@ -9,6 +9,7 @@ import { type Resolvers, type ViewState, } from '../../__generated__/resolvers-types.js'; +import { boards, formatBoardResponse } from '../board/index.js'; import { formatUserForGraphql } from '../user/helpers.js'; const Query: QueryResolvers = { @@ -24,7 +25,7 @@ const Query: QueryResolvers = { // ], }); - dataLoaderContext.prime(databaseProjects); + // dataLoaderContext.prime(databaseProjects); return databaseProjects.map((project) => ({ ...project.toJSON(), @@ -67,7 +68,7 @@ const Query: QueryResolvers = { as: 'users', }, ], - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); return { @@ -89,7 +90,7 @@ const Query: QueryResolvers = { } const databaseProjectTags = await db.ProjectTag.findAll({ where }); - dataLoaderContext.prime(databaseProjectTags); + // dataLoaderContext.prime(databaseProjectTags); return databaseProjectTags.map((projectTag) => ({ ...projectTag.toJSON(), @@ -116,7 +117,7 @@ const Mutation: MutationResolvers = { } ); - dataLoaderContext.prime(projectCustomField); + // dataLoaderContext.prime(projectCustomField); return { ...projectCustomField.toJSON(), @@ -127,7 +128,7 @@ const Mutation: MutationResolvers = { }, deleteProjectCustomField: async (parent, { input: { id } }, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { const findCustomField = await db.ProjectCustomField.findByPk(Number(id), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); if (!findCustomField) throw new Error('Custom field not found'); @@ -152,7 +153,7 @@ const Mutation: MutationResolvers = { } ); - dataLoaderContext.prime(projectTag); + // dataLoaderContext.prime(projectTag); return { ...projectTag.toJSON(), @@ -162,7 +163,7 @@ const Mutation: MutationResolvers = { }, deleteProjectTag: async (parent, { input: { id } }, { db, dataLoaderContext, EXPECTED_OPTIONS_KEY }) => { const findProjectTag = await db.ProjectTag.findByPk(Number(id), { - [EXPECTED_OPTIONS_KEY]: dataLoaderContext, + // [EXPECTED_OPTIONS_KEY]: dataLoaderContext, }); if (!findProjectTag) { @@ -247,11 +248,22 @@ const Mutation: MutationResolvers = { })), }); + // Without this db.BoardContainer will fail the FK constraint + await board.reload(); + + await db.BoardContainer.bulkCreate( + issueStatuses.map((is, index) => ({ + boardId: Number(board.id), + title: is.name, + position: Number(index), + })) + ); + // TODO: we may not even need this - dataLoaderContext.prime(projectPermission); - dataLoaderContext.prime(issueStatuses); - dataLoaderContext.prime(project); - dataLoaderContext.prime(board); + // dataLoaderContext.prime(projectPermission); + // dataLoaderContext.prime(issueStatuses); + // dataLoaderContext.prime(project); + // dataLoaderContext.prime(board); return { ...project.toJSON(), @@ -277,7 +289,7 @@ const Project: ProjectResolvers = { where: { projectId: parent.id }, }); - dataLoaderContext.prime(projectFields); + // dataLoaderContext.prime(projectFields); return projectFields.map((field) => ({ ...field.toJSON(), @@ -291,7 +303,7 @@ const Project: ProjectResolvers = { where: { projectId: parent.id }, }); - dataLoaderContext.prime(projectTags); + // dataLoaderContext.prime(projectTags); return projectTags.map((tag) => ({ ...tag.toJSON(), @@ -308,7 +320,7 @@ const Project: ProjectResolvers = { const databaseIssues = await db.Issue.findAll(findAllInput); - dataLoaderContext.prime(databaseIssues); + // dataLoaderContext.prime(databaseIssues); return databaseIssues.map((issue) => ({ ...issue.toJSON(), @@ -317,28 +329,13 @@ const Project: ProjectResolvers = { customFields: undefined, })); }, - boards: async (parent, args, { db, dataLoaderContext }) => { - const boards = await db.Board.findAll({ - where: { projectId: parent.id }, - }); - - dataLoaderContext.prime(boards); - - return boards.map((board) => ({ - ...board.toJSON(), - id: `${board.id}`, - projectId: `${board.projectId}`, - containerOrder: board.containerOrder ? JSON.stringify(board.containerOrder) : undefined, // TODO: Fix this - settings: board.settings ? JSON.stringify(board.settings) : undefined, // TODO: Fix this - viewState: board.viewState ? (board.viewState as ViewState[]) : undefined, // TODO: fix this - })); - }, + boards, issueStatuses: async (parent, args, { db, dataLoaderContext }) => { const issueStatuses = await db.IssueStatuses.findAll({ where: { projectId: parent.id }, }); - dataLoaderContext.prime(issueStatuses); + // dataLoaderContext.prime(issueStatuses); return issueStatuses.map((issueStatus) => ({ ...issueStatus.toJSON(), diff --git a/backend/src/type-defs.ts b/backend/src/type-defs.ts index ef7ddbb..9259a6e 100644 --- a/backend/src/type-defs.ts +++ b/backend/src/type-defs.ts @@ -162,6 +162,7 @@ const typeDefs = gql` style: String status: String viewState: [ViewState] + version: Int backlogEnabled: Boolean createdAt: DateTime updatedAt: DateTime @@ -375,6 +376,24 @@ const typeDefs = gql` id: String! } + input AddItemToViewStateItemInput { + boardId: String! + viewStateId: String! + issueId: String! + columnPositionIndex: Int + } + + input RemoveItemFromViewStateItemInput { + id: ID! + viewStateId: String! + } + + input CreateViewStateInput { + boardId: String! + positionIndex: Int + title: String + } + # Mutations type Mutation { createProject(input: CreateProjectInput): Project @@ -410,6 +429,11 @@ const typeDefs = gql` deleteIssueLink(input: DeleteIssueLinkInput!): MessageAndStatus updateMe(input: UpdateMeInput!): User + + # Adds a column to the kanban board + createViewState(input: CreateViewStateInput!): [ViewState] + addItemToViewState(input: AddItemToViewStateItemInput!): [ViewState] + removeItemFromViewState(input: RemoveItemFromViewStateItemInput!): [ViewState] } # Queries diff --git a/backend/src/typings.ts b/backend/src/typings.ts index c3f7212..911c123 100644 --- a/backend/src/typings.ts +++ b/backend/src/typings.ts @@ -6,6 +6,8 @@ import type { Readable } from 'stream'; import { Asset, Board, + BoardContainer, + ContainerItem, Issue, IssueBoard, IssueComment, @@ -29,6 +31,8 @@ export type Db = { User?: typeof User; Project?: typeof Project; Board?: typeof Board; + BoardContainer?: typeof BoardContainer; + ContainerItem?: typeof ContainerItem; IssueStatuses?: typeof IssueStatus; Issue?: typeof Issue; Asset?: typeof Asset; diff --git a/frontend/components/IssueModal/IssueStatusDropdown.tsx b/frontend/components/IssueModal/IssueStatusDropdown.tsx index 1ef3b73..8efe3e7 100644 --- a/frontend/components/IssueModal/IssueStatusDropdown.tsx +++ b/frontend/components/IssueModal/IssueStatusDropdown.tsx @@ -1,10 +1,12 @@ 'use client'; -import React, { Fragment, useEffect } from 'react'; +import { gql, useMutation, useQuery } from '@apollo/client'; import { Menu, Transition } from '@headlessui/react'; import { ChevronDownIcon } from '@heroicons/react/20/solid'; -import { classNames } from '@/services/utils'; -import { gql, useMutation, useQuery } from '@apollo/client'; +import { useParams } from 'next/navigation'; +import React, { Fragment, useEffect } from 'react'; + +import { IssueStatus } from '@/constants/types'; import { GET_ISSUE_QUERY, GET_ISSUE_STATUSES_FOR_PROJECT, @@ -12,8 +14,6 @@ import { UPDATE_BOARD_MUTATION, UPDATE_ISSUE_MUTATION, } from '@/gql/gql-queries-mutations'; -import { IssueStatus } from '@/constants/types'; -import { useParams } from 'next/navigation'; const IssueStatusDropdown = ({ projectId, @@ -40,6 +40,7 @@ const IssueStatusDropdown = ({ const [updateIssue, { called, reset }] = useMutation(UPDATE_ISSUE_MUTATION, { refetchQueries: [ { + fetchPolicy: 'network-only', query: GET_PROJECT_INFO, variables: { input: { diff --git a/frontend/components/KanbanBoard/Container/index.tsx b/frontend/components/KanbanBoard/Container/index.tsx index 65c409b..c8eb52c 100644 --- a/frontend/components/KanbanBoard/Container/index.tsx +++ b/frontend/components/KanbanBoard/Container/index.tsx @@ -1,13 +1,15 @@ -import React from 'react'; -import ContainerProps from './container.type'; +import { useMutation } from '@apollo/client'; import { useSortable } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; +import React from 'react'; +import { BsArrowsMove } from 'react-icons/bs'; + // import { Button } from '../Button'; import { Button } from '@/components/Button'; -import { classNames } from '@/services/utils'; -import { BsArrowsMove } from 'react-icons/bs'; -import { useMutation } from '@apollo/client'; import { UPDATE_ISSUE_MUTATION } from '@/gql/gql-queries-mutations'; +import { classNames } from '@/services/utils'; + +import ContainerProps from './container.type'; const Container = ({ id, diff --git a/frontend/components/KanbanBoard/Item/index.tsx b/frontend/components/KanbanBoard/Item/index.tsx index 6edacde..c4190ec 100644 --- a/frontend/components/KanbanBoard/Item/index.tsx +++ b/frontend/components/KanbanBoard/Item/index.tsx @@ -1,16 +1,17 @@ +import { useFragment } from '@apollo/client'; import { UniqueIdentifier } from '@dnd-kit/core'; import { useSortable } from '@dnd-kit/sortable'; -import React, { useCallback, useState } from 'react'; import { CSS } from '@dnd-kit/utilities'; -import { classNames, formatUser } from '@/services/utils'; +import type { Route } from 'next'; import Link from 'next/link'; import { usePathname, useSearchParams } from 'next/navigation'; -import { useFragment } from '@apollo/client'; -import { ISSUE_FIELDS } from '@/gql/gql-queries-mutations'; -import Avatar from '@/components/Avatar'; -import type { Route } from 'next'; +import React, { useCallback, useState } from 'react'; import { RiTaskFill } from 'react-icons/ri'; + +import Avatar from '@/components/Avatar'; import { priorityToIcon } from '@/components/Icons'; +import { ISSUE_FIELDS } from '@/gql/gql-queries-mutations'; +import { classNames, formatUser } from '@/services/utils'; type ItemsType = { id: UniqueIdentifier; diff --git a/frontend/components/KanbanBoard/index.tsx b/frontend/components/KanbanBoard/index.tsx index d6600d0..49738c7 100644 --- a/frontend/components/KanbanBoard/index.tsx +++ b/frontend/components/KanbanBoard/index.tsx @@ -2,8 +2,6 @@ import { useMutation, useQuery } from '@apollo/client'; import { omitDeep } from '@apollo/client/utilities'; -// https://github.com/chetanverma16/dndkit-guide/tree/main/components -// This guy did a pretty good job!!! import { DndContext, DragEndEvent, @@ -28,7 +26,6 @@ import { getSession } from 'next-auth/react'; import { useSearchParams } from 'next/navigation'; import { useEffect, useState } from 'react'; import Fireworks from 'react-canvas-confetti/dist/presets/fireworks'; -import Realistic from 'react-canvas-confetti/dist/presets/realistic'; import { TConductorInstance } from 'react-canvas-confetti/dist/types'; import { v4 as uuidv4 } from 'uuid'; @@ -37,16 +34,14 @@ import IssueModal from '@/components/IssueModal'; import IssueModalContents from '@/components/IssueModal/IssueModalContents'; import Toolbar from '@/components/KanbanBoard/Toolbar'; import { + ADD_ITEM_TO_VIEW_STATE, CREATE_ISSUE_MUTATION, CREATE_ISSUE_STATUS_MUTATION, GET_ME, GET_PROJECT_INFO, - ISSUE_FIELDS, - UPDATE_BOARD_MUTATION, UPDATE_ISSUE_MUTATION, } from '@/gql/gql-queries-mutations'; import useWsAuthenticatedSocket from '@/hooks/useWsAuthenticatedSocket'; -import { apolloClient } from '@/services/apollo-client'; import { getDomainName } from '@/services/utils'; // Components @@ -71,16 +66,9 @@ interface PageState { currentContainerId: UniqueIdentifier | string | null; containerName: string; itemName: string; - saveToBackend: boolean; + boardVersion: number; } -const getIssueFragment = (issueId: string) => { - return apolloClient.readFragment({ - id: `Issue:${issueId}`, - fragment: ISSUE_FIELDS, - }); -}; - export default function KanbanBoard({ projectId, boardId, @@ -102,43 +90,30 @@ export default function KanbanBoard({ currentContainerId: null, containerName: '', itemName: '', - saveToBackend: false, + boardVersion: 0, }); const onInit = ({ conductor }: { conductor: TConductorInstance }) => { setConductor(conductor); }; - const { - containers, - activeId, - currentContainerId, - containerName, - itemName, - saveToBackend, - } = pageState; + const { containers, activeId, currentContainerId, containerName, itemName } = + pageState; const [createIssue] = useMutation(CREATE_ISSUE_MUTATION); const [updateIssue] = useMutation(UPDATE_ISSUE_MUTATION); - const [updateBoard] = useMutation(UPDATE_BOARD_MUTATION); const [addIssueStatus] = useMutation(CREATE_ISSUE_STATUS_MUTATION); + const [addItemToViewState] = useMutation(ADD_ITEM_TO_VIEW_STATE); const getMe = useQuery(GET_ME); const getProjectInfo = useQuery(GET_PROJECT_INFO, { skip: !projectId, - fetchPolicy: 'cache-first', + fetchPolicy: 'network-only', variables: { input: { id: `${projectId}` }, }, }); - // const getBoardIssues = useQuery(GET_BOARD_ISSUES, { - // skip: !boardId, - // variables: { - // input: { id: `${boardId}` }, - // }, - // }); - // On page load we open the modal if there is a query param for the issue useEffect(() => { if (selectedIssueId && !isIssueModalOpen) { @@ -148,6 +123,7 @@ export default function KanbanBoard({ } }, [selectedIssueId]); + // TODO: FIX const onAddContainer = async () => { if (!containerName) return; @@ -183,8 +159,11 @@ export default function KanbanBoard({ ); if (!container) return; - // @ts-ignore - const issueStatusId = container.id.replace('container-', ''); + // TODO: Temporary until we decouple the issue status from the container + const issueStatusId = getProjectInfo.data.project.issueStatuses.find( + (issueStatus: any) => + issueStatus.name.toLowerCase() === container.title.toLowerCase() + )?.id; // Create the item in backend const newIssueResp = await createIssue({ @@ -200,6 +179,8 @@ export default function KanbanBoard({ }, }); + await getProjectInfo.refetch(); + const newIssue = newIssueResp.data.createIssue; const session = await getSession(); @@ -219,11 +200,9 @@ export default function KanbanBoard({ }; sendJsonMessage(notification); - // await notify(notification); - const id = `item-${newIssue.id}`; container.items.push({ - id, + id: `item-${newIssue.id}`, title: itemName, status: omitDeep(newIssue.status, '__typename'), }); @@ -232,74 +211,30 @@ export default function KanbanBoard({ return { ...prevState, itemName: '', - saveToBackend: true, containers: newContainers, }; }); + await addItemToViewState({ + onCompleted: (data) => { + setPageState((prevState) => ({ + ...prevState, + boardVersion: prevState.boardVersion + 1, + })); + }, + variables: { + input: { + boardId, + viewStateId: container.id, + issueId: newIssue.id, + columnPositionIndex: container.items.length, + }, + }, + }); + setShowAddItemModal(false); }; - useEffect(() => { - if (saveToBackend) { - // const configuredContainerOrder = JSON.parse( - // getProjectInfo?.data?.project?.boards?.[0]?.containerOrder - // ).map((item: any) => ({ - // id: `container-${item.id}`, - // name: item.title, - // position: item.position, - // })); - - // const currentContainerOrder = containers.map((item, index) => ({ - // id: item.id, - // name: item.title, - // position: index, - // })); - - // TODO: we got some work to do here on using the backend container order - // if (isEqual(configuredContainerOrder, currentContainerOrder)) { - // console.log('No need to update the backend'); - // } else { - // console.log('Need to update the backend'); - // } - - const filteredContainers = containers.map((container) => { - const items = container.items.reduce((acc, item) => { - const issueData = getIssueFragment(`${item.id}`.replace('item-', '')); - - // We remove archived items from the board - if (!issueData.archived) { - acc.push(item); - } - - return acc; - }, [] as any[]); - - return { - ...container, - items, - }; - }); - - updateBoard({ - onCompleted: () => { - setPageState((prevState) => { - return { - ...prevState, - saveToBackend: false, - }; - }); - }, - variables: { - input: { - id: boardId, - viewState: filteredContainers, - }, - }, - }); - } - }, [saveToBackend, containers]); - // This is called once we fetch data from server useEffect(() => { if (getProjectInfo.loading || !getProjectInfo?.data) return; @@ -312,91 +247,20 @@ export default function KanbanBoard({ // We want to omit __typename metafield from gql query results const incomingData = omitDeep(thisBoard.viewState, '__typename'); - const correctedBoardState = cloneDeep(incomingData); - - const remoteDataChanged = !isEqual(incomingData, pageState?.containers); - let hasMismatchedIssueStatuses = false; - - // If the issue status of an issue does not match the container it is in, we need to move it to the correct container - // this can happen when using the modal issue status dropdown to change the issue status versus dragging the issue to a new container - incomingData.forEach((container: any) => { - container.items.forEach((item: any) => { - const issueData = getIssueFragment(`${item.id}`.replace('item-', '')); - if (issueData.status.id !== container.id.replace('container-', '')) { - hasMismatchedIssueStatuses = true; - - // move to correct container - const destinationContainer = findContainerById( - `container-${issueData.status.id}` - ); - - const previousContainer = findContainerByItemId( - `item-${issueData.id}` - ); - - if (!destinationContainer || !previousContainer) return; - - const destinationContainerIndex = containers.findIndex( - (container) => container.id === destinationContainer.id - ); - const previousContainerIndex = containers.findIndex( - (container) => container.id === previousContainer.id - ); - const issueStatusId = `${issueData.status.id}`; - const issueId = `${issueData.id}`; - const previousItemIndex = previousContainer.items.findIndex( - (item) => item.id === `item-${issueData.id}` - ); - const destinationItemIndex = - destinationContainer.items.length > 0 - ? destinationContainer.items.length + 1 - : destinationContainer.items.length; - - // remove item from old container - const [removedItem] = correctedBoardState[ - previousContainerIndex - ].items.splice(previousItemIndex, 1); - - // push removed item to new container - correctedBoardState[destinationContainerIndex].items.splice( - destinationItemIndex, - 0, - removedItem - ); - } - }); - }); - const projectHasArchivedIssues = - getProjectInfo?.data?.project?.issues?.some( - (issue: any) => issue.archived - ); + const remoteDataChanged = thisBoard.version > pageState.boardVersion; - if (isEmpty(containers) || remoteDataChanged) { + if (remoteDataChanged) { + console.log(`updating board to version ${thisBoard.version}`); setPageState((prevState) => { return { ...prevState, containers: incomingData, + boardVersion: thisBoard.version, }; }); - } else if (projectHasArchivedIssues) { - // If the project has archived issues, we need to update the board - // to remove the archived issues from the board - setPageState((prevState) => { - return { - ...prevState, - saveToBackend: true, - }; - }); - } else if (hasMismatchedIssueStatuses) { - console.log({ correctedBoardState }); - setPageState((prevState) => { - return { - ...prevState, - containers: correctedBoardState, - saveToBackend: true, - }; - }); + + return; } }, [getProjectInfo.data]); @@ -632,13 +496,40 @@ export default function KanbanBoard({ over && active.id === over.id ) { + // console.log('OTHER,CONTAINER'); const destinationContainer = findContainerByItemId(over.id); - const issueStatusId = `${destinationContainer?.id}`.replace( - 'container-', - '' - ); + if (!destinationContainer) return; + + const destinationIssueStatus = + getProjectInfo.data.project.issueStatuses.find( + (issueStatus: any) => + issueStatus.name.toLowerCase() === + destinationContainer.title.toLowerCase() + ); + + // TODO: Temporary until we decouple the issue status from the container + const issueStatusId = destinationIssueStatus?.id; + const issueId = `${active.id}`.replace('item-', ''); + // START + const overContainer = findValueOfItems(over.id, 'item'); + if (!overContainer) return; + + const overContainerIndex = containers.findIndex( + (container) => container.id === overContainer.id + ); + const overitemIndex = overContainer.items.findIndex( + (item) => item.id === over.id + ); + + let newItems = [...containers]; + + newItems[overContainerIndex].items[overitemIndex].status = pick( + destinationIssueStatus, + ['id', 'name', 'projectId'] + ); + updateIssue({ variables: { input: { @@ -647,30 +538,6 @@ export default function KanbanBoard({ }, }, onCompleted: (data) => { - const overContainer = findValueOfItems(over.id, 'item'); - if (!overContainer) return; - - const overContainerIndex = containers.findIndex( - (container) => container.id === overContainer.id - ); - const overitemIndex = overContainer.items.findIndex( - (item) => item.id === over.id - ); - - let newItems = [...containers]; - - newItems[overContainerIndex].items[overitemIndex].status = pick( - data.updateIssue.status, - ['id', 'name', 'projectId'] - ); - - setPageState((prevState) => { - return { - ...prevState, - containers: newItems, - }; - }); - const isIssueDone = data.updateIssue.status.name.toLowerCase() === 'done'; const userEnabledCelebrateCompletedIssue = getMe?.data?.me?.settings @@ -683,6 +550,13 @@ export default function KanbanBoard({ speed: 2, }); } + + setPageState((prevState) => ({ + ...prevState, + boardVersion: prevState.boardVersion + 1, + })); + + return getProjectInfo.refetch(); }, }); } @@ -792,13 +666,31 @@ export default function KanbanBoard({ containers: newItems, }; }); + + addItemToViewState({ + onCompleted: (data) => { + setPageState((prevState) => ({ + ...prevState, + boardVersion: prevState.boardVersion + 1, + })); + }, + variables: { + input: { + boardId, + viewStateId: overContainer.id, + issueId: `${removeditem.id}`.replace('item-', ''), + columnPositionIndex: newItems[overContainerIndex].items.length, + }, + }, + }).catch((e) => { + console.error('ERROR_ADDING_ITEM_TO_VIEW_STATE', { e }); + }); } setPageState((prevState) => { return { ...prevState, activeId: null, - saveToBackend: true, }; }); } diff --git a/frontend/gql/__generated__/gql.ts b/frontend/gql/__generated__/gql.ts index 2f97b3a..bce6708 100644 --- a/frontend/gql/__generated__/gql.ts +++ b/frontend/gql/__generated__/gql.ts @@ -14,17 +14,17 @@ import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/ */ const documents = { "\n fragment UpdateIssueStatus on Issue {\n id\n status {\n id\n name\n }\n }\n ": types.UpdateIssueStatusFragmentDoc, - "\n fragment ProjectFields on Project {\n id\n name\n key\n description\n visibility\n createdAt\n updatedAt\n boards {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n createdAt\n updatedAt\n }\n issueStatuses {\n id\n name\n projectId\n createdAt\n updatedAt\n }\n issues {\n ...IssueFields\n }\n users {\n ...UserFields\n }\n }\n": types.ProjectFieldsFragmentDoc, + "\n fragment ProjectFields on Project {\n id\n name\n key\n description\n visibility\n createdAt\n updatedAt\n boards {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n createdAt\n updatedAt\n }\n issueStatuses {\n id\n name\n projectId\n createdAt\n updatedAt\n }\n issues {\n ...IssueFields\n }\n users {\n ...UserFields\n }\n }\n": types.ProjectFieldsFragmentDoc, "\n fragment ProjectOnlyFields on Project {\n id\n name\n key\n visibility\n description\n createdAt\n updatedAt\n }\n": types.ProjectOnlyFieldsFragmentDoc, "\n fragment IssueFields on Issue {\n id\n title\n description\n projectId\n priority\n archived\n tags {\n id\n name\n projectId\n createdAt\n updatedAt\n }\n status {\n id\n name\n projectId\n }\n reporter {\n ...UserFields\n }\n assignee {\n ...UserFields\n }\n comments {\n ...IssueCommentFields\n }\n createdAt\n updatedAt\n }\n": types.IssueFieldsFragmentDoc, - "\n fragment UserFields on User {\n id\n email\n externalId\n name\n firstName\n lastName\n avatarUrl\n }\n": types.UserFieldsFragmentDoc, + "\n fragment UserFields on User {\n id\n email\n externalId\n name\n firstName\n lastName\n avatarUrl\n settings\n }\n": types.UserFieldsFragmentDoc, "\n fragment IssueCommentFields on IssueComment {\n id\n comment\n reporter {\n ...UserFields\n }\n issueId\n createdAt\n updatedAt\n }\n": types.IssueCommentFieldsFragmentDoc, "\n fragment ViewStateIssueStatusFields on ViewStateIssueStatus {\n id\n name\n projectId\n }\n": types.ViewStateIssueStatusFieldsFragmentDoc, "\n fragment ViewStateItemFields on ViewStateItem {\n id\n title\n status {\n ...ViewStateIssueStatusFields\n }\n }\n": types.ViewStateItemFieldsFragmentDoc, "\n fragment ViewStateFields on ViewState {\n id\n title\n items {\n ...ViewStateItemFields\n }\n }\n": types.ViewStateFieldsFragmentDoc, "\n query GetIssue($input: QueryIssueInput) {\n issue(input: $input) {\n ...IssueFields\n links {\n ...IssueFields\n linkType\n linkedIssueId\n }\n }\n }\n": types.GetIssueDocument, "\n query GetIssues($input: QueryIssueInput) {\n issues(input: $input) {\n ...IssueFields\n project {\n ...ProjectOnlyFields\n }\n links {\n ...IssueFields\n linkType\n linkedIssueId\n }\n }\n }\n": types.GetIssuesDocument, - "\n query GetProjectInfo(\n $input: QueryProjectInput\n $issueInput: QueryIssueInput\n ) {\n project(input: $input) {\n ...ProjectOnlyFields\n users {\n ...UserFields\n }\n boards {\n id\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n containerOrder\n }\n issueStatuses {\n id\n projectId\n name\n createdAt\n }\n issues(input: $issueInput) {\n ...IssueFields\n }\n }\n }\n": types.GetProjectInfoDocument, + "\n query GetProjectInfo(\n $input: QueryProjectInput\n $issueInput: QueryIssueInput\n ) {\n project(input: $input) {\n ...ProjectOnlyFields\n users {\n ...UserFields\n }\n boards {\n id\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n containerOrder\n }\n issueStatuses {\n id\n projectId\n name\n createdAt\n }\n issues(input: $issueInput) {\n ...IssueFields\n }\n }\n }\n": types.GetProjectInfoDocument, "\n mutation CreateIssue($input: CreateIssueInput) {\n createIssue(input: $input) {\n ...IssueFields\n }\n }\n": types.CreateIssueDocument, "\n mutation CreateIssueComment($input: CreateIssueCommentInput!) {\n createIssueComment(input: $input) {\n ...IssueCommentFields\n }\n }\n": types.CreateIssueCommentDocument, "\n mutation UpdateIssueComment($input: UpdateIssueCommentInput!) {\n updateIssueComment(input: $input) {\n ...IssueCommentFields\n }\n }\n": types.UpdateIssueCommentDocument, @@ -38,19 +38,20 @@ const documents = { "\n query GetMe {\n me {\n ...UserFields\n }\n }\n": types.GetMeDocument, "\n query GetUsers {\n users {\n ...UserFields\n }\n }\n": types.GetUsersDocument, "\n mutation CreateIssueStatus($input: CreateIssueStatusInput!) {\n createIssueStatus(input: $input) {\n id\n name\n projectId\n createdAt\n }\n }\n": types.CreateIssueStatusDocument, - "\n mutation CreateProject($input: CreateProjectInput) {\n createProject(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n backlogEnabled\n viewState {\n ...ViewStateFields\n }\n createdAt\n }\n }\n }\n": types.CreateProjectDocument, - "\n query GetProjects($input: QueryProjectInput) {\n projects(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n }\n }\n }\n": types.GetProjectsDocument, - "\n mutation UpdateBoard($input: UpdateBoardInput) {\n updateBoard(input: $input) {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n }\n }\n": types.UpdateBoardDocument, + "\n mutation CreateProject($input: CreateProjectInput) {\n createProject(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n backlogEnabled\n version\n viewState {\n ...ViewStateFields\n }\n createdAt\n }\n }\n }\n": types.CreateProjectDocument, + "\n query GetProjects($input: QueryProjectInput) {\n projects(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n }\n }\n }\n": types.GetProjectsDocument, + "\n mutation UpdateBoard($input: UpdateBoardInput) {\n updateBoard(input: $input) {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n }\n }\n": types.UpdateBoardDocument, "\n query GetProjectTags($input: QueryProjectTagsInput!) {\n projectTags(input: $input) {\n id\n name\n projectId\n createdAt\n updatedAt\n }\n }\n": types.GetProjectTagsDocument, "\n mutation CreateProjectTag($input: CreateProjectTagInput!) {\n createProjectTag(input: $input) {\n id\n name\n }\n }\n": types.CreateProjectTagDocument, "\n mutation DeleteProjectTag($input: DeleteProjectTagInput!) {\n deleteProjectTag(input: $input) {\n message\n status\n }\n }\n": types.DeleteProjectTagDocument, - "\n query GetBoardInfo($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n }\n }\n": types.GetBoardInfoDocument, - "\n query GetBoardIssues($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n issues {\n ...IssueFields\n }\n }\n }\n": types.GetBoardIssuesDocument, + "\n query GetBoardInfo($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n }\n }\n": types.GetBoardInfoDocument, + "\n query GetBoardIssues($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n issues {\n ...IssueFields\n }\n }\n }\n": types.GetBoardIssuesDocument, "\n mutation UpdateMe($input: UpdateMeInput!) {\n updateMe(input: $input) {\n ...UserFields\n }\n }\n": types.UpdateMeDocument, "\n mutation CreateIssueLink($input: CreateIssueLinkInput!) {\n createIssueLink(input: $input) {\n message\n status\n }\n }\n": types.CreateIssueLinkDocument, "\n mutation DeleteIssueLink($input: DeleteIssueLinkInput!) {\n deleteIssueLink(input: $input) {\n message\n status\n }\n }\n": types.DeleteIssueLinkDocument, "\n mutation AddUserToProject($input: AddUserToProjectInput!) {\n addUserToProject(input: $input) {\n message\n status\n }\n }\n": types.AddUserToProjectDocument, "\n mutation RemoveUserFromProject($input: RemoveUserFromProjectInput!) {\n removeUserFromProject(input: $input) {\n message\n status\n }\n }\n": types.RemoveUserFromProjectDocument, + "\n mutation AddItemToViewState($input: AddItemToViewStateItemInput!) {\n addItemToViewState(input: $input) {\n ...ViewStateFields\n }\n }\n": types.AddItemToViewStateDocument, }; /** @@ -74,7 +75,7 @@ export function gql(source: "\n fragment UpdateIssueStatus on Iss /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n fragment ProjectFields on Project {\n id\n name\n key\n description\n visibility\n createdAt\n updatedAt\n boards {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n createdAt\n updatedAt\n }\n issueStatuses {\n id\n name\n projectId\n createdAt\n updatedAt\n }\n issues {\n ...IssueFields\n }\n users {\n ...UserFields\n }\n }\n"): (typeof documents)["\n fragment ProjectFields on Project {\n id\n name\n key\n description\n visibility\n createdAt\n updatedAt\n boards {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n createdAt\n updatedAt\n }\n issueStatuses {\n id\n name\n projectId\n createdAt\n updatedAt\n }\n issues {\n ...IssueFields\n }\n users {\n ...UserFields\n }\n }\n"]; +export function gql(source: "\n fragment ProjectFields on Project {\n id\n name\n key\n description\n visibility\n createdAt\n updatedAt\n boards {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n createdAt\n updatedAt\n }\n issueStatuses {\n id\n name\n projectId\n createdAt\n updatedAt\n }\n issues {\n ...IssueFields\n }\n users {\n ...UserFields\n }\n }\n"): (typeof documents)["\n fragment ProjectFields on Project {\n id\n name\n key\n description\n visibility\n createdAt\n updatedAt\n boards {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n createdAt\n updatedAt\n }\n issueStatuses {\n id\n name\n projectId\n createdAt\n updatedAt\n }\n issues {\n ...IssueFields\n }\n users {\n ...UserFields\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ @@ -86,7 +87,7 @@ export function gql(source: "\n fragment IssueFields on Issue {\n id\n ti /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n fragment UserFields on User {\n id\n email\n externalId\n name\n firstName\n lastName\n avatarUrl\n }\n"): (typeof documents)["\n fragment UserFields on User {\n id\n email\n externalId\n name\n firstName\n lastName\n avatarUrl\n }\n"]; +export function gql(source: "\n fragment UserFields on User {\n id\n email\n externalId\n name\n firstName\n lastName\n avatarUrl\n settings\n }\n"): (typeof documents)["\n fragment UserFields on User {\n id\n email\n externalId\n name\n firstName\n lastName\n avatarUrl\n settings\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ @@ -114,7 +115,7 @@ export function gql(source: "\n query GetIssues($input: QueryIssueInput) {\n /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n query GetProjectInfo(\n $input: QueryProjectInput\n $issueInput: QueryIssueInput\n ) {\n project(input: $input) {\n ...ProjectOnlyFields\n users {\n ...UserFields\n }\n boards {\n id\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n containerOrder\n }\n issueStatuses {\n id\n projectId\n name\n createdAt\n }\n issues(input: $issueInput) {\n ...IssueFields\n }\n }\n }\n"): (typeof documents)["\n query GetProjectInfo(\n $input: QueryProjectInput\n $issueInput: QueryIssueInput\n ) {\n project(input: $input) {\n ...ProjectOnlyFields\n users {\n ...UserFields\n }\n boards {\n id\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n containerOrder\n }\n issueStatuses {\n id\n projectId\n name\n createdAt\n }\n issues(input: $issueInput) {\n ...IssueFields\n }\n }\n }\n"]; +export function gql(source: "\n query GetProjectInfo(\n $input: QueryProjectInput\n $issueInput: QueryIssueInput\n ) {\n project(input: $input) {\n ...ProjectOnlyFields\n users {\n ...UserFields\n }\n boards {\n id\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n containerOrder\n }\n issueStatuses {\n id\n projectId\n name\n createdAt\n }\n issues(input: $issueInput) {\n ...IssueFields\n }\n }\n }\n"): (typeof documents)["\n query GetProjectInfo(\n $input: QueryProjectInput\n $issueInput: QueryIssueInput\n ) {\n project(input: $input) {\n ...ProjectOnlyFields\n users {\n ...UserFields\n }\n boards {\n id\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n containerOrder\n }\n issueStatuses {\n id\n projectId\n name\n createdAt\n }\n issues(input: $issueInput) {\n ...IssueFields\n }\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ @@ -170,15 +171,15 @@ export function gql(source: "\n mutation CreateIssueStatus($input: CreateIssueS /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n mutation CreateProject($input: CreateProjectInput) {\n createProject(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n backlogEnabled\n viewState {\n ...ViewStateFields\n }\n createdAt\n }\n }\n }\n"): (typeof documents)["\n mutation CreateProject($input: CreateProjectInput) {\n createProject(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n backlogEnabled\n viewState {\n ...ViewStateFields\n }\n createdAt\n }\n }\n }\n"]; +export function gql(source: "\n mutation CreateProject($input: CreateProjectInput) {\n createProject(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n backlogEnabled\n version\n viewState {\n ...ViewStateFields\n }\n createdAt\n }\n }\n }\n"): (typeof documents)["\n mutation CreateProject($input: CreateProjectInput) {\n createProject(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n backlogEnabled\n version\n viewState {\n ...ViewStateFields\n }\n createdAt\n }\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n query GetProjects($input: QueryProjectInput) {\n projects(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n }\n }\n }\n"): (typeof documents)["\n query GetProjects($input: QueryProjectInput) {\n projects(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n }\n }\n }\n"]; +export function gql(source: "\n query GetProjects($input: QueryProjectInput) {\n projects(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n }\n }\n }\n"): (typeof documents)["\n query GetProjects($input: QueryProjectInput) {\n projects(input: $input) {\n ...ProjectOnlyFields\n boards {\n id\n style\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n }\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n mutation UpdateBoard($input: UpdateBoardInput) {\n updateBoard(input: $input) {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n }\n }\n"): (typeof documents)["\n mutation UpdateBoard($input: UpdateBoardInput) {\n updateBoard(input: $input) {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n }\n }\n"]; +export function gql(source: "\n mutation UpdateBoard($input: UpdateBoardInput) {\n updateBoard(input: $input) {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n }\n }\n"): (typeof documents)["\n mutation UpdateBoard($input: UpdateBoardInput) {\n updateBoard(input: $input) {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ @@ -194,11 +195,11 @@ export function gql(source: "\n mutation DeleteProjectTag($input: DeleteProject /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n query GetBoardInfo($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n }\n }\n"): (typeof documents)["\n query GetBoardInfo($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n }\n }\n"]; +export function gql(source: "\n query GetBoardInfo($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n }\n }\n"): (typeof documents)["\n query GetBoardInfo($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n query GetBoardIssues($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n issues {\n ...IssueFields\n }\n }\n }\n"): (typeof documents)["\n query GetBoardIssues($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n issues {\n ...IssueFields\n }\n }\n }\n"]; +export function gql(source: "\n query GetBoardIssues($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n issues {\n ...IssueFields\n }\n }\n }\n"): (typeof documents)["\n query GetBoardIssues($input: QueryBoardInput!) {\n board(input: $input) {\n id\n name\n version\n viewState {\n ...ViewStateFields\n }\n backlogEnabled\n settings\n containerOrder\n issues {\n ...IssueFields\n }\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ @@ -219,6 +220,10 @@ export function gql(source: "\n mutation AddUserToProject($input: AddUserToProj * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ export function gql(source: "\n mutation RemoveUserFromProject($input: RemoveUserFromProjectInput!) {\n removeUserFromProject(input: $input) {\n message\n status\n }\n }\n"): (typeof documents)["\n mutation RemoveUserFromProject($input: RemoveUserFromProjectInput!) {\n removeUserFromProject(input: $input) {\n message\n status\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n mutation AddItemToViewState($input: AddItemToViewStateItemInput!) {\n addItemToViewState(input: $input) {\n ...ViewStateFields\n }\n }\n"): (typeof documents)["\n mutation AddItemToViewState($input: AddItemToViewStateItemInput!) {\n addItemToViewState(input: $input) {\n ...ViewStateFields\n }\n }\n"]; export function gql(source: string) { return (documents as any)[source] ?? {}; diff --git a/frontend/gql/__generated__/graphql.ts b/frontend/gql/__generated__/graphql.ts index f4f90c8..55e5a07 100644 --- a/frontend/gql/__generated__/graphql.ts +++ b/frontend/gql/__generated__/graphql.ts @@ -20,6 +20,13 @@ export type Scalars = { Upload: { input: any; output: any; } }; +export type AddItemToViewStateItemInput = { + boardId: Scalars['String']['input']; + columnPositionIndex?: InputMaybe; + issueId: Scalars['String']['input']; + viewStateId: Scalars['String']['input']; +}; + export type AddUserToProjectInput = { projectId: Scalars['String']['input']; userId: Scalars['String']['input']; @@ -54,6 +61,7 @@ export type Board = { status?: Maybe; style?: Maybe; updatedAt?: Maybe; + version?: Maybe; viewState?: Maybe>>; }; @@ -134,6 +142,12 @@ export type CreateProjectValidationInput = { name?: InputMaybe; }; +export type CreateViewStateInput = { + boardId: Scalars['String']['input']; + positionIndex?: InputMaybe; + title?: InputMaybe; +}; + export type CustomField = { __typename?: 'CustomField'; createdAt?: Maybe; @@ -236,6 +250,7 @@ export type MessageAndStatus = { export type Mutation = { __typename?: 'Mutation'; + addItemToViewState?: Maybe>>; addUserToProject?: Maybe; assignAssetAsAvatar?: Maybe; createBoard?: Maybe; @@ -246,12 +261,14 @@ export type Mutation = { createProject?: Maybe; createProjectCustomField?: Maybe; createProjectTag?: Maybe; + createViewState?: Maybe>>; deleteAsset?: Maybe; deleteIssue?: Maybe; deleteIssueComment?: Maybe; deleteIssueLink?: Maybe; deleteProjectCustomField?: Maybe; deleteProjectTag?: Maybe; + removeItemFromViewState?: Maybe>>; removeUserFromProject?: Maybe; updateBoard?: Maybe; updateIssue?: Maybe; @@ -261,6 +278,11 @@ export type Mutation = { }; +export type MutationAddItemToViewStateArgs = { + input: AddItemToViewStateItemInput; +}; + + export type MutationAddUserToProjectArgs = { input: AddUserToProjectInput; }; @@ -311,6 +333,11 @@ export type MutationCreateProjectTagArgs = { }; +export type MutationCreateViewStateArgs = { + input: CreateViewStateInput; +}; + + export type MutationDeleteAssetArgs = { input: DeleteAssetInput; }; @@ -341,6 +368,11 @@ export type MutationDeleteProjectTagArgs = { }; +export type MutationRemoveItemFromViewStateArgs = { + input: RemoveItemFromViewStateItemInput; +}; + + export type MutationRemoveUserFromProjectArgs = { input: RemoveUserFromProjectInput; }; @@ -488,6 +520,11 @@ export type QueryProjectTagsInput = { projectId: Scalars['String']['input']; }; +export type RemoveItemFromViewStateItemInput = { + id: Scalars['ID']['input']; + viewStateId: Scalars['String']['input']; +}; + export type RemoveUserFromProjectInput = { projectId: Scalars['String']['input']; userId: Scalars['String']['input']; @@ -590,7 +627,7 @@ export type ViewStateItemInput = { export type UpdateIssueStatusFragment = { __typename?: 'Issue', id: string, status?: { __typename?: 'IssueStatus', id: string, name: string } | null } & { ' $fragmentName'?: 'UpdateIssueStatusFragment' }; -export type ProjectFieldsFragment = { __typename?: 'Project', id?: string | null, name?: string | null, key?: string | null, description?: string | null, visibility?: ProjectVisibility | null, createdAt?: any | null, updatedAt?: any | null, boards?: Array<{ __typename?: 'Board', id?: string | null, name?: string | null, backlogEnabled?: boolean | null, settings?: string | null, createdAt?: any | null, updatedAt?: any | null, viewState?: Array<( +export type ProjectFieldsFragment = { __typename?: 'Project', id?: string | null, name?: string | null, key?: string | null, description?: string | null, visibility?: ProjectVisibility | null, createdAt?: any | null, updatedAt?: any | null, boards?: Array<{ __typename?: 'Board', id?: string | null, name?: string | null, version?: number | null, backlogEnabled?: boolean | null, settings?: string | null, createdAt?: any | null, updatedAt?: any | null, viewState?: Array<( { __typename?: 'ViewState' } & { ' $fragmentRefs'?: { 'ViewStateFieldsFragment': ViewStateFieldsFragment } } ) | null> | null } | null> | null, issueStatuses?: Array<{ __typename?: 'IssueStatus', id: string, name: string, projectId?: string | null, createdAt?: any | null, updatedAt?: any | null } | null> | null, issues?: Array<( @@ -614,7 +651,7 @@ export type IssueFieldsFragment = { __typename?: 'Issue', id: string, title: str & { ' $fragmentRefs'?: { 'IssueCommentFieldsFragment': IssueCommentFieldsFragment } } ) | null> | null } & { ' $fragmentName'?: 'IssueFieldsFragment' }; -export type UserFieldsFragment = { __typename?: 'User', id?: string | null, email?: string | null, externalId?: string | null, name?: string | null, firstName?: string | null, lastName?: string | null, avatarUrl?: string | null } & { ' $fragmentName'?: 'UserFieldsFragment' }; +export type UserFieldsFragment = { __typename?: 'User', id?: string | null, email?: string | null, externalId?: string | null, name?: string | null, firstName?: string | null, lastName?: string | null, avatarUrl?: string | null, settings?: string | null } & { ' $fragmentName'?: 'UserFieldsFragment' }; export type IssueCommentFieldsFragment = { __typename?: 'IssueComment', id: string, comment: string, issueId: string, createdAt?: any | null, updatedAt?: any | null, reporter: ( { __typename?: 'User' } @@ -672,7 +709,7 @@ export type GetProjectInfoQuery = { __typename?: 'Query', project?: ( { __typename?: 'Project', users?: Array<( { __typename?: 'User' } & { ' $fragmentRefs'?: { 'UserFieldsFragment': UserFieldsFragment } } - ) | null> | null, boards?: Array<{ __typename?: 'Board', id?: string | null, backlogEnabled?: boolean | null, containerOrder?: string | null, viewState?: Array<( + ) | null> | null, boards?: Array<{ __typename?: 'Board', id?: string | null, version?: number | null, backlogEnabled?: boolean | null, containerOrder?: string | null, viewState?: Array<( { __typename?: 'ViewState' } & { ' $fragmentRefs'?: { 'ViewStateFieldsFragment': ViewStateFieldsFragment } } ) | null> | null } | null> | null, issueStatuses?: Array<{ __typename?: 'IssueStatus', id: string, projectId?: string | null, name: string, createdAt?: any | null } | null> | null, issues?: Array<( @@ -793,7 +830,7 @@ export type CreateProjectMutationVariables = Exact<{ export type CreateProjectMutation = { __typename?: 'Mutation', createProject?: ( - { __typename?: 'Project', boards?: Array<{ __typename?: 'Board', id?: string | null, style?: string | null, backlogEnabled?: boolean | null, createdAt?: any | null, viewState?: Array<( + { __typename?: 'Project', boards?: Array<{ __typename?: 'Board', id?: string | null, style?: string | null, backlogEnabled?: boolean | null, version?: number | null, createdAt?: any | null, viewState?: Array<( { __typename?: 'ViewState' } & { ' $fragmentRefs'?: { 'ViewStateFieldsFragment': ViewStateFieldsFragment } } ) | null> | null } | null> | null } @@ -806,7 +843,7 @@ export type GetProjectsQueryVariables = Exact<{ export type GetProjectsQuery = { __typename?: 'Query', projects?: Array<( - { __typename?: 'Project', boards?: Array<{ __typename?: 'Board', id?: string | null, style?: string | null, backlogEnabled?: boolean | null, viewState?: Array<( + { __typename?: 'Project', boards?: Array<{ __typename?: 'Board', id?: string | null, style?: string | null, version?: number | null, backlogEnabled?: boolean | null, viewState?: Array<( { __typename?: 'ViewState' } & { ' $fragmentRefs'?: { 'ViewStateFieldsFragment': ViewStateFieldsFragment } } ) | null> | null } | null> | null } @@ -818,7 +855,7 @@ export type UpdateBoardMutationVariables = Exact<{ }>; -export type UpdateBoardMutation = { __typename?: 'Mutation', updateBoard?: { __typename?: 'Board', id?: string | null, name?: string | null, backlogEnabled?: boolean | null, settings?: string | null, viewState?: Array<( +export type UpdateBoardMutation = { __typename?: 'Mutation', updateBoard?: { __typename?: 'Board', id?: string | null, name?: string | null, version?: number | null, backlogEnabled?: boolean | null, settings?: string | null, viewState?: Array<( { __typename?: 'ViewState' } & { ' $fragmentRefs'?: { 'ViewStateFieldsFragment': ViewStateFieldsFragment } } ) | null> | null } | null }; @@ -849,7 +886,7 @@ export type GetBoardInfoQueryVariables = Exact<{ }>; -export type GetBoardInfoQuery = { __typename?: 'Query', board?: { __typename?: 'Board', id?: string | null, name?: string | null, backlogEnabled?: boolean | null, settings?: string | null, containerOrder?: string | null, viewState?: Array<( +export type GetBoardInfoQuery = { __typename?: 'Query', board?: { __typename?: 'Board', id?: string | null, name?: string | null, version?: number | null, backlogEnabled?: boolean | null, settings?: string | null, containerOrder?: string | null, viewState?: Array<( { __typename?: 'ViewState' } & { ' $fragmentRefs'?: { 'ViewStateFieldsFragment': ViewStateFieldsFragment } } ) | null> | null } | null }; @@ -859,7 +896,7 @@ export type GetBoardIssuesQueryVariables = Exact<{ }>; -export type GetBoardIssuesQuery = { __typename?: 'Query', board?: { __typename?: 'Board', id?: string | null, name?: string | null, backlogEnabled?: boolean | null, settings?: string | null, containerOrder?: string | null, viewState?: Array<( +export type GetBoardIssuesQuery = { __typename?: 'Query', board?: { __typename?: 'Board', id?: string | null, name?: string | null, version?: number | null, backlogEnabled?: boolean | null, settings?: string | null, containerOrder?: string | null, viewState?: Array<( { __typename?: 'ViewState' } & { ' $fragmentRefs'?: { 'ViewStateFieldsFragment': ViewStateFieldsFragment } } ) | null> | null, issues?: Array<( @@ -905,41 +942,52 @@ export type RemoveUserFromProjectMutationVariables = Exact<{ export type RemoveUserFromProjectMutation = { __typename?: 'Mutation', removeUserFromProject?: { __typename?: 'MessageAndStatus', message?: string | null, status?: string | null } | null }; +export type AddItemToViewStateMutationVariables = Exact<{ + input: AddItemToViewStateItemInput; +}>; + + +export type AddItemToViewStateMutation = { __typename?: 'Mutation', addItemToViewState?: Array<( + { __typename?: 'ViewState' } + & { ' $fragmentRefs'?: { 'ViewStateFieldsFragment': ViewStateFieldsFragment } } + ) | null> | null }; + export const UpdateIssueStatusFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UpdateIssueStatus"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]} as unknown as DocumentNode; export const ViewStateIssueStatusFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}}]} as unknown as DocumentNode; export const ViewStateItemFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}}]} as unknown as DocumentNode; export const ViewStateFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}}]} as unknown as DocumentNode; -export const UserFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}}]} as unknown as DocumentNode; -export const IssueCommentFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}}]} as unknown as DocumentNode; -export const IssueFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; -export const ProjectFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"boards"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issues"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const UserFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}}]} as unknown as DocumentNode; +export const IssueCommentFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}}]} as unknown as DocumentNode; +export const IssueFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const ProjectFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"boards"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"version"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issues"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; export const ProjectOnlyFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectOnlyFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; -export const GetIssueDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetIssue"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"issue"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}},{"kind":"Field","name":{"kind":"Name","value":"links"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}},{"kind":"Field","name":{"kind":"Name","value":"linkType"}},{"kind":"Field","name":{"kind":"Name","value":"linkedIssueId"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; -export const GetIssuesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetIssues"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"issues"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}},{"kind":"Field","name":{"kind":"Name","value":"project"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProjectOnlyFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"links"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}},{"kind":"Field","name":{"kind":"Name","value":"linkType"}},{"kind":"Field","name":{"kind":"Name","value":"linkedIssueId"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectOnlyFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; -export const GetProjectInfoDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProjectInfo"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryProjectInput"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"issueInput"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"project"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProjectOnlyFields"}},{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"boards"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"containerOrder"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issues"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"issueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectOnlyFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; -export const CreateIssueDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateIssue"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createIssue"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; -export const CreateIssueCommentDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateIssueComment"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateIssueCommentInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createIssueComment"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; -export const UpdateIssueCommentDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateIssueComment"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateIssueCommentInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateIssueComment"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const GetIssueDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetIssue"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"issue"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}},{"kind":"Field","name":{"kind":"Name","value":"links"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}},{"kind":"Field","name":{"kind":"Name","value":"linkType"}},{"kind":"Field","name":{"kind":"Name","value":"linkedIssueId"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const GetIssuesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetIssues"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"issues"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}},{"kind":"Field","name":{"kind":"Name","value":"project"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProjectOnlyFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"links"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}},{"kind":"Field","name":{"kind":"Name","value":"linkType"}},{"kind":"Field","name":{"kind":"Name","value":"linkedIssueId"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectOnlyFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const GetProjectInfoDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProjectInfo"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryProjectInput"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"issueInput"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"project"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProjectOnlyFields"}},{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"boards"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"version"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"containerOrder"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issues"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"issueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectOnlyFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const CreateIssueDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateIssue"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createIssue"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const CreateIssueCommentDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateIssueComment"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateIssueCommentInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createIssueComment"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const UpdateIssueCommentDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateIssueComment"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateIssueCommentInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateIssueComment"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; export const DeleteIssueCommentMutationsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteIssueCommentMutations"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"DeleteIssueCommentInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteIssueComment"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]} as unknown as DocumentNode; export const GetIssueStatusesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetIssueStatuses"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryProjectInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"project"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"issueStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]}}]} as unknown as DocumentNode; -export const UpdateIssueDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateIssue"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateIssue"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const UpdateIssueDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateIssue"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateIssueInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateIssue"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; export const DeleteIssueDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteIssue"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"DeleteIssueInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteIssue"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]} as unknown as DocumentNode; export const CreateProjectValidationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"CreateProjectValidation"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateProjectValidationInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createProjectValidation"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}}]} as unknown as DocumentNode; export const UploadAssetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UploadAsset"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UploadAssetInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"uploadAsset"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"assetPath"}}]}}]}}]} as unknown as DocumentNode; export const AssignAssetAsAvatarDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"AssignAssetAsAvatar"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"AssignAssetAsAvatarInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"assignAssetAsAvatar"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]} as unknown as DocumentNode; -export const GetMeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetMe"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"me"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}}]} as unknown as DocumentNode; -export const GetUsersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetUsers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}}]} as unknown as DocumentNode; +export const GetMeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetMe"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"me"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}}]} as unknown as DocumentNode; +export const GetUsersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetUsers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}}]} as unknown as DocumentNode; export const CreateIssueStatusDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateIssueStatus"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateIssueStatusInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createIssueStatus"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]} as unknown as DocumentNode; -export const CreateProjectDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateProject"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateProjectInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createProject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProjectOnlyFields"}},{"kind":"Field","name":{"kind":"Name","value":"boards"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"style"}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectOnlyFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}}]} as unknown as DocumentNode; -export const GetProjectsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProjects"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryProjectInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"projects"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProjectOnlyFields"}},{"kind":"Field","name":{"kind":"Name","value":"boards"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"style"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectOnlyFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}}]} as unknown as DocumentNode; -export const UpdateBoardDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateBoard"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateBoardInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateBoard"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}}]} as unknown as DocumentNode; +export const CreateProjectDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateProject"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateProjectInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createProject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProjectOnlyFields"}},{"kind":"Field","name":{"kind":"Name","value":"boards"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"style"}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"version"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectOnlyFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}}]} as unknown as DocumentNode; +export const GetProjectsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProjects"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryProjectInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"projects"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProjectOnlyFields"}},{"kind":"Field","name":{"kind":"Name","value":"boards"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"style"}},{"kind":"Field","name":{"kind":"Name","value":"version"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProjectOnlyFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Project"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"visibility"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}}]} as unknown as DocumentNode; +export const UpdateBoardDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateBoard"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateBoardInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateBoard"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"version"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}}]} as unknown as DocumentNode; export const GetProjectTagsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProjectTags"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryProjectTagsInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"projectTags"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode; export const CreateProjectTagDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateProjectTag"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateProjectTagInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createProjectTag"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]} as unknown as DocumentNode; export const DeleteProjectTagDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteProjectTag"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"DeleteProjectTagInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteProjectTag"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]} as unknown as DocumentNode; -export const GetBoardInfoDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetBoardInfo"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryBoardInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"board"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}},{"kind":"Field","name":{"kind":"Name","value":"containerOrder"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}}]} as unknown as DocumentNode; -export const GetBoardIssuesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetBoardIssues"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryBoardInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"board"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}},{"kind":"Field","name":{"kind":"Name","value":"containerOrder"}},{"kind":"Field","name":{"kind":"Name","value":"issues"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; -export const UpdateMeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateMe"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateMeInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateMe"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}}]}}]} as unknown as DocumentNode; +export const GetBoardInfoDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetBoardInfo"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryBoardInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"board"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"version"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}},{"kind":"Field","name":{"kind":"Name","value":"containerOrder"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}}]} as unknown as DocumentNode; +export const GetBoardIssuesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetBoardIssues"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"QueryBoardInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"board"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"version"}},{"kind":"Field","name":{"kind":"Name","value":"viewState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"backlogEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}},{"kind":"Field","name":{"kind":"Name","value":"containerOrder"}},{"kind":"Field","name":{"kind":"Name","value":"issues"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueFields"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueCommentFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"IssueComment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"comment"}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"issueId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"IssueFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Issue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"priority"}},{"kind":"Field","name":{"kind":"Name","value":"archived"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"reporter"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignee"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"comments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"IssueCommentFields"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode; +export const UpdateMeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateMe"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateMeInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateMe"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"externalId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"avatarUrl"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}}]} as unknown as DocumentNode; export const CreateIssueLinkDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateIssueLink"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateIssueLinkInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createIssueLink"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]} as unknown as DocumentNode; export const DeleteIssueLinkDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteIssueLink"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"DeleteIssueLinkInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteIssueLink"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]} as unknown as DocumentNode; export const AddUserToProjectDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"AddUserToProject"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"AddUserToProjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"addUserToProject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]} as unknown as DocumentNode; -export const RemoveUserFromProjectDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"RemoveUserFromProject"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"RemoveUserFromProjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"removeUserFromProject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file +export const RemoveUserFromProjectDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"RemoveUserFromProject"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"RemoveUserFromProjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"removeUserFromProject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]} as unknown as DocumentNode; +export const AddItemToViewStateDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"AddItemToViewState"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"AddItemToViewStateItemInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"addItemToViewState"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateIssueStatusFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateIssueStatus"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"projectId"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateItemFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewStateItem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateIssueStatusFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ViewStateFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ViewState"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ViewStateItemFields"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/frontend/gql/gql-queries-mutations.ts b/frontend/gql/gql-queries-mutations.ts index e2013f3..86ff2ba 100644 --- a/frontend/gql/gql-queries-mutations.ts +++ b/frontend/gql/gql-queries-mutations.ts @@ -12,6 +12,7 @@ export const PROJECT_FIELDS = gql(/* GraphQL */ ` boards { id name + version viewState { ...ViewStateFields } @@ -177,6 +178,7 @@ export const GET_PROJECT_INFO = gql(/* GraphQL */ ` } boards { id + version viewState { ...ViewStateFields } @@ -323,6 +325,7 @@ export const CREATE_PROJECT_MUTATION = gql(/* GraphQL */ ` id style backlogEnabled + version viewState { ...ViewStateFields } @@ -339,6 +342,7 @@ export const GET_PROJECTS = gql(/* GraphQL */ ` boards { id style + version viewState { ...ViewStateFields } @@ -353,6 +357,7 @@ export const UPDATE_BOARD_MUTATION = gql(/* GraphQL */ ` updateBoard(input: $input) { id name + version viewState { ...ViewStateFields } @@ -397,6 +402,7 @@ export const GET_BOARD_INFO = gql(/* GraphQL */ ` board(input: $input) { id name + version viewState { ...ViewStateFields } @@ -412,6 +418,7 @@ export const GET_BOARD_ISSUES = gql(/* GraphQL */ ` board(input: $input) { id name + version viewState { ...ViewStateFields } @@ -468,3 +475,11 @@ export const REMOVE_USER_FROM_PROJECT_MUTATION = gql(/* GraphQL */ ` } } `); + +export const ADD_ITEM_TO_VIEW_STATE = gql(/* GraphQL */ ` + mutation AddItemToViewState($input: AddItemToViewStateItemInput!) { + addItemToViewState(input: $input) { + ...ViewStateFields + } + } +`); diff --git a/frontend/services/apollo-client.ts b/frontend/services/apollo-client.ts index b64f21f..724833a 100644 --- a/frontend/services/apollo-client.ts +++ b/frontend/services/apollo-client.ts @@ -1,4 +1,11 @@ -import { ApolloClient, InMemoryCache, from, gql, split } from '@apollo/client'; +import { + ApolloClient, + HttpLink, + InMemoryCache, + from, + gql, + split, +} from '@apollo/client'; import { createFragmentRegistry } from '@apollo/client/cache'; import { BatchHttpLink } from '@apollo/client/link/batch-http'; import { setContext } from '@apollo/client/link/context'; @@ -36,19 +43,38 @@ const authLink = setContext(async (_, { headers }) => { const uri = `${NEXT_PUBLIC_API_URL}/graphql`; +const uploadLink = createUploadLink({ + uri, + headers: { + 'apollo-require-preflight': 'true', + }, +}); + const batchLink = new BatchHttpLink({ uri, batchMax: 10, // No more than 5 operations per batch batchInterval: 30, // Wait no more than 30ms after first batched operation }); -const uploadLink = createUploadLink({ +const httpLink = new HttpLink({ uri, - headers: { - 'apollo-require-preflight': 'true', - }, }); +// We process mutations singularly BEFORE processing queries. +// This leads to less race conditions where a mutation and query of same data are in same batch. +export const batchOrNotLink = split( + ({ query }) => { + const definition = getMainDefinition(query); + + return ( + definition.kind === 'OperationDefinition' && + definition.operation === 'mutation' + ); + }, + httpLink, + batchLink +); + export const splitLink = split( ({ query }) => { const definition = getMainDefinition(query); @@ -60,7 +86,7 @@ export const splitLink = split( ); }, uploadLink, - batchLink + batchOrNotLink ); export const apolloClient = new ApolloClient({ diff --git a/frontend/services/socket-handlers.ts b/frontend/services/socket-handlers.ts index 56abf20..532685c 100644 --- a/frontend/services/socket-handlers.ts +++ b/frontend/services/socket-handlers.ts @@ -3,17 +3,19 @@ import { apolloClient } from '@/services/apollo-client'; const socketMsgHandler = async (message: any) => { const msg = typeof message === 'string' ? JSON.parse(message) : message; + // TODO: This currently fights the board state, need to figure out a better way to do this + switch (msg?.type) { case 'BOARD_UPDATED': - await apolloClient.refetchQueries({ - include: ['GetProjectInfo', 'GetBoardInfo'], - }); + // await apolloClient.refetchQueries({ + // include: ['GetProjectInfo', 'GetBoardInfo'], + // }); break; case 'ISSUE_UPDATED': - await apolloClient.refetchQueries({ - include: ['GetProjectInfo', 'GetBoardInfo'], - }); + // await apolloClient.refetchQueries({ + // include: ['GetProjectInfo', 'GetBoardInfo'], + // }); break; default: