import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from 'graphql' export type Maybe = T | null export type RequireFields = { [X in Exclude]?: T[X] } & { [P in K]-?: NonNullable } /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: string String: string Boolean: boolean Int: number Float: number DateTime: any Sha1: any JSON: any JSONObject: any } /** Commits from a Git Repo */ export type Commit = { __typename?: 'Commit' id: Scalars['Sha1'] message?: Maybe username?: Maybe } export type CreateTokenInput = { accessToken: Scalars['String'] } export type CreateTutorialSummaryInput = { title: Scalars['String'] description: Scalars['String'] } export type CreateTutorialVersionInput = { data: Scalars['JSON'] } export type CreateTutorialVersionOutput = { __typename?: 'createTutorialVersionOutput' success?: Maybe } export type Editor = 'VSCODE' export type EditorLoginInput = { editor: Editor machineId: Scalars['String'] sessionId: Scalars['String'] } export type EditorLoginOutput = { __typename?: 'editorLoginOutput' user: User token: Scalars['String'] } export type FileFormat = | 'GO' | 'JS' | 'JSON' | 'JSX' | 'LESS' | 'LUA' | 'PHP' | 'PY' | 'RB' | 'SASS' | 'SCSS' | 'SQL' | 'TS' | 'TSX' | 'YAML' /** Information linked from a GitHub account */ export type GithubUser = { __typename?: 'GithubUser' id: Scalars['ID'] name?: Maybe email?: Maybe location?: Maybe avatarUrl?: Maybe } /** Logical groupings of tasks */ export type Level = { __typename?: 'Level' id: Scalars['ID'] title: Scalars['String'] /** A summary of the level */ description: Scalars['String'] /** The lesson content of the level, parsed as markdown */ content: Scalars['String'] /** A set of tasks for users linked to unit tests */ steps: Array /** Actions run on level start up for configuring setup */ setup?: Maybe } export type Mutation = { __typename?: 'Mutation' /** Login used from a coding editor */ editorLogin?: Maybe /** Create a new tutorial */ createTutorialVersion?: Maybe } export type MutationEditorLoginArgs = { input: EditorLoginInput } export type MutationCreateTutorialVersionArgs = { input: CreateTutorialVersionInput } export type Query = { __typename?: 'Query' tutorial?: Maybe tutorials?: Maybe>> viewer?: Maybe /** TOOD: move inside of viewer */ commits: Array> } export type QueryTutorialArgs = { id: Scalars['ID'] } export type QueryCommitsArgs = { input: TutorialRepoInput } export type Role = 'ADMIN' | 'EDITOR_USER' /** A level task */ export type Step = { __typename?: 'Step' id: Scalars['ID'] content: Scalars['String'] setup: StepActions solution: StepActions } /** Load commits, open files or run commands */ export type StepActions = { __typename?: 'StepActions' id: Scalars['ID'] commits: Array files?: Maybe> commands?: Maybe> watchers?: Maybe> } /** A tutorial for use in VSCode CodeRoad */ export type Tutorial = { __typename?: 'Tutorial' id: Scalars['ID'] createdBy: User createdAt: Scalars['DateTime'] version: TutorialVersion versions: Array completed?: Maybe } /** A tutorial for use in VSCode CodeRoad */ export type TutorialVersionArgs = { version?: Maybe } /** Configure environment in editor for git, testing & parsing files */ export type TutorialConfig = { __typename?: 'TutorialConfig' testRunner: TutorialTestRunner repo: TutorialRepo } /** Data for tutorial */ export type TutorialData = { __typename?: 'TutorialData' config: TutorialConfig init?: Maybe levels: Array } /** Data that loads on startup */ export type TutorialInit = { __typename?: 'TutorialInit' setup?: Maybe } /** Repo referenced by commmits in the tutorial */ export type TutorialRepo = { __typename?: 'TutorialRepo' uri: Scalars['String'] branch: Scalars['String'] name?: Maybe owner?: Maybe } export type TutorialRepoInput = { uri: Scalars['String'] branch: Scalars['String'] } /** Summary of tutorial used when selecting tutorial */ export type TutorialSummary = { __typename?: 'TutorialSummary' title: Scalars['String'] description: Scalars['String'] } export type TutorialTestRunner = { __typename?: 'TutorialTestRunner' command: Scalars['String'] fileFormats?: Maybe> } /** A version of a tutorial */ export type TutorialVersion = { __typename?: 'TutorialVersion' tutorialId: Scalars['ID'] version: Scalars['String'] createdAt: Scalars['DateTime'] createdBy: User updatedBy: User updatedAt: Scalars['DateTime'] publishedAt?: Maybe publishedBy?: Maybe summary: TutorialSummary data: TutorialData completed?: Maybe } /** * Users is useful for tracking completion progress * & credit for tutorial creation/contributions **/ export type User = { __typename?: 'User' id: Scalars['ID'] name?: Maybe email?: Maybe location?: Maybe avatarUrl?: Maybe createdAt: Scalars['DateTime'] updatedAt: Scalars['DateTime'] githubUser?: Maybe } export type ResolverTypeWrapper = Promise | T export type ResolverFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo, ) => Promise | TResult export type StitchingResolver = { fragment: string resolve: ResolverFn } export type Resolver = | ResolverFn | StitchingResolver export type SubscriptionSubscribeFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo, ) => AsyncIterator | Promise> export type SubscriptionResolveFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo, ) => TResult | Promise export interface SubscriptionSubscriberObject { subscribe: SubscriptionSubscribeFn<{ [key in TKey]: TResult }, TParent, TContext, TArgs> resolve?: SubscriptionResolveFn } export interface SubscriptionResolverObject { subscribe: SubscriptionSubscribeFn resolve: SubscriptionResolveFn } export type SubscriptionObject = | SubscriptionSubscriberObject | SubscriptionResolverObject export type SubscriptionResolver = | ((...args: any[]) => SubscriptionObject) | SubscriptionObject export type TypeResolveFn = ( parent: TParent, context: TContext, info: GraphQLResolveInfo, ) => Maybe export type NextResolverFn = () => Promise export type DirectiveResolverFn = ( next: NextResolverFn, parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo, ) => TResult | Promise /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { Query: ResolverTypeWrapper<{}> ID: ResolverTypeWrapper Tutorial: ResolverTypeWrapper User: ResolverTypeWrapper String: ResolverTypeWrapper DateTime: ResolverTypeWrapper GithubUser: ResolverTypeWrapper TutorialVersion: ResolverTypeWrapper TutorialSummary: ResolverTypeWrapper TutorialData: ResolverTypeWrapper TutorialConfig: ResolverTypeWrapper TutorialTestRunner: ResolverTypeWrapper FileFormat: FileFormat TutorialRepo: ResolverTypeWrapper TutorialInit: ResolverTypeWrapper StepActions: ResolverTypeWrapper Sha1: ResolverTypeWrapper Level: ResolverTypeWrapper Step: ResolverTypeWrapper Boolean: ResolverTypeWrapper tutorialRepoInput: TutorialRepoInput Commit: ResolverTypeWrapper Mutation: ResolverTypeWrapper<{}> editorLoginInput: EditorLoginInput Editor: Editor editorLoginOutput: ResolverTypeWrapper createTutorialVersionInput: CreateTutorialVersionInput JSON: ResolverTypeWrapper createTutorialVersionOutput: ResolverTypeWrapper JSONObject: ResolverTypeWrapper Role: Role createTokenInput: CreateTokenInput createTutorialSummaryInput: CreateTutorialSummaryInput } /** Mapping between all available schema types and the resolvers parents */ export type ResolversParentTypes = { Query: {} ID: Scalars['ID'] Tutorial: Tutorial User: User String: Scalars['String'] DateTime: Scalars['DateTime'] GithubUser: GithubUser TutorialVersion: TutorialVersion TutorialSummary: TutorialSummary TutorialData: TutorialData TutorialConfig: TutorialConfig TutorialTestRunner: TutorialTestRunner FileFormat: FileFormat TutorialRepo: TutorialRepo TutorialInit: TutorialInit StepActions: StepActions Sha1: Scalars['Sha1'] Level: Level Step: Step Boolean: Scalars['Boolean'] tutorialRepoInput: TutorialRepoInput Commit: Commit Mutation: {} editorLoginInput: EditorLoginInput Editor: Editor editorLoginOutput: EditorLoginOutput createTutorialVersionInput: CreateTutorialVersionInput JSON: Scalars['JSON'] createTutorialVersionOutput: CreateTutorialVersionOutput JSONObject: Scalars['JSONObject'] Role: Role createTokenInput: CreateTokenInput createTutorialSummaryInput: CreateTutorialSummaryInput } export type AuthDirectiveResolver< Result, Parent, ContextType = any, Args = { requires?: Maybe> } > = DirectiveResolverFn export type CommitResolvers< ContextType = any, ParentType extends ResolversParentTypes['Commit'] = ResolversParentTypes['Commit'] > = { id?: Resolver message?: Resolver, ParentType, ContextType> username?: Resolver, ParentType, ContextType> } export type CreateTutorialVersionOutputResolvers< ContextType = any, ParentType extends ResolversParentTypes['createTutorialVersionOutput'] = ResolversParentTypes['createTutorialVersionOutput'] > = { success?: Resolver, ParentType, ContextType> } export interface DateTimeScalarConfig extends GraphQLScalarTypeConfig { name: 'DateTime' } export type EditorLoginOutputResolvers< ContextType = any, ParentType extends ResolversParentTypes['editorLoginOutput'] = ResolversParentTypes['editorLoginOutput'] > = { user?: Resolver token?: Resolver } export type GithubUserResolvers< ContextType = any, ParentType extends ResolversParentTypes['GithubUser'] = ResolversParentTypes['GithubUser'] > = { id?: Resolver name?: Resolver, ParentType, ContextType> email?: Resolver, ParentType, ContextType> location?: Resolver, ParentType, ContextType> avatarUrl?: Resolver, ParentType, ContextType> } export interface JsonScalarConfig extends GraphQLScalarTypeConfig { name: 'JSON' } export interface JsonObjectScalarConfig extends GraphQLScalarTypeConfig { name: 'JSONObject' } export type LevelResolvers< ContextType = any, ParentType extends ResolversParentTypes['Level'] = ResolversParentTypes['Level'] > = { id?: Resolver title?: Resolver description?: Resolver content?: Resolver steps?: Resolver, ParentType, ContextType> setup?: Resolver, ParentType, ContextType> } export type MutationResolvers< ContextType = any, ParentType extends ResolversParentTypes['Mutation'] = ResolversParentTypes['Mutation'] > = { editorLogin?: Resolver< Maybe, ParentType, ContextType, RequireFields > createTutorialVersion?: Resolver< Maybe, ParentType, ContextType, RequireFields > } export type QueryResolvers< ContextType = any, ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query'] > = { tutorial?: Resolver< Maybe, ParentType, ContextType, RequireFields > tutorials?: Resolver>>, ParentType, ContextType> viewer?: Resolver, ParentType, ContextType> commits?: Resolver< Array>, ParentType, ContextType, RequireFields > } export interface Sha1ScalarConfig extends GraphQLScalarTypeConfig { name: 'Sha1' } export type StepResolvers< ContextType = any, ParentType extends ResolversParentTypes['Step'] = ResolversParentTypes['Step'] > = { id?: Resolver content?: Resolver setup?: Resolver solution?: Resolver } export type StepActionsResolvers< ContextType = any, ParentType extends ResolversParentTypes['StepActions'] = ResolversParentTypes['StepActions'] > = { id?: Resolver commits?: Resolver, ParentType, ContextType> files?: Resolver>, ParentType, ContextType> commands?: Resolver>, ParentType, ContextType> watchers?: Resolver>, ParentType, ContextType> } export type TutorialResolvers< ContextType = any, ParentType extends ResolversParentTypes['Tutorial'] = ResolversParentTypes['Tutorial'] > = { id?: Resolver createdBy?: Resolver createdAt?: Resolver version?: Resolver versions?: Resolver, ParentType, ContextType> completed?: Resolver, ParentType, ContextType> } export type TutorialConfigResolvers< ContextType = any, ParentType extends ResolversParentTypes['TutorialConfig'] = ResolversParentTypes['TutorialConfig'] > = { testRunner?: Resolver repo?: Resolver } export type TutorialDataResolvers< ContextType = any, ParentType extends ResolversParentTypes['TutorialData'] = ResolversParentTypes['TutorialData'] > = { config?: Resolver init?: Resolver, ParentType, ContextType> levels?: Resolver, ParentType, ContextType> } export type TutorialInitResolvers< ContextType = any, ParentType extends ResolversParentTypes['TutorialInit'] = ResolversParentTypes['TutorialInit'] > = { setup?: Resolver, ParentType, ContextType> } export type TutorialRepoResolvers< ContextType = any, ParentType extends ResolversParentTypes['TutorialRepo'] = ResolversParentTypes['TutorialRepo'] > = { uri?: Resolver branch?: Resolver name?: Resolver, ParentType, ContextType> owner?: Resolver, ParentType, ContextType> } export type TutorialSummaryResolvers< ContextType = any, ParentType extends ResolversParentTypes['TutorialSummary'] = ResolversParentTypes['TutorialSummary'] > = { title?: Resolver description?: Resolver } export type TutorialTestRunnerResolvers< ContextType = any, ParentType extends ResolversParentTypes['TutorialTestRunner'] = ResolversParentTypes['TutorialTestRunner'] > = { command?: Resolver fileFormats?: Resolver>, ParentType, ContextType> } export type TutorialVersionResolvers< ContextType = any, ParentType extends ResolversParentTypes['TutorialVersion'] = ResolversParentTypes['TutorialVersion'] > = { tutorialId?: Resolver version?: Resolver createdAt?: Resolver createdBy?: Resolver updatedBy?: Resolver updatedAt?: Resolver publishedAt?: Resolver, ParentType, ContextType> publishedBy?: Resolver, ParentType, ContextType> summary?: Resolver data?: Resolver completed?: Resolver, ParentType, ContextType> } export type UserResolvers< ContextType = any, ParentType extends ResolversParentTypes['User'] = ResolversParentTypes['User'] > = { id?: Resolver name?: Resolver, ParentType, ContextType> email?: Resolver, ParentType, ContextType> location?: Resolver, ParentType, ContextType> avatarUrl?: Resolver, ParentType, ContextType> createdAt?: Resolver updatedAt?: Resolver githubUser?: Resolver, ParentType, ContextType> } export type Resolvers = { Commit?: CommitResolvers createTutorialVersionOutput?: CreateTutorialVersionOutputResolvers DateTime?: GraphQLScalarType editorLoginOutput?: EditorLoginOutputResolvers GithubUser?: GithubUserResolvers JSON?: GraphQLScalarType JSONObject?: GraphQLScalarType Level?: LevelResolvers Mutation?: MutationResolvers Query?: QueryResolvers Sha1?: GraphQLScalarType Step?: StepResolvers StepActions?: StepActionsResolvers Tutorial?: TutorialResolvers TutorialConfig?: TutorialConfigResolvers TutorialData?: TutorialDataResolvers TutorialInit?: TutorialInitResolvers TutorialRepo?: TutorialRepoResolvers TutorialSummary?: TutorialSummaryResolvers TutorialTestRunner?: TutorialTestRunnerResolvers TutorialVersion?: TutorialVersionResolvers User?: UserResolvers } /** * @deprecated * Use "Resolvers" root object instead. If you wish to get "IResolvers", add "typesPrefix: I" to your config. */ export type IResolvers = Resolvers export type DirectiveResolvers = { auth?: AuthDirectiveResolver } /** * @deprecated * Use "DirectiveResolvers" root object instead. If you wish to get "IDirectiveResolvers", add "typesPrefix: I" to your config. */ export type IDirectiveResolvers = DirectiveResolvers export interface IntrospectionResultData { __schema: { types: { kind: string name: string possibleTypes: { name: string }[] }[] } }