// @ts-nocheck import { GraphQLResolveInfo, SelectionSetNode, FieldNode, GraphQLScalarType, GraphQLScalarTypeConfig } from 'graphql'; import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; import { gql } from '@graphql-mesh/utils'; import type { GetMeshOptions } from '@graphql-mesh/runtime'; import type { YamlConfig } from '@graphql-mesh/types'; import { defaultImportFn, handleImport } from '@graphql-mesh/utils'; import { PubSub } from '@graphql-mesh/utils'; import { DefaultLogger } from '@graphql-mesh/utils'; import type { MeshResolvedSource } from '@graphql-mesh/runtime'; import type { MeshTransform, MeshPlugin } from '@graphql-mesh/types'; import { parse } from 'graphql'; import { createMeshHTTPHandler, MeshHTTPHandler } from '@graphql-mesh/http'; import { getMesh, type ExecuteMeshFn, type SubscribeMeshFn, type MeshContext as BaseMeshContext, type MeshInstance } from '@graphql-mesh/runtime'; import { MeshStore, FsStoreStorageAdapter } from '@graphql-mesh/store'; import { path as pathModule } from '@graphql-mesh/cross-helpers'; import type { ImportFn } from '@graphql-mesh/types'; import type { PayperTypes } from './sources/Payper/types'; export type Maybe = T | null; export type InputMaybe = Maybe; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: { input: string; output: string; } /** The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. */ String: { input: string; output: string; } Boolean: { input: boolean; output: boolean; } /** The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. */ Int: { input: number; output: number; } /** The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). */ Float: { input: number; output: number; } ObjMap: { input: unknown; output: unknown; } }; export type Query = { getExpensesRaw?: Maybe; getExpenses?: Maybe; }; export type QuerygetExpensesRawArgs = { input?: InputMaybe; }; export type QuerygetExpensesArgs = { input?: InputMaybe; }; export type getExpensesResponse = { description: Scalars['String']['output']; /** An array of JSON of the search */ expenses?: Maybe>>; /** The next available page */ next_page?: Maybe; result: Scalars['Int']['output']; /** The total size of the query */ total_entries?: Maybe; /** The total pages of the query */ total_pages?: Maybe; }; /** A Single Expense */ export type Expense = { created_at: Scalars['String']['output']; currency_symbol?: Maybe; document_date?: Maybe; document_id?: Maybe; document_type?: Maybe; file_name: Scalars['String']['output']; file_url: Scalars['String']['output']; foreign_total_for_payment?: Maybe; original_file_name?: Maybe; provider: Scalars['String']['output']; provider_business_num: Scalars['String']['output']; recognized_vat_payment: Scalars['Float']['output']; remarks?: Maybe; status_classification: Scalars['String']['output']; system_id: Scalars['Int']['output']; total_for_payment: Scalars['Float']['output']; total_for_vat: Scalars['Float']['output']; updated_at: Scalars['String']['output']; vat_payment: Scalars['Float']['output']; }; export type query_getExpensesRaw_expenses_items_currency_symbol = | 'EUR' | 'USD' | 'ILS'; export type getExpensesRequest_Input = { api_user?: InputMaybe; query_options?: InputMaybe; }; export type queryInput_getExpensesRaw_input_query_options_Input = { updated_from?: InputMaybe; updated_to?: InputMaybe; created_from?: InputMaybe; created_to?: InputMaybe; document_date_from?: InputMaybe; document_date_to?: InputMaybe; document_id?: InputMaybe; /** default: -100000000 */ system_id?: InputMaybe; order?: InputMaybe; /** default: 1 */ page?: InputMaybe; /** default: 50 */ per_page?: InputMaybe; }; export type document_date_const = | 'document_date'; export type HTTPMethod = | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH'; export type WithIndex = TObject & Record; export type ResolversObject = WithIndex; export type ResolverTypeWrapper = Promise | T; export type ResolverWithResolve = { resolve: ResolverFn; }; export type LegacyStitchingResolver = { fragment: string; resolve: ResolverFn; }; export type NewStitchingResolver = { selectionSet: string | ((fieldNode: FieldNode) => SelectionSetNode); resolve: ResolverFn; }; export type StitchingResolver = LegacyStitchingResolver | NewStitchingResolver; export type Resolver, TContext = Record, TArgs = Record> = | ResolverFn | ResolverWithResolve | StitchingResolver; export type ResolverFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => Promise | TResult; export type SubscriptionSubscribeFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => AsyncIterable | 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, TContext = Record, TArgs = Record> = | ((...args: any[]) => SubscriptionObject) | SubscriptionObject; export type TypeResolveFn, TContext = Record> = ( parent: TParent, context: TContext, info: GraphQLResolveInfo ) => Maybe | Promise>; export type IsTypeOfResolverFn, TContext = Record> = (obj: T, context: TContext, info: GraphQLResolveInfo) => boolean | Promise; export type NextResolverFn = () => Promise; export type DirectiveResolverFn, TParent = Record, TContext = Record, TArgs = Record> = ( 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 = ResolversObject<{ Query: ResolverTypeWrapper>; getExpensesResponse: ResolverTypeWrapper; Int: ResolverTypeWrapper; Expense: ResolverTypeWrapper; Float: ResolverTypeWrapper; query_getExpensesRaw_expenses_items_currency_symbol: query_getExpensesRaw_expenses_items_currency_symbol; getExpensesRequest_Input: getExpensesRequest_Input; queryInput_getExpensesRaw_input_query_options_Input: queryInput_getExpensesRaw_input_query_options_Input; document_date_const: document_date_const; ObjMap: ResolverTypeWrapper; HTTPMethod: HTTPMethod; String: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; }>; /** Mapping between all available schema types and the resolvers parents */ export type ResolversParentTypes = ResolversObject<{ Query: Record; getExpensesResponse: getExpensesResponse; Int: Scalars['Int']['output']; Expense: Expense; Float: Scalars['Float']['output']; getExpensesRequest_Input: getExpensesRequest_Input; queryInput_getExpensesRaw_input_query_options_Input: queryInput_getExpensesRaw_input_query_options_Input; ObjMap: Scalars['ObjMap']['output']; String: Scalars['String']['output']; Boolean: Scalars['Boolean']['output']; }>; export type enumDirectiveArgs = { subgraph?: Maybe; value?: Maybe; }; export type enumDirectiveResolver = DirectiveResolverFn; export type typescriptDirectiveArgs = { subgraph?: Maybe; type?: Maybe; }; export type typescriptDirectiveResolver = DirectiveResolverFn; export type exampleDirectiveArgs = { subgraph?: Maybe; value?: Maybe; }; export type exampleDirectiveResolver = DirectiveResolverFn; export type httpOperationDirectiveArgs = { subgraph?: Maybe; path?: Maybe; operationSpecificHeaders?: Maybe>>>>; httpMethod?: Maybe; isBinary?: Maybe; requestBaseBody?: Maybe; queryParamArgMap?: Maybe; queryStringOptionsByParam?: Maybe; jsonApiFields?: Maybe; queryStringOptions?: Maybe; }; export type httpOperationDirectiveResolver = DirectiveResolverFn; export type transportDirectiveArgs = { subgraph?: Maybe; kind?: Maybe; location?: Maybe; headers?: Maybe>>>>; queryStringOptions?: Maybe; queryParams?: Maybe>>>>; }; export type transportDirectiveResolver = DirectiveResolverFn; export type QueryResolvers = ResolversObject<{ getExpensesRaw?: Resolver, ParentType, ContextType, Partial>; getExpenses?: Resolver, ParentType, ContextType, Partial>; }>; export type getExpensesResponseResolvers = ResolversObject<{ description?: Resolver; expenses?: Resolver>>, ParentType, ContextType>; next_page?: Resolver, ParentType, ContextType>; result?: Resolver; total_entries?: Resolver, ParentType, ContextType>; total_pages?: Resolver, ParentType, ContextType>; }>; export type ExpenseResolvers = ResolversObject<{ created_at?: Resolver; currency_symbol?: Resolver, ParentType, ContextType>; document_date?: Resolver, ParentType, ContextType>; document_id?: Resolver, ParentType, ContextType>; document_type?: Resolver, ParentType, ContextType>; file_name?: Resolver; file_url?: Resolver; foreign_total_for_payment?: Resolver, ParentType, ContextType>; original_file_name?: Resolver, ParentType, ContextType>; provider?: Resolver; provider_business_num?: Resolver; recognized_vat_payment?: Resolver; remarks?: Resolver, ParentType, ContextType>; status_classification?: Resolver; system_id?: Resolver; total_for_payment?: Resolver; total_for_vat?: Resolver; updated_at?: Resolver; vat_payment?: Resolver; }>; export interface ObjMapScalarConfig extends GraphQLScalarTypeConfig { name: 'ObjMap'; } export type Resolvers = ResolversObject<{ Query?: QueryResolvers; getExpensesResponse?: getExpensesResponseResolvers; Expense?: ExpenseResolvers; ObjMap?: GraphQLScalarType; }>; export type DirectiveResolvers = ResolversObject<{ enum?: enumDirectiveResolver; typescript?: typescriptDirectiveResolver; example?: exampleDirectiveResolver; httpOperation?: httpOperationDirectiveResolver; transport?: transportDirectiveResolver; }>; export type MeshInContextSDK = PayperTypes.Context; export type MeshContext = BaseMeshContext & MeshInContextSDK; const baseDir = pathModule.join(typeof __dirname === 'string' ? __dirname : '/', '..'); const importFn: ImportFn = (moduleId: string) => { const relativeModuleId = (pathModule.isAbsolute(moduleId) ? pathModule.relative(baseDir, moduleId) : moduleId).split('\\').join('/').replace(baseDir + '/', ''); switch(relativeModuleId) { case "mesh-artifacts/sources/Payper/schemaWithAnnotations.js": return import("./sources/Payper/schemaWithAnnotations.js") as T; default: return Promise.reject(new Error(`Cannot find module '${relativeModuleId}'.`)); } }; const rootStore = new MeshStore('mesh-artifacts', new FsStoreStorageAdapter({ cwd: baseDir, importFn, fileType: "js", }), { readonly: true, validate: false }); export const rawServeConfig: YamlConfig.Config['serve'] = {"browser":false} as any export async function getMeshOptions(): Promise { const pubsub = new PubSub(); const sourcesStore = rootStore.child('sources'); const logger = new DefaultLogger(""); const MeshCache = await import("@graphql-mesh/cache-localforage").then(handleImport); const cache = new MeshCache({ ...{}, importFn, store: rootStore.child('cache'), pubsub, logger, }) const fetchFn = await import('@whatwg-node/fetch').then(m => m?.fetch || m); const sources: MeshResolvedSource[] = []; const transforms: MeshTransform[] = []; const additionalEnvelopPlugins: MeshPlugin[] = []; const payperTransforms = []; const PayperHandler = await import("@graphql-mesh/json-schema").then(handleImport); const payperHandler = new PayperHandler({ name: "Payper", config: {"endpoint":"https://payper.co.il/app/api","operationHeaders":{"API_KEY":"{context.authToken}","Content-Type":"application/json","Accept":"application/json"},"operations":[{"type":"Query","field":"getExpensesRaw","path":"/pull_expenses","method":"POST","requestSchema":"./json-schemas/payperSchema.json#/definitions/getExpensesRequest","responseSchema":"./json-schemas/payperSchema.json#/definitions/getExpensesResponse"}]}, baseDir, cache, pubsub, store: sourcesStore.child("Payper"), logger: logger.child({ source: "Payper" }), importFn, }); sources[0] = { name: 'Payper', handler: payperHandler, transforms: payperTransforms } const additionalTypeDefs = [parse("extend type Query {\n getExpenses(input: getExpensesRequest_Input): getExpensesResponse\n}"),] as any[]; const additionalResolvers = await Promise.all([ import("../resolvers/get-expenses-resolver.js") .then(m => m.resolvers || m.default || m) ]); const Merger = await import("@graphql-mesh/merger-bare").then(handleImport); const merger = new Merger({ cache, pubsub, logger: logger.child({ merger: "bare" }), store: rootStore.child("bare") }) return { sources, transforms, additionalTypeDefs, additionalResolvers, cache, pubsub, merger, logger, additionalEnvelopPlugins, get documents() { return [ ]; }, fetchFn, }; } export function createBuiltMeshHTTPHandler(): MeshHTTPHandler { return createMeshHTTPHandler({ baseDir, getBuiltMesh: getBuiltMesh, rawServeConfig: {"browser":false}, }) } let meshInstance$: Promise | undefined; export const pollingInterval = null; export function getBuiltMesh(): Promise { if (meshInstance$ == null) { if (pollingInterval) { setInterval(() => { getMeshOptions() .then(meshOptions => getMesh(meshOptions)) .then(newMesh => meshInstance$.then(oldMesh => { oldMesh.destroy() meshInstance$ = Promise.resolve(newMesh) }) ).catch(err => { console.error("Mesh polling failed so the existing version will be used:", err); }); }, pollingInterval) } meshInstance$ = getMeshOptions().then(meshOptions => getMesh(meshOptions)).then(mesh => { const id = mesh.pubsub.subscribe('destroy', () => { meshInstance$ = undefined; mesh.pubsub.unsubscribe(id); }); return mesh; }).catch((err) => { meshInstance$ = undefined; return Promise.reject(err); }); } return meshInstance$; } export const execute: ExecuteMeshFn = (...args) => getBuiltMesh().then(({ execute }) => execute(...args)); export const subscribe: SubscribeMeshFn = (...args) => getBuiltMesh().then(({ subscribe }) => subscribe(...args)); export function getMeshSDK(globalContext?: TGlobalContext) { const sdkRequester$ = getBuiltMesh().then(({ sdkRequesterFactory }) => sdkRequesterFactory(globalContext)); return getSdk((...args) => sdkRequester$.then(sdkRequester => sdkRequester(...args))); } export type getExpensesRaw_queryQueryVariables = Exact<{ input?: InputMaybe; }>; export type getExpensesRaw_queryQuery = { getExpensesRaw?: Maybe<( Pick< getExpensesResponse, | 'description' | 'next_page' | 'result' | 'total_entries' | 'total_pages' > & { expenses?: Maybe>>> } )> }; export type getExpenses_queryQueryVariables = Exact<{ input?: InputMaybe; }>; export type getExpenses_queryQuery = { getExpenses?: Maybe<( Pick< getExpensesResponse, | 'description' | 'next_page' | 'result' | 'total_entries' | 'total_pages' > & { expenses?: Maybe>>> } )> }; export const getExpensesRaw_queryDocument = gql` query getExpensesRaw_query($input: getExpensesRequest_Input) { getExpensesRaw(input: $input) { description expenses { created_at currency_symbol document_date document_id document_type file_name file_url foreign_total_for_payment original_file_name provider provider_business_num recognized_vat_payment remarks status_classification system_id total_for_payment total_for_vat updated_at vat_payment } next_page result total_entries total_pages } } ` as unknown as DocumentNode; export const getExpenses_queryDocument = gql` query getExpenses_query($input: getExpensesRequest_Input) { getExpenses(input: $input) { description expenses { created_at currency_symbol document_date document_id document_type file_name file_url foreign_total_for_payment original_file_name provider provider_business_num recognized_vat_payment remarks status_classification system_id total_for_payment total_for_vat updated_at vat_payment } next_page result total_entries total_pages } } ` as unknown as DocumentNode; export type Requester = (doc: DocumentNode, vars?: V, options?: C) => Promise | AsyncIterable export function getSdk(requester: Requester) { return { getExpensesRaw_query(variables?: getExpensesRaw_queryQueryVariables, options?: C): Promise { return requester(getExpensesRaw_queryDocument, variables, options) as Promise; }, getExpenses_query(variables?: getExpenses_queryQueryVariables, options?: C): Promise { return requester(getExpenses_queryDocument, variables, options) as Promise; } }; } export type Sdk = ReturnType;