From 209e76ac30274e7b92b302f9208dbd6f4538b89c Mon Sep 17 00:00:00 2001 From: Bandhan Majumder <133476557+bandhan-majumder@users.noreply.github.com> Date: Fri, 11 Apr 2025 15:54:15 +0530 Subject: [PATCH 01/11] Update schema.graphql --- schema.graphql | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/schema.graphql b/schema.graphql index a6c98c1b78d..ced3a0b3c25 100644 --- a/schema.graphql +++ b/schema.graphql @@ -140,6 +140,12 @@ enum AdvertisementType { pop_up } +"""Filter criteria for organization advertisements""" +input AdvertisementWhereInput { + """Filter advertisements by completion status""" + isCompleted: Boolean +} + type AgendaFolder { """ GraphQL connection to traverse through the agenda folders that have the agenda folder as a parent folder. @@ -2884,7 +2890,7 @@ type Organization { """ GraphQL connection to traverse through the advertisements belonging to the organization. """ - advertisements(after: String, before: String, first: Int, last: Int): OrganizationAdvertisementsConnection + advertisements(after: String, before: String, first: Int, last: Int, where: AdvertisementWhereInput): OrganizationAdvertisementsConnection """Mime type of the avatar of the organization.""" avatarMimeType: String @@ -3932,4 +3938,4 @@ type VenueEventsConnection { type VenueEventsConnectionEdge { cursor: String! node: Event -} \ No newline at end of file +} From eb2d3ee8516f58feb23446e62795bf0cb5b91fba Mon Sep 17 00:00:00 2001 From: Bandhan Majumder <133476557+bandhan-majumder@users.noreply.github.com> Date: Fri, 11 Apr 2025 15:55:55 +0530 Subject: [PATCH 02/11] add filters based execution and schema --- .../types/Organization/advertisements.ts | 175 ++++++++++++++---- 1 file changed, 142 insertions(+), 33 deletions(-) diff --git a/src/graphql/types/Organization/advertisements.ts b/src/graphql/types/Organization/advertisements.ts index ad9e411ed09..f0220f7ae56 100644 --- a/src/graphql/types/Organization/advertisements.ts +++ b/src/graphql/types/Organization/advertisements.ts @@ -1,5 +1,5 @@ import { type SQL, and, asc, desc, eq, exists, gt, lt } from "drizzle-orm"; -import type { z } from "zod"; +import { z } from "zod"; import { advertisementsTable, advertisementsTableInsertSchema, @@ -7,37 +7,55 @@ import { import { Advertisement } from "~/src/graphql/types/Advertisement/Advertisement"; import { TalawaGraphQLError } from "~/src/utilities/TalawaGraphQLError"; import { - defaultGraphQLConnectionArgumentsSchema, - transformDefaultGraphQLConnectionArguments, + type ParsedDefaultGraphQLConnectionArgumentsWithWhere, + createGraphQLConnectionWithWhereSchema, + type defaultGraphQLConnectionArgumentsSchema, + transformGraphQLConnectionArgumentsWithWhere, transformToDefaultGraphQLConnection, } from "~/src/utilities/defaultGraphQLConnection"; import envConfig from "~/src/utilities/graphqLimits"; +import { AdvertisementWhereInput } from "../../inputs/QueryOrganizationInput"; import { Organization } from "./Organization"; -const advertisementsArgumentsSchema = defaultGraphQLConnectionArgumentsSchema - .transform(transformDefaultGraphQLConnectionArguments) - .transform((arg, ctx) => { - let cursor: z.infer | undefined = undefined; - - try { - if (arg.cursor !== undefined) { - cursor = cursorSchema.parse( - JSON.parse(Buffer.from(arg.cursor, "base64url").toString("utf-8")), - ); - } - } catch (error) { - ctx.addIssue({ - code: "custom", - message: "Not a valid cursor.", - path: [arg.isInversed ? "before" : "after"], - }); - } - return { - cursor, - isInversed: arg.isInversed, - limit: arg.limit, - }; - }); +const advertisementWhereSchema = z + .object({ + isCompleted: z.boolean(), + }) + .optional(); + +const advertisementsArgumentsSchema = createGraphQLConnectionWithWhereSchema( + advertisementWhereSchema, +).transform((arg, ctx) => { + const transformedArg = transformGraphQLConnectionArgumentsWithWhere( + // Type assertion to match the expected type + { ...arg, where: arg.where || {} } as z.infer< + typeof defaultGraphQLConnectionArgumentsSchema + > & { where: unknown }, + ctx, + ); + let cursor: z.infer | undefined = undefined; + try { + if (transformedArg.cursor !== undefined) { + cursor = cursorSchema.parse( + JSON.parse( + Buffer.from(transformedArg.cursor, "base64url").toString("utf-8"), + ), + ); + } + } catch (error) { + ctx.addIssue({ + code: "custom", + message: "Not a valid cursor.", + path: [transformedArg.isInversed ? "before" : "after"], + }); + } + return { + cursor, + isInversed: transformedArg.isInversed, + limit: transformedArg.limit, + where: transformedArg.where || {}, // Default to empty object if where is undefined + }; +}); const cursorSchema = advertisementsTableInsertSchema.pick({ name: true, @@ -55,6 +73,12 @@ Organization.implement({ multiplier: args.first || args.last || 1, }; }, + args: { + where: t.arg({ + type: AdvertisementWhereInput, + required: false, + }), + }, resolve: async (parent, args, ctx) => { if (!ctx.currentClient.isAuthenticated) { throw new TalawaGraphQLError({ @@ -69,7 +93,6 @@ Organization.implement({ error, success, } = advertisementsArgumentsSchema.safeParse(args); - if (!success) { throw new TalawaGraphQLError({ extensions: { @@ -124,7 +147,15 @@ Organization.implement({ }); } - const { cursor, isInversed, limit } = parsedArgs; + const { + cursor, + isInversed, + limit, + where: extendedArgs, + } = parsedArgs as ParsedDefaultGraphQLConnectionArgumentsWithWhere< + { name: string }, + { isCompleted?: boolean } + >; const orderBy = isInversed ? [desc(advertisementsTable.name)] @@ -134,7 +165,7 @@ Organization.implement({ if (isInversed) { if (cursor !== undefined) { - where = and( + const baseCondition = and( exists( ctx.drizzleClient .select() @@ -149,12 +180,51 @@ Organization.implement({ eq(advertisementsTable.organizationId, parent.id), lt(advertisementsTable.name, cursor.name), ); + + if (extendedArgs.isCompleted !== undefined) { + const today = new Date(); + + if (extendedArgs.isCompleted) { + where = and( + baseCondition, + lt(advertisementsTable.endAt, today), + ); + } else { + where = and( + baseCondition, + gt(advertisementsTable.endAt, today), + ); + } + } else { + where = baseCondition; + } } else { - where = eq(advertisementsTable.organizationId, parent.id); + const baseCondition = eq( + advertisementsTable.organizationId, + parent.id, + ); + + if (extendedArgs.isCompleted !== undefined) { + const today = new Date(); + + if (extendedArgs.isCompleted) { + where = and( + baseCondition, + lt(advertisementsTable.endAt, today), + ); + } else { + where = and( + baseCondition, + gt(advertisementsTable.endAt, today), + ); + } + } else { + where = baseCondition; + } } } else { if (cursor !== undefined) { - where = and( + const baseCondition = and( exists( ctx.drizzleClient .select() @@ -169,8 +239,47 @@ Organization.implement({ eq(advertisementsTable.organizationId, parent.id), gt(advertisementsTable.name, cursor.name), ); + + if (extendedArgs.isCompleted !== undefined) { + const today = new Date(); + + if (extendedArgs.isCompleted) { + where = and( + baseCondition, + lt(advertisementsTable.endAt, today), + ); + } else { + where = and( + baseCondition, + gt(advertisementsTable.endAt, today), + ); + } + } else { + where = baseCondition; + } } else { - where = eq(advertisementsTable.organizationId, parent.id); + const baseCondition = eq( + advertisementsTable.organizationId, + parent.id, + ); + + if (extendedArgs.isCompleted !== undefined) { + const today = new Date(); + + if (extendedArgs.isCompleted) { + where = and( + baseCondition, + lt(advertisementsTable.endAt, today), + ); + } else { + where = and( + baseCondition, + gt(advertisementsTable.endAt, today), + ); + } + } else { + where = baseCondition; + } } } From 57d7edbc60d21b03a7cb025f9fe0f620993c25d4 Mon Sep 17 00:00:00 2001 From: Bandhan Majumder <133476557+bandhan-majumder@users.noreply.github.com> Date: Fri, 11 Apr 2025 15:57:05 +0530 Subject: [PATCH 03/11] Update QueryOrganizationInput.ts --- src/graphql/inputs/QueryOrganizationInput.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/graphql/inputs/QueryOrganizationInput.ts b/src/graphql/inputs/QueryOrganizationInput.ts index 88b0299e92e..845b56a200a 100644 --- a/src/graphql/inputs/QueryOrganizationInput.ts +++ b/src/graphql/inputs/QueryOrganizationInput.ts @@ -60,3 +60,17 @@ export const MembersWhereInput = builder // Add other filter fields here }), }); + +export const AdvertisementWhereInput = builder + .inputRef("AdvertisementWhereInput") + .implement({ + description: "Filter criteria for organization advertisements", + fields: (t) => ({ + isCompleted: t.field({ + type: "Boolean", + description: "Filter advertisements by completion status", + required: false, + }), + // Add other filter fields here + }), + }); From 0195768ff11e9481771a4e0aac8bc56dc8d7b727 Mon Sep 17 00:00:00 2001 From: Bandhan Majumder <133476557+bandhan-majumder@users.noreply.github.com> Date: Fri, 11 Apr 2025 16:01:23 +0530 Subject: [PATCH 04/11] add advertisementWhereInput for filtering advertisements --- test/graphql/types/gql.tada.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/graphql/types/gql.tada.d.ts b/test/graphql/types/gql.tada.d.ts index 35fa074c650..55ab36e966d 100644 --- a/test/graphql/types/gql.tada.d.ts +++ b/test/graphql/types/gql.tada.d.ts @@ -8,6 +8,7 @@ export type introspection_types = { 'Advertisement': { kind: 'OBJECT'; name: 'Advertisement'; fields: { 'attachments': { name: 'attachments'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AdvertisementAttachment'; ofType: null; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'creator': { name: 'creator'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'endAt': { name: 'endAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'organization': { name: 'organization'; type: { kind: 'OBJECT'; name: 'Organization'; ofType: null; } }; 'startAt': { name: 'startAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'ENUM'; name: 'AdvertisementType'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'updater': { name: 'updater'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'AdvertisementAttachment': { kind: 'OBJECT'; name: 'AdvertisementAttachment'; fields: { 'mimeType': { name: 'mimeType'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'url': { name: 'url'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'AdvertisementType': { name: 'AdvertisementType'; enumValues: 'banner' | 'menu' | 'pop_up'; }; + 'AdvertisementWhereInput': { kind: 'INPUT_OBJECT'; name: 'AdvertisementWhereInput'; isOneOf: false; inputFields: [{ name: 'isCompleted'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; 'AgendaFolder': { kind: 'OBJECT'; name: 'AgendaFolder'; fields: { 'childFolders': { name: 'childFolders'; type: { kind: 'OBJECT'; name: 'AgendaFolderChildFoldersConnection'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'creator': { name: 'creator'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'event': { name: 'event'; type: { kind: 'OBJECT'; name: 'Event'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isAgendaItemFolder': { name: 'isAgendaItemFolder'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'items': { name: 'items'; type: { kind: 'OBJECT'; name: 'AgendaFolderItemsConnection'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'parentFolder': { name: 'parentFolder'; type: { kind: 'OBJECT'; name: 'AgendaFolder'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'updater': { name: 'updater'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'AgendaFolderChildFoldersConnection': { kind: 'OBJECT'; name: 'AgendaFolderChildFoldersConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'LIST'; name: never; ofType: { kind: 'OBJECT'; name: 'AgendaFolderChildFoldersConnectionEdge'; ofType: null; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; }; }; 'AgendaFolderChildFoldersConnectionEdge': { kind: 'OBJECT'; name: 'AgendaFolderChildFoldersConnectionEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'OBJECT'; name: 'AgendaFolder'; ofType: null; } }; }; }; @@ -262,4 +263,4 @@ declare module 'gql.tada' { interface setupSchema { introspection: introspection } -} \ No newline at end of file +} From ecca39076804e823539ac0b88c1a357f0cddf1ab Mon Sep 17 00:00:00 2001 From: Bandhan Majumder <133476557+bandhan-majumder@users.noreply.github.com> Date: Sun, 13 Apr 2025 21:29:08 +0530 Subject: [PATCH 05/11] Update documentNodes.ts --- test/routes/graphql/documentNodes.ts | 102 ++++++++++++++++++++------- 1 file changed, 78 insertions(+), 24 deletions(-) diff --git a/test/routes/graphql/documentNodes.ts b/test/routes/graphql/documentNodes.ts index 78dc77e0c24..39328231787 100644 --- a/test/routes/graphql/documentNodes.ts +++ b/test/routes/graphql/documentNodes.ts @@ -5,12 +5,12 @@ import type { ClientCustomScalars } from "~/src/graphql/scalars/index"; import type { introspection } from "./../../../test/graphql/types/gql.tada"; const gql = initGraphQLTada<{ - introspection: introspection; - scalars: ClientCustomScalars; + introspection: introspection; + scalars: ClientCustomScalars; }>(); export const Mutation_createUser = - gql(`mutation Mutation_createUser($input: MutationCreateUserInput!) { + gql(`mutation Mutation_createUser($input: MutationCreateUserInput!) { createUser(input: $input){ authenticationToken user { @@ -40,14 +40,14 @@ export const Mutation_createUser = }`); export const Mutation_deleteCurrentUser = - gql(`mutation Mutation_deleteCurrentUser { + gql(`mutation Mutation_deleteCurrentUser { deleteCurrentUser { id } }`); export const Mutation_deleteUser = - gql(`mutation Mutation_deleteUser($input: MutationDeleteUserInput!) { + gql(`mutation Mutation_deleteUser($input: MutationDeleteUserInput!) { deleteUser(input: $input) { addressLine1 addressLine2 @@ -74,7 +74,7 @@ export const Mutation_deleteUser = }`); export const Mutation_signUp = - gql(`mutation Mutation_signUp($input: MutationSignUpInput!) { + gql(`mutation Mutation_signUp($input: MutationSignUpInput!) { signUp(input: $input) { authenticationToken user { @@ -104,7 +104,7 @@ export const Mutation_signUp = }`); export const Mutation_updateCurrentUser = - gql(`mutation Mutation_updateCurrentUser($input: MutationUpdateCurrentUserInput!) { + gql(`mutation Mutation_updateCurrentUser($input: MutationUpdateCurrentUserInput!) { updateCurrentUser(input: $input) { addressLine1 addressLine2 @@ -131,7 +131,7 @@ export const Mutation_updateCurrentUser = }`); export const Mutation_updateUser = - gql(`mutation Mutation_updateUser($input: MutationUpdateUserInput!) { + gql(`mutation Mutation_updateUser($input: MutationUpdateUserInput!) { updateUser(input: $input) { addressLine1 addressLine2 @@ -184,7 +184,7 @@ export const Query_currentUser = gql(`query Query_currentUser { }`); export const Query_renewAuthenticationToken = - gql(`query Query_renewAuthenticationToken { + gql(`query Query_renewAuthenticationToken { renewAuthenticationToken }`); @@ -295,7 +295,7 @@ export const Query_allUsers = gql(` `); export const Query_user_creator = - gql(`query Query_user_creator($input: QueryUserInput!) { + gql(`query Query_user_creator($input: QueryUserInput!) { user(input: $input) { creator { addressLine1 @@ -324,14 +324,14 @@ export const Query_user_creator = }`); export const Query_user_updatedAt = - gql(`query Query_user_updatedAt($input: QueryUserInput!) { + gql(`query Query_user_updatedAt($input: QueryUserInput!) { user(input: $input) { updatedAt } }`); export const Query_user_updater = - gql(`query Query_user_updater($input: QueryUserInput!) { + gql(`query Query_user_updater($input: QueryUserInput!) { user(input: $input) { updater { addressLine1 @@ -368,7 +368,7 @@ export const Query_fund = gql(`query Query_fund($input: QueryFundInput!) { }`); export const Mutation_createOrganization = - gql(`mutation Mutation_createOrganization($input: MutationCreateOrganizationInput!) { + gql(`mutation Mutation_createOrganization($input: MutationCreateOrganizationInput!) { createOrganization(input: $input) { id name @@ -377,7 +377,7 @@ export const Mutation_createOrganization = }`); export const Mutation_createFund = - gql(`mutation Mutation_createFund($input: MutationCreateFundInput!) { + gql(`mutation Mutation_createFund($input: MutationCreateFundInput!) { createFund(input: $input) { id name @@ -386,14 +386,14 @@ export const Mutation_createFund = }`); export const Mutation_createOrganizationMembership = - gql(`mutation Mutation_createOrganizationMembership($input: MutationCreateOrganizationMembershipInput!) { + gql(`mutation Mutation_createOrganizationMembership($input: MutationCreateOrganizationMembershipInput!) { createOrganizationMembership(input: $input) { id } }`); export const Mutation_deleteFund = - gql(`mutation Mutation_deleteFund($input: MutationDeleteFundInput!) { + gql(`mutation Mutation_deleteFund($input: MutationDeleteFundInput!) { deleteFund(input: $input) { id name @@ -402,7 +402,7 @@ export const Mutation_deleteFund = }`); export const Mutation_deleteOrganization = - gql(`mutation Mutation_deleteOrganization($input: MutationDeleteOrganizationInput!) { + gql(`mutation Mutation_deleteOrganization($input: MutationDeleteOrganizationInput!) { deleteOrganization(input: $input) { id name @@ -411,7 +411,7 @@ export const Mutation_deleteOrganization = }`); export const Mutation_deleteOrganizationMembership = - gql(`mutation Mutation_deleteOrganizationMembership($input: MutationDeleteOrganizationMembershipInput!) { + gql(`mutation Mutation_deleteOrganizationMembership($input: MutationDeleteOrganizationMembershipInput!) { deleteOrganizationMembership(input: $input) { id name @@ -447,7 +447,7 @@ export const Query_event = gql(`query Query_event($input: QueryEventInput!) { }`); export const Mutation_createEvent = - gql(`mutation Mutation_createEvent($input: MutationCreateEventInput!) { + gql(`mutation Mutation_createEvent($input: MutationCreateEventInput!) { createEvent(input: $input) { id name @@ -467,14 +467,14 @@ export const Mutation_createEvent = }`); export const Mutation_deleteEvent = - gql(`mutation Mutation_deleteEvent($input: MutationDeleteEventInput!) { + gql(`mutation Mutation_deleteEvent($input: MutationDeleteEventInput!) { deleteEvent(input: $input) { id } }`); export const Mutation_updateEvent = - gql(`mutation Mutation_updateEvent($input: MutationUpdateEventInput!) { + gql(`mutation Mutation_updateEvent($input: MutationUpdateEventInput!) { updateEvent(input: $input) { id name @@ -570,7 +570,7 @@ export const Query_organization = gql(` `); export const Query_agendaItem = - gql(`query Query_agendaItem($input: QueryAgendaItemInput!) { + gql(`query Query_agendaItem($input: QueryAgendaItemInput!) { agendaItem(input: $input) { id name @@ -674,12 +674,12 @@ export const Mutation_createGetfileUrl = gql(` `); export const Mutation_blockUser = - gql(`mutation Mutation_blockUser($organizationId: ID!, $userId: ID!) { + gql(`mutation Mutation_blockUser($organizationId: ID!, $userId: ID!) { blockUser(organizationId: $organizationId, userId: $userId) }`); export const Mutation_unblockUser = - gql(`mutation Mutation_unblockUser($organizationId: ID!, $userId: ID!) { + gql(`mutation Mutation_unblockUser($organizationId: ID!, $userId: ID!) { unblockUser(organizationId: $organizationId, userId: $userId) }`); @@ -717,3 +717,57 @@ export const Query_blockedUsers = gql(` } } `); + +export const Query_advertisements = gql(` + query OrganizationAdvertisements( + $id: String! + $first: Int + $last: Int + $after: String + $before: String + $where: AdvertisementWhereInput + ) { + organization(input: { id: $id }) { + advertisements( + first: $first + last: $last + after: $after + before: $before + where: $where + ) { + edges { + node { + createdAt + description + organization { + id + } + endAt + id + name + startAt + type + attachments { + mimeType + url + } + } + } + pageInfo { + startCursor + endCursor + hasNextPage + hasPreviousPage + } + } + } + } +`); + +export const Mutation_createAdvertisement = gql(` + mutation Mutation_createAd($input: MutationCreateAdvertisementInput!) { + createAdvertisement(input: $input) { + id + } + } +`); From 899e984a2c29f3dd67f7b9cfb47e58fa6776149c Mon Sep 17 00:00:00 2001 From: Bandhan Majumder <133476557+bandhan-majumder@users.noreply.github.com> Date: Sun, 13 Apr 2025 21:34:03 +0530 Subject: [PATCH 06/11] Create advertisement.test.ts --- .../types/Organization/advertisement.test.ts | 681 ++++++++++++++++++ 1 file changed, 681 insertions(+) create mode 100644 test/graphql/types/Organization/advertisement.test.ts diff --git a/test/graphql/types/Organization/advertisement.test.ts b/test/graphql/types/Organization/advertisement.test.ts new file mode 100644 index 00000000000..97a0b2a495a --- /dev/null +++ b/test/graphql/types/Organization/advertisement.test.ts @@ -0,0 +1,681 @@ +import { faker } from "@faker-js/faker"; +import { expect, suite, test } from "vitest"; +import { assertToBeNonNullish } from "../../../helpers"; +import { + Mutation_createAdvertisement, + Mutation_createOrganization, + Query_advertisements, + Query_signIn, +} from "../../../routes/graphql/documentNodes"; +import { server } from "../../../server"; +import { mercuriusClient } from "../../types/client"; + +const signInResult = await mercuriusClient.query(Query_signIn, { + variables: { + input: { + emailAddress: server.envConfig.API_ADMINISTRATOR_USER_EMAIL_ADDRESS, + password: server.envConfig.API_ADMINISTRATOR_USER_PASSWORD, + }, + }, +}); +assertToBeNonNullish(signInResult.data?.signIn); +const authToken = signInResult.data.signIn.authenticationToken; +assertToBeNonNullish(authToken); + +suite("Organization.blockedUsers Field", () => { + suite("when the client is not authenticated", () => { + test("should return an error with unauthenticated extensions code", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + const result = await mercuriusClient.query(Query_advertisements, { + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false + }, + }, + }); + + expect(result.data?.organization?.advertisements?.edges).toBeUndefined(); + expect(result.errors).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + extensions: expect.objectContaining({ code: "unauthenticated" }), + path: ["organization", "advertisements"], + }), + ]), + ); + }); + }); + + suite("when there are no advertisements", () => { + test("should return an empty active ads connection", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + const resultOfActiveAds = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false + }, + }, + }); + + const activeAdvertisements = resultOfActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + + expect(activeAdvertisements.edges).toHaveLength(0); + expect(activeAdvertisements.pageInfo).toEqual({ + hasNextPage: false, + hasPreviousPage: false, + startCursor: null, + endCursor: null, + }); + }); + test("should return an empty complete ads connection", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + const resultOfCompletedAds = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false + }, + }, + }); + + const completedAdvertisements = resultOfCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + + expect(completedAdvertisements.edges).toHaveLength(0); + expect(completedAdvertisements.pageInfo).toEqual({ + hasNextPage: false, + hasPreviousPage: false, + startCursor: null, + endCursor: null, + }); + }); + }); + + suite("when there are advertisements", () => { + test("should return the active ads in the connection", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date('2025-02-02').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + const resultOfActiveAds = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false + }, + }, + }); + + const activeAdvertisements = resultOfActiveAds.data?.organization?.advertisements; + console.log("Active advertisements are: ", activeAdvertisements) + assertToBeNonNullish(activeAdvertisements); + + expect(activeAdvertisements.edges).toHaveLength(1); + expect(activeAdvertisements.pageInfo.hasNextPage).toEqual(false); + expect(activeAdvertisements.pageInfo.hasPreviousPage).toEqual(false); + expect(activeAdvertisements.pageInfo.startCursor).not.toEqual(null); + expect(activeAdvertisements.pageInfo.endCursor).not.toEqual(null); + }); + test("should return the completed ads in the connection", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + const resultOfCompletedAds = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: true + }, + }, + }); + + const completedAdvertisements = resultOfCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + + expect(completedAdvertisements.edges).toHaveLength(1); + expect(completedAdvertisements.pageInfo.hasNextPage).toEqual(false); + expect(completedAdvertisements.pageInfo.hasPreviousPage).toEqual(false); + expect(completedAdvertisements.pageInfo.startCursor).not.toEqual(null); + expect(completedAdvertisements.pageInfo.endCursor).not.toEqual(null); + }); + }); + + suite("when pagination is used", () => { + test("should respect the 'first' parameter in active ads", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 2", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 3", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 4", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 5", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 6", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 7", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 8", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 9", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2030-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + const resultOfAllActiveAds = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 6, + after: null, + last: null, + before: null, + where: { + isCompleted: false + }, + }, + }); + assertToBeNonNullish(resultOfAllActiveAds); + + const activeAdvertisements = resultOfAllActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + expect(activeAdvertisements.edges).toHaveLength(6); + expect(activeAdvertisements.pageInfo.hasNextPage).toBe(true); + }); + test("should respect the 'first' parameter in completed ads", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 2", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 3", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 4", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 5", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 6", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 7", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 8", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 9", + type: "banner", + startAt: new Date('2025-01-01').toISOString(), + endAt: new Date('2025-02-02').toISOString(), + description: 'learn about basics', + attachments: undefined + }, + }, + }); + + const resultOfAllCompletedAds = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 6, + after: null, + last: null, + before: null, + where: { + isCompleted: true + }, + }, + }); + assertToBeNonNullish(resultOfAllCompletedAds); + + const completedAdvertisements = resultOfAllCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + expect(completedAdvertisements.edges).toHaveLength(6); + expect(completedAdvertisements.pageInfo.hasNextPage).toBe(true); + }); + }) +}); From 04345911467d01aab2869d4e715600dad735f51a Mon Sep 17 00:00:00 2001 From: Bandhan Majumder <133476557+bandhan-majumder@users.noreply.github.com> Date: Sun, 13 Apr 2025 21:35:12 +0530 Subject: [PATCH 07/11] Update advertisements.ts --- src/graphql/types/Organization/advertisements.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/graphql/types/Organization/advertisements.ts b/src/graphql/types/Organization/advertisements.ts index f0220f7ae56..a1476ec5eb4 100644 --- a/src/graphql/types/Organization/advertisements.ts +++ b/src/graphql/types/Organization/advertisements.ts @@ -27,7 +27,6 @@ const advertisementsArgumentsSchema = createGraphQLConnectionWithWhereSchema( advertisementWhereSchema, ).transform((arg, ctx) => { const transformedArg = transformGraphQLConnectionArgumentsWithWhere( - // Type assertion to match the expected type { ...arg, where: arg.where || {} } as z.infer< typeof defaultGraphQLConnectionArgumentsSchema > & { where: unknown }, From 2ac7580bacc82d353503dba3d05a586ac7a3f48b Mon Sep 17 00:00:00 2001 From: bandhan-majumder Date: Mon, 14 Apr 2025 09:54:12 +0530 Subject: [PATCH 08/11] fix: type errors --- schema.graphql | 12 +- .../types/Organization/advertisements.ts | 3 +- .../types/Organization/advertisement.test.ts | 1354 +++++++++-------- test/graphql/types/gql.tada-cache.d.ts | 156 +- test/graphql/types/gql.tada.d.ts | 5 +- test/routes/graphql/documentNodes.ts | 48 +- 6 files changed, 808 insertions(+), 770 deletions(-) diff --git a/schema.graphql b/schema.graphql index 6d58c41caef..a6a0b8d3000 100644 --- a/schema.graphql +++ b/schema.graphql @@ -2893,7 +2893,15 @@ type Organization { """ GraphQL connection to traverse through the advertisements belonging to the organization. """ - advertisements(after: String, before: String, first: Int, last: Int, where: AdvertisementWhereInput): OrganizationAdvertisementsConnection + advertisements( + after: String + before: String + first: Int + last: Int + + """Filter criteria for advertisements""" + where: AdvertisementWhereInput + ): OrganizationAdvertisementsConnection """Mime type of the avatar of the organization.""" avatarMimeType: String @@ -3947,4 +3955,4 @@ type VenueEventsConnection { type VenueEventsConnectionEdge { cursor: String! node: Event -} +} \ No newline at end of file diff --git a/src/graphql/types/Organization/advertisements.ts b/src/graphql/types/Organization/advertisements.ts index a1476ec5eb4..ccf31fb1110 100644 --- a/src/graphql/types/Organization/advertisements.ts +++ b/src/graphql/types/Organization/advertisements.ts @@ -19,7 +19,7 @@ import { Organization } from "./Organization"; const advertisementWhereSchema = z .object({ - isCompleted: z.boolean(), + isCompleted: z.boolean().optional(), }) .optional(); @@ -75,6 +75,7 @@ Organization.implement({ args: { where: t.arg({ type: AdvertisementWhereInput, + description: "Filter criteria for advertisements", required: false, }), }, diff --git a/test/graphql/types/Organization/advertisement.test.ts b/test/graphql/types/Organization/advertisement.test.ts index 97a0b2a495a..0e261684694 100644 --- a/test/graphql/types/Organization/advertisement.test.ts +++ b/test/graphql/types/Organization/advertisement.test.ts @@ -2,680 +2,704 @@ import { faker } from "@faker-js/faker"; import { expect, suite, test } from "vitest"; import { assertToBeNonNullish } from "../../../helpers"; import { - Mutation_createAdvertisement, - Mutation_createOrganization, - Query_advertisements, - Query_signIn, + Mutation_createAdvertisement, + Mutation_createOrganization, + Query_advertisements, + Query_signIn, } from "../../../routes/graphql/documentNodes"; import { server } from "../../../server"; import { mercuriusClient } from "../../types/client"; const signInResult = await mercuriusClient.query(Query_signIn, { - variables: { - input: { - emailAddress: server.envConfig.API_ADMINISTRATOR_USER_EMAIL_ADDRESS, - password: server.envConfig.API_ADMINISTRATOR_USER_PASSWORD, - }, - }, + variables: { + input: { + emailAddress: server.envConfig.API_ADMINISTRATOR_USER_EMAIL_ADDRESS, + password: server.envConfig.API_ADMINISTRATOR_USER_PASSWORD, + }, + }, }); assertToBeNonNullish(signInResult.data?.signIn); const authToken = signInResult.data.signIn.authenticationToken; assertToBeNonNullish(authToken); suite("Organization.blockedUsers Field", () => { - suite("when the client is not authenticated", () => { - test("should return an error with unauthenticated extensions code", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - const result = await mercuriusClient.query(Query_advertisements, { - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false - }, - }, - }); - - expect(result.data?.organization?.advertisements?.edges).toBeUndefined(); - expect(result.errors).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - extensions: expect.objectContaining({ code: "unauthenticated" }), - path: ["organization", "advertisements"], - }), - ]), - ); - }); - }); - - suite("when there are no advertisements", () => { - test("should return an empty active ads connection", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - const resultOfActiveAds = await mercuriusClient.query(Query_advertisements, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false - }, - }, - }); - - const activeAdvertisements = resultOfActiveAds.data?.organization?.advertisements; - assertToBeNonNullish(activeAdvertisements); - - expect(activeAdvertisements.edges).toHaveLength(0); - expect(activeAdvertisements.pageInfo).toEqual({ - hasNextPage: false, - hasPreviousPage: false, - startCursor: null, - endCursor: null, - }); - }); - test("should return an empty complete ads connection", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - const resultOfCompletedAds = await mercuriusClient.query(Query_advertisements, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false - }, - }, - }); - - const completedAdvertisements = resultOfCompletedAds.data?.organization?.advertisements; - assertToBeNonNullish(completedAdvertisements); - - expect(completedAdvertisements.edges).toHaveLength(0); - expect(completedAdvertisements.pageInfo).toEqual({ - hasNextPage: false, - hasPreviousPage: false, - startCursor: null, - endCursor: null, - }); - }); - }); - - suite("when there are advertisements", () => { - test("should return the active ads in the connection", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date('2025-02-02').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - const resultOfActiveAds = await mercuriusClient.query(Query_advertisements, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false - }, - }, - }); - - const activeAdvertisements = resultOfActiveAds.data?.organization?.advertisements; - console.log("Active advertisements are: ", activeAdvertisements) - assertToBeNonNullish(activeAdvertisements); - - expect(activeAdvertisements.edges).toHaveLength(1); - expect(activeAdvertisements.pageInfo.hasNextPage).toEqual(false); - expect(activeAdvertisements.pageInfo.hasPreviousPage).toEqual(false); - expect(activeAdvertisements.pageInfo.startCursor).not.toEqual(null); - expect(activeAdvertisements.pageInfo.endCursor).not.toEqual(null); - }); - test("should return the completed ads in the connection", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - const resultOfCompletedAds = await mercuriusClient.query(Query_advertisements, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: true - }, - }, - }); - - const completedAdvertisements = resultOfCompletedAds.data?.organization?.advertisements; - assertToBeNonNullish(completedAdvertisements); - - expect(completedAdvertisements.edges).toHaveLength(1); - expect(completedAdvertisements.pageInfo.hasNextPage).toEqual(false); - expect(completedAdvertisements.pageInfo.hasPreviousPage).toEqual(false); - expect(completedAdvertisements.pageInfo.startCursor).not.toEqual(null); - expect(completedAdvertisements.pageInfo.endCursor).not.toEqual(null); - }); - }); - - suite("when pagination is used", () => { - test("should respect the 'first' parameter in active ads", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 2", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 3", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 4", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 5", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 6", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 7", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 8", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 9", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2030-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - const resultOfAllActiveAds = await mercuriusClient.query(Query_advertisements, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 6, - after: null, - last: null, - before: null, - where: { - isCompleted: false - }, - }, - }); - assertToBeNonNullish(resultOfAllActiveAds); - - const activeAdvertisements = resultOfAllActiveAds.data?.organization?.advertisements; - assertToBeNonNullish(activeAdvertisements); - expect(activeAdvertisements.edges).toHaveLength(6); - expect(activeAdvertisements.pageInfo.hasNextPage).toBe(true); - }); - test("should respect the 'first' parameter in completed ads", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 2", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 3", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 4", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 5", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 6", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 7", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 8", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 9", - type: "banner", - startAt: new Date('2025-01-01').toISOString(), - endAt: new Date('2025-02-02').toISOString(), - description: 'learn about basics', - attachments: undefined - }, - }, - }); - - const resultOfAllCompletedAds = await mercuriusClient.query(Query_advertisements, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 6, - after: null, - last: null, - before: null, - where: { - isCompleted: true - }, - }, - }); - assertToBeNonNullish(resultOfAllCompletedAds); - - const completedAdvertisements = resultOfAllCompletedAds.data?.organization?.advertisements; - assertToBeNonNullish(completedAdvertisements); - expect(completedAdvertisements.edges).toHaveLength(6); - expect(completedAdvertisements.pageInfo.hasNextPage).toBe(true); - }); - }) + suite("when the client is not authenticated", () => { + test("should return an error with unauthenticated extensions code", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + const result = await mercuriusClient.query(Query_advertisements, { + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }); + + expect(result.data?.organization?.advertisements?.edges).toBeUndefined(); + expect(result.errors).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + extensions: expect.objectContaining({ code: "unauthenticated" }), + path: ["organization", "advertisements"], + }), + ]), + ); + }); + }); + + suite("when there are no advertisements", () => { + test("should return an empty active ads connection", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + const resultOfActiveAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const activeAdvertisements = + resultOfActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + + expect(activeAdvertisements.edges).toHaveLength(0); + expect(activeAdvertisements.pageInfo).toEqual({ + hasNextPage: false, + hasPreviousPage: false, + startCursor: null, + endCursor: null, + }); + }); + test("should return an empty complete ads connection", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + const resultOfCompletedAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const completedAdvertisements = + resultOfCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + + expect(completedAdvertisements.edges).toHaveLength(0); + expect(completedAdvertisements.pageInfo).toEqual({ + hasNextPage: false, + hasPreviousPage: false, + startCursor: null, + endCursor: null, + }); + }); + }); + + suite("when there are advertisements", () => { + test("should return the active ads in the connection", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date("2025-02-02").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + const resultOfActiveAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const activeAdvertisements = + resultOfActiveAds.data?.organization?.advertisements; + console.log("Active advertisements are: ", activeAdvertisements); + assertToBeNonNullish(activeAdvertisements); + + expect(activeAdvertisements.edges).toHaveLength(1); + expect(activeAdvertisements.pageInfo.hasNextPage).toEqual(false); + expect(activeAdvertisements.pageInfo.hasPreviousPage).toEqual(false); + expect(activeAdvertisements.pageInfo.startCursor).not.toEqual(null); + expect(activeAdvertisements.pageInfo.endCursor).not.toEqual(null); + }); + test("should return the completed ads in the connection", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + const resultOfCompletedAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: true, + }, + }, + }, + ); + + const completedAdvertisements = + resultOfCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + + expect(completedAdvertisements.edges).toHaveLength(1); + expect(completedAdvertisements.pageInfo.hasNextPage).toEqual(false); + expect(completedAdvertisements.pageInfo.hasPreviousPage).toEqual(false); + expect(completedAdvertisements.pageInfo.startCursor).not.toEqual(null); + expect(completedAdvertisements.pageInfo.endCursor).not.toEqual(null); + }); + }); + + suite("when pagination is used", () => { + test("should respect the 'first' parameter in active ads", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 2", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 3", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 4", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 5", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 6", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 7", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 8", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 9", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + const resultOfAllActiveAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 6, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + assertToBeNonNullish(resultOfAllActiveAds); + + const activeAdvertisements = + resultOfAllActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + expect(activeAdvertisements.edges).toHaveLength(6); + expect(activeAdvertisements.pageInfo.hasNextPage).toBe(true); + }); + test("should respect the 'first' parameter in completed ads", async () => { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + const orgId = createOrgResult.data?.createOrganization?.id; + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 2", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 3", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 4", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 5", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 6", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 7", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 8", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session 9", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + const resultOfAllCompletedAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 6, + after: null, + last: null, + before: null, + where: { + isCompleted: true, + }, + }, + }, + ); + assertToBeNonNullish(resultOfAllCompletedAds); + + const completedAdvertisements = + resultOfAllCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + expect(completedAdvertisements.edges).toHaveLength(6); + expect(completedAdvertisements.pageInfo.hasNextPage).toBe(true); + }); + }); }); diff --git a/test/graphql/types/gql.tada-cache.d.ts b/test/graphql/types/gql.tada-cache.d.ts index 1eb021ff4e1..a683fb4771c 100644 --- a/test/graphql/types/gql.tada-cache.d.ts +++ b/test/graphql/types/gql.tada-cache.d.ts @@ -3,152 +3,156 @@ import type { TadaDocumentNode, $tada } from 'gql.tada'; declare module 'gql.tada' { - interface setupCache { + interface setupCache { "mutation Mutation_createUser($input: MutationCreateUserInput!) {\n createUser(input: $input){\n authenticationToken\n user {\n addressLine1\n addressLine2\n birthDate\n city\n id\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n }\n}": - TadaDocumentNode<{ createUser: { authenticationToken: string | null; user: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; id: string; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { workPhoneNumber?: string | null | undefined; state?: string | null | undefined; role: "administrator" | "regular"; postalCode?: string | null | undefined; password: string; naturalLanguageCode?: "ae" | "af" | "am" | "ar" | "as" | "az" | "ba" | "be" | "bg" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ch" | "co" | "cr" | "cu" | "cv" | "cy" | "de" | "dz" | "ee" | "es" | "et" | "fi" | "fj" | "fo" | "fr" | "ga" | "gd" | "gl" | "gn" | "gu" | "hr" | "ht" | "hu" | "id" | "ie" | "io" | "is" | "it" | "kg" | "ki" | "km" | "kn" | "kr" | "kw" | "ky" | "la" | "lb" | "li" | "lt" | "lu" | "lv" | "mg" | "mh" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "ne" | "ng" | "nl" | "no" | "nr" | "om" | "pa" | "pl" | "ps" | "pt" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "tg" | "th" | "tk" | "tl" | "tn" | "to" | "tr" | "tt" | "tw" | "ug" | "uz" | "ve" | "vi" | "za" | "aa" | "ab" | "ak" | "an" | "av" | "ay" | "ce" | "cs" | "da" | "dv" | "el" | "en" | "eo" | "eu" | "fa" | "ff" | "fy" | "gv" | "ha" | "he" | "hi" | "ho" | "hy" | "hz" | "ia" | "ig" | "ii" | "ik" | "iu" | "ja" | "jv" | "ka" | "kj" | "kk" | "kl" | "ko" | "ks" | "ku" | "kv" | "lg" | "ln" | "lo" | "mi" | "nb" | "nd" | "nn" | "nv" | "ny" | "oc" | "oj" | "or" | "os" | "pi" | "qu" | "rm" | "rn" | "sq" | "su" | "sw" | "ta" | "te" | "ti" | "ts" | "ty" | "uk" | "ur" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "zh" | "zu" | null | undefined; natalSex?: "female" | "intersex" | "male" | null | undefined; name: string; mobilePhoneNumber?: string | null | undefined; maritalStatus?: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null | undefined; isEmailAddressVerified: boolean; homePhoneNumber?: string | null | undefined; employmentStatus?: "full_time" | "part_time" | "unemployed" | null | undefined; emailAddress: string; educationGrade?: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; birthDate?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ createUser: { authenticationToken: string | null; user: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; id: string; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { workPhoneNumber?: string | null | undefined; state?: string | null | undefined; role: "administrator" | "regular"; postalCode?: string | null | undefined; password: string; naturalLanguageCode?: "ae" | "af" | "am" | "ar" | "as" | "az" | "ba" | "be" | "bg" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ch" | "co" | "cr" | "cu" | "cv" | "cy" | "de" | "dz" | "ee" | "es" | "et" | "fi" | "fj" | "fo" | "fr" | "ga" | "gd" | "gl" | "gn" | "gu" | "hr" | "ht" | "hu" | "id" | "ie" | "io" | "is" | "it" | "kg" | "ki" | "km" | "kn" | "kr" | "kw" | "ky" | "la" | "lb" | "li" | "lt" | "lu" | "lv" | "mg" | "mh" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "ne" | "ng" | "nl" | "no" | "nr" | "om" | "pa" | "pl" | "ps" | "pt" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "tg" | "th" | "tk" | "tl" | "tn" | "to" | "tr" | "tt" | "tw" | "ug" | "uz" | "ve" | "vi" | "za" | "aa" | "ab" | "ak" | "an" | "av" | "ay" | "ce" | "cs" | "da" | "dv" | "el" | "en" | "eo" | "eu" | "fa" | "ff" | "fy" | "gv" | "ha" | "he" | "hi" | "ho" | "hy" | "hz" | "ia" | "ig" | "ii" | "ik" | "iu" | "ja" | "jv" | "ka" | "kj" | "kk" | "kl" | "ko" | "ks" | "ku" | "kv" | "lg" | "ln" | "lo" | "mi" | "nb" | "nd" | "nn" | "nv" | "ny" | "oc" | "oj" | "or" | "os" | "pi" | "qu" | "rm" | "rn" | "sq" | "su" | "sw" | "ta" | "te" | "ti" | "ts" | "ty" | "uk" | "ur" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "zh" | "zu" | null | undefined; natalSex?: "female" | "intersex" | "male" | null | undefined; name: string; mobilePhoneNumber?: string | null | undefined; maritalStatus?: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null | undefined; isEmailAddressVerified: boolean; homePhoneNumber?: string | null | undefined; employmentStatus?: "full_time" | "part_time" | "unemployed" | null | undefined; emailAddress: string; educationGrade?: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; birthDate?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; "mutation Mutation_deleteCurrentUser {\n deleteCurrentUser {\n id\n }\n}": - TadaDocumentNode<{ deleteCurrentUser: { id: string; } | null; }, {}, void>; + TadaDocumentNode<{ deleteCurrentUser: { id: string; } | null; }, {}, void>; "mutation Mutation_deleteUser($input: MutationDeleteUserInput!) {\n deleteUser(input: $input) {\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n id\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n}": - TadaDocumentNode<{ deleteUser: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deleteUser: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, { input: { id: string; }; }, void>; "mutation Mutation_signUp($input: MutationSignUpInput!) {\n signUp(input: $input) {\n authenticationToken\n user {\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n id\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n }\n}": - TadaDocumentNode<{ signUp: { authenticationToken: string | null; user: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { workPhoneNumber?: string | null | undefined; state?: string | null | undefined; selectedOrganization: string; postalCode?: string | null | undefined; password: string; naturalLanguageCode?: "ae" | "af" | "am" | "ar" | "as" | "az" | "ba" | "be" | "bg" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ch" | "co" | "cr" | "cu" | "cv" | "cy" | "de" | "dz" | "ee" | "es" | "et" | "fi" | "fj" | "fo" | "fr" | "ga" | "gd" | "gl" | "gn" | "gu" | "hr" | "ht" | "hu" | "id" | "ie" | "io" | "is" | "it" | "kg" | "ki" | "km" | "kn" | "kr" | "kw" | "ky" | "la" | "lb" | "li" | "lt" | "lu" | "lv" | "mg" | "mh" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "ne" | "ng" | "nl" | "no" | "nr" | "om" | "pa" | "pl" | "ps" | "pt" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "tg" | "th" | "tk" | "tl" | "tn" | "to" | "tr" | "tt" | "tw" | "ug" | "uz" | "ve" | "vi" | "za" | "aa" | "ab" | "ak" | "an" | "av" | "ay" | "ce" | "cs" | "da" | "dv" | "el" | "en" | "eo" | "eu" | "fa" | "ff" | "fy" | "gv" | "ha" | "he" | "hi" | "ho" | "hy" | "hz" | "ia" | "ig" | "ii" | "ik" | "iu" | "ja" | "jv" | "ka" | "kj" | "kk" | "kl" | "ko" | "ks" | "ku" | "kv" | "lg" | "ln" | "lo" | "mi" | "nb" | "nd" | "nn" | "nv" | "ny" | "oc" | "oj" | "or" | "os" | "pi" | "qu" | "rm" | "rn" | "sq" | "su" | "sw" | "ta" | "te" | "ti" | "ts" | "ty" | "uk" | "ur" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "zh" | "zu" | null | undefined; natalSex?: "female" | "intersex" | "male" | null | undefined; name: string; mobilePhoneNumber?: string | null | undefined; maritalStatus?: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null | undefined; homePhoneNumber?: string | null | undefined; employmentStatus?: "full_time" | "part_time" | "unemployed" | null | undefined; emailAddress: string; educationGrade?: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; birthDate?: string | null | undefined; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ signUp: { authenticationToken: string | null; user: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { workPhoneNumber?: string | null | undefined; state?: string | null | undefined; selectedOrganization: string; postalCode?: string | null | undefined; password: string; naturalLanguageCode?: "ae" | "af" | "am" | "ar" | "as" | "az" | "ba" | "be" | "bg" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ch" | "co" | "cr" | "cu" | "cv" | "cy" | "de" | "dz" | "ee" | "es" | "et" | "fi" | "fj" | "fo" | "fr" | "ga" | "gd" | "gl" | "gn" | "gu" | "hr" | "ht" | "hu" | "id" | "ie" | "io" | "is" | "it" | "kg" | "ki" | "km" | "kn" | "kr" | "kw" | "ky" | "la" | "lb" | "li" | "lt" | "lu" | "lv" | "mg" | "mh" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "ne" | "ng" | "nl" | "no" | "nr" | "om" | "pa" | "pl" | "ps" | "pt" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "tg" | "th" | "tk" | "tl" | "tn" | "to" | "tr" | "tt" | "tw" | "ug" | "uz" | "ve" | "vi" | "za" | "aa" | "ab" | "ak" | "an" | "av" | "ay" | "ce" | "cs" | "da" | "dv" | "el" | "en" | "eo" | "eu" | "fa" | "ff" | "fy" | "gv" | "ha" | "he" | "hi" | "ho" | "hy" | "hz" | "ia" | "ig" | "ii" | "ik" | "iu" | "ja" | "jv" | "ka" | "kj" | "kk" | "kl" | "ko" | "ks" | "ku" | "kv" | "lg" | "ln" | "lo" | "mi" | "nb" | "nd" | "nn" | "nv" | "ny" | "oc" | "oj" | "or" | "os" | "pi" | "qu" | "rm" | "rn" | "sq" | "su" | "sw" | "ta" | "te" | "ti" | "ts" | "ty" | "uk" | "ur" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "zh" | "zu" | null | undefined; natalSex?: "female" | "intersex" | "male" | null | undefined; name: string; mobilePhoneNumber?: string | null | undefined; maritalStatus?: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null | undefined; homePhoneNumber?: string | null | undefined; employmentStatus?: "full_time" | "part_time" | "unemployed" | null | undefined; emailAddress: string; educationGrade?: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; birthDate?: string | null | undefined; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; "mutation Mutation_updateCurrentUser($input: MutationUpdateCurrentUserInput!) {\n updateCurrentUser(input: $input) {\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n id\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n}": - TadaDocumentNode<{ updateCurrentUser: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, { input: { workPhoneNumber?: string | null | undefined; state?: string | null | undefined; postalCode?: string | null | undefined; password?: string | null | undefined; naturalLanguageCode?: "ae" | "af" | "am" | "ar" | "as" | "az" | "ba" | "be" | "bg" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ch" | "co" | "cr" | "cu" | "cv" | "cy" | "de" | "dz" | "ee" | "es" | "et" | "fi" | "fj" | "fo" | "fr" | "ga" | "gd" | "gl" | "gn" | "gu" | "hr" | "ht" | "hu" | "id" | "ie" | "io" | "is" | "it" | "kg" | "ki" | "km" | "kn" | "kr" | "kw" | "ky" | "la" | "lb" | "li" | "lt" | "lu" | "lv" | "mg" | "mh" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "ne" | "ng" | "nl" | "no" | "nr" | "om" | "pa" | "pl" | "ps" | "pt" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "tg" | "th" | "tk" | "tl" | "tn" | "to" | "tr" | "tt" | "tw" | "ug" | "uz" | "ve" | "vi" | "za" | "aa" | "ab" | "ak" | "an" | "av" | "ay" | "ce" | "cs" | "da" | "dv" | "el" | "en" | "eo" | "eu" | "fa" | "ff" | "fy" | "gv" | "ha" | "he" | "hi" | "ho" | "hy" | "hz" | "ia" | "ig" | "ii" | "ik" | "iu" | "ja" | "jv" | "ka" | "kj" | "kk" | "kl" | "ko" | "ks" | "ku" | "kv" | "lg" | "ln" | "lo" | "mi" | "nb" | "nd" | "nn" | "nv" | "ny" | "oc" | "oj" | "or" | "os" | "pi" | "qu" | "rm" | "rn" | "sq" | "su" | "sw" | "ta" | "te" | "ti" | "ts" | "ty" | "uk" | "ur" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "zh" | "zu" | null | undefined; natalSex?: "female" | "intersex" | "male" | null | undefined; name?: string | null | undefined; mobilePhoneNumber?: string | null | undefined; maritalStatus?: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null | undefined; homePhoneNumber?: string | null | undefined; employmentStatus?: "full_time" | "part_time" | "unemployed" | null | undefined; emailAddress?: string | null | undefined; educationGrade?: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; birthDate?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ updateCurrentUser: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, { input: { workPhoneNumber?: string | null | undefined; state?: string | null | undefined; postalCode?: string | null | undefined; password?: string | null | undefined; naturalLanguageCode?: "ae" | "af" | "am" | "ar" | "as" | "az" | "ba" | "be" | "bg" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ch" | "co" | "cr" | "cu" | "cv" | "cy" | "de" | "dz" | "ee" | "es" | "et" | "fi" | "fj" | "fo" | "fr" | "ga" | "gd" | "gl" | "gn" | "gu" | "hr" | "ht" | "hu" | "id" | "ie" | "io" | "is" | "it" | "kg" | "ki" | "km" | "kn" | "kr" | "kw" | "ky" | "la" | "lb" | "li" | "lt" | "lu" | "lv" | "mg" | "mh" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "ne" | "ng" | "nl" | "no" | "nr" | "om" | "pa" | "pl" | "ps" | "pt" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "tg" | "th" | "tk" | "tl" | "tn" | "to" | "tr" | "tt" | "tw" | "ug" | "uz" | "ve" | "vi" | "za" | "aa" | "ab" | "ak" | "an" | "av" | "ay" | "ce" | "cs" | "da" | "dv" | "el" | "en" | "eo" | "eu" | "fa" | "ff" | "fy" | "gv" | "ha" | "he" | "hi" | "ho" | "hy" | "hz" | "ia" | "ig" | "ii" | "ik" | "iu" | "ja" | "jv" | "ka" | "kj" | "kk" | "kl" | "ko" | "ks" | "ku" | "kv" | "lg" | "ln" | "lo" | "mi" | "nb" | "nd" | "nn" | "nv" | "ny" | "oc" | "oj" | "or" | "os" | "pi" | "qu" | "rm" | "rn" | "sq" | "su" | "sw" | "ta" | "te" | "ti" | "ts" | "ty" | "uk" | "ur" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "zh" | "zu" | null | undefined; natalSex?: "female" | "intersex" | "male" | null | undefined; name?: string | null | undefined; mobilePhoneNumber?: string | null | undefined; maritalStatus?: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null | undefined; homePhoneNumber?: string | null | undefined; employmentStatus?: "full_time" | "part_time" | "unemployed" | null | undefined; emailAddress?: string | null | undefined; educationGrade?: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; birthDate?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; "mutation Mutation_updateUser($input: MutationUpdateUserInput!) {\n updateUser(input: $input) {\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n id\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n}": - TadaDocumentNode<{ updateUser: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, { input: { workPhoneNumber?: string | null | undefined; state?: string | null | undefined; role?: "administrator" | "regular" | null | undefined; postalCode?: string | null | undefined; password?: string | null | undefined; naturalLanguageCode?: "ae" | "af" | "am" | "ar" | "as" | "az" | "ba" | "be" | "bg" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ch" | "co" | "cr" | "cu" | "cv" | "cy" | "de" | "dz" | "ee" | "es" | "et" | "fi" | "fj" | "fo" | "fr" | "ga" | "gd" | "gl" | "gn" | "gu" | "hr" | "ht" | "hu" | "id" | "ie" | "io" | "is" | "it" | "kg" | "ki" | "km" | "kn" | "kr" | "kw" | "ky" | "la" | "lb" | "li" | "lt" | "lu" | "lv" | "mg" | "mh" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "ne" | "ng" | "nl" | "no" | "nr" | "om" | "pa" | "pl" | "ps" | "pt" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "tg" | "th" | "tk" | "tl" | "tn" | "to" | "tr" | "tt" | "tw" | "ug" | "uz" | "ve" | "vi" | "za" | "aa" | "ab" | "ak" | "an" | "av" | "ay" | "ce" | "cs" | "da" | "dv" | "el" | "en" | "eo" | "eu" | "fa" | "ff" | "fy" | "gv" | "ha" | "he" | "hi" | "ho" | "hy" | "hz" | "ia" | "ig" | "ii" | "ik" | "iu" | "ja" | "jv" | "ka" | "kj" | "kk" | "kl" | "ko" | "ks" | "ku" | "kv" | "lg" | "ln" | "lo" | "mi" | "nb" | "nd" | "nn" | "nv" | "ny" | "oc" | "oj" | "or" | "os" | "pi" | "qu" | "rm" | "rn" | "sq" | "su" | "sw" | "ta" | "te" | "ti" | "ts" | "ty" | "uk" | "ur" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "zh" | "zu" | null | undefined; natalSex?: "female" | "intersex" | "male" | null | undefined; name?: string | null | undefined; mobilePhoneNumber?: string | null | undefined; maritalStatus?: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null | undefined; isEmailAddressVerified?: boolean | null | undefined; id: string; homePhoneNumber?: string | null | undefined; employmentStatus?: "full_time" | "part_time" | "unemployed" | null | undefined; emailAddress?: string | null | undefined; educationGrade?: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; birthDate?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ updateUser: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, { input: { workPhoneNumber?: string | null | undefined; state?: string | null | undefined; role?: "administrator" | "regular" | null | undefined; postalCode?: string | null | undefined; password?: string | null | undefined; naturalLanguageCode?: "ae" | "af" | "am" | "ar" | "as" | "az" | "ba" | "be" | "bg" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ch" | "co" | "cr" | "cu" | "cv" | "cy" | "de" | "dz" | "ee" | "es" | "et" | "fi" | "fj" | "fo" | "fr" | "ga" | "gd" | "gl" | "gn" | "gu" | "hr" | "ht" | "hu" | "id" | "ie" | "io" | "is" | "it" | "kg" | "ki" | "km" | "kn" | "kr" | "kw" | "ky" | "la" | "lb" | "li" | "lt" | "lu" | "lv" | "mg" | "mh" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "ne" | "ng" | "nl" | "no" | "nr" | "om" | "pa" | "pl" | "ps" | "pt" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "tg" | "th" | "tk" | "tl" | "tn" | "to" | "tr" | "tt" | "tw" | "ug" | "uz" | "ve" | "vi" | "za" | "aa" | "ab" | "ak" | "an" | "av" | "ay" | "ce" | "cs" | "da" | "dv" | "el" | "en" | "eo" | "eu" | "fa" | "ff" | "fy" | "gv" | "ha" | "he" | "hi" | "ho" | "hy" | "hz" | "ia" | "ig" | "ii" | "ik" | "iu" | "ja" | "jv" | "ka" | "kj" | "kk" | "kl" | "ko" | "ks" | "ku" | "kv" | "lg" | "ln" | "lo" | "mi" | "nb" | "nd" | "nn" | "nv" | "ny" | "oc" | "oj" | "or" | "os" | "pi" | "qu" | "rm" | "rn" | "sq" | "su" | "sw" | "ta" | "te" | "ti" | "ts" | "ty" | "uk" | "ur" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "zh" | "zu" | null | undefined; natalSex?: "female" | "intersex" | "male" | null | undefined; name?: string | null | undefined; mobilePhoneNumber?: string | null | undefined; maritalStatus?: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null | undefined; isEmailAddressVerified?: boolean | null | undefined; id: string; homePhoneNumber?: string | null | undefined; employmentStatus?: "full_time" | "part_time" | "unemployed" | null | undefined; emailAddress?: string | null | undefined; educationGrade?: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; birthDate?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; "query Query_currentUser {\n currentUser {\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n id\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n}": - TadaDocumentNode<{ currentUser: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, {}, void>; + TadaDocumentNode<{ currentUser: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, {}, void>; "query Query_renewAuthenticationToken {\n renewAuthenticationToken\n}": - TadaDocumentNode<{ renewAuthenticationToken: string | null; }, {}, void>; + TadaDocumentNode<{ renewAuthenticationToken: string | null; }, {}, void>; "query Query_signIn($input: QuerySignInInput!) {\n signIn(input: $input) {\n authenticationToken\n user {\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n id\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n }\n}": - TadaDocumentNode<{ signIn: { authenticationToken: string | null; user: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { password: string; emailAddress: string; }; }, void>; + TadaDocumentNode<{ signIn: { authenticationToken: string | null; user: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { password: string; emailAddress: string; }; }, void>; "query Query_user($input: QueryUserInput!) {\n user(input: $input) {\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n id\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n}": - TadaDocumentNode<{ user: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ user: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; }, { input: { id: string; }; }, void>; "\n query Query_allUsers(\n $first: Int,\n $after: String,\n $last: Int,\n $before: String,\n $where: QueryAllUsersWhereInput\n ) {\n allUsers(\n first: $first,\n after: $after,\n last: $last,\n before: $before,\n where: $where\n ) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n id\n name\n emailAddress\n role\n createdAt\n isEmailAddressVerified\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n description\n educationGrade\n employmentStatus\n homePhoneNumber\n maritalStatus\n mobilePhoneNumber\n natalSex\n postalCode\n state\n workPhoneNumber\n }\n }\n }\n }\n": - TadaDocumentNode<{ allUsers: { pageInfo: { hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; endCursor: string | null; }; edges: ({ cursor: string; node: { id: string; name: string | null; emailAddress: string | null; role: "administrator" | "regular" | null; createdAt: string | null; isEmailAddressVerified: boolean | null; addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; state: string | null; workPhoneNumber: string | null; } | null; } | null)[] | null; } | null; }, { where?: { name?: string | null | undefined; } | null | undefined; before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; }, void>; + TadaDocumentNode<{ allUsers: { pageInfo: { hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; endCursor: string | null; }; edges: ({ cursor: string; node: { id: string; name: string | null; emailAddress: string | null; role: "administrator" | "regular" | null; createdAt: string | null; isEmailAddressVerified: boolean | null; addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; state: string | null; workPhoneNumber: string | null; } | null; } | null)[] | null; } | null; }, { where?: { name?: string | null | undefined; } | null | undefined; before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; }, void>; "query Query_user_creator($input: QueryUserInput!) {\n user(input: $input) {\n creator {\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n id\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n }\n}": - TadaDocumentNode<{ user: { creator: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ user: { creator: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { id: string; }; }, void>; "query Query_user_updatedAt($input: QueryUserInput!) {\n user(input: $input) {\n updatedAt\n }\n}": - TadaDocumentNode<{ user: { updatedAt: string | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ user: { updatedAt: string | null; } | null; }, { input: { id: string; }; }, void>; "query Query_user_updater($input: QueryUserInput!) {\n user(input: $input) {\n updater {\n addressLine1\n addressLine2\n birthDate\n city\n countryCode\n createdAt\n description\n educationGrade\n emailAddress\n employmentStatus\n homePhoneNumber\n id\n isEmailAddressVerified\n maritalStatus\n mobilePhoneNumber\n name\n natalSex\n postalCode\n role\n state\n workPhoneNumber\n }\n }\n}": - TadaDocumentNode<{ user: { updater: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ user: { updater: { addressLine1: string | null; addressLine2: string | null; birthDate: string | null; city: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; createdAt: string | null; description: string | null; educationGrade: "kg" | "grade_1" | "grade_2" | "grade_3" | "grade_4" | "grade_5" | "grade_6" | "grade_7" | "grade_8" | "grade_9" | "grade_10" | "grade_11" | "grade_12" | "graduate" | "no_grade" | "pre_kg" | null; emailAddress: string | null; employmentStatus: "full_time" | "part_time" | "unemployed" | null; homePhoneNumber: string | null; id: string; isEmailAddressVerified: boolean | null; maritalStatus: "divorced" | "engaged" | "married" | "seperated" | "single" | "widowed" | null; mobilePhoneNumber: string | null; name: string | null; natalSex: "female" | "intersex" | "male" | null; postalCode: string | null; role: "administrator" | "regular" | null; state: string | null; workPhoneNumber: string | null; } | null; } | null; }, { input: { id: string; }; }, void>; "query Query_fund($input: QueryFundInput!) {\n fund(input: $input) {\n id\n isTaxDeductible\n name\n }\n }": - TadaDocumentNode<{ fund: { id: string; isTaxDeductible: boolean | null; name: string | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ fund: { id: string; isTaxDeductible: boolean | null; name: string | null; } | null; }, { input: { id: string; }; }, void>; "query Query_fundCampaign($input: QueryFundCampaignInput!) {\n fundCampaign(input: $input) {\n id\n name\n goalAmount\n }\n }": - TadaDocumentNode<{ fundCampaign: { id: string; name: string | null; goalAmount: number | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ fundCampaign: { id: string; name: string | null; goalAmount: number | null; } | null; }, { input: { id: string; }; }, void>; "query Query_fundCampaignPledge($input: QueryFundCampaignPledgeInput!) {\n fundCampaignPledge(input: $input) {\n id\n note\n amount\n }\n}": - TadaDocumentNode<{ fundCampaignPledge: { id: string; note: string | null; amount: number | null; } | null; }, { input: { id: string; }; }, void>; - "query Query_getPledgesByUserId($userId: QueryUserInput! , $where: QueryPledgeWhereInput, $orderBy: QueryPledgeOrderByInput) {\n getPledgesByUserId(userId: $userId , where: $where , orderBy: $orderBy) {\n id\n note\n amount\n }\n}": - TadaDocumentNode<{ getPledgesByUserId: { id: string; note: string | null; amount: number | null; }[] | null; }, { orderBy?: "amount_ASC" | "amount_DESC" | "endDate_ASC" | "endDate_DESC" | null | undefined; where?: { name_contains?: string | null | undefined; firstName_contains?: string | null | undefined; } | null | undefined; userId: { id: string; }; }, void>; + TadaDocumentNode<{ fundCampaignPledge: { id: string; note: string | null; amount: number | null; } | null; }, { input: { id: string; }; }, void>; + "query Query_getPledgesByUserId($userId: QueryUserInput! , $where: QueryPledgeWhereInput, $orderBy: QueryPledgeOrderByInput) {\n getPledgesByUserId(userId: $userId , where: $where , orderBy: $orderBy) {\n id\n note\n amount\n campaign {\n endAt\n }\n }\n}": + TadaDocumentNode<{ getPledgesByUserId: { id: string; note: string | null; amount: number | null; campaign: { endAt: string | null; } | null; }[] | null; }, { orderBy?: "amount_ASC" | "amount_DESC" | "endDate_ASC" | "endDate_DESC" | null | undefined; where?: { name_contains?: string | null | undefined; firstName_contains?: string | null | undefined; } | null | undefined; userId: { id: string; }; }, void>; "mutation Mutation_createOrganization($input: MutationCreateOrganizationInput!) {\n createOrganization(input: $input) {\n id\n name\n countryCode\n isUserRegistrationRequired\n }\n }": - TadaDocumentNode<{ createOrganization: { id: string; name: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; isUserRegistrationRequired: boolean | null; } | null; }, { input: { state?: string | null | undefined; postalCode?: string | null | undefined; name: string; isUserRegistrationRequired?: boolean | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ createOrganization: { id: string; name: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; isUserRegistrationRequired: boolean | null; } | null; }, { input: { state?: string | null | undefined; postalCode?: string | null | undefined; name: string; isUserRegistrationRequired?: boolean | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; "mutation Mutation_createFund($input: MutationCreateFundInput!) {\n createFund(input: $input) {\n id\n name\n isTaxDeductible\n }\n }": - TadaDocumentNode<{ createFund: { id: string; name: string | null; isTaxDeductible: boolean | null; } | null; }, { input: { organizationId: string; name: string; isTaxDeductible: boolean; }; }, void>; + TadaDocumentNode<{ createFund: { id: string; name: string | null; isTaxDeductible: boolean | null; } | null; }, { input: { organizationId: string; name: string; isTaxDeductible: boolean; }; }, void>; "mutation Mutation_createFundCampaign($input: MutationCreateFundCampaignInput!) {\n createFundCampaign(input: $input) {\n id\n name\n goalAmount\n }\n }": - TadaDocumentNode<{ createFundCampaign: { id: string; name: string | null; goalAmount: number | null; } | null; }, { input: { startAt: string; name: string; goalAmount: number; fundId: string; endAt: string; currencyCode: "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLE" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VED" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWG"; }; }, void>; + TadaDocumentNode<{ createFundCampaign: { id: string; name: string | null; goalAmount: number | null; } | null; }, { input: { startAt: string; name: string; goalAmount: number; fundId: string; endAt: string; currencyCode: "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLE" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VED" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWG"; }; }, void>; "mutation Mutation_createFundCampaignPledge($input: MutationCreateFundCampaignPledgeInput!) {\n createFundCampaignPledge(input: $input) {\n id\n note\n amount\n }\n }": - TadaDocumentNode<{ createFundCampaignPledge: { id: string; note: string | null; amount: number | null; } | null; }, { input: { pledgerId: string; note?: string | null | undefined; campaignId: string; amount: number; }; }, void>; + TadaDocumentNode<{ createFundCampaignPledge: { id: string; note: string | null; amount: number | null; } | null; }, { input: { pledgerId: string; note?: string | null | undefined; campaignId: string; amount: number; }; }, void>; "mutation Mutation_createOrganizationMembership($input: MutationCreateOrganizationMembershipInput!) {\n createOrganizationMembership(input: $input) {\n id\n }\n }": - TadaDocumentNode<{ createOrganizationMembership: { id: string; } | null; }, { input: { role?: "administrator" | "regular" | null | undefined; organizationId: string; memberId: string; }; }, void>; + TadaDocumentNode<{ createOrganizationMembership: { id: string; } | null; }, { input: { role?: "administrator" | "regular" | null | undefined; organizationId: string; memberId: string; }; }, void>; "mutation Mutation_deleteFund($input: MutationDeleteFundInput!) {\n deleteFund(input: $input) {\n id\n name\n isTaxDeductible\n }\n}": - TadaDocumentNode<{ deleteFund: { id: string; name: string | null; isTaxDeductible: boolean | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deleteFund: { id: string; name: string | null; isTaxDeductible: boolean | null; } | null; }, { input: { id: string; }; }, void>; "mutation Mutation_deleteFundCampaign($input: MutationDeleteFundCampaignInput!) {\n deleteFundCampaign(input: $input) {\n id\n name\n goalAmount\n }\n }": - TadaDocumentNode<{ deleteFundCampaign: { id: string; name: string | null; goalAmount: number | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deleteFundCampaign: { id: string; name: string | null; goalAmount: number | null; } | null; }, { input: { id: string; }; }, void>; "mutation Mutation_deleteFundCampaignPledge($input: MutationDeleteFundCampaignPledgeInput!) {\n deleteFundCampaignPledge(input: $input) {\n id\n note\n amount\n }\n }": - TadaDocumentNode<{ deleteFundCampaignPledge: { id: string; note: string | null; amount: number | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deleteFundCampaignPledge: { id: string; note: string | null; amount: number | null; } | null; }, { input: { id: string; }; }, void>; "mutation Mutation_deleteOrganization($input: MutationDeleteOrganizationInput!) {\n deleteOrganization(input: $input) {\n id\n name\n countryCode\n }\n}": - TadaDocumentNode<{ deleteOrganization: { id: string; name: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deleteOrganization: { id: string; name: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; }, { input: { id: string; }; }, void>; "mutation Mutation_deleteOrganizationMembership($input: MutationDeleteOrganizationMembershipInput!) {\n deleteOrganizationMembership(input: $input) {\n id\n name\n countryCode\n }\n}": - TadaDocumentNode<{ deleteOrganizationMembership: { id: string; name: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; }, { input: { organizationId: string; memberId: string; }; }, void>; + TadaDocumentNode<{ deleteOrganizationMembership: { id: string; name: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; }, { input: { organizationId: string; memberId: string; }; }, void>; "query Query_post($input: QueryPostInput!) {\n post(input: $input) {\n id\n organization {\n countryCode\n }\n }\n}": - TadaDocumentNode<{ post: { id: string; organization: { countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ post: { id: string; organization: { countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; } | null; }, { input: { id: string; }; }, void>; "query Query_event($input: QueryEventInput!) {\n event(input: $input) {\n id\n name\n description\n startAt\n endAt\n creator {\n id\n name\n }\n organization {\n id\n countryCode\n }\n }\n}": - TadaDocumentNode<{ event: { id: string; name: string | null; description: string | null; startAt: string | null; endAt: string | null; creator: { id: string; name: string | null; } | null; organization: { id: string; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ event: { id: string; name: string | null; description: string | null; startAt: string | null; endAt: string | null; creator: { id: string; name: string | null; } | null; organization: { id: string; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; } | null; }, { input: { id: string; }; }, void>; "mutation Mutation_createEvent($input: MutationCreateEventInput!) {\n createEvent(input: $input) {\n id\n name\n description\n startAt\n endAt\n createdAt\n creator{\n id\n name\n }\n organization {\n id\n countryCode\n }\n }\n}": - TadaDocumentNode<{ createEvent: { id: string; name: string | null; description: string | null; startAt: string | null; endAt: string | null; createdAt: string | null; creator: { id: string; name: string | null; } | null; organization: { id: string; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; } | null; }, { input: { startAt: string; organizationId: string; name: string; endAt: string; description?: string | null | undefined; attachments?: unknown[] | null | undefined; }; }, void>; + TadaDocumentNode<{ createEvent: { id: string; name: string | null; description: string | null; startAt: string | null; endAt: string | null; createdAt: string | null; creator: { id: string; name: string | null; } | null; organization: { id: string; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; } | null; }, { input: { startAt: string; organizationId: string; name: string; endAt: string; description?: string | null | undefined; attachments?: unknown[] | null | undefined; }; }, void>; "mutation Mutation_deleteEvent($input: MutationDeleteEventInput!) {\n deleteEvent(input: $input) {\n id\n }\n}": - TadaDocumentNode<{ deleteEvent: { id: string; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deleteEvent: { id: string; } | null; }, { input: { id: string; }; }, void>; "mutation Mutation_updateEvent($input: MutationUpdateEventInput!) {\n updateEvent(input: $input) {\n id\n name\n description\n startAt\n endAt\n updatedAt\n organization {\n id\n countryCode\n }\n }\n}": - TadaDocumentNode<{ updateEvent: { id: string; name: string | null; description: string | null; startAt: string | null; endAt: string | null; updatedAt: string | null; organization: { id: string; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; } | null; }, { input: { startAt?: string | null | undefined; name?: string | null | undefined; id: string; endAt?: string | null | undefined; description?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ updateEvent: { id: string; name: string | null; description: string | null; startAt: string | null; endAt: string | null; updatedAt: string | null; organization: { id: string; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; } | null; }, { input: { startAt?: string | null | undefined; name?: string | null | undefined; id: string; endAt?: string | null | undefined; description?: string | null | undefined; }; }, void>; "\n query tag($input:QueryTagInput!) {\n tag(input: $input) {\n id\n name\n organization {\n id\n }\n createdAt\n }\n}": - TadaDocumentNode<{ tag: { id: string; name: string | null; organization: { id: string; } | null; createdAt: string | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ tag: { id: string; name: string | null; organization: { id: string; } | null; createdAt: string | null; } | null; }, { input: { id: string; }; }, void>; "\n mutation CreateTag($input:MutationCreateTagInput!) {\n createTag(input: $input) {\n id\n name\n createdAt\n organization{\n id\n name\n createdAt\n\n }\n }\n }": - TadaDocumentNode<{ createTag: { id: string; name: string | null; createdAt: string | null; organization: { id: string; name: string | null; createdAt: string | null; } | null; } | null; }, { input: { organizationId: string; name: string; folderId?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ createTag: { id: string; name: string | null; createdAt: string | null; organization: { id: string; name: string | null; createdAt: string | null; } | null; } | null; }, { input: { organizationId: string; name: string; folderId?: string | null | undefined; }; }, void>; "\n\tquery Query_organizations {\n\t\torganizations {\n\t\t\tid\n avatarURL\n name\n city\n state\n countryCode\n\t\t}\n\t}\n": - TadaDocumentNode<{ organizations: { id: string; avatarURL: string | null; name: string | null; city: string | null; state: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; }[] | null; }, {}, void>; + TadaDocumentNode<{ organizations: { id: string; avatarURL: string | null; name: string | null; city: string | null; state: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; }[] | null; }, {}, void>; "\n\tquery BlockedUsers(\n\t\t$organizationId: String!\n\t\t$first: Int\n\t\t$after: String\n\t\t$last: Int\n\t\t$before: String\n\t) {\n\t\torganization(input:{id: $organizationId}) {\n\t\t\tid\n\t\t\tblockedUsers(\n\t\t\t\tfirst: $first\n\t\t\t\tafter: $after\n\t\t\t\tlast: $last\n\t\t\t\tbefore: $before\n\t\t\t) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tname\n\t\t\t\t\t\trole\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\thasPreviousPage\n\t\t\t\t\tstartCursor\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n": - TadaDocumentNode<{ organization: { id: string; blockedUsers: { edges: ({ cursor: string; node: { id: string; name: string | null; role: "administrator" | "regular" | null; } | null; } | null)[] | null; pageInfo: { hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; endCursor: string | null; }; } | null; } | null; }, { before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; organizationId: string; }, void>; + TadaDocumentNode<{ organization: { id: string; blockedUsers: { edges: ({ cursor: string; node: { id: string; name: string | null; role: "administrator" | "regular" | null; } | null; } | null)[] | null; pageInfo: { hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; endCursor: string | null; }; } | null; } | null; }, { before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; organizationId: string; }, void>; "\n query Organization($input: QueryOrganizationInput!, $first: Int, $after: String,$last: Int, $before: String, $where: MembersWhereInput) {\n organization(input: $input) {\n id\n name\n members(first: $first, after: $after, last: $last, before: $before, where: $where) {\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n edges {\n cursor\n node {\n id\n name\n role\n }\n }\n }\n }\n }\n ": - TadaDocumentNode<{ organization: { id: string; name: string | null; members: { pageInfo: { endCursor: string | null; hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; }; edges: ({ cursor: string; node: { id: string; name: string | null; role: "administrator" | "regular" | null; } | null; } | null)[] | null; } | null; } | null; }, { where?: { role?: { notEqual?: "administrator" | "regular" | null | undefined; equal?: "administrator" | "regular" | null | undefined; } | null | undefined; } | null | undefined; before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; input: { id: string; }; }, void>; + TadaDocumentNode<{ organization: { id: string; name: string | null; members: { pageInfo: { endCursor: string | null; hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; }; edges: ({ cursor: string; node: { id: string; name: string | null; role: "administrator" | "regular" | null; } | null; } | null)[] | null; } | null; } | null; }, { where?: { role?: { notEqual?: "administrator" | "regular" | null | undefined; equal?: "administrator" | "regular" | null | undefined; } | null | undefined; } | null | undefined; before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; input: { id: string; }; }, void>; "query Query_agendaItem($input: QueryAgendaItemInput!) {\n agendaItem(input: $input) {\n id\n name\n description\n duration\n key\n type\n }\n}": - TadaDocumentNode<{ agendaItem: { id: string; name: string | null; description: string | null; duration: string | null; key: string | null; type: "general" | "note" | "scripture" | "song" | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ agendaItem: { id: string; name: string | null; description: string | null; duration: string | null; key: string | null; type: "general" | "note" | "scripture" | "song" | null; } | null; }, { input: { id: string; }; }, void>; "\n mutation Mutation_createAgendaFolder($input: MutationCreateAgendaFolderInput!) {\n createAgendaFolder(input: $input) {\n id\n name\n event {\n id\n }\n }\n }\n": - TadaDocumentNode<{ createAgendaFolder: { id: string; name: string | null; event: { id: string; } | null; } | null; }, { input: { parentFolderId?: string | null | undefined; name: string; isAgendaItemFolder: boolean; eventId: string; }; }, void>; + TadaDocumentNode<{ createAgendaFolder: { id: string; name: string | null; event: { id: string; } | null; } | null; }, { input: { parentFolderId?: string | null | undefined; name: string; isAgendaItemFolder: boolean; eventId: string; }; }, void>; "\n mutation Mutation_createAgendaItem($input: MutationCreateAgendaItemInput!) {\n createAgendaItem(input: $input) {\n id\n name\n description\n duration\n type\n }\n }\n": - TadaDocumentNode<{ createAgendaItem: { id: string; name: string | null; description: string | null; duration: string | null; type: "general" | "note" | "scripture" | "song" | null; } | null; }, { input: { type: "general" | "note" | "scripture" | "song"; name: string; key?: string | null | undefined; folderId: string; duration?: string | null | undefined; description?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ createAgendaItem: { id: string; name: string | null; description: string | null; duration: string | null; type: "general" | "note" | "scripture" | "song" | null; } | null; }, { input: { type: "general" | "note" | "scripture" | "song"; name: string; key?: string | null | undefined; folderId: string; duration?: string | null | undefined; description?: string | null | undefined; }; }, void>; "\n mutation Mutation_updateAgendaItem($input: MutationUpdateAgendaItemInput!) {\n updateAgendaItem(input: $input) {\n id\n name\n description\n duration\n type\n }\n }\n": - TadaDocumentNode<{ updateAgendaItem: { id: string; name: string | null; description: string | null; duration: string | null; type: "general" | "note" | "scripture" | "song" | null; } | null; }, { input: { name?: string | null | undefined; key?: string | null | undefined; id: string; folderId?: string | null | undefined; duration?: string | null | undefined; description?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ updateAgendaItem: { id: string; name: string | null; description: string | null; duration: string | null; type: "general" | "note" | "scripture" | "song" | null; } | null; }, { input: { name?: string | null | undefined; key?: string | null | undefined; id: string; folderId?: string | null | undefined; duration?: string | null | undefined; description?: string | null | undefined; }; }, void>; "\n mutation Mutation_deleteAgendaItem($input: MutationDeleteAgendaItemInput!) {\n deleteAgendaItem(input: $input) {\n id\n name\n }\n }\n": - TadaDocumentNode<{ deleteAgendaItem: { id: string; name: string | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deleteAgendaItem: { id: string; name: string | null; } | null; }, { input: { id: string; }; }, void>; "\n mutation Mutation_deletePost($input: MutationDeletePostInput!) {\n deletePost(input: $input) {\n id\n attachments {\n mimeType\n fileHash\n name\n objectName\n id\n }\n }\n }\n": - TadaDocumentNode<{ deletePost: { id: string; attachments: { mimeType: string | null; fileHash: string | null; name: string | null; objectName: string | null; id: string; }[] | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deletePost: { id: string; attachments: { mimeType: string | null; fileHash: string | null; name: string | null; objectName: string | null; id: string; }[] | null; } | null; }, { input: { id: string; }; }, void>; "\n mutation Mutation_createPost($input: MutationCreatePostInput!) {\n createPost(input: $input) {\n id\n caption\n pinnedAt\n organization {\n id\n }\n attachments {\n mimeType\n objectName\n fileHash\n name\n }\n }\n }\n": - TadaDocumentNode<{ createPost: { id: string; caption: string | null; pinnedAt: string | null; organization: { id: string; } | null; attachments: { mimeType: string | null; objectName: string | null; fileHash: string | null; name: string | null; }[] | null; } | null; }, { input: { organizationId: string; isPinned?: boolean | null | undefined; caption: string; attachments: { objectName: string; name: string; mimetype: "IMAGE_AVIF" | "IMAGE_JPEG" | "IMAGE_PNG" | "IMAGE_WEBP" | "VIDEO_MP4" | "VIDEO_WEBM"; fileHash: string; }[]; }; }, void>; + TadaDocumentNode<{ createPost: { id: string; caption: string | null; pinnedAt: string | null; organization: { id: string; } | null; attachments: { mimeType: string | null; objectName: string | null; fileHash: string | null; name: string | null; }[] | null; } | null; }, { input: { organizationId: string; isPinned?: boolean | null | undefined; caption: string; attachments: { objectName: string; name: string; mimetype: "IMAGE_AVIF" | "IMAGE_JPEG" | "IMAGE_PNG" | "IMAGE_WEBP" | "VIDEO_MP4" | "VIDEO_WEBM"; fileHash: string; }[]; }; }, void>; "\n mutation Mutation_createPresignedUrl($input: MutationCreatePresignedUrlInput!) {\n createPresignedUrl(input: $input) {\n presignedUrl\n objectName\n requiresUpload\n }\n }\n": - TadaDocumentNode<{ createPresignedUrl: { presignedUrl: string | null; objectName: string | null; requiresUpload: boolean | null; } | null; }, { input: { organizationId: string; objectName?: string | null | undefined; fileName: string; fileHash: string; }; }, void>; + TadaDocumentNode<{ createPresignedUrl: { presignedUrl: string | null; objectName: string | null; requiresUpload: boolean | null; } | null; }, { input: { organizationId: string; objectName?: string | null | undefined; fileName: string; fileHash: string; }; }, void>; "\n mutation Mutation_createGetfileUrl($input: MutationCreateGetfileUrlInput!) {\n createGetfileUrl(input: $input) {\n presignedUrl\n }\n }\n": - TadaDocumentNode<{ createGetfileUrl: { presignedUrl: string | null; } | null; }, { input: { organizationId: string; objectName?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ createGetfileUrl: { presignedUrl: string | null; } | null; }, { input: { organizationId: string; objectName?: string | null | undefined; }; }, void>; "mutation Mutation_blockUser($organizationId: ID!, $userId: ID!) {\n blockUser(organizationId: $organizationId, userId: $userId)\n}": - TadaDocumentNode<{ blockUser: boolean | null; }, { userId: string; organizationId: string; }, void>; + TadaDocumentNode<{ blockUser: boolean | null; }, { userId: string; organizationId: string; }, void>; "mutation Mutation_unblockUser($organizationId: ID!, $userId: ID!) {\n unblockUser(organizationId: $organizationId, userId: $userId)\n}": - TadaDocumentNode<{ unblockUser: boolean | null; }, { userId: string; organizationId: string; }, void>; + TadaDocumentNode<{ unblockUser: boolean | null; }, { userId: string; organizationId: string; }, void>; "\n mutation Mutation_updatePost($input: MutationUpdatePostInput!) {\n updatePost(input: $input) {\n id\n pinnedAt\n caption\n attachments {\n mimeType \n fileHash\n name\n objectName \n id\n }\n }\n }\n": - TadaDocumentNode<{ updatePost: { id: string; pinnedAt: string | null; caption: string | null; attachments: { mimeType: string | null; fileHash: string | null; name: string | null; objectName: string | null; id: string; }[] | null; } | null; }, { input: { isPinned?: boolean | null | undefined; id: string; caption?: string | null | undefined; attachments?: { objectName: string; name: string; mimetype: "IMAGE_AVIF" | "IMAGE_JPEG" | "IMAGE_PNG" | "IMAGE_WEBP" | "VIDEO_MP4" | "VIDEO_WEBM"; fileHash: string; }[] | null | undefined; }; }, void>; + TadaDocumentNode<{ updatePost: { id: string; pinnedAt: string | null; caption: string | null; attachments: { mimeType: string | null; fileHash: string | null; name: string | null; objectName: string | null; id: string; }[] | null; } | null; }, { input: { isPinned?: boolean | null | undefined; id: string; caption?: string | null | undefined; attachments?: { objectName: string; name: string; mimetype: "IMAGE_AVIF" | "IMAGE_JPEG" | "IMAGE_PNG" | "IMAGE_WEBP" | "VIDEO_MP4" | "VIDEO_WEBM"; fileHash: string; }[] | null | undefined; }; }, void>; "\n mutation Mutation_createChat($input: MutationCreateChatInput!) {\n createChat(input: $input) {\n id\n name\n }\n }\n": - TadaDocumentNode<{ createChat: { id: string; name: string | null; } | null; }, { input: { organizationId: string; name: string; description?: string | null | undefined; avatar?: unknown; }; }, void>; + TadaDocumentNode<{ createChat: { id: string; name: string | null; } | null; }, { input: { organizationId: string; name: string; description?: string | null | undefined; avatar?: unknown; }; }, void>; "\n mutation Mutation_createChatMessage($input: MutationCreateChatMessageInput!) {\n createChatMessage(input: $input) {\n id\n body\n createdAt\n updatedAt\n parentMessage {\n id\n }\n chat {\n id\n name\n createdAt\n creator {\n id\n name\n }\n }\n creator {\n id\n name\n }\n }\n}\n": - TadaDocumentNode<{ createChatMessage: { id: string; body: string | null; createdAt: string | null; updatedAt: string | null; parentMessage: { id: string; } | null; chat: { id: string; name: string | null; createdAt: string | null; creator: { id: string; name: string | null; } | null; } | null; creator: { id: string; name: string | null; } | null; } | null; }, { input: { parentMessageId?: string | null | undefined; chatId: string; body: string; }; }, void>; + TadaDocumentNode<{ createChatMessage: { id: string; body: string | null; createdAt: string | null; updatedAt: string | null; parentMessage: { id: string; } | null; chat: { id: string; name: string | null; createdAt: string | null; creator: { id: string; name: string | null; } | null; } | null; creator: { id: string; name: string | null; } | null; } | null; }, { input: { parentMessageId?: string | null | undefined; chatId: string; body: string; }; }, void>; "\n mutation Mutation_updateChatMessage($input: MutationUpdateChatMessageInput!) {\n updateChatMessage(input: $input) {\n id\n body\n createdAt\n updatedAt\n parentMessage {\n id\n }\n chat {\n id\n name\n createdAt\n updatedAt\n creator {\n id\n name\n }\n }\n creator {\n id\n name\n }\n }\n}\n": - TadaDocumentNode<{ updateChatMessage: { id: string; body: string | null; createdAt: string | null; updatedAt: string | null; parentMessage: { id: string; } | null; chat: { id: string; name: string | null; createdAt: string | null; updatedAt: string | null; creator: { id: string; name: string | null; } | null; } | null; creator: { id: string; name: string | null; } | null; } | null; }, { input: { id: string; body: string; }; }, void>; + TadaDocumentNode<{ updateChatMessage: { id: string; body: string | null; createdAt: string | null; updatedAt: string | null; parentMessage: { id: string; } | null; chat: { id: string; name: string | null; createdAt: string | null; updatedAt: string | null; creator: { id: string; name: string | null; } | null; } | null; creator: { id: string; name: string | null; } | null; } | null; }, { input: { id: string; body: string; }; }, void>; "\n mutation Mutation_createChatMembership($input: MutationCreateChatMembershipInput!) {\n createChatMembership(input: $input) {\n id\n createdAt\n updatedAt\n creator {\n id\n name\n }\n }\n}\n": - TadaDocumentNode<{ createChatMembership: { id: string; createdAt: string | null; updatedAt: string | null; creator: { id: string; name: string | null; } | null; } | null; }, { input: { role?: "administrator" | "regular" | null | undefined; memberId: string; chatId: string; }; }, void>; + TadaDocumentNode<{ createChatMembership: { id: string; createdAt: string | null; updatedAt: string | null; creator: { id: string; name: string | null; } | null; } | null; }, { input: { role?: "administrator" | "regular" | null | undefined; memberId: string; chatId: string; }; }, void>; "\n mutation Mutation_joinPublicOrganization($input: MutationJoinPublicOrganizationInput!) {\n joinPublicOrganization(input: $input) {\n memberId\n organizationId\n role\n creatorId\n }\n }\n": - TadaDocumentNode<{ joinPublicOrganization: { memberId: string | null; organizationId: string | null; role: string | null; creatorId: string | null; } | null; }, { input: { organizationId: string; }; }, void>; + TadaDocumentNode<{ joinPublicOrganization: { memberId: string | null; organizationId: string | null; role: string | null; creatorId: string | null; } | null; }, { input: { organizationId: string; }; }, void>; "\n mutation CreateActionItem($input: CreateActionItemInput!) {\n createActionItem(input: $input) {\n id\n categoryId\n assigneeId\n assignedAt\n completionAt\n preCompletionNotes\n postCompletionNotes\n isCompleted\n eventId\n organizationId\n creatorId\n updaterId\n updatedAt\n }\n }\n": - TadaDocumentNode<{ createActionItem: { id: string | null; categoryId: string | null; assigneeId: string | null; assignedAt: string | null; completionAt: string | null; preCompletionNotes: string | null; postCompletionNotes: string | null; isCompleted: boolean | null; eventId: string | null; organizationId: string | null; creatorId: string | null; updaterId: string | null; updatedAt: string | null; } | null; }, { input: { preCompletionNotes?: string | null | undefined; organizationId: string; eventId?: string | null | undefined; categoryId: string; assigneeId: string; assignedAt?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ createActionItem: { id: string | null; categoryId: string | null; assigneeId: string | null; assignedAt: string | null; completionAt: string | null; preCompletionNotes: string | null; postCompletionNotes: string | null; isCompleted: boolean | null; eventId: string | null; organizationId: string | null; creatorId: string | null; updaterId: string | null; updatedAt: string | null; } | null; }, { input: { preCompletionNotes?: string | null | undefined; organizationId: string; eventId?: string | null | undefined; categoryId: string; assigneeId: string; assignedAt?: string | null | undefined; }; }, void>; "\n query EventsByOrganizationId($input: EventsByOrganizationIdInput!) {\n eventsByOrganizationId(input: $input) {\n id\n name\n description\n }\n }\n": - TadaDocumentNode<{ eventsByOrganizationId: { id: string; name: string | null; description: string | null; }[] | null; }, { input: { organizationId: string; }; }, void>; + TadaDocumentNode<{ eventsByOrganizationId: { id: string; name: string | null; description: string | null; }[] | null; }, { input: { organizationId: string; }; }, void>; "\n mutation UpdateActionItem($input: MutationUpdateActionItemInput!) {\n updateActionItem(input: $input) {\n id\n isCompleted\n postCompletionNotes\n preCompletionNotes\n categoryId\n assigneeId\n updaterId\n }\n }\n": - TadaDocumentNode<{ updateActionItem: { id: string | null; isCompleted: boolean | null; postCompletionNotes: string | null; preCompletionNotes: string | null; categoryId: string | null; assigneeId: string | null; updaterId: string | null; } | null; }, { input: { preCompletionNotes?: string | null | undefined; postCompletionNotes?: string | null | undefined; isCompleted: boolean; id: string; categoryId?: string | null | undefined; assigneeId?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ updateActionItem: { id: string | null; isCompleted: boolean | null; postCompletionNotes: string | null; preCompletionNotes: string | null; categoryId: string | null; assigneeId: string | null; updaterId: string | null; } | null; }, { input: { preCompletionNotes?: string | null | undefined; postCompletionNotes?: string | null | undefined; isCompleted: boolean; id: string; categoryId?: string | null | undefined; assigneeId?: string | null | undefined; }; }, void>; "\n mutation DeleteActionItem($input: MutationDeleteActionItemInput!) {\n deleteActionItem(input: $input) {\n id\n isCompleted\n categoryId\n assigneeId\n organizationId\n createdAt\n updatedAt\n postCompletionNotes\n preCompletionNotes\n }\n }\n ": - TadaDocumentNode<{ deleteActionItem: { id: string | null; isCompleted: boolean | null; categoryId: string | null; assigneeId: string | null; organizationId: string | null; createdAt: string | null; updatedAt: string | null; postCompletionNotes: string | null; preCompletionNotes: string | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deleteActionItem: { id: string | null; isCompleted: boolean | null; categoryId: string | null; assigneeId: string | null; organizationId: string | null; createdAt: string | null; updatedAt: string | null; postCompletionNotes: string | null; preCompletionNotes: string | null; } | null; }, { input: { id: string; }; }, void>; "\n query FetchActionCategoriesByOrganization($input: QueryActionCategoriesByOrganizationInput!) {\n actionCategoriesByOrganization(input: $input) {\n id\n name\n organizationId\n creatorId\n isDisabled\n createdAt\n updatedAt\n }\n }\n": - TadaDocumentNode<{ actionCategoriesByOrganization: { id: string | null; name: string | null; organizationId: string | null; creatorId: string | null; isDisabled: boolean | null; createdAt: string | null; updatedAt: string | null; }[] | null; }, { input: { organizationId: string; }; }, void>; + TadaDocumentNode<{ actionCategoriesByOrganization: { id: string | null; name: string | null; organizationId: string | null; creatorId: string | null; isDisabled: boolean | null; createdAt: string | null; updatedAt: string | null; }[] | null; }, { input: { organizationId: string; }; }, void>; "\n query eventsByIds($input: QueryEventsByIdsInput!) {\n eventsByIds(input: $input) {\n id\n name\n description\n startAt\n endAt\n }\n }\n": - TadaDocumentNode<{ eventsByIds: { id: string; name: string | null; description: string | null; startAt: string | null; endAt: string | null; }[] | null; }, { input: { ids: string[]; }; }, void>; + TadaDocumentNode<{ eventsByIds: { id: string; name: string | null; description: string | null; startAt: string | null; endAt: string | null; }[] | null; }, { input: { ids: string[]; }; }, void>; "\n query UsersByOrganizationId($organizationId: ID!) {\n usersByOrganizationId(organizationId: $organizationId) {\n id\n name\n emailAddress\n }\n }\n": - TadaDocumentNode<{ usersByOrganizationId: { id: string; name: string | null; emailAddress: string | null; }[] | null; }, { organizationId: string; }, void>; + TadaDocumentNode<{ usersByOrganizationId: { id: string; name: string | null; emailAddress: string | null; }[] | null; }, { organizationId: string; }, void>; "\n query UsersByIds($input: UsersByIdsInput!) {\n usersByIds(input: $input) {\n id\n name\n emailAddress\n }\n }\n": - TadaDocumentNode<{ usersByIds: { id: string; name: string | null; emailAddress: string | null; }[] | null; }, { input: { ids: string[]; }; }, void>; + TadaDocumentNode<{ usersByIds: { id: string; name: string | null; emailAddress: string | null; }[] | null; }, { input: { ids: string[]; }; }, void>; "\n query EventsByOrganizationId($input: EventsByOrganizationIdInput!) {\n eventsByOrganizationId(input: $input) {\n id\n description\n startAt\n endAt\n organization {\n id\n }\n attachments {\n mimeType\n }\n }\n }\n": - TadaDocumentNode<{ eventsByOrganizationId: { id: string; description: string | null; startAt: string | null; endAt: string | null; organization: { id: string; } | null; attachments: { mimeType: string | null; }[] | null; }[] | null; }, { input: { organizationId: string; }; }, void>; + TadaDocumentNode<{ eventsByOrganizationId: { id: string; description: string | null; startAt: string | null; endAt: string | null; organization: { id: string; } | null; attachments: { mimeType: string | null; }[] | null; }[] | null; }, { input: { organizationId: string; }; }, void>; "\n mutation Mutation_sendMembershipRequest($input: MutationSendMembershipRequestInput!) {\n sendMembershipRequest(input: $input) {\n organizationId\n userId\n status\n createdAt\n membershipRequestId\n }\n }\n": - TadaDocumentNode<{ sendMembershipRequest: { organizationId: string | null; userId: string | null; status: "pending" | "approved" | "rejected" | null; createdAt: string | null; membershipRequestId: string | null; } | null; }, { input: { organizationId: string; }; }, void>; + TadaDocumentNode<{ sendMembershipRequest: { organizationId: string | null; userId: string | null; status: "pending" | "approved" | "rejected" | null; createdAt: string | null; membershipRequestId: string | null; } | null; }, { input: { organizationId: string; }; }, void>; "\n mutation Mutation_acceptMembershipRequest($input: MutationAcceptMembershipRequestInput!) {\n acceptMembershipRequest(input: $input) {\n success\n message\n }\n }\n": - TadaDocumentNode<{ acceptMembershipRequest: { success: boolean | null; message: string | null; } | null; }, { input: { membershipRequestId: string; }; }, void>; + TadaDocumentNode<{ acceptMembershipRequest: { success: boolean | null; message: string | null; } | null; }, { input: { membershipRequestId: string; }; }, void>; "\n mutation Mutation_rejectMembershipRequest($input: MutationRejectMembershipRequestInput!) {\n rejectMembershipRequest(input: $input) {\n success\n message\n }\n }\n": - TadaDocumentNode<{ rejectMembershipRequest: { success: boolean | null; message: string | null; } | null; }, { input: { membershipRequestId: string; }; }, void>; - "\n query Query_hasUserVoted($input: QueryHasUserVotedInput!) {\n hasUserVoted(input: $input)\n {\n type\n }\n }\n": - TadaDocumentNode<{ hasUserVoted: { type: "down_vote" | "up_vote"; } | null; }, { input: { postId: string; }; }, void>; + TadaDocumentNode<{ rejectMembershipRequest: { success: boolean | null; message: string | null; } | null; }, { input: { membershipRequestId: string; }; }, void>; + "\n query Query_hasUserVoted($input: QueryHasUserVotedInput!) {\n hasUserVoted(input: $input)\n {\n voteType\n hasVoted\n }\n }\n": + TadaDocumentNode<{ hasUserVoted: { voteType: "down_vote" | "up_vote" | null; hasVoted: boolean; } | null; }, { input: { postId: string; }; }, void>; "\n mutation Mutation_createPostVote($input:MutationCreatePostVoteInput!){\n createPostVote(input : $input){\n id\n caption\n }\n }": - TadaDocumentNode<{ createPostVote: { id: string; caption: string | null; } | null; }, { input: { type: "down_vote" | "up_vote"; postId: string; }; }, void>; + TadaDocumentNode<{ createPostVote: { id: string; caption: string | null; } | null; }, { input: { type: "down_vote" | "up_vote"; postId: string; }; }, void>; "mutation Mutation_createOrganization($input: MutationCreateOrganizationInput!) {\n createOrganization(input: $input) {\n id\n name\n countryCode\n }\n }": - TadaDocumentNode<{ createOrganization: { id: string; name: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; }, { input: { state?: string | null | undefined; postalCode?: string | null | undefined; name: string; isUserRegistrationRequired?: boolean | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ createOrganization: { id: string; name: string | null; countryCode: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null; } | null; }, { input: { state?: string | null | undefined; postalCode?: string | null | undefined; name: string; isUserRegistrationRequired?: boolean | null | undefined; description?: string | null | undefined; countryCode?: "at" | "pg" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "ao" | "aq" | "ar" | "as" | "au" | "aw" | "ax" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bl" | "bm" | "bn" | "bo" | "bq" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cw" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gg" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "im" | "in" | "io" | "iq" | "ir" | "is" | "it" | "je" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mf" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "ph" | "pk" | "pl" | "pm" | "pn" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "ss" | "st" | "sv" | "sx" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tl" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw" | null | undefined; city?: string | null | undefined; avatar?: unknown; addressLine2?: string | null | undefined; addressLine1?: string | null | undefined; }; }, void>; "\n query Query_organization($input: QueryOrganizationInput!, $first: Int, $after: String, $last: Int, $before: String) {\n organization(input: $input) {\n id\n name\n members(first: $first, after: $after, last: $last, before: $before) {\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n edges {\n cursor\n node {\n id\n name\n emailAddress\n role\n }\n }\n }\n blockedUsers(first: $first, after: $after, last: $last, before: $before) {\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n edges {\n cursor\n node {\n id\n }\n }\n }\n }\n }\n ": - TadaDocumentNode<{ organization: { id: string; name: string | null; members: { pageInfo: { endCursor: string | null; hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; }; edges: ({ cursor: string; node: { id: string; name: string | null; emailAddress: string | null; role: "administrator" | "regular" | null; } | null; } | null)[] | null; } | null; blockedUsers: { pageInfo: { endCursor: string | null; hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; }; edges: ({ cursor: string; node: { id: string; } | null; } | null)[] | null; } | null; } | null; }, { before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; input: { id: string; }; }, void>; + TadaDocumentNode<{ organization: { id: string; name: string | null; members: { pageInfo: { endCursor: string | null; hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; }; edges: ({ cursor: string; node: { id: string; name: string | null; emailAddress: string | null; role: "administrator" | "regular" | null; } | null; } | null)[] | null; } | null; blockedUsers: { pageInfo: { endCursor: string | null; hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; }; edges: ({ cursor: string; node: { id: string; } | null; } | null)[] | null; } | null; } | null; }, { before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; input: { id: string; }; }, void>; "\n mutation Mutation_deletePost($input: MutationDeletePostInput!) {\n deletePost(input: $input) {\n id\n attachments {\n mimeType\n }\n }\n }\n": - TadaDocumentNode<{ deletePost: { id: string; attachments: { mimeType: string | null; }[] | null; } | null; }, { input: { id: string; }; }, void>; + TadaDocumentNode<{ deletePost: { id: string; attachments: { mimeType: string | null; }[] | null; } | null; }, { input: { id: string; }; }, void>; "\n query BlockedUsers(\n $organizationId: String!\n $first: Int\n $after: String\n $last: Int\n $before: String\n ) {\n organization(input:{id: $organizationId}) {\n id\n blockedUsers(\n first: $first\n after: $after\n last: $last\n before: $before\n ) {\n edges {\n cursor\n node {\n id\n name\n role\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n": - TadaDocumentNode<{ organization: { id: string; blockedUsers: { edges: ({ cursor: string; node: { id: string; name: string | null; role: "administrator" | "regular" | null; } | null; } | null)[] | null; pageInfo: { hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; endCursor: string | null; }; } | null; } | null; }, { before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; organizationId: string; }, void>; + TadaDocumentNode<{ organization: { id: string; blockedUsers: { edges: ({ cursor: string; node: { id: string; name: string | null; role: "administrator" | "regular" | null; } | null; } | null)[] | null; pageInfo: { hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; endCursor: string | null; }; } | null; } | null; }, { before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; organizationId: string; }, void>; + "\n query OrganizationAdvertisements(\n $id: String!\n $first: Int\n $last: Int\n $after: String\n $before: String\n $where: AdvertisementWhereInput\n ) {\n organization(input: { id: $id }) {\n advertisements(\n first: $first\n last: $last\n after: $after\n before: $before\n where: $where\n ) {\n edges {\n node {\n createdAt\n description\n organization {\n id\n }\n endAt\n id\n name\n startAt\n type\n attachments {\n mimeType\n url\n }\n }\n }\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n }\n }\n }\n": + TadaDocumentNode<{ organization: { advertisements: { edges: ({ node: { createdAt: string | null; description: string | null; organization: { id: string; } | null; endAt: string | null; id: string; name: string | null; startAt: string | null; type: "banner" | "menu" | "pop_up" | null; attachments: { mimeType: string | null; url: string | null; }[] | null; } | null; } | null)[] | null; pageInfo: { startCursor: string | null; endCursor: string | null; hasNextPage: boolean; hasPreviousPage: boolean; }; } | null; } | null; }, { where?: { isCompleted?: boolean | null | undefined; } | null | undefined; before?: string | null | undefined; after?: string | null | undefined; last?: number | null | undefined; first?: number | null | undefined; id: string; }, void>; + "\n mutation Mutation_createAd($input: MutationCreateAdvertisementInput!) {\n createAdvertisement(input: $input) {\n id\n }\n }\n": + TadaDocumentNode<{ createAdvertisement: { id: string; } | null; }, { input: { type: "banner" | "menu" | "pop_up"; startAt: string; organizationId: string; name: string; endAt: string; description?: string | null | undefined; attachments?: unknown[] | null | undefined; }; }, void>; } } diff --git a/test/graphql/types/gql.tada.d.ts b/test/graphql/types/gql.tada.d.ts index 04c7dadd8a4..406f5b49c60 100644 --- a/test/graphql/types/gql.tada.d.ts +++ b/test/graphql/types/gql.tada.d.ts @@ -8,6 +8,7 @@ export type introspection_types = { 'Advertisement': { kind: 'OBJECT'; name: 'Advertisement'; fields: { 'attachments': { name: 'attachments'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AdvertisementAttachment'; ofType: null; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'creator': { name: 'creator'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'endAt': { name: 'endAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'organization': { name: 'organization'; type: { kind: 'OBJECT'; name: 'Organization'; ofType: null; } }; 'startAt': { name: 'startAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'ENUM'; name: 'AdvertisementType'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'updater': { name: 'updater'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'AdvertisementAttachment': { kind: 'OBJECT'; name: 'AdvertisementAttachment'; fields: { 'mimeType': { name: 'mimeType'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'url': { name: 'url'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'AdvertisementType': { name: 'AdvertisementType'; enumValues: 'banner' | 'menu' | 'pop_up'; }; + 'AdvertisementWhereInput': { kind: 'INPUT_OBJECT'; name: 'AdvertisementWhereInput'; isOneOf: false; inputFields: [{ name: 'isCompleted'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; 'AgendaFolder': { kind: 'OBJECT'; name: 'AgendaFolder'; fields: { 'childFolders': { name: 'childFolders'; type: { kind: 'OBJECT'; name: 'AgendaFolderChildFoldersConnection'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'creator': { name: 'creator'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'event': { name: 'event'; type: { kind: 'OBJECT'; name: 'Event'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isAgendaItemFolder': { name: 'isAgendaItemFolder'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'items': { name: 'items'; type: { kind: 'OBJECT'; name: 'AgendaFolderItemsConnection'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'parentFolder': { name: 'parentFolder'; type: { kind: 'OBJECT'; name: 'AgendaFolder'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'updater': { name: 'updater'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'AgendaFolderChildFoldersConnection': { kind: 'OBJECT'; name: 'AgendaFolderChildFoldersConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'LIST'; name: never; ofType: { kind: 'OBJECT'; name: 'AgendaFolderChildFoldersConnectionEdge'; ofType: null; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; }; }; 'AgendaFolderChildFoldersConnectionEdge': { kind: 'OBJECT'; name: 'AgendaFolderChildFoldersConnectionEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'OBJECT'; name: 'AgendaFolder'; ofType: null; } }; }; }; @@ -57,7 +58,7 @@ export type introspection_types = { 'FundCampaignsConnectionEdge': { kind: 'OBJECT'; name: 'FundCampaignsConnectionEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'OBJECT'; name: 'FundCampaign'; ofType: null; } }; }; }; 'GetPostsByOrgInput': { kind: 'INPUT_OBJECT'; name: 'GetPostsByOrgInput'; isOneOf: false; inputFields: [{ name: 'organizationId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'sortOrder'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'GetUrlResponse': { kind: 'OBJECT'; name: 'GetUrlResponse'; fields: { 'presignedUrl': { name: 'presignedUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'HasUserVoted': { kind: 'OBJECT'; name: 'HasUserVoted'; fields: { 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PostVoteType'; ofType: null; }; } }; }; }; + 'HasUserVoted': { kind: 'OBJECT'; name: 'HasUserVoted'; fields: { 'hasVoted': { name: 'hasVoted'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'voteType': { name: 'voteType'; type: { kind: 'ENUM'; name: 'PostVoteType'; ofType: null; } }; }; }; 'ID': unknown; 'Int': unknown; 'Iso3166Alpha2CountryCode': { name: 'Iso3166Alpha2CountryCode'; enumValues: 'ad' | 'ae' | 'af' | 'ag' | 'ai' | 'al' | 'am' | 'ao' | 'aq' | 'ar' | 'as' | 'at' | 'au' | 'aw' | 'ax' | 'az' | 'ba' | 'bb' | 'bd' | 'be' | 'bf' | 'bg' | 'bh' | 'bi' | 'bj' | 'bl' | 'bm' | 'bn' | 'bo' | 'bq' | 'br' | 'bs' | 'bt' | 'bv' | 'bw' | 'by' | 'bz' | 'ca' | 'cc' | 'cd' | 'cf' | 'cg' | 'ch' | 'ci' | 'ck' | 'cl' | 'cm' | 'cn' | 'co' | 'cr' | 'cu' | 'cv' | 'cw' | 'cx' | 'cy' | 'cz' | 'de' | 'dj' | 'dk' | 'dm' | 'do' | 'dz' | 'ec' | 'ee' | 'eg' | 'eh' | 'er' | 'es' | 'et' | 'fi' | 'fj' | 'fk' | 'fm' | 'fo' | 'fr' | 'ga' | 'gb' | 'gd' | 'ge' | 'gf' | 'gg' | 'gh' | 'gi' | 'gl' | 'gm' | 'gn' | 'gp' | 'gq' | 'gr' | 'gs' | 'gt' | 'gu' | 'gw' | 'gy' | 'hk' | 'hm' | 'hn' | 'hr' | 'ht' | 'hu' | 'id' | 'ie' | 'il' | 'im' | 'in' | 'io' | 'iq' | 'ir' | 'is' | 'it' | 'je' | 'jm' | 'jo' | 'jp' | 'ke' | 'kg' | 'kh' | 'ki' | 'km' | 'kn' | 'kp' | 'kr' | 'kw' | 'ky' | 'kz' | 'la' | 'lb' | 'lc' | 'li' | 'lk' | 'lr' | 'ls' | 'lt' | 'lu' | 'lv' | 'ly' | 'ma' | 'mc' | 'md' | 'me' | 'mf' | 'mg' | 'mh' | 'mk' | 'ml' | 'mm' | 'mn' | 'mo' | 'mp' | 'mq' | 'mr' | 'ms' | 'mt' | 'mu' | 'mv' | 'mw' | 'mx' | 'my' | 'mz' | 'na' | 'nc' | 'ne' | 'nf' | 'ng' | 'ni' | 'nl' | 'no' | 'np' | 'nr' | 'nu' | 'nz' | 'om' | 'pa' | 'pe' | 'pf' | 'pg' | 'ph' | 'pk' | 'pl' | 'pm' | 'pn' | 'pr' | 'ps' | 'pt' | 'pw' | 'py' | 'qa' | 're' | 'ro' | 'rs' | 'ru' | 'rw' | 'sa' | 'sb' | 'sc' | 'sd' | 'se' | 'sg' | 'sh' | 'si' | 'sj' | 'sk' | 'sl' | 'sm' | 'sn' | 'so' | 'sr' | 'ss' | 'st' | 'sv' | 'sx' | 'sy' | 'sz' | 'tc' | 'td' | 'tf' | 'tg' | 'th' | 'tj' | 'tk' | 'tl' | 'tm' | 'tn' | 'to' | 'tr' | 'tt' | 'tv' | 'tw' | 'tz' | 'ua' | 'ug' | 'um' | 'us' | 'uy' | 'uz' | 'va' | 'vc' | 've' | 'vg' | 'vi' | 'vn' | 'vu' | 'wf' | 'ws' | 'ye' | 'yt' | 'za' | 'zm' | 'zw'; }; @@ -262,4 +263,4 @@ declare module 'gql.tada' { interface setupSchema { introspection: introspection } -} +} \ No newline at end of file diff --git a/test/routes/graphql/documentNodes.ts b/test/routes/graphql/documentNodes.ts index 39328231787..fcaf9611119 100644 --- a/test/routes/graphql/documentNodes.ts +++ b/test/routes/graphql/documentNodes.ts @@ -5,12 +5,12 @@ import type { ClientCustomScalars } from "~/src/graphql/scalars/index"; import type { introspection } from "./../../../test/graphql/types/gql.tada"; const gql = initGraphQLTada<{ - introspection: introspection; - scalars: ClientCustomScalars; + introspection: introspection; + scalars: ClientCustomScalars; }>(); export const Mutation_createUser = - gql(`mutation Mutation_createUser($input: MutationCreateUserInput!) { + gql(`mutation Mutation_createUser($input: MutationCreateUserInput!) { createUser(input: $input){ authenticationToken user { @@ -40,14 +40,14 @@ export const Mutation_createUser = }`); export const Mutation_deleteCurrentUser = - gql(`mutation Mutation_deleteCurrentUser { + gql(`mutation Mutation_deleteCurrentUser { deleteCurrentUser { id } }`); export const Mutation_deleteUser = - gql(`mutation Mutation_deleteUser($input: MutationDeleteUserInput!) { + gql(`mutation Mutation_deleteUser($input: MutationDeleteUserInput!) { deleteUser(input: $input) { addressLine1 addressLine2 @@ -74,7 +74,7 @@ export const Mutation_deleteUser = }`); export const Mutation_signUp = - gql(`mutation Mutation_signUp($input: MutationSignUpInput!) { + gql(`mutation Mutation_signUp($input: MutationSignUpInput!) { signUp(input: $input) { authenticationToken user { @@ -104,7 +104,7 @@ export const Mutation_signUp = }`); export const Mutation_updateCurrentUser = - gql(`mutation Mutation_updateCurrentUser($input: MutationUpdateCurrentUserInput!) { + gql(`mutation Mutation_updateCurrentUser($input: MutationUpdateCurrentUserInput!) { updateCurrentUser(input: $input) { addressLine1 addressLine2 @@ -131,7 +131,7 @@ export const Mutation_updateCurrentUser = }`); export const Mutation_updateUser = - gql(`mutation Mutation_updateUser($input: MutationUpdateUserInput!) { + gql(`mutation Mutation_updateUser($input: MutationUpdateUserInput!) { updateUser(input: $input) { addressLine1 addressLine2 @@ -184,7 +184,7 @@ export const Query_currentUser = gql(`query Query_currentUser { }`); export const Query_renewAuthenticationToken = - gql(`query Query_renewAuthenticationToken { + gql(`query Query_renewAuthenticationToken { renewAuthenticationToken }`); @@ -295,7 +295,7 @@ export const Query_allUsers = gql(` `); export const Query_user_creator = - gql(`query Query_user_creator($input: QueryUserInput!) { + gql(`query Query_user_creator($input: QueryUserInput!) { user(input: $input) { creator { addressLine1 @@ -324,14 +324,14 @@ export const Query_user_creator = }`); export const Query_user_updatedAt = - gql(`query Query_user_updatedAt($input: QueryUserInput!) { + gql(`query Query_user_updatedAt($input: QueryUserInput!) { user(input: $input) { updatedAt } }`); export const Query_user_updater = - gql(`query Query_user_updater($input: QueryUserInput!) { + gql(`query Query_user_updater($input: QueryUserInput!) { user(input: $input) { updater { addressLine1 @@ -368,7 +368,7 @@ export const Query_fund = gql(`query Query_fund($input: QueryFundInput!) { }`); export const Mutation_createOrganization = - gql(`mutation Mutation_createOrganization($input: MutationCreateOrganizationInput!) { + gql(`mutation Mutation_createOrganization($input: MutationCreateOrganizationInput!) { createOrganization(input: $input) { id name @@ -377,7 +377,7 @@ export const Mutation_createOrganization = }`); export const Mutation_createFund = - gql(`mutation Mutation_createFund($input: MutationCreateFundInput!) { + gql(`mutation Mutation_createFund($input: MutationCreateFundInput!) { createFund(input: $input) { id name @@ -386,14 +386,14 @@ export const Mutation_createFund = }`); export const Mutation_createOrganizationMembership = - gql(`mutation Mutation_createOrganizationMembership($input: MutationCreateOrganizationMembershipInput!) { + gql(`mutation Mutation_createOrganizationMembership($input: MutationCreateOrganizationMembershipInput!) { createOrganizationMembership(input: $input) { id } }`); export const Mutation_deleteFund = - gql(`mutation Mutation_deleteFund($input: MutationDeleteFundInput!) { + gql(`mutation Mutation_deleteFund($input: MutationDeleteFundInput!) { deleteFund(input: $input) { id name @@ -402,7 +402,7 @@ export const Mutation_deleteFund = }`); export const Mutation_deleteOrganization = - gql(`mutation Mutation_deleteOrganization($input: MutationDeleteOrganizationInput!) { + gql(`mutation Mutation_deleteOrganization($input: MutationDeleteOrganizationInput!) { deleteOrganization(input: $input) { id name @@ -411,7 +411,7 @@ export const Mutation_deleteOrganization = }`); export const Mutation_deleteOrganizationMembership = - gql(`mutation Mutation_deleteOrganizationMembership($input: MutationDeleteOrganizationMembershipInput!) { + gql(`mutation Mutation_deleteOrganizationMembership($input: MutationDeleteOrganizationMembershipInput!) { deleteOrganizationMembership(input: $input) { id name @@ -447,7 +447,7 @@ export const Query_event = gql(`query Query_event($input: QueryEventInput!) { }`); export const Mutation_createEvent = - gql(`mutation Mutation_createEvent($input: MutationCreateEventInput!) { + gql(`mutation Mutation_createEvent($input: MutationCreateEventInput!) { createEvent(input: $input) { id name @@ -467,14 +467,14 @@ export const Mutation_createEvent = }`); export const Mutation_deleteEvent = - gql(`mutation Mutation_deleteEvent($input: MutationDeleteEventInput!) { + gql(`mutation Mutation_deleteEvent($input: MutationDeleteEventInput!) { deleteEvent(input: $input) { id } }`); export const Mutation_updateEvent = - gql(`mutation Mutation_updateEvent($input: MutationUpdateEventInput!) { + gql(`mutation Mutation_updateEvent($input: MutationUpdateEventInput!) { updateEvent(input: $input) { id name @@ -570,7 +570,7 @@ export const Query_organization = gql(` `); export const Query_agendaItem = - gql(`query Query_agendaItem($input: QueryAgendaItemInput!) { + gql(`query Query_agendaItem($input: QueryAgendaItemInput!) { agendaItem(input: $input) { id name @@ -674,12 +674,12 @@ export const Mutation_createGetfileUrl = gql(` `); export const Mutation_blockUser = - gql(`mutation Mutation_blockUser($organizationId: ID!, $userId: ID!) { + gql(`mutation Mutation_blockUser($organizationId: ID!, $userId: ID!) { blockUser(organizationId: $organizationId, userId: $userId) }`); export const Mutation_unblockUser = - gql(`mutation Mutation_unblockUser($organizationId: ID!, $userId: ID!) { + gql(`mutation Mutation_unblockUser($organizationId: ID!, $userId: ID!) { unblockUser(organizationId: $organizationId, userId: $userId) }`); From 213d01df1d288cc5423d7daf39e9169de2f16d4a Mon Sep 17 00:00:00 2001 From: bandhan-majumder Date: Mon, 14 Apr 2025 10:01:37 +0530 Subject: [PATCH 09/11] fix: suite name --- test/graphql/types/Organization/advertisement.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/graphql/types/Organization/advertisement.test.ts b/test/graphql/types/Organization/advertisement.test.ts index 0e261684694..6525174c7f6 100644 --- a/test/graphql/types/Organization/advertisement.test.ts +++ b/test/graphql/types/Organization/advertisement.test.ts @@ -22,7 +22,7 @@ assertToBeNonNullish(signInResult.data?.signIn); const authToken = signInResult.data.signIn.authenticationToken; assertToBeNonNullish(authToken); -suite("Organization.blockedUsers Field", () => { +suite("Organization.advertisement Field", () => { suite("when the client is not authenticated", () => { test("should return an error with unauthenticated extensions code", async () => { const createOrgResult = await mercuriusClient.mutate( From e9342f5079ca75873185ac38567fb456e21a1b4d Mon Sep 17 00:00:00 2001 From: bandhan-majumder Date: Mon, 14 Apr 2025 11:20:58 +0530 Subject: [PATCH 10/11] add: more tests --- .../types/Organization/advertisement.test.ts | 1334 ++++++++--------- test/graphql/types/gql.tada-cache.d.ts | 4 +- 2 files changed, 648 insertions(+), 690 deletions(-) diff --git a/test/graphql/types/Organization/advertisement.test.ts b/test/graphql/types/Organization/advertisement.test.ts index 6525174c7f6..d5924027f16 100644 --- a/test/graphql/types/Organization/advertisement.test.ts +++ b/test/graphql/types/Organization/advertisement.test.ts @@ -2,704 +2,660 @@ import { faker } from "@faker-js/faker"; import { expect, suite, test } from "vitest"; import { assertToBeNonNullish } from "../../../helpers"; import { - Mutation_createAdvertisement, - Mutation_createOrganization, - Query_advertisements, - Query_signIn, + Mutation_createAdvertisement, + Mutation_createOrganization, + Query_advertisements, + Query_signIn, } from "../../../routes/graphql/documentNodes"; import { server } from "../../../server"; import { mercuriusClient } from "../../types/client"; +async function createOrg(): Promise { + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + return createOrgResult.data?.createOrganization?.id; +} + const signInResult = await mercuriusClient.query(Query_signIn, { - variables: { - input: { - emailAddress: server.envConfig.API_ADMINISTRATOR_USER_EMAIL_ADDRESS, - password: server.envConfig.API_ADMINISTRATOR_USER_PASSWORD, - }, - }, + variables: { + input: { + emailAddress: server.envConfig.API_ADMINISTRATOR_USER_EMAIL_ADDRESS, + password: server.envConfig.API_ADMINISTRATOR_USER_PASSWORD, + }, + }, }); assertToBeNonNullish(signInResult.data?.signIn); const authToken = signInResult.data.signIn.authenticationToken; assertToBeNonNullish(authToken); suite("Organization.advertisement Field", () => { - suite("when the client is not authenticated", () => { - test("should return an error with unauthenticated extensions code", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - const result = await mercuriusClient.query(Query_advertisements, { - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }); - - expect(result.data?.organization?.advertisements?.edges).toBeUndefined(); - expect(result.errors).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - extensions: expect.objectContaining({ code: "unauthenticated" }), - path: ["organization", "advertisements"], - }), - ]), - ); - }); - }); - - suite("when there are no advertisements", () => { - test("should return an empty active ads connection", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - const resultOfActiveAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - - const activeAdvertisements = - resultOfActiveAds.data?.organization?.advertisements; - assertToBeNonNullish(activeAdvertisements); - - expect(activeAdvertisements.edges).toHaveLength(0); - expect(activeAdvertisements.pageInfo).toEqual({ - hasNextPage: false, - hasPreviousPage: false, - startCursor: null, - endCursor: null, - }); - }); - test("should return an empty complete ads connection", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - const resultOfCompletedAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - - const completedAdvertisements = - resultOfCompletedAds.data?.organization?.advertisements; - assertToBeNonNullish(completedAdvertisements); - - expect(completedAdvertisements.edges).toHaveLength(0); - expect(completedAdvertisements.pageInfo).toEqual({ - hasNextPage: false, - hasPreviousPage: false, - startCursor: null, - endCursor: null, - }); - }); - }); - - suite("when there are advertisements", () => { - test("should return the active ads in the connection", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date("2025-02-02").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - const resultOfActiveAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - - const activeAdvertisements = - resultOfActiveAds.data?.organization?.advertisements; - console.log("Active advertisements are: ", activeAdvertisements); - assertToBeNonNullish(activeAdvertisements); - - expect(activeAdvertisements.edges).toHaveLength(1); - expect(activeAdvertisements.pageInfo.hasNextPage).toEqual(false); - expect(activeAdvertisements.pageInfo.hasPreviousPage).toEqual(false); - expect(activeAdvertisements.pageInfo.startCursor).not.toEqual(null); - expect(activeAdvertisements.pageInfo.endCursor).not.toEqual(null); - }); - test("should return the completed ads in the connection", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - const resultOfCompletedAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: true, - }, - }, - }, - ); - - const completedAdvertisements = - resultOfCompletedAds.data?.organization?.advertisements; - assertToBeNonNullish(completedAdvertisements); - - expect(completedAdvertisements.edges).toHaveLength(1); - expect(completedAdvertisements.pageInfo.hasNextPage).toEqual(false); - expect(completedAdvertisements.pageInfo.hasPreviousPage).toEqual(false); - expect(completedAdvertisements.pageInfo.startCursor).not.toEqual(null); - expect(completedAdvertisements.pageInfo.endCursor).not.toEqual(null); - }); - }); - - suite("when pagination is used", () => { - test("should respect the 'first' parameter in active ads", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 2", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 3", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 4", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 5", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 6", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 7", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 8", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 9", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - const resultOfAllActiveAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 6, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - assertToBeNonNullish(resultOfAllActiveAds); - - const activeAdvertisements = - resultOfAllActiveAds.data?.organization?.advertisements; - assertToBeNonNullish(activeAdvertisements); - expect(activeAdvertisements.edges).toHaveLength(6); - expect(activeAdvertisements.pageInfo.hasNextPage).toBe(true); - }); - test("should respect the 'first' parameter in completed ads", async () => { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - const orgId = createOrgResult.data?.createOrganization?.id; - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 2", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 3", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 4", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 5", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 6", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 7", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 8", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session 9", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - const resultOfAllCompletedAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 6, - after: null, - last: null, - before: null, - where: { - isCompleted: true, - }, - }, - }, - ); - assertToBeNonNullish(resultOfAllCompletedAds); - - const completedAdvertisements = - resultOfAllCompletedAds.data?.organization?.advertisements; - assertToBeNonNullish(completedAdvertisements); - expect(completedAdvertisements.edges).toHaveLength(6); - expect(completedAdvertisements.pageInfo.hasNextPage).toBe(true); - }); - }); + suite("when the client is not authenticated", () => { + test("should return an error with unauthenticated extensions code", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + const result = await mercuriusClient.query(Query_advertisements, { + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }); + + expect(result.data?.organization?.advertisements?.edges).toBeUndefined(); + expect(result.errors).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + extensions: expect.objectContaining({ code: "unauthenticated" }), + path: ["organization", "advertisements"], + }), + ]), + ); + }); + }); + + suite("when there are no advertisements", () => { + test("should return an empty active ads connection", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + const resultOfActiveAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: true, + }, + }, + }, + ); + + const activeAdvertisements = + resultOfActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + + expect(activeAdvertisements.edges).toHaveLength(0); + expect(activeAdvertisements.pageInfo).toEqual({ + hasNextPage: false, + hasPreviousPage: false, + startCursor: null, + endCursor: null, + }); + }); + test("should return an empty complete ads connection", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + const resultOfCompletedAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const completedAdvertisements = + resultOfCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + + expect(completedAdvertisements.edges).toHaveLength(0); + expect(completedAdvertisements.pageInfo).toEqual({ + hasNextPage: false, + hasPreviousPage: false, + startCursor: null, + endCursor: null, + }); + }); + }); + + suite("when there are advertisements", () => { + test("should return the active ads in the connection", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date("2025-02-02").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + const resultOfActiveAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const activeAdvertisements = + resultOfActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + + expect(activeAdvertisements.edges).toHaveLength(1); + expect(activeAdvertisements.pageInfo.hasNextPage).toEqual(false); + expect(activeAdvertisements.pageInfo.hasPreviousPage).toEqual(false); + expect(activeAdvertisements.pageInfo.startCursor).not.toEqual(null); + expect(activeAdvertisements.pageInfo.endCursor).not.toEqual(null); + }); + test("should return the completed ads in the connection", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + const resultOfCompletedAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: true, + }, + }, + }, + ); + + const completedAdvertisements = + resultOfCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + + expect(completedAdvertisements.edges).toHaveLength(1); + expect(completedAdvertisements.pageInfo.hasNextPage).toEqual(false); + expect(completedAdvertisements.pageInfo.hasPreviousPage).toEqual(false); + expect(completedAdvertisements.pageInfo.startCursor).not.toEqual(null); + expect(completedAdvertisements.pageInfo.endCursor).not.toEqual(null); + }); + test("should return all ads when isCompleted is not specified", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Active Advertisement", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "This is active", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Completed Advertisement", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "This is completed", + attachments: undefined, + }, + }, + }); + + const result = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: null, + }, + }); + + const advertisements = result.data?.organization?.advertisements; + assertToBeNonNullish(advertisements); + expect(advertisements.edges).toHaveLength(2); + const adNames = advertisements?.edges?.map(edge => edge?.node?.name); + expect(adNames).toContain("Active Advertisement"); + expect(adNames).toContain("Completed Advertisement"); + }); + }); + + suite("when pagination is used", () => { + test("should respect the 'first' parameter in active ads", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + for (let i = 1; i <= 5; i++) { + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: `Linux session ${i}`, + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: `Learn about basics - Session ${i}`, + attachments: undefined, + }, + }, + }); + } + + const resultOfAllActiveAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 4, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + assertToBeNonNullish(resultOfAllActiveAds); + + const activeAdvertisements = + resultOfAllActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + expect(activeAdvertisements.edges).toHaveLength(4); + expect(activeAdvertisements.pageInfo.hasNextPage).toBe(true); + }); + test("should respect the 'first' parameter in completed ads", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + for (let i = 1; i <= 5; i++) { + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: `Linux session 2 - Ad ${i}`, + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: `Learn about basics - Advertisement ${i}`, + attachments: undefined, + }, + }, + }); + } + + const resultOfAllCompletedAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 4, + after: null, + last: null, + before: null, + where: { + isCompleted: true, + }, + }, + }, + ); + assertToBeNonNullish(resultOfAllCompletedAds); + + const completedAdvertisements = + resultOfAllCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + expect(completedAdvertisements.edges).toHaveLength(4); + expect(completedAdvertisements.pageInfo.hasNextPage).toBe(true); + }); + test("should paginate using the 'after' parameter", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + for (let i = 1; i <= 5; i++) { + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: `Cursor Pagination Ad ${i}`, + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "test cursor pagination", + attachments: undefined, + }, + }, + }); + } + + const firstPageResult = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 2, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const firstPage = firstPageResult.data?.organization?.advertisements; + assertToBeNonNullish(firstPage); + expect(firstPage.edges).toHaveLength(2); + expect(firstPage.pageInfo.hasNextPage).toBe(true); + const endCursor = firstPage.pageInfo.endCursor; + assertToBeNonNullish(endCursor); + + const secondPageResult = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 2, + after: endCursor, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const secondPage = secondPageResult.data?.organization?.advertisements; + assertToBeNonNullish(secondPage); + expect(secondPage.edges).toHaveLength(2); + expect(secondPage.pageInfo.hasNextPage).toBe(true); + + const firstPageAdNames = firstPage.edges + ?.filter(edge => edge?.node != null) + .map(edge => edge?.node?.name) ?? []; + const secondPageAdNames = secondPage.edges + ?.filter(edge => edge?.node != null) + .map(edge => edge?.node!.name) ?? []; + + if (secondPageAdNames) { + for (const name of secondPageAdNames) { + expect(firstPageAdNames).not.toContain(name); + } + } + }); + test("should handle invalid pagination parameters gracefully", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Test Ad 1", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "test ad", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Test Ad 2", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "test ad", + attachments: undefined, + }, + }, + }); + + const invalidParamsResult = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 5, + after: null, + last: 5, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + expect(invalidParamsResult.errors).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + extensions: expect.objectContaining({ + code: expect.stringMatching(/invalid|error|bad_request/i) + }), + }), + ]), + ); + }); + test("should return error with invalid cursor for before parameter", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Invalid Cursor Test Ad", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "test invalid cursor", + attachments: undefined, + }, + }, + }); + + const result = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: null, + after: null, + last: 5, + before: "invalid-cursor", + where: { + isCompleted: false, + }, + }, + }); + + expect(result.errors).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + extensions: expect.objectContaining({ + code: expect.stringMatching(/invalid|error|bad_request/i), + issues: expect.arrayContaining([ + expect.objectContaining({ + argumentPath: ["before"], + }), + ]), + }), + }), + ]), + ); + }); + }); + suite("checking advertisement node data", () => { + test("should return the correct advertisement fields", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + const adName = "Test Fields Advertisement"; + const adType = "banner"; + const adDescription = "Testing advertisement fields"; + const startDate = new Date("2025-01-01").toISOString(); + const endDate = new Date("2030-02-02").toISOString(); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: adName, + type: adType, + startAt: startDate, + endAt: endDate, + description: adDescription, + attachments: undefined, + }, + }, + }); + + const result = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 1, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }); + + const advertisements = result.data?.organization?.advertisements; + assertToBeNonNullish(advertisements); + expect(advertisements.edges).toHaveLength(1); + + const adNode = advertisements?.edges?.[0]?.node; + assertToBeNonNullish(adNode); + expect(adNode.name).toEqual(adName); + expect(adNode.type).toEqual(adType); + expect(adNode.description).toEqual(adDescription); + expect(adNode.startAt).toBeDefined(); + expect(adNode.endAt).toBeDefined(); + expect(adNode.organization?.id).toEqual(orgId); + expect(adNode.attachments).toEqual([]); + }); + }); }); diff --git a/test/graphql/types/gql.tada-cache.d.ts b/test/graphql/types/gql.tada-cache.d.ts index a683fb4771c..9daa90b052f 100644 --- a/test/graphql/types/gql.tada-cache.d.ts +++ b/test/graphql/types/gql.tada-cache.d.ts @@ -151,7 +151,9 @@ declare module 'gql.tada' { "\n query BlockedUsers(\n $organizationId: String!\n $first: Int\n $after: String\n $last: Int\n $before: String\n ) {\n organization(input:{id: $organizationId}) {\n id\n blockedUsers(\n first: $first\n after: $after\n last: $last\n before: $before\n ) {\n edges {\n cursor\n node {\n id\n name\n role\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n": TadaDocumentNode<{ organization: { id: string; blockedUsers: { edges: ({ cursor: string; node: { id: string; name: string | null; role: "administrator" | "regular" | null; } | null; } | null)[] | null; pageInfo: { hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string | null; endCursor: string | null; }; } | null; } | null; }, { before?: string | null | undefined; last?: number | null | undefined; after?: string | null | undefined; first?: number | null | undefined; organizationId: string; }, void>; "\n query OrganizationAdvertisements(\n $id: String!\n $first: Int\n $last: Int\n $after: String\n $before: String\n $where: AdvertisementWhereInput\n ) {\n organization(input: { id: $id }) {\n advertisements(\n first: $first\n last: $last\n after: $after\n before: $before\n where: $where\n ) {\n edges {\n node {\n createdAt\n description\n organization {\n id\n }\n endAt\n id\n name\n startAt\n type\n attachments {\n mimeType\n url\n }\n }\n }\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n }\n }\n }\n": - TadaDocumentNode<{ organization: { advertisements: { edges: ({ node: { createdAt: string | null; description: string | null; organization: { id: string; } | null; endAt: string | null; id: string; name: string | null; startAt: string | null; type: "banner" | "menu" | "pop_up" | null; attachments: { mimeType: string | null; url: string | null; }[] | null; } | null; } | null)[] | null; pageInfo: { startCursor: string | null; endCursor: string | null; hasNextPage: boolean; hasPreviousPage: boolean; }; } | null; } | null; }, { where?: { isCompleted?: boolean | null | undefined; } | null | undefined; before?: string | null | undefined; after?: string | null | undefined; last?: number | null | undefined; first?: number | null | undefined; id: string; }, void>; + TadaDocumentNode<{ organization: { advertisements: { edges: ({ node: { + organizationId(organizationId: any): unknown; createdAt: string | null; description: string | null; organization: { id: string; } | null; endAt: string | null; id: string; name: string | null; startAt: string | null; type: "banner" | "menu" | "pop_up" | null; attachments: { mimeType: string | null; url: string | null; }[] | null; +} | null; } | null)[] | null; pageInfo: { startCursor: string | null; endCursor: string | null; hasNextPage: boolean; hasPreviousPage: boolean; }; } | null; } | null; }, { where?: { isCompleted?: boolean | null | undefined; } | null | undefined; before?: string | null | undefined; after?: string | null | undefined; last?: number | null | undefined; first?: number | null | undefined; id: string; }, void>; "\n mutation Mutation_createAd($input: MutationCreateAdvertisementInput!) {\n createAdvertisement(input: $input) {\n id\n }\n }\n": TadaDocumentNode<{ createAdvertisement: { id: string; } | null; }, { input: { type: "banner" | "menu" | "pop_up"; startAt: string; organizationId: string; name: string; endAt: string; description?: string | null | undefined; attachments?: unknown[] | null | undefined; }; }, void>; } From 5cb1b33421333f28c455c0a9686a782f32e64bfb Mon Sep 17 00:00:00 2001 From: bandhan-majumder Date: Mon, 14 Apr 2025 11:33:37 +0530 Subject: [PATCH 11/11] fix: quality --- .../types/Organization/advertisement.test.ts | 1288 +++++++++-------- 1 file changed, 645 insertions(+), 643 deletions(-) diff --git a/test/graphql/types/Organization/advertisement.test.ts b/test/graphql/types/Organization/advertisement.test.ts index d5924027f16..9cfb23bc1ec 100644 --- a/test/graphql/types/Organization/advertisement.test.ts +++ b/test/graphql/types/Organization/advertisement.test.ts @@ -2,660 +2,662 @@ import { faker } from "@faker-js/faker"; import { expect, suite, test } from "vitest"; import { assertToBeNonNullish } from "../../../helpers"; import { - Mutation_createAdvertisement, - Mutation_createOrganization, - Query_advertisements, - Query_signIn, + Mutation_createAdvertisement, + Mutation_createOrganization, + Query_advertisements, + Query_signIn, } from "../../../routes/graphql/documentNodes"; import { server } from "../../../server"; import { mercuriusClient } from "../../types/client"; async function createOrg(): Promise { - const createOrgResult = await mercuriusClient.mutate( - Mutation_createOrganization, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - name: `Advertisements Test Org ${faker.string.uuid()}`, - description: "Org to test advertisements", - countryCode: "us", - state: "CA", - city: "San Francisco", - postalCode: "94101", - addressLine1: "100 Test St", - addressLine2: "Suite 1", - }, - }, - }, - ); - return createOrgResult.data?.createOrganization?.id; + const createOrgResult = await mercuriusClient.mutate( + Mutation_createOrganization, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + name: `Advertisements Test Org ${faker.string.uuid()}`, + description: "Org to test advertisements", + countryCode: "us", + state: "CA", + city: "San Francisco", + postalCode: "94101", + addressLine1: "100 Test St", + addressLine2: "Suite 1", + }, + }, + }, + ); + return createOrgResult.data?.createOrganization?.id; } const signInResult = await mercuriusClient.query(Query_signIn, { - variables: { - input: { - emailAddress: server.envConfig.API_ADMINISTRATOR_USER_EMAIL_ADDRESS, - password: server.envConfig.API_ADMINISTRATOR_USER_PASSWORD, - }, - }, + variables: { + input: { + emailAddress: server.envConfig.API_ADMINISTRATOR_USER_EMAIL_ADDRESS, + password: server.envConfig.API_ADMINISTRATOR_USER_PASSWORD, + }, + }, }); assertToBeNonNullish(signInResult.data?.signIn); const authToken = signInResult.data.signIn.authenticationToken; assertToBeNonNullish(authToken); -suite("Organization.advertisement Field", () => { - suite("when the client is not authenticated", () => { - test("should return an error with unauthenticated extensions code", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - const result = await mercuriusClient.query(Query_advertisements, { - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }); - - expect(result.data?.organization?.advertisements?.edges).toBeUndefined(); - expect(result.errors).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - extensions: expect.objectContaining({ code: "unauthenticated" }), - path: ["organization", "advertisements"], - }), - ]), - ); - }); - }); - - suite("when there are no advertisements", () => { - test("should return an empty active ads connection", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - const resultOfActiveAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: true, - }, - }, - }, - ); - - const activeAdvertisements = - resultOfActiveAds.data?.organization?.advertisements; - assertToBeNonNullish(activeAdvertisements); - - expect(activeAdvertisements.edges).toHaveLength(0); - expect(activeAdvertisements.pageInfo).toEqual({ - hasNextPage: false, - hasPreviousPage: false, - startCursor: null, - endCursor: null, - }); - }); - test("should return an empty complete ads connection", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - const resultOfCompletedAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - - const completedAdvertisements = - resultOfCompletedAds.data?.organization?.advertisements; - assertToBeNonNullish(completedAdvertisements); - - expect(completedAdvertisements.edges).toHaveLength(0); - expect(completedAdvertisements.pageInfo).toEqual({ - hasNextPage: false, - hasPreviousPage: false, - startCursor: null, - endCursor: null, - }); - }); - }); - - suite("when there are advertisements", () => { - test("should return the active ads in the connection", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date("2025-02-02").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - const resultOfActiveAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - - const activeAdvertisements = - resultOfActiveAds.data?.organization?.advertisements; - assertToBeNonNullish(activeAdvertisements); - - expect(activeAdvertisements.edges).toHaveLength(1); - expect(activeAdvertisements.pageInfo.hasNextPage).toEqual(false); - expect(activeAdvertisements.pageInfo.hasPreviousPage).toEqual(false); - expect(activeAdvertisements.pageInfo.startCursor).not.toEqual(null); - expect(activeAdvertisements.pageInfo.endCursor).not.toEqual(null); - }); - test("should return the completed ads in the connection", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Linux session", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "learn about basics", - attachments: undefined, - }, - }, - }); - - const resultOfCompletedAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: { - isCompleted: true, - }, - }, - }, - ); - - const completedAdvertisements = - resultOfCompletedAds.data?.organization?.advertisements; - assertToBeNonNullish(completedAdvertisements); - - expect(completedAdvertisements.edges).toHaveLength(1); - expect(completedAdvertisements.pageInfo.hasNextPage).toEqual(false); - expect(completedAdvertisements.pageInfo.hasPreviousPage).toEqual(false); - expect(completedAdvertisements.pageInfo.startCursor).not.toEqual(null); - expect(completedAdvertisements.pageInfo.endCursor).not.toEqual(null); - }); - test("should return all ads when isCompleted is not specified", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Active Advertisement", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "This is active", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Completed Advertisement", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: "This is completed", - attachments: undefined, - }, - }, - }); - - const result = await mercuriusClient.query(Query_advertisements, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 10, - after: null, - last: null, - before: null, - where: null, - }, - }); - - const advertisements = result.data?.organization?.advertisements; - assertToBeNonNullish(advertisements); - expect(advertisements.edges).toHaveLength(2); - const adNames = advertisements?.edges?.map(edge => edge?.node?.name); - expect(adNames).toContain("Active Advertisement"); - expect(adNames).toContain("Completed Advertisement"); - }); - }); - - suite("when pagination is used", () => { - test("should respect the 'first' parameter in active ads", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - for (let i = 1; i <= 5; i++) { - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: `Linux session ${i}`, - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: `Learn about basics - Session ${i}`, - attachments: undefined, - }, - }, - }); - } - - const resultOfAllActiveAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 4, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - assertToBeNonNullish(resultOfAllActiveAds); - - const activeAdvertisements = - resultOfAllActiveAds.data?.organization?.advertisements; - assertToBeNonNullish(activeAdvertisements); - expect(activeAdvertisements.edges).toHaveLength(4); - expect(activeAdvertisements.pageInfo.hasNextPage).toBe(true); - }); - test("should respect the 'first' parameter in completed ads", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - assertToBeNonNullish(signInResult.data?.signIn); - assertToBeNonNullish(signInResult.data.signIn.user); - const adminId = signInResult.data.signIn.user.id; - assertToBeNonNullish(adminId); - - for (let i = 1; i <= 5; i++) { - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: `Linux session 2 - Ad ${i}`, - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2025-02-02").toISOString(), - description: `Learn about basics - Advertisement ${i}`, - attachments: undefined, - }, - }, - }); - } - - const resultOfAllCompletedAds = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 4, - after: null, - last: null, - before: null, - where: { - isCompleted: true, - }, - }, - }, - ); - assertToBeNonNullish(resultOfAllCompletedAds); - - const completedAdvertisements = - resultOfAllCompletedAds.data?.organization?.advertisements; - assertToBeNonNullish(completedAdvertisements); - expect(completedAdvertisements.edges).toHaveLength(4); - expect(completedAdvertisements.pageInfo.hasNextPage).toBe(true); - }); - test("should paginate using the 'after' parameter", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - for (let i = 1; i <= 5; i++) { - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: `Cursor Pagination Ad ${i}`, - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "test cursor pagination", - attachments: undefined, - }, - }, - }); - } - - const firstPageResult = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 2, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - - const firstPage = firstPageResult.data?.organization?.advertisements; - assertToBeNonNullish(firstPage); - expect(firstPage.edges).toHaveLength(2); - expect(firstPage.pageInfo.hasNextPage).toBe(true); - const endCursor = firstPage.pageInfo.endCursor; - assertToBeNonNullish(endCursor); - - const secondPageResult = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 2, - after: endCursor, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - - const secondPage = secondPageResult.data?.organization?.advertisements; - assertToBeNonNullish(secondPage); - expect(secondPage.edges).toHaveLength(2); - expect(secondPage.pageInfo.hasNextPage).toBe(true); - - const firstPageAdNames = firstPage.edges - ?.filter(edge => edge?.node != null) - .map(edge => edge?.node?.name) ?? []; - const secondPageAdNames = secondPage.edges - ?.filter(edge => edge?.node != null) - .map(edge => edge?.node!.name) ?? []; - - if (secondPageAdNames) { - for (const name of secondPageAdNames) { - expect(firstPageAdNames).not.toContain(name); - } - } - }); - test("should handle invalid pagination parameters gracefully", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Test Ad 1", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "test ad", - attachments: undefined, - }, - }, - }); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Test Ad 2", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "test ad", - attachments: undefined, - }, - }, - }); - - const invalidParamsResult = await mercuriusClient.query( - Query_advertisements, - { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 5, - after: null, - last: 5, - before: null, - where: { - isCompleted: false, - }, - }, - }, - ); - - expect(invalidParamsResult.errors).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - extensions: expect.objectContaining({ - code: expect.stringMatching(/invalid|error|bad_request/i) - }), - }), - ]), - ); - }); - test("should return error with invalid cursor for before parameter", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: "Invalid Cursor Test Ad", - type: "banner", - startAt: new Date("2025-01-01").toISOString(), - endAt: new Date("2030-02-02").toISOString(), - description: "test invalid cursor", - attachments: undefined, - }, - }, - }); - - const result = await mercuriusClient.query(Query_advertisements, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: null, - after: null, - last: 5, - before: "invalid-cursor", - where: { - isCompleted: false, - }, - }, - }); - - expect(result.errors).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - extensions: expect.objectContaining({ - code: expect.stringMatching(/invalid|error|bad_request/i), - issues: expect.arrayContaining([ - expect.objectContaining({ - argumentPath: ["before"], - }), - ]), - }), - }), - ]), - ); - }); - }); - suite("checking advertisement node data", () => { - test("should return the correct advertisement fields", async () => { - const orgId = await createOrg(); - assertToBeNonNullish(orgId); - - const adName = "Test Fields Advertisement"; - const adType = "banner"; - const adDescription = "Testing advertisement fields"; - const startDate = new Date("2025-01-01").toISOString(); - const endDate = new Date("2030-02-02").toISOString(); - - await mercuriusClient.mutate(Mutation_createAdvertisement, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - input: { - organizationId: orgId, - name: adName, - type: adType, - startAt: startDate, - endAt: endDate, - description: adDescription, - attachments: undefined, - }, - }, - }); - - const result = await mercuriusClient.query(Query_advertisements, { - headers: { authorization: `bearer ${authToken}` }, - variables: { - id: orgId, - first: 1, - after: null, - last: null, - before: null, - where: { - isCompleted: false, - }, - }, - }); - - const advertisements = result.data?.organization?.advertisements; - assertToBeNonNullish(advertisements); - expect(advertisements.edges).toHaveLength(1); - - const adNode = advertisements?.edges?.[0]?.node; - assertToBeNonNullish(adNode); - expect(adNode.name).toEqual(adName); - expect(adNode.type).toEqual(adType); - expect(adNode.description).toEqual(adDescription); - expect(adNode.startAt).toBeDefined(); - expect(adNode.endAt).toBeDefined(); - expect(adNode.organization?.id).toEqual(orgId); - expect(adNode.attachments).toEqual([]); - }); - }); +suite("Organization.advertisement Field with Completion Status", () => { + suite("when the client is not authenticated", () => { + test("should return an error with unauthenticated extensions code", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + const result = await mercuriusClient.query(Query_advertisements, { + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }); + + expect(result.data?.organization?.advertisements?.edges).toBeUndefined(); + expect(result.errors).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + extensions: expect.objectContaining({ code: "unauthenticated" }), + path: ["organization", "advertisements"], + }), + ]), + ); + }); + }); + + suite("when there are no advertisements", () => { + test("should return an empty active ads connection", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + const resultOfActiveAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const activeAdvertisements = + resultOfActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + + expect(activeAdvertisements.edges).toHaveLength(0); + expect(activeAdvertisements.pageInfo).toEqual({ + hasNextPage: false, + hasPreviousPage: false, + startCursor: null, + endCursor: null, + }); + }); + test("should return an empty complete ads connection", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + const resultOfCompletedAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const completedAdvertisements = + resultOfCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + + expect(completedAdvertisements.edges).toHaveLength(0); + expect(completedAdvertisements.pageInfo).toEqual({ + hasNextPage: false, + hasPreviousPage: false, + startCursor: null, + endCursor: null, + }); + }); + }); + + suite("when there are advertisements", () => { + test("should return the active ads in the connection", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date("2025-02-02").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + const resultOfActiveAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const activeAdvertisements = + resultOfActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + + expect(activeAdvertisements.edges).toHaveLength(1); + expect(activeAdvertisements.pageInfo.hasNextPage).toEqual(false); + expect(activeAdvertisements.pageInfo.hasPreviousPage).toEqual(false); + expect(activeAdvertisements.pageInfo.startCursor).not.toEqual(null); + expect(activeAdvertisements.pageInfo.endCursor).not.toEqual(null); + }); + test("should return the completed ads in the connection", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Linux session", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "learn about basics", + attachments: undefined, + }, + }, + }); + + const resultOfCompletedAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: { + isCompleted: true, + }, + }, + }, + ); + + const completedAdvertisements = + resultOfCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + + expect(completedAdvertisements.edges).toHaveLength(1); + expect(completedAdvertisements.pageInfo.hasNextPage).toEqual(false); + expect(completedAdvertisements.pageInfo.hasPreviousPage).toEqual(false); + expect(completedAdvertisements.pageInfo.startCursor).not.toEqual(null); + expect(completedAdvertisements.pageInfo.endCursor).not.toEqual(null); + }); + test("should return all ads when isCompleted is not specified", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Active Advertisement", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "This is active", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Completed Advertisement", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: "This is completed", + attachments: undefined, + }, + }, + }); + + const result = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 10, + after: null, + last: null, + before: null, + where: null, + }, + }); + + const advertisements = result.data?.organization?.advertisements; + assertToBeNonNullish(advertisements); + expect(advertisements.edges).toHaveLength(2); + const adNames = advertisements?.edges?.map((edge) => edge?.node?.name); + expect(adNames).toContain("Active Advertisement"); + expect(adNames).toContain("Completed Advertisement"); + }); + }); + + suite("when pagination is used", () => { + test("should respect the 'first' parameter in active ads", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + for (let i = 1; i <= 5; i++) { + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: `Linux session ${i}`, + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: `Learn about basics - Session ${i}`, + attachments: undefined, + }, + }, + }); + } + + const resultOfAllActiveAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 4, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + assertToBeNonNullish(resultOfAllActiveAds); + + const activeAdvertisements = + resultOfAllActiveAds.data?.organization?.advertisements; + assertToBeNonNullish(activeAdvertisements); + expect(activeAdvertisements.edges).toHaveLength(4); + expect(activeAdvertisements.pageInfo.hasNextPage).toBe(true); + }); + test("should respect the 'first' parameter in completed ads", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + assertToBeNonNullish(signInResult.data?.signIn); + assertToBeNonNullish(signInResult.data.signIn.user); + const adminId = signInResult.data.signIn.user.id; + assertToBeNonNullish(adminId); + + for (let i = 1; i <= 5; i++) { + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: `Linux session 2 - Ad ${i}`, + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2025-02-02").toISOString(), + description: `Learn about basics - Advertisement ${i}`, + attachments: undefined, + }, + }, + }); + } + + const resultOfAllCompletedAds = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 4, + after: null, + last: null, + before: null, + where: { + isCompleted: true, + }, + }, + }, + ); + assertToBeNonNullish(resultOfAllCompletedAds); + + const completedAdvertisements = + resultOfAllCompletedAds.data?.organization?.advertisements; + assertToBeNonNullish(completedAdvertisements); + expect(completedAdvertisements.edges).toHaveLength(4); + expect(completedAdvertisements.pageInfo.hasNextPage).toBe(true); + }); + test("should paginate using the 'after' parameter", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + for (let i = 1; i <= 5; i++) { + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: `Cursor Pagination Ad ${i}`, + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "test cursor pagination", + attachments: undefined, + }, + }, + }); + } + + const firstPageResult = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 2, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const firstPage = firstPageResult.data?.organization?.advertisements; + assertToBeNonNullish(firstPage); + expect(firstPage.edges).toHaveLength(2); + expect(firstPage.pageInfo.hasNextPage).toBe(true); + const endCursor = firstPage.pageInfo.endCursor; + assertToBeNonNullish(endCursor); + + const secondPageResult = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 2, + after: endCursor, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + const secondPage = secondPageResult.data?.organization?.advertisements; + assertToBeNonNullish(secondPage); + expect(secondPage.edges).toHaveLength(2); + expect(secondPage.pageInfo.hasNextPage).toBe(true); + + const firstPageAdNames = + firstPage.edges + ?.filter((edge) => edge?.node != null) + .map((edge) => edge?.node?.name) ?? []; + const secondPageAdNames = + secondPage.edges + ?.filter((edge) => edge?.node != null) + .map((edge) => edge?.node?.name) ?? []; + + if (secondPageAdNames) { + for (const name of secondPageAdNames) { + expect(firstPageAdNames).not.toContain(name); + } + } + }); + test("should handle invalid pagination parameters gracefully", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Test Ad 1", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "test ad", + attachments: undefined, + }, + }, + }); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Test Ad 2", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "test ad", + attachments: undefined, + }, + }, + }); + + const invalidParamsResult = await mercuriusClient.query( + Query_advertisements, + { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 5, + after: null, + last: 5, + before: null, + where: { + isCompleted: false, + }, + }, + }, + ); + + expect(invalidParamsResult.errors).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + extensions: expect.objectContaining({ + code: expect.stringMatching(/invalid|error|bad_request/i), + }), + }), + ]), + ); + }); + test("should return error with invalid cursor for before parameter", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: "Invalid Cursor Test Ad", + type: "banner", + startAt: new Date("2025-01-01").toISOString(), + endAt: new Date("2030-02-02").toISOString(), + description: "test invalid cursor", + attachments: undefined, + }, + }, + }); + + const result = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: null, + after: null, + last: 5, + before: "invalid-cursor", + where: { + isCompleted: false, + }, + }, + }); + + expect(result.errors).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + extensions: expect.objectContaining({ + code: expect.stringMatching(/invalid|error|bad_request/i), + issues: expect.arrayContaining([ + expect.objectContaining({ + argumentPath: ["before"], + }), + ]), + }), + }), + ]), + ); + }); + }); + suite("checking advertisement node data", () => { + test("should return the correct advertisement fields", async () => { + const orgId = await createOrg(); + assertToBeNonNullish(orgId); + + const adName = "Test Fields Advertisement"; + const adType = "banner"; + const adDescription = "Testing advertisement fields"; + const startDate = new Date("2025-01-01").toISOString(); + const endDate = new Date("2030-02-02").toISOString(); + + await mercuriusClient.mutate(Mutation_createAdvertisement, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + input: { + organizationId: orgId, + name: adName, + type: adType, + startAt: startDate, + endAt: endDate, + description: adDescription, + attachments: undefined, + }, + }, + }); + + const result = await mercuriusClient.query(Query_advertisements, { + headers: { authorization: `bearer ${authToken}` }, + variables: { + id: orgId, + first: 1, + after: null, + last: null, + before: null, + where: { + isCompleted: false, + }, + }, + }); + + const advertisements = result.data?.organization?.advertisements; + assertToBeNonNullish(advertisements); + expect(advertisements.edges).toHaveLength(1); + + const adNode = advertisements?.edges?.[0]?.node; + assertToBeNonNullish(adNode); + expect(adNode.name).toEqual(adName); + expect(adNode.type).toEqual(adType); + expect(adNode.description).toEqual(adDescription); + expect(adNode.startAt).toBeDefined(); + expect(adNode.endAt).toBeDefined(); + expect(adNode.organization?.id).toEqual(orgId); + expect(adNode.attachments).toEqual([]); + }); + }); });