@connect-plus-online/ogabai-integrations 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/auth.ts","../src/errors.ts","../src/middleware.ts","../src/transport.ts","../src/client.ts","../src/helpers/query.ts","../src/services/user/schemas/user.schema.ts","../src/services/user/user.entity.ts","../src/services/inventory/entities.ts","../src/services/user/types/account.type.ts","../src/services/user/types/user.type.ts","../src/services/user/user.service.ts","../src/services/user/schemas/auth.schema.ts","../src/services/user/types/auth.type.ts","../src/services/user/auth.service.ts","../src/services/inventory/types/product.type.ts","../src/services/inventory/types/package.type.ts","../src/services/inventory/types/price.type.ts","../src/services/inventory/types/stock.type.ts","../src/services/inventory/types/store.type.ts","../src/services/inventory/schema/package.schema.ts","../src/services/inventory/package.service.ts","../src/services/inventory/schema/price.schema.ts","../src/services/inventory/price.service.ts","../src/services/inventory/schema/product.schema.ts","../src/services/file/file.service.ts","../src/services/inventory/product.service.ts","../src/services/inventory/schema/stock.schema.ts","../src/services/inventory/stock.service.ts","../src/services/inventory/schema/store.schema.ts","../src/services/inventory/store.service.ts","../src/services/sales/schemas/order.schema.ts","../src/services/sales/sale.entity.ts","../src/services/sales/types/order.type.ts","../src/services/sales/order.service.ts","../src/services/sales/schemas/sale.schema.ts","../src/services/sales/types/sale.type.ts","../src/services/sales/sale.service.ts","../src/services/sales/schemas/transaction.schema.ts","../src/services/sales/types/transaction.type.ts","../src/services/sales/transaction.service.ts"],"names":[],"mappings":"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","file":"index.cjs.js","sourcesContent":["export type AuthTokenProvider = () => Promise<string | null> | string | null;\nexport type HeadersFactory = () => Promise<Record<string, string>> | Record<string, string>;\n\nexport const toAsyncTokenProvider = (p?: AuthTokenProvider): (() => Promise<string | null>) => {\n if (!p) return async () => null;\n return async () => {\n try {\n const res = p();\n return res instanceof Promise ? await res : res;\n } catch {\n return null;\n }\n };\n};\n\nexport const toAsyncHeadersFactory = (\n f?: HeadersFactory\n): (() => Promise<Record<string, string>>) => {\n if (!f) return async () => ({});\n return async () => {\n try {\n const res = f();\n return (res instanceof Promise ? await res : res) ?? {};\n } catch {\n return {};\n }\n };\n};\n","export class SdkError extends Error {\n code?: string;\n info?: any;\n constructor(message: string, code?: string, info?: any) {\n super(message);\n this.name = \"SdkError\";\n this.code = code;\n this.info = info;\n }\n}\n\nexport class NetworkError extends SdkError {\n constructor(message = \"Network error\", info?: any) {\n super(message, \"NETWORK_ERROR\", info);\n }\n}\n\nexport class AuthenticationError extends SdkError {\n constructor(message = \"Authentication failed\", info?: any) {\n super(message, \"AUTH_ERROR\", info);\n }\n}\n","import { GraphQLRequest, GraphQLResponse } from \"./types/request\";\nimport { CacheRequestOptions } from \"./middlewares/cache\";\n\nexport type RequestContext<U = any> = {\n request: GraphQLRequest<U>;\n url: string;\n headers: Record<string, string>;\n meta?: Record<string, any>;\n cacheOptions?: CacheRequestOptions;\n};\n\nexport type ResponseContext<T = any> = {\n response?: GraphQLResponse<T> | null;\n error?: Error | null;\n status?: number | null;\n};\n\nexport type Next = () => Promise<void>;\n\nexport type Middleware = <T = any, U = any>(\n ctx: RequestContext<U>,\n resCtx: ResponseContext<T>,\n next: Next\n) => Promise<void>;\n\n/**\n * compose middlewares into a single runner.\n * similar idea to koa-compose.\n */\nexport const compose =\n (middlewares: Middleware[]) =>\n async <T = any, U = any>(ctx: RequestContext<U>, resCtx: ResponseContext<T>) => {\n let idx = -1;\n const dispatch = async (i: number): Promise<void> => {\n if (i <= idx) throw new Error(\"next() called multiple times\");\n idx = i;\n const fn = middlewares[i];\n if (!fn) return;\n await fn(ctx, resCtx, () => dispatch(i + 1));\n };\n await dispatch(0);\n };\n","import type { RequestContext, ResponseContext, Middleware } from \"./middleware\";\nimport type { GraphQLResponse } from \"./types/request\";\n\nexport type TransportOptions = {\n fetchImpl?: typeof fetch; // allow injection (node polyfill or axios wrapper)\n timeoutMs?: number;\n};\n\nexport const createTransport = (opts?: TransportOptions): Middleware => {\n const fetchImpl = opts?.fetchImpl ?? (typeof fetch !== \"undefined\" ? fetch.bind(globalThis) : undefined);\n\n if (!fetchImpl) {\n throw new Error(\n \"No fetch implementation available. Provide fetchImpl in TransportOptions or polyfill fetch.\"\n );\n }\n\n return async (ctx: RequestContext, resCtx: ResponseContext, next) => {\n // last middleware should perform network request and fill resCtx.response or resCtx.error\n const body = JSON.stringify({ query: ctx.request.query, variables: ctx.request.variables });\n try {\n const controller = typeof AbortController !== \"undefined\" ? new AbortController() : null;\n const signal = controller?.signal;\n let timer: any;\n if (controller && opts?.timeoutMs) timer = setTimeout(() => controller.abort(), opts!.timeoutMs);\n\n const r = await fetchImpl(ctx.url, {\n method: \"POST\",\n headers: ctx.headers,\n body,\n signal,\n });\n\n if (timer) clearTimeout(timer);\n\n const text = await r.text();\n let parsed: GraphQLResponse;\n try {\n parsed = JSON.parse(text);\n } catch {\n resCtx.error = new Error(\"Invalid JSON response\");\n resCtx.status = r.status;\n return;\n }\n resCtx.response = parsed;\n resCtx.status = r.status;\n } catch (err: any) {\n if (err.name === \"AbortError\") resCtx.error = new Error(\"Request timed out\");\n else resCtx.error = err;\n }\n await next();\n };\n};\n","import { compose, type Middleware, type RequestContext, type ResponseContext } from \"./middleware\";\nimport { createTransport } from \"./transport\";\nimport { toAsyncHeadersFactory, toAsyncTokenProvider } from \"./auth\";\nimport type { GraphQLResponse } from \"./types/request\";\n\nexport type ClientOptions = {\n url: string;\n tokenProvider?: (() => Promise<string | null>) | (() => string | null);\n headersFactory?: (() => Promise<Record<string, string>>) | (() => Record<string, string>);\n fetchImpl?: typeof fetch;\n timeoutMs?: number;\n middlewares?: Middleware[]; // additional user middlewares\n};\nexport type RequestOption<U = any> = Partial<Omit<RequestContext<U>, \"request\"|\"url\">>\n\nexport class GraphQLClient {\n private url: string;\n private tokenProvider: () => Promise<string | null>;\n private headersFactory: () => Promise<Record<string, string>>;\n private middlewares: Middleware[];\n\n public async token(): Promise<string | null> {\n return this.tokenProvider();\n }\n\n public async headers(): Promise<Record<string, string>> {\n return this.headersFactory();\n }\n\n public getUrl(){\n return this.url\n }\n\n constructor(opts: ClientOptions) {\n this.url = opts.url;\n this.tokenProvider = toAsyncTokenProvider(opts.tokenProvider);\n this.headersFactory = toAsyncHeadersFactory(opts.headersFactory);\n // base pipeline: auth headers middleware -> user middlewares -> transport\n const base: Middleware[] = [this.authMiddleware.bind(this)];\n if (opts.middlewares) base.push(...opts.middlewares);\n base.push(createTransport({ fetchImpl: opts.fetchImpl, timeoutMs: opts.timeoutMs }));\n this.middlewares = base;\n }\n\n private async authMiddleware<T = any, U = any>(ctx: RequestContext<U>, resCtx: ResponseContext<T>, next: () => Promise<void>) {\n const token = await this.tokenProvider();\n const dynamicHeaders = await this.headersFactory();\n ctx.headers = {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n ...dynamicHeaders,\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\n ...(ctx.headers ?? {}),\n };\n await next();\n }\n\n // core request\n public async request<T = any, U = any>(query: string, variables?: U, options?: RequestOption): Promise<GraphQLResponse<T>> {\n const ctx: RequestContext<U> = { \n request: { query, variables }, \n url: this.url, \n headers: options?.headers ?? {},\n cacheOptions: options?.cacheOptions\n };\n const resCtx: ResponseContext<T> = {};\n const runner = compose(this.middlewares);\n await runner<T>(ctx, resCtx);\n\n if (resCtx.error) throw resCtx.error;\n if (!resCtx.response) throw new Error(\"No response from GraphQL transport\");\n if (resCtx.response.errors && resCtx.response.errors.length) {\n console.log(\"Detailed error - log: \", JSON.stringify(resCtx.response.errors))\n // normalize, throw first error (apps can inspect)\n const e = resCtx.response.errors[0];\n const err = new Error(e.message);\n (err as any).extensions = e.extensions;\n throw err;\n }\n return resCtx.response;\n }\n}\n","export function gqlQueryStringBuilder<Q extends object, T = undefined>(\n query?: (keyof Q)[] | (keyof T)[],\n nestedValues?: T\n) {\n let queryString = \"\";\n if (query)\n for (let i = 0; i < query.length; i++) {\n const element = query?.[i];\n if (nestedValues?.[element as keyof T]) {\n queryString += `${String(element)} { \n ${gqlQueryStringBuilder(nestedValues[element as keyof T] as (keyof T)[], nestedValues)} \n }`;\n } else queryString += `${String(element)} `;\n }\n return queryString;\n}","export const userSchema = {\n getUserDashStats: (query: string) => `\n query getUserDashStats {\n getUserDashStats {\n ${query}\n }\n }\n `,\n me: (query: string) => `\n query me {\n me {\n ${query}\n }\n }\n `,\n getUser: (query: string) => `\n query getUser($user: UserInput!) {\n user(user: $user) {\n ${query}\n }\n }\n `,\n\n getUsers: (query: string) => `\n query getUsers($user: UserInput, $userIds: [String], $limit: Int!, $skip: Int!) {\n users(user: $user, userIds: $userIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n updateUser: (mutation: string) => `\n mutation updateUser($userId: String!, $userUpdate: UpdateUserFieldInput, $imageType: String) {\n updateUser(userId: $userId, userUpdate: $userUpdate, imageType: $imageType) {\n ${mutation}\n }\n }\n `,\n}\n\nexport default userSchema","import { Account, NotificationChannels, ProductCounts, RestockCounts, SaleCounts, ServiceUpdate, TransactionCounts, User, UserNotificationSettings, UserSetting, Wallet } from \"../../types\";\n\nexport type AccountFields = (keyof Account)[];\nexport type WalletFields = (keyof Wallet)[];\nexport type UserFields = (keyof User)[];\nexport type UserNotificationSettingsFields = (keyof UserNotificationSettings)[];\nexport type NotificationChannelsFields = (keyof NotificationChannels)[];\nexport type ServiceUpdateFields = (keyof ServiceUpdate)[]\nexport type UserSettingFields = (keyof UserSetting)[]\nexport type ProductCountsFields = (keyof ProductCounts)[];\nexport type RestockCountsFields = (keyof RestockCounts)[]\nexport type SaleCountsFields = (keyof SaleCounts)[];\nexport type TransactionCountsFields = (keyof TransactionCounts)[];\n\n\n\nexport const transactionCountsQuery:TransactionCountsFields = [\n \"totalTx\", \"totalTxThisMonth\", \"totalTxThisYear\", \"totalTxToday\"\n]\nexport const saleCountsQuery:SaleCountsFields = [\n \"totalSales\", \"totalSalesThisMonth\", \"totalSalesThisYear\", \n \"totalSalesToday\"\n]\nexport const restockCountsQuery:RestockCountsFields = [\n \"totalRestock\", \"totalRestockThisMonth\", \"totalRestockThisYear\", \n \"totalRestockToday\"\n]\nexport const productCountsQuery:ProductCountsFields = [\n \"totalProduct\", \"totalProductThisMonth\", \"totalProductThisYear\",\n \"totalProductToday\"\n]\n\n\nexport const accountQuery:AccountFields = [\n \"_id\", \"accountStatus\", \"bvn\", \"createdAt\", \"nin\", \"totalBalance\", \"userId\", \"wallets\",\n]\nexport const walletQuery: WalletFields = [\n \"_id\", \"accountId\", \"balance\", \"createdAt\", \"currency\", \"status\", \"storeId\",\n]\nexport const userQuery:UserFields = [\n \"_id\", \"country\", \"createdAt\", \"dob\", \"email\",\n \"firstName\", \"isAdmin\", \"lastName\", \"phone\",\n \"phoneVerified\", \"phoneVerifiedAt\", \"profileImageUrl\", \n \"updatedAt\"\n]\nexport const notificationChannelsQuery:NotificationChannelsFields = [\n \"emailNotification\", \"pushNotification\", \"smsNotification\"\n]\nexport const serviceUpdateQuery:ServiceUpdateFields = [\n \"debtorAlert\", \"deliveryStatus\", \"inventory\", \"priceMovement\", \"saleAlert\",\n]\nexport const userNotificationSettingsQuery:UserNotificationSettingsFields = [\n \"_id\", \"notificationChannels\", \"serviceUpdate\", \"userId\"\n]\nexport const userSettingQuery:UserSettingFields = [\n \"_id\", \"defaultStoreId\", \"hasFa2\", \"hasTransactionPin\",\n \"subBillType\", \"subscriptionPlanID\", \"userId\"\n]","import { Address, Price, Product, ProductAttribute, ProductCategory, ProductName, ProductPackage, Stock, Store } from \"../../types\";\n\n\nexport type AttributeFields = (keyof ProductAttribute)[]\nexport const attributeQuery: AttributeFields = [\n \"name\",\n \"value\",\n]\nexport type PriceFields = (keyof Price)[];\nexport const priceQuery:PriceFields = [\n \"_id\",\n \"packageId\",\n \"sellingPrice\",\n \"costPrice\",\n \"deduction\",\n \"storeId\",\n \"createdAt\"\n]\nexport type StockFields = (keyof Stock)[]\nexport const stockQuery: StockFields = [\n \"_id\",\n \"packageId\",\n \"stockQty\",\n \"costPerPackage\",\n \"sellPerPackage\",\n \"deduction\",\n \"storeId\",\n \"createdAt\"\n]\nexport type StoreFields = (keyof Store)[]\nexport const storeQuery: StoreFields = [\n \"_id\",\n \"name\",\n \"address\",\n \"shopType\",\n \"ownerId\",\n \"createdAt\",\n \"storeLocation\"\n]\nexport type AddressFields = (keyof Address)[]\nexport const addressQuery:AddressFields = [\n \"city\", \"country\", \"state\", \"zipcode\"\n]\nexport type CategoryFields = (keyof ProductCategory)[]\nexport const categoryQuery: CategoryFields = [\n \"_id\",\n \"name\",\n \"description\",\n \"categoryStatus\",\n \"storeId\",\n \"createdAt\",\n \"status\",\n \"isTemplate\"\n]\n\nexport type PackageFields = (keyof ProductPackage)[]\nexport const productQuery:ProductFields = [\n \"_id\",\n \"barcode\",\n \"category\",\n \"categoryId\",\n \"createdAt\",\n \"description\",\n \"images\",\n \"smallestPackage\",\n \"smallestPackageId\",\n \"name\",\n \"productAttributes\",\n \"productPackages\",\n \"storeId\",\n \"tag\", \n \"totalStockInSmallestPackage\",\n]\nexport type ProductNamesFields = (keyof ProductName)[]\nexport const productNameQuery: ProductNamesFields = [\n \"_id\",\n \"name\"\n]\nexport type ProductFields = (keyof Product)[]\nexport const packageQuery: PackageFields = [\n \"_id\",\n \"name\",\n \"description\",\n \"trackIndex\",\n \"productId\",\n \"unit\",\n \"unitQuantity\",\n \"totalStock\",\n \"barcode\",\n \"priorityPrice\",\n \"stockLimit\",\n \"storeId\",\n \"createdAt\",\n \"price\",\n \"deduction\",\n \"stocks\"\n]","import { Account } from \"../../../types\";\nimport { AccountFields, accountQuery, WalletFields, walletQuery } from \"../user.entity\";\n\nexport interface GetAccountRequest {\n account: Partial<Account>;\n}\nexport interface GetAccountResponse {\n account: Account;\n}\nexport const getAccountResponse: (keyof GetAccountResponse)[] = [\n \"account\"\n]\nexport interface GetAccountResponseNestedFields {\n account: AccountFields;\n wallets: WalletFields;\n}\nexport const getAccountResponseNestedFields: GetAccountResponseNestedFields = {\n account: accountQuery,\n wallets: walletQuery,\n}","import { \n Account,\n ProductCounts,\n RestockCounts,\n SaleCounts,\n Store,\n TransactionCounts,\n User,\n UserSetting,\n UserType \n} from \"../../../types\";\nimport { AccountFields, ProductCountsFields, productCountsQuery, RestockCountsFields, restockCountsQuery, SaleCountsFields, saleCountsQuery, TransactionCountsFields, transactionCountsQuery, UserFields, userQuery, UserSettingFields, userSettingQuery } from \"../user.entity\";\nimport { AddressFields, addressQuery, StoreFields, storeQuery } from \"../../inventory/entities\";\nimport { getAccountResponseNestedFields } from \"./account.type\"\n\n\n// user dashboard stats \nexport interface GetUserDashStatsResponse {\n outOfStockCount: number;\n productCounts: ProductCounts;\n restockCounts: RestockCounts;\n saleCounts: SaleCounts;\n stockValue: number;\n transactionCounts: TransactionCounts;\n}\nexport const getUserDashStatsResponse:(keyof GetUserDashStatsResponse)[] = [\n \"outOfStockCount\", \"productCounts\", \"restockCounts\", \"saleCounts\",\n \"stockValue\", \"transactionCounts\"\n]\nexport interface GetUserDashStatsResponseNestedFields {\n productCounts: ProductCountsFields;\n restockCounts: RestockCountsFields;\n saleCounts: SaleCountsFields;\n transactionCounts: TransactionCountsFields;\n}\nexport const getUserDashStatsResponseNestedFields:GetUserDashStatsResponseNestedFields = {\n productCounts: productCountsQuery,\n restockCounts: restockCountsQuery,\n saleCounts: saleCountsQuery,\n transactionCounts: transactionCountsQuery\n}\n\n// get user \nexport interface GetUserRequest {\n userId: string;\n}\nexport interface GetUserResponse {\n user: User;\n}\nexport interface GetUserResponseNestedFields {\n user: UserFields;\n address: AddressFields;\n}\nexport const getUserResponse: (keyof GetUserResponse)[] = [\n \"user\"\n]\nexport const _getUserResponseNestedFields: Omit<GetUserResponseNestedFields, \"user\"> = {\n address: addressQuery,\n}\nexport const getUserResponseNestedFields: GetUserResponseNestedFields = {\n user: userQuery,\n ..._getUserResponseNestedFields,\n}\n\n\n// get users\nexport interface GetUsersRequest {\n userIds?: string[];\n user?: User;\n limit: number;\n skip: number;\n}\nexport interface GetUsersResponse {\n users: User[];\n}\nexport interface GetUsersResponseNestedFields extends Omit<GetUserResponseNestedFields, \"user\"> {\n users: UserFields\n}\nexport const getUsersResponse: (keyof GetUsersResponse)[] = [\n \"users\"\n];\nexport const getUsersResponseNestedFields: GetUsersResponseNestedFields = {\n users: userQuery,\n ..._getUserResponseNestedFields,\n}\n\n\n// add user \nexport interface AddUserRequest {\n user: User;\n userType: UserType;\n}\nexport interface AddUserResponse {\n user: User;\n}\nexport type AddUserResponseNestedFields = GetUserResponseNestedFields;\nexport const addUserResponse = getUserResponse;\nexport const addUserResponseNestedFields = getUserResponseNestedFields;\n\n// update user \nexport interface UpdateUserRequest {\n userId: string;\n user: User;\n}\nexport interface UploadUserImageResponse {\n url: string;\n fileUrl: string;\n}\nexport interface UpdateUserResponse {\n user: User;\n uploadImageResponse: UploadUserImageResponse\n}\nexport interface UpdateUserResponseNestedFields extends GetUserResponseNestedFields {\n uploadImageResponse: (keyof UploadUserImageResponse)[]\n}\nexport const updateUserResponse = {\n ...getUserResponse,\n \"uploadImageResponse\": [\"fileUrl\", \"url\"]\n}\nexport const updateUserResponseNestedFields: UpdateUserResponseNestedFields = {\n ...getUserResponseNestedFields,\n uploadImageResponse: [\"fileUrl\", \"url\"]\n}\n\n// me \nexport interface MeResponse {\n user: User;\n account?: Account;\n stores?: Store[];\n userSetting?: UserSetting;\n}\nexport const meResponse: (keyof MeResponse)[] = [\n \"user\",\n \"account\",\n \"stores\",\n \"userSetting\"\n]\nexport interface MeResponseNestedFields extends GetUserResponseNestedFields {\n user: UserFields;\n account: AccountFields;\n stores: StoreFields;\n userSetting: UserSettingFields;\n}\nexport const meResponseNestedFields: MeResponseNestedFields = {\n stores: storeQuery,\n userSetting: userSettingQuery,\n ...getUserResponseNestedFields,\n ...getAccountResponseNestedFields,\n}","import type { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport userSchema from \"./schemas/user.schema\";\nimport { getUserDashStatsResponse, GetUserDashStatsResponse, getUserDashStatsResponseNestedFields, GetUserDashStatsResponseNestedFields, GetUserRequest, getUserResponse, GetUserResponse, GetUserResponseNestedFields, getUserResponseNestedFields, GetUsersRequest, getUsersResponse, GetUsersResponse, getUsersResponseNestedFields, GetUsersResponseNestedFields, meResponse, MeResponse, meResponseNestedFields, MeResponseNestedFields } from \"./types/user.type\";\nimport { GraphQLResponse } from \"../../types\";\n\nexport const createUserService = (client: GraphQLClient) => ({ \n async getUserDashStats(\n fetchFields?: {\n root?: (keyof GetUserDashStatsResponse)[],\n nestedFields?: GetUserDashStatsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetUserDashStatsResponse|undefined>{\n const res = await client.request<{ getUserDashStats: GetUserDashStatsResponse }>(\n userSchema.getUserDashStats(\n gqlQueryStringBuilder<GetUserDashStatsResponse, GetUserDashStatsResponseNestedFields>(\n fetchFields?.root ?? getUserDashStatsResponse,\n fetchFields?.nestedFields ?? getUserDashStatsResponseNestedFields\n )\n ), \n {},\n option\n );\n return res.data?.getUserDashStats;\n },\n async me(\n fetchFields?: {\n root?: (keyof MeResponse)[],\n nestedFields?: MeResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ me: MeResponse }>> {\n return client.request<{ me: MeResponse }>(\n userSchema.me(\n gqlQueryStringBuilder<MeResponse, MeResponseNestedFields>(\n fetchFields?.root ?? meResponse,\n fetchFields?.nestedFields ?? meResponseNestedFields\n )\n ), \n {},\n option\n );\n },\n async getUser(\n input: GetUserRequest,\n fetchFields?: {\n root?: (keyof GetUserResponse)[],\n nestedFields?: GetUserResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ getUser: GetUserResponse }>> {\n return client.request<{ getUser: GetUserResponse }>(\n userSchema.getUser(\n gqlQueryStringBuilder<GetUserResponse, GetUserResponseNestedFields>(\n fetchFields?.root ?? getUserResponse,\n fetchFields?.nestedFields ?? getUserResponseNestedFields\n )\n ), \n input,\n option\n );\n },\n async getUsers(\n input: GetUsersRequest,\n fetchFields?: {\n root?: (keyof GetUsersResponse)[],\n nestedFields?: GetUsersResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ getUsers: GetUsersResponse }>> {\n return client.request<{ getUsers: GetUsersResponse }>(\n userSchema.getUsers(\n gqlQueryStringBuilder<GetUsersResponse, GetUsersResponseNestedFields>(\n fetchFields?.root ?? getUsersResponse,\n fetchFields?.nestedFields ?? getUsersResponseNestedFields\n )\n ), \n input,\n option\n );\n },\n});\n\nexport type UserService = ReturnType<typeof createUserService>","export const authSchema = {\n // change pin \n changePin: (query: string) => `\n mutation changePin($userId: String!, $oldPin: String!, $newPin: String!) {\n changePin(userId: $userId, oldPin: $oldPin, newPin: $newPin) {\n ${query}\n }\n }\n `,\n checkRegistration: (query: string) => `\n query checkRegistration($phone: String!) {\n checkRegistration(phone: $phone) {\n ${query}\n }\n }\n `,\n\n login: (query: string) => `\n mutation login($phone: String!, $pin: String!, $userType: UserTypeEnum) {\n login(phone: $phone, pin: $pin, userType: $userType) {\n ${query}\n }\n }\n `,\n\n signUp: (query: string) => `\n mutation signUp($firstName: String!, $lastName: String!, $phone: String!, $pin: String!, $storeName: String!, $storeLocation: String, $email: String, $userType: UserTypeEnum) {\n signUp( firstName: $firstName, lastName: $lastName, phone: $phone, pin: $pin, storeName: $storeName, storeLocation: $storeLocation, email: $email, userType: $userType) {\n ${query}\n }\n }\n `,\n\n resetPin: (query: string) => `\n mutation resetPin($phone: String!, $pin: String!) {\n resetPin(phone: $phone, pin: $pin) {\n ${query}\n }\n }\n `,\n\n sendOTP: (query: string) => `\n mutation sendOTP($phone: String!) {\n sendOTP(phone: $phone) {\n ${query}\n }\n }\n `,\n\n verifyOTP: (query: string) => `\n mutation verifyOTP($phone: String!, $otp: String!) {\n verifyOTP(phone: $phone, otp: $otp) {\n ${query}\n }\n }\n `,\n updateTxPin: (mutation: string) => `\n mutation updateTxPin($userId: String!, $pin: String!, $oldPin: String!) {\n updateTxPin(userId: $userId, pin: $pin, oldPin: $oldPin) {\n ${mutation}\n }\n }\n `,\n}","import { UserType } from \"../../../types\";\n\nexport interface CheckRegistrationRequest {\n phone: string;\n}\nexport interface CheckRegistrationResponse {\n isRegistered: boolean;\n}\nexport const checkRegistrationResponse:(keyof CheckRegistrationResponse)[] = [\n \"isRegistered\"\n]\n\n// change pin\nexport interface ChangePinRequest {\n userId: string;\n oldPin: string;\n newPin: string;\n}\nexport interface ChangePinResponse {\n success: boolean;\n}\nexport const changePinResponse:(keyof ChangePinResponse)[] = [\n \"success\"\n]\n\n// update tx pin\nexport interface UpdateTxPinRequest {\n userId: string;\n pin: string;\n oldPin: string;\n}\nexport interface UpdateTxPinResponse {\n success: boolean;\n}\nexport const updateTxPinResponse:(keyof UpdateTxPinResponse)[] = [\n \"success\"\n]\n\n// reset pin \nexport interface ResetPinRequest {\n phone: string;\n pin: string;\n}\nexport interface ResetPinResponse {\n success: boolean;\n}\nexport const resetPinResponse:(keyof ResetPinResponse)[] = [\n \"success\"\n]\n\n// send otp\nexport interface SendOTPRequest {\n phone: string;\n}\nexport interface SendOTPResponse {\n successful: boolean;\n otp: string;\n}\nexport const sendOTPResponse: (keyof SendOTPResponse)[] = [\n \"successful\",\n \"otp\"\n]\n\n// verify otp \nexport interface VerifyOTPRequest {\n phone: string;\n otp: string;\n}\nexport interface VerifyOTPResponse {\n otpVerifiedAccessToken: string;\n}\nexport const verifyOTPResponse: (keyof VerifyOTPResponse)[] = [\n \"otpVerifiedAccessToken\"\n]\n\n// login\nexport interface LoginRequest {\n pin: string;\n phone: string;\n userType?: UserType;\n}\nexport interface LoginResponse {\n accessToken: string;\n userId: string;\n}\nexport const loginResponse: (keyof LoginResponse)[] = [\n \"accessToken\",\n \"userId\"\n]\n\n// sign up \nexport interface SignUpRequest {\n phone: string;\n pin: string;\n storeName: string;\n lastName: string;\n firstName: string;\n\n storeLocation?: string;\n email?: string;\n userType?: UserType;\n}\nexport interface SignUpResponse {\n accessToken: string;\n userId: string;\n}\nexport const signUpResponse: (keyof SignUpResponse)[] = [\n \"accessToken\",\n \"userId\"\n]\n\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { GraphQLResponse } from \"../../types\";\nimport {authSchema} from \"./schemas/auth.schema\";\nimport { \n ChangePinRequest,\n changePinResponse,\n ChangePinResponse,\n LoginRequest, loginResponse, LoginResponse, \n ResetPinRequest, resetPinResponse, ResetPinResponse, \n SendOTPRequest, sendOTPResponse, SendOTPResponse, \n SignUpRequest, signUpResponse, SignUpResponse, \n UpdateTxPinRequest, updateTxPinResponse, UpdateTxPinResponse, \n VerifyOTPRequest, verifyOTPResponse, VerifyOTPResponse \n} from \"./types/auth.type\";\n\nexport const createAuthService = (client: GraphQLClient) => ({\n async changePin(\n input: ChangePinRequest, \n fetchFields?: {\n root?: (keyof ChangePinResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ changePin: ChangePinResponse }>> {\n return client.request<{ changePin: ChangePinResponse }, ChangePinRequest>(\n authSchema.changePin(\n gqlQueryStringBuilder<ChangePinResponse>(\n fetchFields?.root ?? changePinResponse,\n )\n ), \n input,\n option\n );\n },\n async updateTxPin(\n input: UpdateTxPinRequest, \n fetchFields?: {\n root?: (keyof UpdateTxPinResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ updateTxPin: UpdateTxPinResponse }>> {\n return client.request<{ updateTxPin: UpdateTxPinResponse }, UpdateTxPinRequest>(\n authSchema.updateTxPin(\n gqlQueryStringBuilder<UpdateTxPinResponse>(\n fetchFields?.root ?? updateTxPinResponse,\n )\n ), \n input, \n option\n );\n },\n async verifyOTP(\n input: VerifyOTPRequest, \n fetchFields?: {\n root?: (keyof VerifyOTPResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ verifyOTP: VerifyOTPResponse }>> {\n return client.request<{ verifyOTP: VerifyOTPResponse }, VerifyOTPRequest>(\n authSchema.verifyOTP(\n gqlQueryStringBuilder<VerifyOTPResponse>(\n fetchFields?.root ?? verifyOTPResponse,\n )\n ), \n input, \n option\n );\n },\n async sendOTP(\n input: SendOTPRequest, \n fetchFields?: {\n root?: (keyof SendOTPResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ sendOTP: SendOTPResponse }>> {\n return client.request<{ sendOTP: SendOTPResponse }, SendOTPRequest>(\n authSchema.sendOTP(\n gqlQueryStringBuilder<SendOTPResponse>(\n fetchFields?.root ?? sendOTPResponse,\n )\n ), \n input, \n option\n );\n },\n async resetPin(\n input: ResetPinRequest, \n fetchFields?: {\n root?: (keyof ResetPinResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{resetPin: ResetPinResponse}>> {\n return client.request<{ resetPin: ResetPinResponse }, ResetPinRequest>(\n authSchema.resetPin(\n gqlQueryStringBuilder<ResetPinResponse>(\n fetchFields?.root ?? resetPinResponse,\n )\n ), \n input, \n option\n );\n },\n async signUp(\n input: SignUpRequest, \n fetchFields?: {\n root?: (keyof SignUpResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ signUp: SignUpResponse }>> {\n return client.request<{ signUp: SignUpResponse }, SignUpRequest>(\n authSchema.signUp(\n gqlQueryStringBuilder<SignUpResponse>(\n fetchFields?.root ?? signUpResponse,\n )\n ), \n input, \n option\n );\n },\n async login(\n input: LoginRequest, \n fetchFields?: {\n root?: (keyof LoginResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ login: LoginResponse }>> {\n return client.request<{ login: LoginResponse }, LoginRequest>(\n authSchema.login(\n gqlQueryStringBuilder<LoginResponse>(\n fetchFields?.root ?? loginResponse,\n )\n ), \n input, \n option\n );\n },\n})\n\nexport type AuthService = ReturnType<typeof createAuthService>","import { Product, ProductCategory } from \"../../../types\"\nimport { \n AttributeFields,\n attributeQuery,\n CategoryFields,\n categoryQuery,\n PackageFields, packageQuery, \n PriceFields, \n priceQuery, \n ProductFields, productNameQuery, ProductNamesFields, \n productQuery, \n StockFields,\n stockQuery} from \"../entities\"\n\nexport interface GetProductRequest {\n product: Partial<Product>\n}\nexport interface GetProductResponse {\n product: Product\n}\nexport interface GetProductResponseNestedFields {\n product: ProductFields;\n productPackages: PackageFields;\n smallestPackage: PackageFields;\n category: CategoryFields;\n price: PriceFields;\n stocks: StockFields;\n productAttributes: AttributeFields;\n}\nexport const getProductResponseFields: (keyof GetProductResponse)[] = [\n \"product\"\n]\nexport const _getProductResponseNestedFields: Omit<GetProductResponseNestedFields, \"product\"> = {\n productPackages: packageQuery,\n smallestPackage: packageQuery,\n category: categoryQuery,\n price: priceQuery,\n stocks: stockQuery,\n productAttributes: attributeQuery,\n}\nexport const getProductResponseNestedFields: GetProductResponseNestedFields = {\n product: productQuery,\n ..._getProductResponseNestedFields\n}\n\n\n// get products\nexport interface GetProductsRequest {\n product?: Partial<Product>\n productIds?: string[]\n search?: string\n limit: number\n skip: number\n template?: boolean\n shouldGetFromAllStores?: boolean\n}\nexport interface GetProductsResponse {\n products: Product[]\n}\nexport interface GetProductsResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\">{\n products: ProductFields;\n}\nexport const getProductsResponseFields: (keyof GetProductsResponse)[] = [\n \"products\"\n]\nexport const getProductsResponseNestedFields: GetProductsResponseNestedFields = {\n products: productQuery,\n ..._getProductResponseNestedFields\n}\n\n\nexport interface GetProductByBarcodeRequest {\n barcode: string\n fetchFromGS1IfNotFound?: boolean\n template?: boolean\n}\nexport interface GetProductByBarcodeResponse {\n Product: Product; // this is Capital letter for now\n fromGS1: boolean;\n gs1ProductInfo: any;\n productLookup: any;\n}\nexport interface GetProductByBarcodeResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\"> {\n Product: ProductFields;\n}\nexport const getProductByBarcodeResponse:(keyof GetProductByBarcodeResponse)[] = [\n \"Product\"\n]\nexport const getProductByBarcodeResponseNestedFields: GetProductByBarcodeResponseNestedFields = {\n Product: productQuery,\n ..._getProductResponseNestedFields\n}\n\n//search product names \nexport interface SearchProductNamesRequest {\n search: string\n product?: Partial<Product>;\n limit?: number\n skip?: number\n template?: boolean\n}\nexport interface SearchProductNamesResponse {\n productNames: Product[]\n}\nexport const searchProductNamesResponse: (keyof SearchProductNamesResponse)[] = [\n \"productNames\"\n]\nexport interface SearchProductNamesResponseNestedFields {\n productNames: ProductNamesFields;\n}\nexport const searchProductNamesResponseNestedFields: SearchProductNamesResponseNestedFields = {\n productNames: productNameQuery\n}\n\n// \n\n// add product \nexport interface UploadImageResponse {\n fileUrl: string\n url: string\n}\nexport interface AddProductRequest {\n product: Partial<Product>\n imageTypes?: string[]\n template?: boolean\n}\nexport interface AddProductResponse {\n product: Product;\n uploadImageResponse: UploadImageResponse\n}\nexport interface AddProductResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\"> {\n product: ProductFields;\n uploadImageResponse: (keyof UploadImageResponse)[];\n\n}\nexport const addProductResponseFields: (keyof AddProductResponse)[] = [\n \"product\"\n]\nexport const addProductResponseNestedFields: AddProductResponseNestedFields = {\n product: productQuery,\n uploadImageResponse: [\"fileUrl\", \"url\"],\n ..._getProductResponseNestedFields\n}\n\n// update product\nexport interface UpdateProductRequest {\n productId: string\n product: Partial<Product>\n template?: boolean\n}\nexport interface UpdateProductResponse {\n product: Product\n}\nexport type UpdateProductResponseNestedFields = GetProductResponseNestedFields;\nexport const updateProductResponseFields = getProductResponseFields\nexport const updateProductResponseNestedFields = getProductResponseNestedFields\n\n// remove product \nexport interface RemoveProductRequest {\n productId: string\n template?: boolean\n}\nexport interface RemoveProductResponse {\n productId: string;\n}\nexport const removeProductResponseFields: (keyof RemoveProductResponse)[] = [\n \"productId\"\n]\n\n// search categories and templates \nexport interface SearchCategoriesAndTemplateRequest {\n search?: string\n shouldGetFromAllStores?: boolean\n}\nexport interface SearchCategoriesAndTemplateResponse {\n productCategories: ProductCategory[];\n}\nexport const searchCategoriesAndTemplateResponse: (keyof SearchCategoriesAndTemplateResponse)[] = [\n \"productCategories\"\n]\nexport interface SearchCategoriesAndTemplateResponseNestedFields {\n productCategories: CategoryFields;\n}\nexport const searchCategoriesAndTemplateResponseNestedFields: SearchCategoriesAndTemplateResponseNestedFields = {\n productCategories: categoryQuery\n}","import { Product, ProductPackage } from \"../../../types/inventory\";\nimport { PackageFields, packageQuery, PriceFields, priceQuery, ProductFields, productQuery, StockFields, stockQuery } from \"../entities\";\nimport { getProductResponseNestedFields, GetProductResponseNestedFields } from \"./product.type\";\n\n// get package\nexport interface GetPackageRequest {\n productPackage: Partial<ProductPackage>;\n template?: boolean;\n}\nexport interface GetPackageResponse {\n productPackage: ProductPackage;\n}\nexport interface GetPackageResponseFields {\n productPackage: PackageFields;\n price: PriceFields;\n stocks: StockFields;\n}\nexport const getPackageResponseFields: (keyof GetPackageResponse)[] = [\n \"productPackage\",\n]\nexport const _getPackageResponseNestedFields: Omit<GetPackageResponseFields, \"productPackage\"> = {\n price: priceQuery,\n stocks: stockQuery\n}\nexport const getPackageResponseNestedFields: GetPackageResponseFields = {\n productPackage: packageQuery,\n ..._getPackageResponseNestedFields,\n}\n\n// remove package\nexport interface RemovePackageRequest {\n packageId: string;\n template?: boolean;\n}\nexport interface RemovePackageResponse {\n packageId: string;\n}\nexport const removePackageResponseFields: (keyof RemovePackageResponse)[] = [\n \"packageId\"\n];\n\n// update package\nexport interface UpdatePackagesRequest {\n packages: UpdatePackageRequest[];\n}\nexport interface UpdatePackagesResponse {\n packages: ProductPackage[];\n}\nexport interface UpdatePackageRequest {\n packageId: string;\n productPackage: Partial<ProductPackage>;\n template?: boolean;\n}\nexport interface UpdatePackageResponse {\n productPackage: ProductPackage;\n}\nexport type UpdatePackageResponseFields = GetPackageResponseFields;\nexport const updatePackageResponseFields = getPackageResponseFields;\nexport const updatePackageResponseNestedFields = getPackageResponseNestedFields;\n\n// add packages\nexport interface AddPackagesRequest {\n productPackages: Partial<ProductPackage>[];\n template?: boolean;\n}\nexport interface AddPackagesResponse {\n productPackages: ProductPackage[];\n}\nexport interface AddPackagesResponseFields extends Omit<GetPackageResponseFields, \"productPackage\"> {\n productPackages: PackageFields;\n}\nexport const addPackagesResponseFields: (keyof AddPackagesResponse)[] = [\n \"productPackages\",\n]\nexport const addPackagesResponseNestedFields: AddPackagesResponseFields = {\n productPackages: packageQuery,\n ..._getPackageResponseNestedFields,\n}\n\n// add package\nexport interface AddPackageRequest {\n productPackage: Partial<ProductPackage>;\n template?: boolean;\n}\nexport interface AddPackageResponse {\n productPackage: ProductPackage; \n}\nexport type AddPackageResponseFields = GetPackageResponseFields;\nexport const addPackageResponseFields = getPackageResponseFields;\nexport const addPackageResponseNestedFields = getPackageResponseNestedFields;\n\nexport interface GetPackagesRequest {\n productPackage?: Partial<ProductPackage>;\n packageIds?: string[];\n search?: string;\n template?: boolean;\n shouldGetFromAllStores?: boolean;\n limit: number;\n skip: number;\n}\nexport interface GetPackagesResponse {\n productPackages: ProductPackage[];\n uniqueProducts: Product[];\n}\nexport interface GetPackagesResponseFields extends Omit<GetPackageResponseFields, \"productPackage\">, GetProductResponseNestedFields {\n productPackages: PackageFields;\n uniqueProducts: ProductFields\n}\nexport const getPackagesResponseFields: (keyof GetPackagesResponse)[] = [\n \"productPackages\", \"uniqueProducts\"\n]\nexport const getPackagesResponseNestedFields: GetPackagesResponseFields = {\n // productPackages: packageQuery, product already contained this \n uniqueProducts: productQuery,\n ...getPackageResponseNestedFields,\n ...getProductResponseNestedFields\n}","import { Price } from \"../../../types/inventory\";\nimport { PriceFields, priceQuery } from \"../entities\";\nexport interface GetPriceRequest {\n price: Partial<Price>\n}\nexport interface GetPriceResponse {\n price: Price\n}\nexport interface GetPriceResponseFields {\n price: PriceFields\n}\nexport const getPriceResponseFields: (keyof GetPriceResponse)[] = [\"price\"]\nconst _getPriceResponseNestedFields: Omit<GetPriceResponseFields, \"price\"> = {}\nexport const getPriceResponseNestedFields: GetPriceResponseFields = {\n price: priceQuery,\n ..._getPriceResponseNestedFields\n}\n\n// get prices\nexport interface GetPricesRequest {\n price?: Partial<Price>\n priceIds?: string[]\n limit: number\n skip: number\n}\nexport interface GetPricesResponse {\n prices: Price[]\n}\nexport interface GetPricesResponseFields extends Omit<GetPriceResponseFields, \"price\"> {\n prices: PriceFields\n}\nexport const getPricesResponseFields: (keyof GetPricesResponse)[] = [\"prices\"]\nexport const getPricesResponseNestedFields: GetPricesResponseFields = {\n ..._getPriceResponseNestedFields,\n prices: priceQuery\n}\n\n// add price \nexport interface AddPriceRequest {\n price: Partial<Price>\n}\nexport interface AddPriceResponse {\n price: Price\n}\nexport type AddPriceResponseFields = GetPriceResponseFields\nexport const addPriceResponseFields = getPriceResponseFields;\nexport const addPriceResponseNestedFields = getPriceResponseNestedFields;\n\n// update price \nexport interface UpdatePriceRequest {\n priceId: string\n price: Partial<Price>\n}\nexport interface UpdatePriceResponse {\n price: Price\n}\nexport type UpdatePriceResponseFields = GetPriceResponseFields\nexport const updatePriceResponseFields = getPriceResponseFields;\nexport const updatePriceResponseNestedFields = getPriceResponseNestedFields;\n\n// remove price \nexport interface RemovePriceRequest {\n priceId: string\n}\nexport interface RemovePriceResponse {\n priceId: string\n}\nexport const removePriceResponseFields: (keyof RemovePriceResponse)[] = [\n \"priceId\"\n]","import { Stock } from \"../../../types\";\nimport { stockQuery, type StockFields } from \"../entities\"\n\nexport interface GetStockRequest {\n stock: Promise<Stock>;\n}\nexport interface GetStockResponse {\n stock?: Stock;\n}\nexport const getStockResponse: (keyof GetStockResponse)[] = [\n \"stock\"\n]\nexport interface GetStockResponseNestedFields {\n stock: StockFields\n}\nexport const getStockResponseNestedFields: GetStockResponseNestedFields = {\n stock: stockQuery,\n}\n\n// get stocks \nexport interface GetStocksRequest {\n stock?: Promise<Stock>;\n stockIds?: string[];\n limit: number;\n skip: number;\n}\nexport interface GetStocksResponse {\n stocks?: Stock[];\n}\nexport const getStocksResponse:(keyof GetStocksResponse)[] = [\n \"stocks\"\n]\nexport interface GetStocksResponseNestedFields {\n stocks: StockFields;\n}\nexport const getStocksResponseNestedFields: GetStocksResponseNestedFields = {\n stocks: stockQuery\n}\n\n// add stock \nexport type AddStockRequest = GetStockRequest;\nexport type AddStockResponse = GetStockResponse;\nexport const addStockResponse = getStockResponse;\nexport type AddStockResponseNestedFields = GetStockResponseNestedFields;\nexport const addStockResponseNestedFields = getStockResponseNestedFields;\n\n// update stock \nexport interface UpdateStockRequest {\n stockId: string;\n stock: Promise<Stock>;\n}\nexport type UpdateStockResponse = GetStockResponse;\nexport const updateStockResponse = getStockResponse;\nexport type UpdateStockResponseNestedFields = GetStockResponseNestedFields;\nexport const updateStockResponseNestedFields = getStockResponseNestedFields;\n\n// remove stock \nexport interface RemoveStockRequest {\n stockId: string;\n}\nexport interface RemoveStockResponse {\n stockId: string;\n} \nexport const removeStockResponse: (keyof RemoveStockResponse)[] = [\n \"stockId\"\n]\n","import { Store } from \"../../../types\";\nimport { AddressFields, addressQuery, storeQuery, type StoreFields } from \"../entities\"\n\nexport interface GetStoreRequest {\n store: Promise<Store>;\n}\nexport interface GetStoreResponse {\n store?: Store;\n}\nexport const getStoreResponse: (keyof GetStoreResponse)[] = [\n \"store\"\n]\nexport interface GetStoreResponseNestedFields {\n store: StoreFields\n address: AddressFields;\n}\nexport const _getStoreResponseNestedFields: Omit<GetStoreResponseNestedFields, \"store\"> = {\n address: addressQuery\n}\nexport const getStoreResponseNestedFields: GetStoreResponseNestedFields = {\n store: storeQuery,\n ..._getStoreResponseNestedFields,\n}\n\n// get stores \nexport interface GetStoresRequest {\n store?: Promise<Store>;\n storeIds?: string[];\n limit: number;\n skip: number;\n}\nexport interface GetStoresResponse {\n stores?: Store[];\n}\nexport const getStoresResponse:(keyof GetStoresResponse)[] = [\n \"stores\"\n]\nexport interface GetStoresResponseNestedFields extends Omit<GetStoreResponseNestedFields, \"store\"> {\n stores: StoreFields;\n}\nexport const getStoresResponseNestedFields: GetStoresResponseNestedFields = {\n stores: storeQuery,\n address: addressQuery,\n}\n\n// add store \nexport type AddStoreRequest = GetStoreRequest;\nexport type AddStoreResponse = GetStoreResponse;\nexport const addStoreResponse = getStoreResponse;\nexport type AddStoreResponseNestedFields = GetStoreResponseNestedFields;\nexport const addStoreResponseNestedFields = getStoreResponseNestedFields;\n\n// update store \nexport interface UpdateStoreRequest {\n storeId: string;\n store: Promise<Store>;\n}\nexport type UpdateStoreResponse = GetStoreResponse;\nexport const updateStoreResponse = getStoreResponse;\nexport type UpdateStoreResponseNestedFields = GetStoreResponseNestedFields;\nexport const updateStoreResponseNestedFields = getStoreResponseNestedFields;\n\n// remove store \nexport interface RemoveStoreRequest {\n storeId: string;\n}\nexport interface RemoveStoreResponse {\n storeId: string;\n} \nexport const removeStoreResponse: (keyof RemoveStoreResponse)[] = [\n \"storeId\"\n]\n","export const packageSchema = {\n getPackage: (query: string) => `\n query getPackage($productPackage: ProductPackageInput!, $template: Boolean) {\n getPackage(productPackage: $productPackage, template: $template) {\n ${query}\n }\n }\n `,\n getPackages: (query: string) => `\n query getPackages($productPackage: ProductPackageInput, $packageIds: [String], $search: String, $template: Boolean, $shouldGetFromAllStores: Boolean, $limit: Int, $skip: Int) {\n getPackages(productPackage: $productPackage, packageIds: $packageIds, search: $search, template: $template, shouldGetFromAllStores: $shouldGetFromAllStores, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n addPackage: (query: string) => `\n mutation addPackage($productPackage: ProductPackageInput!, $template: Boolean) {\n addPackage(productPackage: $productPackage, template: $template) {\n ${query}\n }\n }\n `,\n addPackages: (query: string) => `\n mutation addPackages($productPackages: [ProductPackagesInput]!, $template: Boolean) {\n addPackages(productPackages: $productPackages, template: $template) {\n ${query}\n }\n }\n `,\n updatePackage: (query: string) => `\n mutation updatePackage($packageId: String!, $productPackage: ProductPackageInput!, $template: Boolean) {\n updatePackage(packageId: $packageId, productPackage: $productPackage, template: $template) {\n ${query}\n }\n }\n `,\n updatePackages: (query: string) => `\n mutation updatePackages($packages: [PackagesInput]) {\n updatePackages(packages: $packages) {\n ${query}\n }\n }\n `,\n\n removePackage: (query: string) => `\n mutation removePackage($packageId: String!, $template: Boolean) {\n removePackage(packageId: $packageId, template: $template) {\n ${query}\n }\n }\n `\n}\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { packageSchema } from \"./schema/package.schema\";\nimport { \n AddPackageRequest, AddPackageResponse, addPackageResponseFields, AddPackageResponseFields, addPackageResponseNestedFields, \n AddPackagesRequest, \n AddPackagesResponse, \n addPackagesResponseFields, \n AddPackagesResponseFields, \n addPackagesResponseNestedFields, \n GetPackageRequest, GetPackageResponse, getPackageResponseFields, GetPackageResponseFields, getPackageResponseNestedFields, \n GetPackagesRequest, GetPackagesResponse, getPackagesResponseFields, GetPackagesResponseFields, getPackagesResponseNestedFields,\n RemovePackageRequest,\n RemovePackageResponse,\n removePackageResponseFields,\n UpdatePackageRequest,\n UpdatePackageResponse,\n UpdatePackageResponseFields,\n updatePackageResponseFields,\n updatePackageResponseNestedFields, \n} from \"./types/package.type\";\n\nexport const createPackageService = (client: GraphQLClient) => ({\n async updatePackage(\n input: UpdatePackageRequest, \n fetchFields?: {\n root?: (keyof UpdatePackageResponse)[],\n nestedFields?: UpdatePackageResponseFields\n },\n option?: RequestOption\n ): Promise<UpdatePackageResponse | null> {\n const res = await client.request<{ updatePackage: UpdatePackageResponse }, UpdatePackageRequest>(\n packageSchema.updatePackage(\n gqlQueryStringBuilder<UpdatePackageResponse, UpdatePackageResponseFields>(\n fetchFields?.root ?? updatePackageResponseFields,\n fetchFields?.nestedFields ?? updatePackageResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updatePackage ?? null;\n },\n async removePackage(\n input: RemovePackageRequest, \n fetchFields?: {\n root?: (keyof RemovePackageResponse)[],\n },\n option?: RequestOption\n ): Promise<RemovePackageResponse | null> {\n const res = await client.request<{ removePackage: RemovePackageResponse }, RemovePackageRequest>(\n packageSchema.removePackage(\n gqlQueryStringBuilder<RemovePackageResponse>(\n fetchFields?.root ?? removePackageResponseFields,\n )\n ), \n input, \n option\n );\n return res.data?.removePackage ?? null;\n },\n async addPackages(\n input: AddPackagesRequest, \n fetchFields?: {\n root?: (keyof AddPackagesResponse)[],\n nestedFields?: AddPackagesResponseFields\n },\n option?: RequestOption\n ): Promise<AddPackagesResponse | null> {\n const res = await client.request<{ addPackages: AddPackagesResponse }, AddPackagesRequest>(\n packageSchema.addPackages(\n gqlQueryStringBuilder<AddPackagesResponse, AddPackagesResponseFields>(\n fetchFields?.root ?? addPackagesResponseFields,\n fetchFields?.nestedFields ?? addPackagesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addPackages ?? null;\n },\n async addPackage(\n input: AddPackageRequest, \n fetchFields?: {\n root?: (keyof AddPackageResponse)[],\n nestedFields?: AddPackageResponseFields\n },\n option?: RequestOption\n ): Promise<AddPackageResponse | null> {\n const res = await client.request<{ addPackage: AddPackageResponse }, AddPackageRequest>(\n packageSchema.addPackage(\n gqlQueryStringBuilder<AddPackageResponse, AddPackageResponseFields>(\n fetchFields?.root ?? addPackageResponseFields,\n fetchFields?.nestedFields ?? addPackageResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addPackage ?? null;\n },\n async getPackage(\n input: GetPackageRequest, \n fetchFields?: {\n root?: (keyof GetPackageResponse)[],\n nestedFields?: GetPackageResponseFields\n },\n option?: RequestOption\n ): Promise<GetPackageResponse | null> {\n const res = await client.request<{ getPackage: GetPackageResponse }, GetPackageRequest>(\n packageSchema.getPackage(\n gqlQueryStringBuilder<GetPackageResponse, GetPackageResponseFields>(\n fetchFields?.root ?? getPackageResponseFields,\n fetchFields?.nestedFields ?? getPackageResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getPackage ?? null;\n },\n async getPackages(\n input: GetPackagesRequest, \n fetchFields?: {\n root?: (keyof GetPackagesResponse)[],\n nestedFields?: GetPackagesResponseFields\n },\n option?: RequestOption\n ): Promise<GetPackagesResponse | null> {\n const res = await client.request<{ getPackages: GetPackagesResponse }, GetPackagesRequest>(\n packageSchema.getPackages(\n gqlQueryStringBuilder<GetPackagesResponse, GetPackagesResponseFields>(\n fetchFields?.root ?? getPackagesResponseFields,\n fetchFields?.nestedFields ?? getPackagesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getPackages ?? null;\n },\n})\n\nexport type ProductPackageService = ReturnType<typeof createPackageService> \nexport type PackageService = ReturnType<typeof createPackageService> ","export const priceSchema = {\n getPrice: (query: string) => `\n query getPrice($price: PriceInput!) {\n price(price: $price) {\n ${query}\n }\n }\n `,\n\n getPrices: (query: string) => `\n query getPrices($price: PriceInput, $priceIds: [String], $limit: Int!, $skip: Int!) {\n prices(price: $price, priceIds: $priceIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n\n addPrice: (mutation: string) => `\n mutation addPrice($price: PriceInput) {\n addPrice(price: $price) {\n ${mutation}\n }\n }\n `,\n\n updatePrice: (mutation: string) => `\n mutation updatePrice($priceId: String, $price: PriceInput) {\n updatePrice(priceId: $priceId, price: $price) {\n ${mutation}\n }\n }\n `,\n\n removePrice: (mutation: string) => `\n mutation removePrice($priceId: String!) {\n removePrice(priceId: $priceId) {\n ${mutation}\n }\n }\n `\n}\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { priceSchema } from \"./schema/price.schema\";\nimport { \n AddPriceRequest, AddPriceResponse, addPriceResponseFields, AddPriceResponseFields, \n addPriceResponseNestedFields, \n GetPriceRequest, GetPriceResponse, getPriceResponseFields, GetPriceResponseFields, \n getPriceResponseNestedFields, \n GetPricesRequest, GetPricesResponse, getPricesResponseFields, GetPricesResponseFields,\n getPricesResponseNestedFields,\n RemovePriceRequest,\n RemovePriceResponse,\n removePriceResponseFields,\n UpdatePriceRequest,\n UpdatePriceResponse,\n UpdatePriceResponseFields,\n updatePriceResponseFields,\n updatePriceResponseNestedFields,\n} from \"./types/price.type\";\n\nexport const createPriceService = (client: GraphQLClient) => ({\n async updatePrice(\n input: UpdatePriceRequest, \n fetchFields?: {\n root?: (keyof UpdatePriceResponse)[],\n nestedFields?: UpdatePriceResponseFields\n },\n option?: RequestOption\n ): Promise<UpdatePriceResponse | null> {\n const res = await client.request<{ updatePrice: UpdatePriceResponse }, UpdatePriceRequest>(\n priceSchema.updatePrice(\n gqlQueryStringBuilder<UpdatePriceResponse, UpdatePriceResponseFields>(\n fetchFields?.root ?? updatePriceResponseFields,\n fetchFields?.nestedFields ?? updatePriceResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updatePrice ?? null;\n },\n async removePrice(\n input: RemovePriceRequest, \n fetchFields?: {\n root?: (keyof RemovePriceResponse)[],\n },\n option?: RequestOption\n ): Promise<RemovePriceResponse | null> {\n const res = await client.request<{ removePrice: RemovePriceResponse }, RemovePriceRequest>(\n priceSchema.removePrice(\n gqlQueryStringBuilder<RemovePriceResponse>(\n fetchFields?.root ?? removePriceResponseFields,\n )\n ), \n input, \n option\n );\n return res.data?.removePrice ?? null;\n },\n async addPrice(\n input: AddPriceRequest, \n fetchFields?: {\n root?: (keyof AddPriceResponse)[],\n nestedFields?: AddPriceResponseFields\n },\n option?: RequestOption\n ): Promise<AddPriceResponse | null> {\n const res = await client.request<{ addPrice: AddPriceResponse }, AddPriceRequest>(\n priceSchema.addPrice(\n gqlQueryStringBuilder<AddPriceResponse, AddPriceResponseFields>(\n fetchFields?.root ?? addPriceResponseFields,\n fetchFields?.nestedFields ?? addPriceResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addPrice ?? null;\n },\n async getPrice(\n input: GetPriceRequest, \n fetchFields?: {\n root?: (keyof GetPriceResponse)[],\n nestedFields?: GetPriceResponseFields\n },\n option?: RequestOption\n ): Promise<GetPriceResponse | null> {\n const res = await client.request<{ getPrice: GetPriceResponse }, GetPriceRequest>(\n priceSchema.getPrice(\n gqlQueryStringBuilder<GetPriceResponse, GetPriceResponseFields>(\n fetchFields?.root ?? getPriceResponseFields,\n fetchFields?.nestedFields ?? getPriceResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getPrice ?? null;\n },\n async getPrices(\n input: GetPricesRequest, \n fetchFields?: {\n root?: (keyof GetPricesResponse)[],\n nestedFields?: GetPricesResponseFields\n },\n option?: RequestOption\n ): Promise<GetPricesResponse | null> {\n const res = await client.request<{ getPrices: GetPricesResponse }, GetPricesRequest>(\n priceSchema.getPrices(\n gqlQueryStringBuilder<GetPricesResponse, GetPricesResponseFields>(\n fetchFields?.root ?? getPricesResponseFields,\n fetchFields?.nestedFields ?? getPricesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getPrices ?? null;\n },\n})","export const productSchema = {\n searchCategoriesAndTemplate: (query: string) => `\n query searchCategoriesAndTemplate($search: String, $shouldGetFromAllStores: Boolean){\n searchCategoriesAndTemplate(search: $search, shouldGetFromAllStores: $shouldGetFromAllStores) {\n ${query}\n }\n }\n `,\n getProduct: (query: string) => `\n query getProduct($product: ProductInput!, $template: Boolean) {\n getProduct(product: $product, template: $template) {\n ${query}\n }\n }\n `,\n\n getProducts: (query: string) => `\n query getProducts($product: ProductInput, $productIds: [String], $search: String, $limit: Int!, $skip: Int!, $template: Boolean, $shouldGetFromAllStores: Boolean) {\n getProducts(product: $product, productIds: $productIds, search: $search, limit: $limit, skip: $skip, template: $template, shouldGetFromAllStores: $shouldGetFromAllStores) {\n ${query}\n }\n }\n `,\n getProductByBarcode: (query: string) => `\n query getProductByBarcode($barcode: String!, $fetchFromGS1IfNotFound: Boolean, $template: Boolean) {\n getProductByBarcode(barcode: $barcode, fetchFromGS1IfNotFound: $fetchFromGS1IfNotFound, template: $template) {\n ${query}\n }\n }\n `,\n searchProductNames: (query: string) => `\n query searchProductNames($search: String!, $product: ProductInput, $limit: Int, $skip: Int, $template: Boolean) {\n searchProductNames(search: $search, product: $product, limit: $limit, skip: $skip, template: $template) {\n ${query}\n }\n }\n `,\n\n addProduct: (mutation: string) => `\n mutation addProduct($product: ProductInput!, $imageTypes: [String], $template: Boolean) {\n addProduct(product: $product, imageTypes: $imageTypes, template: $template) {\n ${mutation}\n }\n }\n `,\n\n updateProduct: (mutation: string) => `\n mutation updateProduct($productId: String!, $product: ProductInput!, $template: Boolean) {\n updateProduct(productId: $productId, product: $product, template: $template) {\n ${mutation}\n }\n }\n `,\n\n removeProduct: (mutation: string) => `\n mutation removeProduct($productId: String!, $template: Boolean) {\n removeProduct(productId: $productId, template: $template) {\n ${mutation}\n }\n }\n `\n}\nexport default productSchema","import type { GraphQLClient } from \"../../client\";\n\nexport const createFileService = (client: GraphQLClient) => ({\n async uploadFile<TResponse = any>(formData: FormData): Promise<TResponse> {\n const url = client[\"url\"].replace(\"/graphql\", \"\") + \"/api/upload\";\n const token = await client[\"tokenProvider\"]();\n\n const headers: Record<string, string> = {\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\n };\n // ✅ Do not use formData.getHeaders() — not available in React Native/browser\n const res = await fetch(url, {\n method: \"POST\",\n headers,\n body: formData, // native FormData works fine\n });\n\n const text = await res.text();\n if (!res.ok) throw new Error(`File upload failed: ${res.status} - ${text}`);\n try {\n return JSON.parse(text);\n } catch {\n return text as any;\n }\n },\n});\n\nexport type FileService = ReturnType<typeof createFileService>;\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { Product } from \"../../types\";\nimport { productSchema } from \"./schema/product.schema\";\nimport { \n AddProductRequest, AddProductResponse, addProductResponseFields, addProductResponseNestedFields, \n GetProductRequest, GetProductResponse, getProductResponseFields, getProductResponseNestedFields, \n GetProductsRequest, GetProductsResponse, getProductsResponseFields, getProductsResponseNestedFields,\n RemoveProductRequest,\n RemoveProductResponse,\n removeProductResponseFields,\n UpdateProductRequest,\n UpdateProductResponse,\n UpdateProductResponseNestedFields,\n updateProductResponseFields,\n updateProductResponseNestedFields,\n AddProductResponseNestedFields,\n GetProductResponseNestedFields,\n GetProductsResponseNestedFields,\n SearchProductNamesRequest,\n SearchProductNamesResponse,\n SearchProductNamesResponseNestedFields,\n searchProductNamesResponse,\n searchProductNamesResponseNestedFields,\n SearchCategoriesAndTemplateResponse,\n SearchCategoriesAndTemplateResponseNestedFields,\n SearchCategoriesAndTemplateRequest,\n searchCategoriesAndTemplateResponse,\n searchCategoriesAndTemplateResponseNestedFields, \n} from \"./types/product.type\";\nimport { createFileService } from \"../file/file.service\";\n\nexport const createProductService = (client: GraphQLClient) => ({\n async uploadProductImage(form: FormData) {\n const fileClient = createFileService(client);\n return ((await fileClient.uploadFile<{product: Product}>(form as any)).product);\n },\n async searchCategoriesAndTemplate(\n input: SearchCategoriesAndTemplateRequest, \n fetchFields?: {\n root?: (keyof SearchCategoriesAndTemplateResponse)[],\n nestedFields?: SearchCategoriesAndTemplateResponseNestedFields\n },\n option?: RequestOption\n ): Promise<SearchCategoriesAndTemplateResponse | null> {\n const res = await client.request<{ searchCategoriesAndTemplate: SearchCategoriesAndTemplateResponse }, SearchCategoriesAndTemplateRequest>(\n productSchema.searchCategoriesAndTemplate(\n gqlQueryStringBuilder<SearchCategoriesAndTemplateResponse, SearchCategoriesAndTemplateResponseNestedFields>(\n fetchFields?.root ?? searchCategoriesAndTemplateResponse,\n fetchFields?.nestedFields ?? searchCategoriesAndTemplateResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.searchCategoriesAndTemplate ?? null;\n },\n async searchProductNames(\n input: SearchProductNamesRequest, \n fetchFields?: {\n root?: (keyof SearchProductNamesResponse)[],\n nestedFields?: SearchProductNamesResponseNestedFields\n },\n option?: RequestOption\n ): Promise<SearchProductNamesResponse | null> {\n const res = await client.request<{ searchProductNames: SearchProductNamesResponse }, SearchProductNamesRequest>(\n productSchema.searchProductNames(\n gqlQueryStringBuilder<SearchProductNamesResponse, SearchProductNamesResponseNestedFields>(\n fetchFields?.root ?? searchProductNamesResponse,\n fetchFields?.nestedFields ?? searchProductNamesResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.searchProductNames ?? null;\n },\n async updateProduct(\n input: UpdateProductRequest, \n fetchFields?: {\n root?: (keyof UpdateProductResponse)[],\n nestedFields?: UpdateProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateProductResponse | null> {\n const res = await client.request<{ updateProduct: UpdateProductResponse }, UpdateProductRequest>(\n productSchema.updateProduct(\n gqlQueryStringBuilder<UpdateProductResponse, UpdateProductResponseNestedFields>(\n fetchFields?.root ?? updateProductResponseFields,\n fetchFields?.nestedFields ?? updateProductResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateProduct ?? null;\n },\n async removeProduct(\n input: RemoveProductRequest, \n fetchFields?: {\n root?: (keyof RemoveProductResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveProductResponse | null> {\n const res = await client.request<{ removeProduct: RemoveProductResponse }, RemoveProductRequest>(\n productSchema.removeProduct(\n gqlQueryStringBuilder<RemoveProductResponse>(\n fetchFields?.root ?? removeProductResponseFields,\n )\n ), \n input, \n option\n );\n return res.data?.removeProduct ?? null;\n },\n async addProduct(\n input: AddProductRequest, \n fetchFields?: {\n root?: (keyof AddProductResponse)[],\n nestedFields?: AddProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddProductResponse | null> {\n const res = await client.request<{ addProduct: AddProductResponse }, AddProductRequest>(\n productSchema.addProduct(\n gqlQueryStringBuilder<AddProductResponse, AddProductResponseNestedFields>(\n fetchFields?.root ?? addProductResponseFields,\n fetchFields?.nestedFields ?? addProductResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addProduct ?? null;\n },\n async getProduct(\n input: GetProductRequest, \n fetchFields?: {\n root?: (keyof GetProductResponse)[],\n nestedFields?: GetProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetProductResponse | null> {\n const res = await client.request<{ getProduct: GetProductResponse }, GetProductRequest>(\n productSchema.getProduct(\n gqlQueryStringBuilder<GetProductResponse, GetProductResponseNestedFields>(\n fetchFields?.root ?? getProductResponseFields,\n fetchFields?.nestedFields ?? getProductResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getProduct ?? null;\n },\n async getProducts(\n input: GetProductsRequest, \n fetchFields?: {\n root?: (keyof GetProductsResponse)[],\n nestedFields?: GetProductsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetProductsResponse | null> {\n const res = await client.request<{ getProducts: GetProductsResponse }, GetProductsRequest>(\n productSchema.getProducts(\n gqlQueryStringBuilder<GetProductsResponse, GetProductsResponseNestedFields>(\n fetchFields?.root ?? getProductsResponseFields,\n fetchFields?.nestedFields ?? getProductsResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getProducts ?? null;\n },\n})\n\nexport type ProductService = ReturnType<typeof createProductService>;","export const stockSchema = {\n getStock: (query: string) => `\n query getStock($stock: StockInput!) {\n stock(stock: $stock) {\n ${query}\n }\n }\n `,\n\n getStocks: (query: string) => `\n query getStocks($stock: StockInput, $stockIds: [String], $limit: Int!, $skip: Int!) {\n stocks(stock: $stock, stockIds: $stockIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n\n addStock: (mutation: string) => `\n mutation addStock($stock: StockInput!) {\n addStock(stock: $stock) {\n ${mutation}\n }\n }\n `,\n\n updateStock: (mutation: string) => `\n mutation updateStock($stockId: String!, $stock: StockInput!) {\n updateStock(stockId: $stockId, stock: $stock) {\n ${mutation}\n }\n }\n `,\n\n removeStock: (mutation: string) => `\n mutation removeStock($stockId: String!) {\n removeStock(stockId: $stockId) {\n ${mutation}\n }\n }\n `\n}\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { stockSchema } from \"./schema/stock.schema\";\nimport { \n AddStockRequest, addStockResponse, AddStockResponse, AddStockResponseNestedFields, addStockResponseNestedFields, \n GetStockRequest, getStockResponse, GetStockResponse, GetStockResponseNestedFields, getStockResponseNestedFields, \n GetStocksRequest, getStocksResponse, GetStocksResponse, GetStocksResponseNestedFields, getStocksResponseNestedFields,\n RemoveStockRequest,\n removeStockResponse,\n RemoveStockResponse,\n UpdateStockRequest,\n updateStockResponse,\n UpdateStockResponse,\n UpdateStockResponseNestedFields,\n updateStockResponseNestedFields, \n} from \"./types/stock.type\";\n\nexport const createStockService = (client: GraphQLClient) => ({\n async updateStock(\n input: UpdateStockRequest, \n fetchFields?: {\n root?: (keyof UpdateStockResponse)[],\n nestedFields?: UpdateStockResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateStockResponse | null> {\n const res = await client.request<{ updateStock: UpdateStockResponse }, UpdateStockRequest>(\n stockSchema.updateStock(\n gqlQueryStringBuilder<UpdateStockResponse, UpdateStockResponseNestedFields>(\n fetchFields?.root ?? updateStockResponse,\n fetchFields?.nestedFields ?? updateStockResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateStock ?? null;\n },\n async removeStock(\n input: RemoveStockRequest, \n fetchFields?: {\n root?: (keyof RemoveStockResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveStockResponse | null> {\n const res = await client.request<{ removeStock: RemoveStockResponse }, RemoveStockRequest>(\n stockSchema.removeStock(\n gqlQueryStringBuilder<RemoveStockResponse>(\n fetchFields?.root ?? removeStockResponse,\n )\n ), \n input, \n option\n );\n return res.data?.removeStock ?? null;\n },\n async addStock(\n input: AddStockRequest, \n fetchFields?: {\n root?: (keyof AddStockResponse)[],\n nestedFields?: AddStockResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddStockResponse | null> {\n const res = await client.request<{ addStock: AddStockResponse }, AddStockRequest>(\n stockSchema.addStock(\n gqlQueryStringBuilder<AddStockResponse, AddStockResponseNestedFields>(\n fetchFields?.root ?? addStockResponse,\n fetchFields?.nestedFields ?? addStockResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addStock ?? null;\n },\n async getStock(\n input: GetStockRequest, \n fetchFields?: {\n root?: (keyof GetStockResponse)[],\n nestedFields?: GetStockResponseNestedFields;\n },\n option?: RequestOption\n ): Promise<GetStockResponse | null> {\n const res = await client.request<{ getStock: GetStockResponse }, GetStockRequest>(\n stockSchema.getStock(\n gqlQueryStringBuilder<GetStockResponse, GetStockResponseNestedFields>(\n fetchFields?.root ?? getStockResponse,\n fetchFields?.nestedFields ?? getStockResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getStock ?? null;\n },\n async getStocks(\n input: GetStocksRequest, \n fetchFields?: {\n root?: (keyof GetStocksResponse)[],\n nestedFields?: GetStocksResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStocksResponse | null> {\n const res = await client.request<{ getStocks: GetStocksResponse }, GetStocksRequest>(\n stockSchema.getStocks(\n gqlQueryStringBuilder<GetStocksResponse, GetStocksResponseNestedFields>(\n fetchFields?.root ?? getStocksResponse,\n fetchFields?.nestedFields ?? getStocksResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getStocks ?? null;\n },\n})","export const storeSchema = {\n getStore: (query: string) => `\n query getStore($store: StoreInput!) {\n store(store: $store) {\n ${query}\n }\n }\n `,\n\n getStores: (query: string) => `\n query getStores($search: String, $store: StoreInput, $storeIds: [String], $limit: Int, $skip: Int) {\n stores(search: $search, store: $store, storeIds: $storeIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n\n createStore: (mutation: string) => `\n mutation createStore($store: StoreInput) {\n createStore(store: $store) {\n ${mutation}\n }\n }\n `,\n\n updateStore: (mutation: string) => `\n mutation updateStore($storeId: String, $store: StoreInput) {\n updateStore(storeId: $storeId, store: $store) {\n ${mutation}\n }\n }\n `,\n\n deleteStore: (mutation: string) => `\n mutation deleteStore($storeId: String) {\n deleteStore(storeId: $storeId) {\n ${mutation}\n }\n }\n `\n}\n\nexport default storeSchema","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { storeSchema } from \"./schema/store.schema\";\nimport { \n AddStoreRequest, addStoreResponse, AddStoreResponse, AddStoreResponseNestedFields, addStoreResponseNestedFields, \n GetStoreRequest, getStoreResponse, GetStoreResponse, GetStoreResponseNestedFields, getStoreResponseNestedFields, \n GetStoresRequest, getStoresResponse, GetStoresResponse, GetStoresResponseNestedFields, getStoresResponseNestedFields,\n RemoveStoreRequest,\n removeStoreResponse,\n RemoveStoreResponse,\n UpdateStoreRequest,\n updateStoreResponse,\n UpdateStoreResponse,\n UpdateStoreResponseNestedFields,\n updateStoreResponseNestedFields, \n} from \"./types/store.type\";\n\nexport const createStoreService = (client: GraphQLClient) => ({\n async updateStore(\n input: UpdateStoreRequest, \n fetchFields?: {\n root?: (keyof UpdateStoreResponse)[],\n nestedFields?: UpdateStoreResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateStoreResponse | null> {\n const res = await client.request<{ updateStore: UpdateStoreResponse }, UpdateStoreRequest>(\n storeSchema.updateStore(\n gqlQueryStringBuilder<UpdateStoreResponse, UpdateStoreResponseNestedFields>(\n fetchFields?.root ?? updateStoreResponse,\n fetchFields?.nestedFields ?? updateStoreResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateStore ?? null;\n },\n async removeStore(\n input: RemoveStoreRequest, \n fetchFields?: {\n root?: (keyof RemoveStoreResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveStoreResponse | null> {\n const res = await client.request<{ removeStore: RemoveStoreResponse }, RemoveStoreRequest>(\n storeSchema.deleteStore(\n gqlQueryStringBuilder<RemoveStoreResponse>(\n fetchFields?.root ?? removeStoreResponse,\n )\n ), \n input, \n option\n );\n return res.data?.removeStore ?? null;\n },\n async addStore(\n input: AddStoreRequest, \n fetchFields?: {\n root?: (keyof AddStoreResponse)[],\n nestedFields?: AddStoreResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddStoreResponse | null> {\n const res = await client.request<{ addStore: AddStoreResponse }, AddStoreRequest>(\n storeSchema.createStore(\n gqlQueryStringBuilder<AddStoreResponse, AddStoreResponseNestedFields>(\n fetchFields?.root ?? addStoreResponse,\n fetchFields?.nestedFields ?? addStoreResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addStore ?? null;\n },\n async getStore(\n input: GetStoreRequest, \n fetchFields?: {\n root?: (keyof GetStoreResponse)[],\n nestedFields?: GetStoreResponseNestedFields;\n },\n option?: RequestOption\n ): Promise<GetStoreResponse | null> {\n const res = await client.request<{ getStore: GetStoreResponse }, GetStoreRequest>(\n storeSchema.getStore(\n gqlQueryStringBuilder<GetStoreResponse, GetStoreResponseNestedFields>(\n fetchFields?.root ?? getStoreResponse,\n fetchFields?.nestedFields ?? getStoreResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getStore ?? null;\n },\n async getStores(\n input: GetStoresRequest, \n fetchFields?: {\n root?: (keyof GetStoresResponse)[],\n nestedFields?: GetStoresResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStoresResponse | null> {\n const res = await client.request<{ getStores: GetStoresResponse }, GetStoresRequest>(\n storeSchema.getStores(\n gqlQueryStringBuilder<GetStoresResponse, GetStoresResponseNestedFields>(\n fetchFields?.root ?? getStoresResponse,\n fetchFields?.nestedFields ?? getStoresResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getStores ?? null;\n },\n})","export const orderSchema = {\n getOrder: (query: string) => `\n query getOrder($order: OrderInput) {\n getOrder(order: $order){\n ${query}\n }\n }\n `,\n getOrders: (query: string) => `\n query getOrders($orderIds: [String], $order: OrderInput, $limit: Int, $skip: Int){\n getOrders(orderIds: $orderIds, order: $order, limit: $limit, skip: $skip){\n ${query}\n }\n }\n `,\n}","import { Order, Sale, Transaction } from \"../../types\";\n\nexport type TransactionFields = (keyof Transaction)[];\nexport const transactionQuery: TransactionFields = [\n \"_id\", \n \"amountPaid\",\n \"amountTotal\",\n \"createdAt\",\n \"from\", \n \"fromWallet\", \n \"isCredit\",\n \"paymentDate\", \n \"paymentType\",\n \"platform\", \n \"saleIds\", \n \"saleStatus\", \n \"sales\", \n \"storeId\",\n \"to\", \n \"toWallet\", \n \"txStatus\"\n]\nexport type OrderFields = (keyof Order)[];\nexport const orderQuery: OrderFields = [\n \"_id\",\n \"createdAt\",\n \"orderStatus\",\n \"transactionId\",\n \"userId\"\n]\nexport type SaleFields = (keyof Sale)[];\nexport const saleQuery: SaleFields = [\n \"_id\",\n \"amountTotal\", \n \"createdAt\", \n \"packageId\", \n \"productId\", \n \"quantity\", \n \"quantityInMetricUnit\", \n \"storeId\"\n]","import { Order } from \"../../../types\";\nimport { OrderFields, orderQuery } from \"../sale.entity\";\n\nexport interface GetOrderRequest {\n order: Promise<Order>;\n}\nexport interface GetOrderResponse {\n order: Order\n}\nexport const getOrderResponse: (keyof GetOrderResponse)[] = [\"order\"];\nexport interface GetOrderResponseNestedFields {\n order: OrderFields\n}\nexport const getOrderResponseNestedFields: GetOrderResponseNestedFields = {\n order: orderQuery,\n}\n\n\n// get orders\nexport interface GetOrdersRequest {\n order?: Promise<Order>;\n orderIds?: string[];\n limit: number;\n skip: number;\n}\nexport interface GetOrdersResponse {\n orders: Order[];\n}\nexport const getOrdersResponse: (keyof GetOrdersResponse)[] = [\"orders\"];\nexport interface GetOrdersResponseNestedFields extends Omit<GetOrderResponseNestedFields, \"order\"> {\n orders: OrderFields\n}\nexport const getOrdersResponseNestedFields: GetOrdersResponseNestedFields = {\n orders: orderQuery,\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { orderSchema } from \"./schemas/order.schema\";\nimport { \n GetOrderRequest, getOrderResponse, GetOrderResponse, GetOrderResponseNestedFields, getOrderResponseNestedFields, \n GetOrdersRequest, getOrdersResponse, GetOrdersResponse, GetOrdersResponseNestedFields, getOrdersResponseNestedFields,\n\n} from \"./types/order.type\";\n\nexport const createOrderService = (client: GraphQLClient) => ({\n async getOrder(\n input: GetOrderRequest, \n fetchFields?: {\n root?: (keyof GetOrderResponse)[],\n nestedFields?: GetOrderResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetOrderResponse | null> {\n const res = await client.request<{ getOrder: GetOrderResponse }, GetOrderRequest>(\n orderSchema.getOrder(\n gqlQueryStringBuilder<GetOrderResponse, GetOrderResponseNestedFields>(\n fetchFields?.root ?? getOrderResponse,\n fetchFields?.nestedFields ?? getOrderResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getOrder ?? null;\n },\n async getOrders(\n input: GetOrdersRequest, \n fetchFields?: {\n root?: (keyof GetOrdersResponse)[],\n nestedFields?: GetOrdersResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetOrdersResponse | null> {\n const res = await client.request<{ getOrders: GetOrdersResponse }, GetOrdersRequest>(\n orderSchema.getOrders(\n gqlQueryStringBuilder<GetOrdersResponse, GetOrdersResponseNestedFields>(\n fetchFields?.root ?? getOrdersResponse,\n fetchFields?.nestedFields ?? getOrdersResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getOrders ?? null;\n },\n})","export const saleSchema = {\n getSales: (query: string) => `\n query getSales($saleIds: [String], $saleFilter: SaleFilterInput, $ShouldGetFromAllStores: Boolean, $dateFilter: DateFilterInput, $limit: Int, $skip: Int) {\n getSales(saleIds: $saleIds, saleFilter: $saleFilter, ShouldGetFromAllStores: $ShouldGetFromAllStores, dateFilter: $dateFilter, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n updateSale: (query: string) => `\n mutation updateSale($saleId: String!, $sale: SaleInput!) {\n updateSale(saleId: $saleId, sale: $sale) {\n ${query}\n }\n }\n `,\n}","import { DateFilter, Product, Sale } from \"../../../types\";\nimport { SaleFields, saleQuery } from \"../sale.entity\"\nimport { ProductFields, productQuery } from \"../../inventory/entities\"\nimport { _getProductResponseNestedFields, GetProductResponseNestedFields, GetProductsResponseNestedFields } from \"../../inventory/types\"\nexport interface GetSalesRequest {\n sale: Promise<Sale>;\n}\n\nexport interface GetSalesResponse {\n sale: Sale;\n}\n\nexport const getSaleResponse: (keyof GetSalesResponse)[] = [\"sale\"]\nexport interface GetSaleResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\"> {\n sale: SaleFields;\n}\nexport const _getSaleResponseNestedFields: Omit<GetSaleResponseNestedFields, \"sale\"> = {\n ..._getProductResponseNestedFields\n}\nexport const getSaleResponseNestedFields: GetSaleResponseNestedFields = {\n sale: saleQuery,\n ..._getSaleResponseNestedFields\n}\n\nexport interface GetSalesRequest {\n saleIds?: string[];\n saleFilter?: Promise<Sale>;\n ShouldGetFromAllStores?: boolean;\n dateFilter?: DateFilter;\n limit?: number;\n skip?: number;\n}\nexport interface GetSalesResponse {\n sales: Sale[];\n uniqueProducts: Product[]\n}\n\nexport const getSalesResponse: (keyof GetSalesResponse)[] = [\n \"sales\", \"uniqueProducts\"\n]\nexport interface GetSalesResponseNestedFields extends Omit<GetSaleResponseNestedFields, \"sale\"> {\n sales: SaleFields;\n uniqueProducts: ProductFields;\n}\nexport const getSalesResponseNestedFields: GetSalesResponseNestedFields = {\n sales: saleQuery,\n uniqueProducts: productQuery,\n ..._getSaleResponseNestedFields\n}\n\n// update sale \n\nexport interface UpdateSaleRequest {\n saleId: string;\n sale: Promise<Sale>;\n}\n\nexport interface UpdateSaleResponse {\n sale: Sale;\n}\nexport const UpdateSaleResponse: (keyof UpdateSaleResponse)[] = [\"sale\"];\nexport type UpdateSaleResponseNestedFields = GetSaleResponseNestedFields;\nexport const updateSaleResponseNestedFields: UpdateSaleResponseNestedFields = getSaleResponseNestedFields","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { saleSchema } from \"./schemas/sale.schema\";\nimport { \n GetSalesRequest, getSalesResponse, GetSalesResponse, GetSalesResponseNestedFields, getSalesResponseNestedFields,\n UpdateSaleRequest,\n UpdateSaleResponse,\n UpdateSaleResponseNestedFields,\n updateSaleResponseNestedFields, \n} from \"./types/sale.type\";\n\nexport const createSaleService = (client: GraphQLClient) => ({\n async updateSale(\n input: UpdateSaleRequest, \n fetchFields?: {\n root?: (keyof UpdateSaleResponse)[],\n nestedFields?: UpdateSaleResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateSaleResponse | null> {\n const res = await client.request<{ updateSale: UpdateSaleResponse }, UpdateSaleRequest>(\n saleSchema.updateSale(\n gqlQueryStringBuilder<UpdateSaleResponse, UpdateSaleResponseNestedFields>(\n fetchFields?.root ?? UpdateSaleResponse,\n fetchFields?.nestedFields ?? updateSaleResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateSale ?? null;\n },\n async getSales(\n input: GetSalesRequest, \n fetchFields?: {\n root?: (keyof GetSalesResponse)[],\n nestedFields?: GetSalesResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSalesResponse | null> {\n const res = await client.request<{ getSales: GetSalesResponse }, GetSalesRequest>(\n saleSchema.getSales(\n gqlQueryStringBuilder<GetSalesResponse, GetSalesResponseNestedFields>(\n fetchFields?.root ?? getSalesResponse,\n fetchFields?.nestedFields ?? getSalesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSales ?? null;\n },\n})\n\nexport type SaleService = ReturnType<typeof createSaleService>","export const transactionSchema = {\n getTransaction: (query: string) => `\n query getTransaction($transaction: TransactionInput!){\n getTransaction(transaction: $transaction){\n ${query}\n }\n }\n `,\n getTransactions: (query: string) => `\n query getTransactions($dateFilter: DateFilterInput, $transactionIds: [String], $transaction: TransactionInput, $limit: Int, $skip: Int, $shouldGetFromAllStores: Boolean){\n getTransactions(dateFilter: $dateFilter, transactionIds: $transactionIds, transaction: $transaction, limit: $limit, skip: $skip, shouldGetFromAllStores: $shouldGetFromAllStores){\n ${query}\n }\n }\n `,\n addTransaction: (query: string) => `\n mutation addTransaction($transaction: TransactionInput!){\n addTransaction(transaction: $transaction){\n ${query}\n }\n }\n `,\n updateTransaction: (query: string) => `\n mutation updateTransaction($transactionId: String!, $transaction: TransactionInput!){\n updateTransaction(transactionId: $transactionId, transaction: $transaction){\n ${query}\n }\n }\n `,\n}","import { DateFilter, Product, Sale, Transaction, TransactionPin } from \"../../../types\";\nimport { _getProductResponseNestedFields, GetProductResponseNestedFields } from \"../../inventory\";\nimport { ProductFields, productNameQuery } from \"../../inventory/entities\";\nimport { SaleFields, saleQuery, TransactionFields, transactionQuery } from \"../sale.entity\";\n\nexport interface GetTransactionRequest {\n transaction: Partial<Transaction>;\n}\nexport interface GetTransactionResponse {\n transaction: Transaction\n}\nexport const getTransactionResponse: (keyof GetTransactionResponse)[] = [\n \"transaction\"\n]\nexport interface GetTransactionResponseNestedFields {\n transaction: TransactionFields\n sales: SaleFields;\n}\nexport const _getTransactionResponseNestedFields: Omit<GetTransactionResponseNestedFields, \"transaction\"> = {\n sales: saleQuery\n}\nexport const getTransactionResponseNestedFields: GetTransactionResponseNestedFields = {\n transaction: transactionQuery,\n ..._getTransactionResponseNestedFields\n}\n\n\n// get transactions\nexport interface GetTransactionsRequest {\n transactionIds?: string[];\n transaction?: Partial<Transaction>;\n dateFilter?: Partial<DateFilter>;\n shouldGetFromAllStores?: boolean;\n limit: number;\n skip: number;\n}\nexport interface GetTransactionsResponse {\n transactions: Transaction[];\n uniqueProducts: Product[];\n}\nexport const getTransactionsResponse: (keyof GetTransactionsResponse)[] = [\n \"transactions\", \"uniqueProducts\"\n]\nexport interface GetTransactionsResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\"> {\n transactions: TransactionFields;\n sales: SaleFields;\n uniqueProducts: ProductFields;\n}\nexport const _getTransactionsResponseNestedFields: Omit<GetTransactionsResponseNestedFields, \"transactions\"> = {\n sales: saleQuery,\n uniqueProducts: productNameQuery,\n ..._getProductResponseNestedFields\n}\nexport const getTransactionsResponseNestedFields: GetTransactionsResponseNestedFields = {\n transactions: transactionQuery,\n ..._getTransactionsResponseNestedFields\n}\n\n// add transactions \nexport interface AddTransactionRequest {\n transaction: Partial<Omit<Transaction, \"txStatus\"|\"saleStatus\"|\"storeId\">>;\n}\nexport type AddTransactionResponse = GetTransactionResponse;\nexport const addTransactionResponse = getTransactionResponse;\nexport type AddTransactionResponseNestedFields = GetTransactionResponseNestedFields;\nexport const addTransactionResponseNestedFields = getTransactionResponseNestedFields;\n\n// update transaction \nexport interface UpdateTransactionRequest {\n transactionId: string;\n transaction: Partial<Transaction>;\n}\nexport type UpdateTransactionResponse = GetTransactionResponse;\nexport const updateTransactionResponse = getTransactionResponse;\nexport type UpdateTransactionResponseNestedFields = GetTransactionResponseNestedFields;\nexport const updateTransactionResponseNestedFields = getTransactionResponseNestedFields;","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { transactionSchema } from \"./schemas/transaction.schema\";\nimport { \n AddTransactionRequest, addTransactionResponse, AddTransactionResponse, AddTransactionResponseNestedFields, addTransactionResponseNestedFields, \n GetTransactionRequest, getTransactionResponse, GetTransactionResponse, GetTransactionResponseNestedFields, getTransactionResponseNestedFields, \n GetTransactionsRequest, getTransactionsResponse, GetTransactionsResponse, GetTransactionsResponseNestedFields, getTransactionsResponseNestedFields,\n UpdateTransactionRequest,\n updateTransactionResponse,\n UpdateTransactionResponse,\n UpdateTransactionResponseNestedFields,\n updateTransactionResponseNestedFields, \n} from \"./types/transaction.type\";\n\nexport const createTransactionService = (client: GraphQLClient) => ({\n async updateTransaction(\n input: UpdateTransactionRequest, \n fetchFields?: {\n root?: (keyof UpdateTransactionResponse)[],\n nestedFields?: UpdateTransactionResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateTransactionResponse | null> {\n const res = await client.request<{ updateTransaction: UpdateTransactionResponse }, UpdateTransactionRequest>(\n transactionSchema.updateTransaction(\n gqlQueryStringBuilder<UpdateTransactionResponse, UpdateTransactionResponseNestedFields>(\n fetchFields?.root ?? updateTransactionResponse,\n fetchFields?.nestedFields ?? updateTransactionResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateTransaction ?? null;\n },\n async addTransaction(\n input: AddTransactionRequest, \n fetchFields?: {\n root?: (keyof AddTransactionResponse)[],\n nestedFields?: AddTransactionResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddTransactionResponse | null> {\n const res = await client.request<{ addTransaction: AddTransactionResponse }, AddTransactionRequest>(\n transactionSchema.addTransaction(\n gqlQueryStringBuilder<AddTransactionResponse, AddTransactionResponseNestedFields>(\n fetchFields?.root ?? addTransactionResponse,\n fetchFields?.nestedFields ?? addTransactionResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addTransaction ?? null;\n },\n async getTransaction(\n input: GetTransactionRequest, \n fetchFields?: {\n root?: (keyof GetTransactionResponse)[],\n nestedFields?: GetTransactionResponseNestedFields;\n },\n option?: RequestOption\n ): Promise<GetTransactionResponse | null> {\n const res = await client.request<{ getTransaction: GetTransactionResponse }, GetTransactionRequest>(\n transactionSchema.getTransaction(\n gqlQueryStringBuilder<GetTransactionResponse, GetTransactionResponseNestedFields>(\n fetchFields?.root ?? getTransactionResponse,\n fetchFields?.nestedFields ?? getTransactionResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getTransaction ?? null;\n },\n async getTransactions(\n input: GetTransactionsRequest, \n fetchFields?: {\n root?: (keyof GetTransactionsResponse)[],\n nestedFields?: GetTransactionsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetTransactionsResponse | null> {\n const res = await client.request<{ getTransactions: GetTransactionsResponse }, GetTransactionsRequest>(\n transactionSchema.getTransactions(\n gqlQueryStringBuilder<GetTransactionsResponse, GetTransactionsResponseNestedFields>(\n fetchFields?.root ?? getTransactionsResponse,\n fetchFields?.nestedFields ?? getTransactionsResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getTransactions ?? null;\n },\n})\n\nexport type TransactionService = ReturnType<typeof createTransactionService>"]}
1
+ {"version":3,"sources":["../src/auth.ts","../src/errors.ts","../src/middleware.ts","../src/transport.ts","../src/client.ts","../src/helpers/query.ts","../src/services/user/schemas/user.schema.ts","../src/services/user/user.entity.ts","../src/services/inventory/entities.ts","../src/services/user/types/account.type.ts","../src/services/user/types/user.type.ts","../src/services/user/user.service.ts","../src/services/user/schemas/auth.schema.ts","../src/services/user/types/auth.type.ts","../src/services/user/auth.service.ts","../src/services/inventory/types/product.type.ts","../src/services/inventory/types/package.type.ts","../src/services/inventory/types/price.type.ts","../src/services/inventory/types/stock.type.ts","../src/services/inventory/types/store.type.ts","../src/services/inventory/schema/package.schema.ts","../src/services/inventory/package.service.ts","../src/services/inventory/schema/price.schema.ts","../src/services/inventory/price.service.ts","../src/services/inventory/schema/product.schema.ts","../src/services/file/file.service.ts","../src/services/inventory/product.service.ts","../src/services/inventory/schema/stock.schema.ts","../src/services/inventory/stock.service.ts","../src/services/inventory/schema/store.schema.ts","../src/services/inventory/store.service.ts","../src/services/inventory/schema/store-category.schema.ts","../src/services/inventory/types/store-category.type.ts","../src/services/inventory/store-category.service.ts","../src/services/sales/schemas/order.schema.ts","../src/services/sales/sale.entity.ts","../src/services/sales/types/order.type.ts","../src/services/sales/order.service.ts","../src/services/sales/schemas/sale.schema.ts","../src/services/sales/types/sale.type.ts","../src/services/sales/sale.service.ts","../src/services/sales/schemas/transaction.schema.ts","../src/services/sales/types/transaction.type.ts","../src/services/sales/transaction.service.ts"],"names":[],"mappings":";;;AAGO,IAAM,oBAAA,GAAuB,CAAC,CAAA,KAA0D;AAC7F,EAAA,IAAI,CAAC,CAAA,EAAG,OAAO,YAAY,IAAA;AAC3B,EAAA,OAAO,YAAY;AACjB,IAAA,IAAI;AACF,MAAA,MAAM,MAAM,CAAA,EAAE;AACd,MAAA,OAAO,GAAA,YAAe,OAAA,GAAU,MAAM,GAAA,GAAM,GAAA;AAAA,IAC9C,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA;AACF;AAEO,IAAM,qBAAA,GAAwB,CACnC,CAAA,KAC4C;AAC5C,EAAA,IAAI,CAAC,CAAA,EAAG,OAAO,aAAa,EAAC,CAAA;AAC7B,EAAA,OAAO,YAAY;AAnBrB,IAAA,IAAA,EAAA;AAoBI,IAAA,IAAI;AACF,MAAA,MAAM,MAAM,CAAA,EAAE;AACd,MAAA,OAAA,CAAQ,oBAAe,OAAA,GAAU,MAAM,GAAA,GAAM,GAAA,KAArC,YAA6C,EAAC;AAAA,IACxD,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,MAAA,OAAO,EAAC;AAAA,IACV;AAAA,EACF,CAAA;AACF;;;AC3BO,IAAM,QAAA,GAAN,cAAuB,KAAA,CAAM;AAAA,EAGlC,WAAA,CAAY,OAAA,EAAiB,IAAA,EAAe,IAAA,EAAY;AACtD,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,UAAA;AACZ,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACd;AACF;AAEO,IAAM,YAAA,GAAN,cAA2B,QAAA,CAAS;AAAA,EACzC,WAAA,CAAY,OAAA,GAAU,eAAA,EAAiB,IAAA,EAAY;AACjD,IAAA,KAAA,CAAM,OAAA,EAAS,iBAAiB,IAAI,CAAA;AAAA,EACtC;AACF;AAEO,IAAM,mBAAA,GAAN,cAAkC,QAAA,CAAS;AAAA,EAChD,WAAA,CAAY,OAAA,GAAU,uBAAA,EAAyB,IAAA,EAAY;AACzD,IAAA,KAAA,CAAM,OAAA,EAAS,cAAc,IAAI,CAAA;AAAA,EACnC;AACF;;;ACQO,IAAM,OAAA,GACX,CAAC,WAAA,KACD,OAAyB,KAAwB,MAAA,KAA+B;AAC9E,EAAA,IAAI,GAAA,GAAM,EAAA;AACV,EAAA,MAAM,QAAA,GAAW,OAAO,CAAA,KAA6B;AACnD,IAAA,IAAI,CAAA,IAAK,GAAA,EAAK,MAAM,IAAI,MAAM,8BAA8B,CAAA;AAC5D,IAAA,GAAA,GAAM,CAAA;AACN,IAAA,MAAM,EAAA,GAAK,YAAY,CAAC,CAAA;AACxB,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,GAAG,GAAA,EAAK,MAAA,EAAQ,MAAM,QAAA,CAAS,CAAA,GAAI,CAAC,CAAC,CAAA;AAAA,EAC7C,CAAA;AACA,EAAA,MAAM,SAAS,CAAC,CAAA;AAClB;;;ACjCK,IAAM,eAAA,GAAkB,CAAC,IAAA,KAAwC;AARxE,EAAA,IAAA,EAAA;AASE,EAAA,MAAM,SAAA,GAAA,CAAY,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,SAAA,KAAN,IAAA,GAAA,EAAA,GAAoB,OAAO,UAAU,WAAA,GAAc,KAAA,CAAM,IAAA,CAAK,UAAU,CAAA,GAAI,MAAA;AAE9F,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,OAAO,OAAO,GAAA,EAAqB,MAAA,EAAyB,IAAA,KAAS;AAEnE,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,EAAE,KAAA,EAAO,GAAA,CAAI,OAAA,CAAQ,KAAA,EAAO,SAAA,EAAW,GAAA,CAAI,OAAA,CAAQ,SAAA,EAAW,CAAA;AAC1F,IAAA,IAAI;AACF,MAAA,MAAM,aAAa,OAAO,eAAA,KAAoB,WAAA,GAAc,IAAI,iBAAgB,GAAI,IAAA;AACpF,MAAA,MAAM,SAAS,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,MAAA;AAC3B,MAAA,IAAI,KAAA;AACJ,MAAA,IAAI,UAAA,KAAc,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,SAAA,CAAA,EAAW,KAAA,GAAQ,UAAA,CAAW,MAAM,UAAA,CAAW,KAAA,EAAM,EAAG,IAAA,CAAM,SAAS,CAAA;AAE/F,MAAA,MAAM,CAAA,GAAI,MAAM,SAAA,CAAU,GAAA,CAAI,GAAA,EAAK;AAAA,QACjC,MAAA,EAAQ,MAAA;AAAA,QACR,SAAS,GAAA,CAAI,OAAA;AAAA,QACb,IAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAA,IAAI,KAAA,eAAoB,KAAK,CAAA;AAE7B,MAAA,MAAM,IAAA,GAAO,MAAM,CAAA,CAAE,IAAA,EAAK;AAC1B,MAAA,IAAI,MAAA;AACJ,MAAA,IAAI;AACF,QAAA,MAAA,GAAS,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,MAC1B,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,QAAA,MAAA,CAAO,KAAA,GAAQ,IAAI,KAAA,CAAM,uBAAuB,CAAA;AAChD,QAAA,MAAA,CAAO,SAAS,CAAA,CAAE,MAAA;AAClB,QAAA;AAAA,MACF;AACA,MAAA,MAAA,CAAO,QAAA,GAAW,MAAA;AAClB,MAAA,MAAA,CAAO,SAAS,CAAA,CAAE,MAAA;AAAA,IACpB,SAAS,GAAA,EAAU;AACjB,MAAA,IAAI,IAAI,IAAA,KAAS,YAAA,SAAqB,KAAA,GAAQ,IAAI,MAAM,mBAAmB,CAAA;AAAA,kBAC/D,KAAA,GAAQ,GAAA;AAAA,IACtB;AACA,IAAA,MAAM,IAAA,EAAK;AAAA,EACb,CAAA;AACF;;;ACrCO,IAAM,gBAAN,MAAoB;AAAA,EAMzB,MAAa,KAAA,GAAgC;AAC3C,IAAA,OAAO,KAAK,aAAA,EAAc;AAAA,EAC5B;AAAA,EAEA,MAAa,OAAA,GAA2C;AACtD,IAAA,OAAO,KAAK,cAAA,EAAe;AAAA,EAC7B;AAAA,EAEO,MAAA,GAAQ;AACb,IAAA,OAAO,IAAA,CAAK,GAAA;AAAA,EACd;AAAA,EAEA,YAAY,IAAA,EAAqB;AAC/B,IAAA,IAAA,CAAK,MAAM,IAAA,CAAK,GAAA;AAChB,IAAA,IAAA,CAAK,aAAA,GAAgB,oBAAA,CAAqB,IAAA,CAAK,aAAa,CAAA;AAC5D,IAAA,IAAA,CAAK,cAAA,GAAiB,qBAAA,CAAsB,IAAA,CAAK,cAAc,CAAA;AAE/D,IAAA,MAAM,OAAqB,CAAC,IAAA,CAAK,cAAA,CAAe,IAAA,CAAK,IAAI,CAAC,CAAA;AAC1D,IAAA,IAAI,KAAK,WAAA,EAAa,IAAA,CAAK,IAAA,CAAK,GAAG,KAAK,WAAW,CAAA;AACnD,IAAA,IAAA,CAAK,IAAA,CAAK,eAAA,CAAgB,EAAE,SAAA,EAAW,IAAA,CAAK,WAAW,SAAA,EAAW,IAAA,CAAK,SAAA,EAAW,CAAC,CAAA;AACnF,IAAA,IAAA,CAAK,WAAA,GAAc,IAAA;AAAA,EACrB;AAAA,EAEA,MAAc,cAAA,CAAiC,GAAA,EAAwB,MAAA,EAA4B,IAAA,EAA2B;AA5ChI,IAAA,IAAA,EAAA;AA6CI,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,aAAA,EAAc;AACvC,IAAA,MAAM,cAAA,GAAiB,MAAM,IAAA,CAAK,cAAA,EAAe;AACjD,IAAA,GAAA,CAAI,OAAA,GAAU;AAAA,MACZ,cAAA,EAAgB,kBAAA;AAAA,MAChB,MAAA,EAAQ,kBAAA;AAAA,MACR,GAAG,cAAA;AAAA,MACH,GAAI,QAAQ,EAAE,aAAA,EAAe,UAAU,KAAK,CAAA,CAAA,KAAO,EAAC;AAAA,MACpD,GAAA,CAAI,EAAA,GAAA,GAAA,CAAI,OAAA,KAAJ,IAAA,GAAA,EAAA,GAAe;AAAC,KACtB;AACA,IAAA,MAAM,IAAA,EAAK;AAAA,EACb;AAAA;AAAA,EAGA,MAAa,OAAA,CAA0B,KAAA,EAAe,SAAA,EAAe,OAAA,EAAsD;AA1D7H,IAAA,IAAA,EAAA;AA2DI,IAAA,MAAM,GAAA,GAAyB;AAAA,MAC3B,OAAA,EAAS,EAAE,KAAA,EAAO,SAAA,EAAU;AAAA,MAC5B,KAAK,IAAA,CAAK,GAAA;AAAA,MACV,OAAA,EAAA,CAAS,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,OAAA,KAAT,IAAA,GAAA,EAAA,GAAoB,EAAC;AAAA,MAC9B,cAAc,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS;AAAA,KAC3B;AACA,IAAA,MAAM,SAA6B,EAAC;AACpC,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,IAAA,CAAK,WAAW,CAAA;AACvC,IAAA,MAAM,MAAA,CAAU,KAAK,MAAM,CAAA;AAE3B,IAAA,IAAI,MAAA,CAAO,KAAA,EAAO,MAAM,MAAA,CAAO,KAAA;AAC/B,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,EAAU,MAAM,IAAI,MAAM,oCAAoC,CAAA;AAC1E,IAAA,IAAI,OAAO,QAAA,CAAS,MAAA,IAAU,MAAA,CAAO,QAAA,CAAS,OAAO,MAAA,EAAQ;AAC3D,MAAA,OAAA,CAAQ,IAAI,wBAAA,EAA0B,IAAA,CAAK,UAAU,MAAA,CAAO,QAAA,CAAS,MAAM,CAAC,CAAA;AAE5E,MAAA,MAAM,CAAA,GAAI,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,CAAC,CAAA;AAClC,MAAA,MAAM,GAAA,GAAM,IAAI,KAAA,CAAM,CAAA,CAAE,OAAO,CAAA;AAC/B,MAAC,GAAA,CAAY,aAAa,CAAA,CAAE,UAAA;AAC5B,MAAA,MAAM,GAAA;AAAA,IACR;AACA,IAAA,OAAO,MAAA,CAAO,QAAA;AAAA,EAChB;AACF;;;ACjFO,SAAS,qBAAA,CACd,OACA,YAAA,EACA;AACA,EAAA,IAAI,WAAA,GAAc,EAAA;AAClB,EAAA,IAAI,KAAA;AACF,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,MAAA,MAAM,UAAU,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAQ,CAAA,CAAA;AACxB,MAAA,IAAI,6CAAe,OAAA,CAAA,EAAqB;AACtC,QAAA,WAAA,IAAe,CAAA,EAAG,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,UAAA,EAC7B,qBAAA,CAAsB,YAAA,CAAa,OAAkB,CAAA,EAAkB,YAAY,CAAC,CAAA;AAAA,SAAA,CAAA;AAAA,MAE1F,CAAA,MAAO,WAAA,IAAe,CAAA,EAAG,MAAA,CAAO,OAAO,CAAC,CAAA,CAAA,CAAA;AAAA,IAC1C;AACF,EAAA,OAAO,WAAA;AACT;;;ACfO,IAAM,UAAA,GAAa;AAAA,EACxB,gBAAA,EAAkB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAG7B,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,EAAA,EAAI,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGf,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,OAAA,EAAS,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGpB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGrB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,UAAA,EAAY,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG1B,QAAQ;AAAA;AAAA;AAAA,EAAA;AAIlB,CAAA;AAEA,IAAO,mBAAA,GAAQ,UAAA;;;ACvBR,IAAM,sBAAA,GAAiD;AAAA,EAC1D,SAAA;AAAA,EAAW,kBAAA;AAAA,EAAoB,iBAAA;AAAA,EAAmB;AACtD,CAAA;AACO,IAAM,eAAA,GAAmC;AAAA,EAC5C,YAAA;AAAA,EAAc,qBAAA;AAAA,EAAuB,oBAAA;AAAA,EACrC;AACJ,CAAA;AACO,IAAM,kBAAA,GAAyC;AAAA,EAClD,cAAA;AAAA,EAAgB,uBAAA;AAAA,EAAyB,sBAAA;AAAA,EACzC;AACJ,CAAA;AACO,IAAM,kBAAA,GAAyC;AAAA,EAClD,cAAA;AAAA,EAAgB,uBAAA;AAAA,EAAyB,sBAAA;AAAA,EACzC;AACJ,CAAA;AAGO,IAAM,YAAA,GAA6B;AAAA,EACtC,KAAA;AAAA,EAAO,eAAA;AAAA,EAAiB,KAAA;AAAA,EAAO,WAAA;AAAA,EAAa,KAAA;AAAA,EAAO,cAAA;AAAA,EAAgB,QAAA;AAAA,EAAU;AACjF,CAAA;AACO,IAAM,WAAA,GAA4B;AAAA,EACrC,KAAA;AAAA,EAAO,WAAA;AAAA,EAAa,SAAA;AAAA,EAAW,WAAA;AAAA,EAAa,UAAA;AAAA,EAAY,QAAA;AAAA,EAAU;AACtE,CAAA;AACO,IAAM,SAAA,GAAuB;AAAA,EAChC,KAAA;AAAA,EAAO,SAAA;AAAA,EAAW,WAAA;AAAA,EAAa,KAAA;AAAA,EAAO,OAAA;AAAA,EACtC,WAAA;AAAA,EAAa,SAAA;AAAA,EAAW,UAAA;AAAA,EAAY,OAAA;AAAA,EACpC,eAAA;AAAA,EAAiB,iBAAA;AAAA,EAAmB,iBAAA;AAAA,EACpC;AACJ,CAAA;AAUO,IAAM,gBAAA,GAAqC;AAAA,EAC9C,KAAA;AAAA,EAAO,gBAAA;AAAA,EAAkB,QAAA;AAAA,EAAU,mBAAA;AAAA,EACnC,aAAA;AAAA,EAAe,oBAAA;AAAA,EAAsB;AACzC,CAAA;;;ACtDO,IAAM,kBAAA,GAA0C;AAAA,EACnD,KAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA;AACJ,CAAA;AAGO,IAAM,cAAA,GAAkC;AAAA,EAC3C,MAAA;AAAA,EACA;AACJ,CAAA;AAEO,IAAM,UAAA,GAAyB;AAAA,EAClC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA;AACJ,CAAA;AAEO,IAAM,UAAA,GAA0B;AAAA,EACnC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA;AACJ,CAAA;AAEO,IAAM,UAAA,GAA0B;AAAA,EACnC,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA;AACJ,CAAA;AAEO,IAAM,YAAA,GAA6B;AAAA,EACtC,MAAA;AAAA,EAAQ,SAAA;AAAA,EAAW,OAAA;AAAA,EAAS;AAChC,CAAA;AAEO,IAAM,aAAA,GAAgC;AAAA,EACzC,KAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA;AACJ,CAAA;AAGO,IAAM,YAAA,GAA6B;AAAA,EACtC,KAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA,MAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA;AACJ,CAAA;AAEO,IAAM,gBAAA,GAAuC;AAAA,EAChD,KAAA;AAAA,EACA;AACJ,CAAA;AAEO,IAAM,YAAA,GAA8B;AAAA,EACvC,KAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA;AACJ,CAAA;;;ACxFO,IAAM,8BAAA,GAAiE;AAAA,EAC1E,OAAA,EAAS,YAAA;AAAA,EACT,OAAA,EAAS;AACb,CAAA;;;ACMO,IAAM,wBAAA,GAA8D;AAAA,EACvE,iBAAA;AAAA,EAAmB,eAAA;AAAA,EAAiB,eAAA;AAAA,EAAiB,YAAA;AAAA,EACrD,YAAA;AAAA,EAAc;AAClB,CAAA;AAOO,IAAM,oCAAA,GAA4E;AAAA,EACrF,aAAA,EAAe,kBAAA;AAAA,EACf,aAAA,EAAe,kBAAA;AAAA,EACf,UAAA,EAAY,eAAA;AAAA,EACZ,iBAAA,EAAmB;AACvB,CAAA;AAaO,IAAM,eAAA,GAA6C;AAAA,EACtD;AACJ,CAAA;AACO,IAAM,4BAAA,GAA0E;AAAA,EACnF,OAAA,EAAS;AACb,CAAA;AACO,IAAM,2BAAA,GAA2D;AAAA,EACpE,IAAA,EAAM,SAAA;AAAA,EACN,GAAG;AACP,CAAA;AAgBO,IAAM,gBAAA,GAA+C;AAAA,EACxD;AACJ,CAAA;AACO,IAAM,4BAAA,GAA6D;AAAA,EACtE,KAAA,EAAO,SAAA;AAAA,EACP,GAAG;AACP,CAAA;CA+BkC;AAAA,EAC9B,GAAG,eAEP;CAC8E;AAAA,EAC1E,GAAG,2BAEP;AASO,IAAM,UAAA,GAAmC;AAAA,EAC5C,MAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACJ,CAAA;AAOO,IAAM,sBAAA,GAAiD;AAAA,EAC1D,MAAA,EAAQ,UAAA;AAAA,EACR,WAAA,EAAa,gBAAA;AAAA,EACb,GAAG,2BAAA;AAAA,EACH,GAAG;AACP,CAAA;;;AC9IO,IAAM,iBAAA,GAAoB,CAAC,MAAA,MAA2B;AAAA,EAC3D,MAAM,gBAAA,CACJ,WAAA,EAIA,MAAA,EAC4C;AAbhD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAcI,IAAA,MAAM,GAAA,GAAM,MAAO,MAAA,CAAO,OAAA;AAAA,MACxB,mBAAA,CAAW,gBAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,wBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,EAAC;AAAA,MACD;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,GAAA,CAAI,SAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,gBAAA;AAAA,EACnB,CAAA;AAAA,EACA,MAAM,EAAA,CACJ,WAAA,EAIA,MAAA,EAC8C;AAhClD,IAAA,IAAA,EAAA,EAAA,EAAA;AAiCI,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,mBAAA,CAAW,EAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,UAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,EAAC;AAAA,MACD;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EACA,MAAM,OAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EACwD;AAnD9D,IAAA,IAAA,EAAA,EAAA,EAAA;AAoDM,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,mBAAA,CAAW,OAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,eAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EACF,MAAM,QAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EAC0D;AAtEhE,IAAA,IAAA,EAAA,EAAA,EAAA;AAuEM,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,mBAAA,CAAW,QAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,gBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACJ,CAAA;;;AClFO,IAAM,UAAA,GAAa;AAAA;AAAA,EAExB,SAAA,EAAW,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGtB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,iBAAA,EAAmB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAG9B,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,KAAA,EAAO,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGlB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,MAAA,EAAQ,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGnB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGrB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,OAAA,EAAS,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGpB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,SAAA,EAAW,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGtB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,WAAA,EAAa,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG3B,QAAQ;AAAA;AAAA;AAAA,EAAA;AAIlB,CAAA;;;ACvDO,IAAM,yBAAA,GAAgE;AAAA,EACzE;AACJ,CAAA;AAWO,IAAM,iBAAA,GAAgD;AAAA,EACzD;AACJ,CAAA;AAWO,IAAM,mBAAA,GAAoD;AAAA,EAC7D;AACJ,CAAA;AAUO,IAAM,gBAAA,GAA8C;AAAA,EACvD;AACJ,CAAA;AAUO,IAAM,eAAA,GAA6C;AAAA,EACtD,YAAA;AAAA,EACA;AACJ,CAAA;AAUO,IAAM,iBAAA,GAAiD;AAAA,EAC1D;AACJ,CAAA;AAYO,IAAM,aAAA,GAAyC;AAAA,EAClD,aAAA;AAAA,EACA;AACJ,CAAA;AAkBO,IAAM,cAAA,GAA2C;AAAA,EACpD,aAAA;AAAA,EACA;AACJ,CAAA;;;AC1FO,IAAM,iBAAA,GAAoB,CAAC,MAAA,MAA2B;AAAA,EAC3D,MAAM,iBAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EAC4E;AA1BhF,IAAA,IAAA,EAAA;AA2BI,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,UAAA,CAAW,iBAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EACA,MAAM,SAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EAC4D;AA3ChE,IAAA,IAAA,EAAA;AA4CI,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,UAAA,CAAW,SAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EACA,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACgE;AA5DpE,IAAA,IAAA,EAAA;AA6DI,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,UAAA,CAAW,WAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EACA,MAAM,SAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EAC4D;AA7EhE,IAAA,IAAA,EAAA;AA8EM,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACd,UAAA,CAAW,SAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EACA,MAAM,OAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACwD;AA9F5D,IAAA,IAAA,EAAA;AA+FI,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,UAAA,CAAW,OAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EACA,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACwD;AA/G5D,IAAA,IAAA,EAAA;AAgHM,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACd,UAAA,CAAW,QAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EACA,MAAM,MAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACsD;AAhI1D,IAAA,IAAA,EAAA;AAiII,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,UAAA,CAAW,MAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EACA,MAAM,KAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACoD;AAjJxD,IAAA,IAAA,EAAA;AAkJI,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,UAAA,CAAW,KAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF,CAAA;;;AC/HO,IAAM,wBAAA,GAAyD;AAAA,EAClE;AACJ;AACO,IAAM,+BAAA,GAAmF;AAAA,EAC5F,eAAA,EAAiB,YAAA;AAAA,EACjB,eAAA,EAAiB,YAAA;AAAA,EACjB,QAAA,EAAU,aAAA;AAAA,EACV,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ,UAAA;AAAA,EACR,iBAAA,EAAmB;AACvB;AACO,IAAM,8BAAA,GAAiE;AAAA,EAC1E,OAAA,EAAS,YAAA;AAAA,EACT,GAAG;AACP;AAmBO,IAAM,yBAAA,GAA2D;AAAA,EACpE;AACJ;AACO,IAAM,+BAAA,GAAmE;AAAA,EAC5E,QAAA,EAAU,YAAA;AAAA,EACV,GAAG;AACP;AAiBO,IAAM,2BAAA,GAAoE;AAAA,EAC7E;AACJ;AACO,IAAM,uCAAA,GAAmF;AAAA,EAC5F,OAAA,EAAS,YAAA;AAAA,EACT,GAAG;AACP;AAaO,IAAM,0BAAA,GAAmE;AAAA,EAC5E;AACJ;AAIO,IAAM,sCAAA,GAAiF;AAAA,EAC1F,YAAA,EAAc;AAClB;AAuBO,IAAM,wBAAA,GAAyD;AAAA,EAClE;AACJ;AACO,IAAM,8BAAA,GAAiE;AAAA,EAC1E,OAAA,EAAS,YAAA;AAAA,EACT,mBAAA,EAAqB,CAAC,SAAA,EAAW,KAAK,CAAA;AAAA,EACtC,GAAG;AACP;AAYO,IAAM,2BAAA,GAA8B;AACpC,IAAM,iCAAA,GAAoC;AAU1C,IAAM,2BAAA,GAA+D;AAAA,EACxE;AACJ;AAUO,IAAM,mCAAA,GAAqF;AAAA,EAC9F;AACJ;AAIO,IAAM,+CAAA,GAAmG;AAAA,EAC5G,iBAAA,EAAmB;AACvB;;;ACxKO,IAAM,wBAAA,GAAyD;AAAA,EAClE;AACJ;AACO,IAAM,+BAAA,GAAoF;AAAA,EAC7F,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ;AACZ;AACO,IAAM,8BAAA,GAA2D;AAAA,EACpE,cAAA,EAAgB,YAAA;AAAA,EAChB,GAAG;AACP;AAUO,IAAM,2BAAA,GAA+D;AAAA,EACxE;AACJ;AAkBO,IAAM,2BAAA,GAA8B;AACpC,IAAM,iCAAA,GAAoC;AAa1C,IAAM,yBAAA,GAA2D;AAAA,EACpE;AACJ;AACO,IAAM,+BAAA,GAA6D;AAAA,EACtE,eAAA,EAAiB,YAAA;AAAA,EACjB,GAAG;AACP;AAWO,IAAM,wBAAA,GAA2B;AACjC,IAAM,8BAAA,GAAiC;AAmBvC,IAAM,yBAAA,GAA2D;AAAA,EACpE,iBAAA;AAAA,EAAmB;AACvB;AACO,IAAM,+BAAA,GAA6D;AAAA;AAAA,EAEtE,cAAA,EAAgB,YAAA;AAAA,EAChB,GAAG,8BAAA;AAAA,EACH,GAAG;AACP;;;ACzGO,IAAM,sBAAA,GAAqD,CAAC,OAAO;AAC1E,IAAM,gCAAuE,EAAC;AACvE,IAAM,4BAAA,GAAuD;AAAA,EAChE,KAAA,EAAO,UAAA;AAAA,EACP,GAAG;AACP;AAeO,IAAM,uBAAA,GAAuD,CAAC,QAAQ;AACtE,IAAM,6BAAA,GAAyD;AAAA,EAClE,GAAG,6BAAA;AAAA,EACH,MAAA,EAAQ;AACZ;AAUO,IAAM,sBAAA,GAAyB;AAC/B,IAAM,4BAAA,GAA+B;AAWrC,IAAM,yBAAA,GAA4B;AAClC,IAAM,+BAAA,GAAkC;AASxC,IAAM,yBAAA,GAA2D;AAAA,EACpE;AACJ;;;AC5DO,IAAM,gBAAA,GAA+C;AAAA,EACxD;AACJ;AAIO,IAAM,4BAAA,GAA6D;AAAA,EACtE,KAAA,EAAO;AACX;AAYO,IAAM,iBAAA,GAAgD;AAAA,EACzD;AACJ;AAIO,IAAM,6BAAA,GAA+D;AAAA,EACxE,MAAA,EAAQ;AACZ;AAKO,IAAM,gBAAA,GAAmB;AAEzB,IAAM,4BAAA,GAA+B;AAQrC,IAAM,mBAAA,GAAsB;AAE5B,IAAM,+BAAA,GAAkC;AASxC,IAAM,mBAAA,GAAqD;AAAA,EAC9D;AACJ;;;ACxDO,IAAM,gBAAA,GAA+C;AAAA,EACxD;AACJ;AAKO,IAAM,6BAAA,GAA6E;AAAA,EACtF,OAAA,EAAS;AACb;AACO,IAAM,4BAAA,GAA6D;AAAA,EACtE,KAAA,EAAO,UAAA;AAAA,EACP,GAAG;AACP;AAYO,IAAM,iBAAA,GAAgD;AAAA,EACzD;AACJ;AAIO,IAAM,6BAAA,GAA+D;AAAA,EACxE,MAAA,EAAQ,UAAA;AAAA,EACR,OAAA,EAAS;AACb;AAKO,IAAM,gBAAA,GAAmB;AAEzB,IAAM,4BAAA,GAA+B;AAQrC,IAAM,mBAAA,GAAsB;AAE5B,IAAM,+BAAA,GAAkC;AASxC,IAAM,mBAAA,GAAqD;AAAA,EAC9D;AACJ;;;ACvEO,IAAM,aAAA,GAAgB;AAAA,EAC3B,UAAA,EAAY,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGvB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,WAAA,EAAa,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGxB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,UAAA,EAAY,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGvB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,WAAA,EAAa,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGxB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,aAAA,EAAe,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAG1B,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,cAAA,EAAgB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAG3B,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,aAAA,EAAe,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAG1B,KAAK;AAAA;AAAA;AAAA,EAAA;AAIf,CAAA;;;AC7BO,IAAM,oBAAA,GAAuB,CAAC,MAAA,MAA2B;AAAA,EAC9D,MAAM,aAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACuC;AA9B3C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA+BI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,aAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,2BAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,aAAA,KAAV,IAAA,GAAA,EAAA,GAA2B,IAAA;AAAA,EACpC,CAAA;AAAA,EACA,MAAM,aAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACuC;AAjD3C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAkDI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,aAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,aAAA,KAAV,IAAA,GAAA,EAAA,GAA2B,IAAA;AAAA,EACpC,CAAA;AAAA,EACA,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACqC;AApEzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAqEI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,WAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,yBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC,CAAA;AAAA,EACA,MAAM,UAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACoC;AAxFxC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAyFI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,UAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,wBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,UAAA,KAAV,IAAA,GAAA,EAAA,GAAwB,IAAA;AAAA,EACjC,CAAA;AAAA,EACA,MAAM,UAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACoC;AA5GxC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6GI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,UAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,wBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,UAAA,KAAV,IAAA,GAAA,EAAA,GAAwB,IAAA;AAAA,EACjC,CAAA;AAAA,EACA,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACqC;AAhIzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiII,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,WAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,yBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC;AACF,CAAA;;;AC7IO,IAAM,WAAA,GAAc;AAAA,EACzB,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGrB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,SAAA,EAAW,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGtB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,QAAA,EAAU,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAGxB,QAAQ;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKhB,WAAA,EAAa,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG3B,QAAQ;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKhB,WAAA,EAAa,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG3B,QAAQ;AAAA;AAAA;AAAA,EAAA;AAIlB,CAAA;;;ACpBO,IAAM,kBAAA,GAAqB,CAAC,MAAA,MAA2B;AAAA,EAC5D,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACqC;AA5BzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6BI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,WAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,yBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC,CAAA;AAAA,EACA,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACqC;AA/CzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAgDI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,WAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC,CAAA;AAAA,EACA,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACkC;AAlEtC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmEI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,QAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,sBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,QAAA,KAAV,IAAA,GAAA,EAAA,GAAsB,IAAA;AAAA,EAC/B,CAAA;AAAA,EACA,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACkC;AAtFtC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAuFI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,QAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,sBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,QAAA,KAAV,IAAA,GAAA,EAAA,GAAsB,IAAA;AAAA,EAC/B,CAAA;AAAA,EACA,MAAM,SAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACmC;AA1GvC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA2GI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,SAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,uBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,SAAA,KAAV,IAAA,GAAA,EAAA,GAAuB,IAAA;AAAA,EAChC;AACF,CAAA;;;ACvHO,IAAM,aAAA,GAAgB;AAAA,EAC3B,2BAAA,EAA6B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGxC,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,UAAA,EAAY,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGvB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,WAAA,EAAa,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGxB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,mBAAA,EAAqB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGhC,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,kBAAA,EAAoB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAG/B,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,UAAA,EAAY,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG1B,QAAQ;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKhB,aAAA,EAAe,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG7B,QAAQ;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKhB,aAAA,EAAe,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG7B,QAAQ;AAAA;AAAA;AAAA,EAAA;AAIlB,CAAA;;;AC3DO,IAAM,iBAAA,GAAoB,CAAC,MAAA,MAA2B;AAAA,EAC3D,MAAM,WAA4B,QAAA,EAAwC;AACxE,IAAA,MAAM,MAAM,MAAA,CAAO,KAAK,EAAE,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAA,GAAI,aAAA;AACpD,IAAA,MAAM,KAAA,GAAQ,MAAM,MAAA,CAAO,eAAe,CAAA,EAAE;AAE5C,IAAA,MAAM,OAAA,GAAkC;AAAA,MACtC,GAAI,QAAQ,EAAE,aAAA,EAAe,UAAU,KAAK,CAAA,CAAA,KAAO;AAAC,KACtD;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,MAC3B,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA;AAAA,MACA,IAAA,EAAM;AAAA;AAAA,KACP,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,IAAA,EAAK;AAC5B,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,GAAA,CAAI,MAAM,CAAA,GAAA,EAAM,IAAI,CAAA,CAAE,CAAA;AAC1E,IAAA,IAAI;AACF,MAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,IACxB,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AACF,CAAA,CAAA;;;ACOO,IAAM,oBAAA,GAAuB,CAAC,MAAA,MAA2B;AAAA,EAC9D,MAAM,mBAAmB,IAAA,EAAgB;AACvC,IAAA,MAAM,UAAA,GAAa,kBAAkB,MAAM,CAAA;AAC3C,IAAA,OAAA,CAAS,MAAM,UAAA,CAAW,UAAA,CAA+B,IAAW,CAAA,EAAG,OAAA;AAAA,EACzE,CAAA;AAAA,EACA,MAAM,2BAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACqD;AA5CzD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6CI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,2BAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,mCAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,2BAAA,KAAV,IAAA,GAAA,EAAA,GAAyC,IAAA;AAAA,EAClD,CAAA;AAAA,EACA,MAAM,kBAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EAC4C;AAhEhD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiEI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,kBAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,0BAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,kBAAA,KAAV,IAAA,GAAA,EAAA,GAAgC,IAAA;AAAA,EACzC,CAAA;AAAA,EACA,MAAM,aAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACuC;AApF3C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAqFI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,aAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,2BAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,aAAA,KAAV,IAAA,GAAA,EAAA,GAA2B,IAAA;AAAA,EACpC,CAAA;AAAA,EACA,MAAM,aAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACuC;AAvG3C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwGI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,aAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,aAAA,KAAV,IAAA,GAAA,EAAA,GAA2B,IAAA;AAAA,EACpC,CAAA;AAAA,EACA,MAAM,UAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACoC;AA1HxC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA2HI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,UAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,wBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,UAAA,KAAV,IAAA,GAAA,EAAA,GAAwB,IAAA;AAAA,EACjC,CAAA;AAAA,EACA,MAAM,UAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACoC;AA9IxC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA+II,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,UAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,wBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,UAAA,KAAV,IAAA,GAAA,EAAA,GAAwB,IAAA;AAAA,EACjC,CAAA;AAAA,EACA,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACqC;AAlKzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmKI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,WAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,yBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC;AACF,CAAA;;;AC/KO,IAAM,WAAA,GAAc;AAAA,EACzB,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGrB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,SAAA,EAAW,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGtB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,QAAA,EAAU,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAGxB,QAAQ;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKhB,WAAA,EAAa,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG3B,QAAQ;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKhB,WAAA,EAAa,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG3B,QAAQ;AAAA;AAAA;AAAA,EAAA;AAIlB,CAAA;;;ACvBO,IAAM,kBAAA,GAAqB,CAAC,MAAA,MAA2B;AAAA,EAC5D,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACqC;AAzBzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0BI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,WAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,mBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC,CAAA;AAAA,EACA,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACqC;AA5CzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6CI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,WAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC,CAAA;AAAA,EACA,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACkC;AA/DtC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAgEI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,QAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,gBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,QAAA,KAAV,IAAA,GAAA,EAAA,GAAsB,IAAA;AAAA,EAC/B,CAAA;AAAA,EACA,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACkC;AAnFtC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAoFI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,QAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,gBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,QAAA,KAAV,IAAA,GAAA,EAAA,GAAsB,IAAA;AAAA,EAC/B,CAAA;AAAA,EACA,MAAM,SAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACmC;AAvGvC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwGI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,SAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,iBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,SAAA,KAAV,IAAA,GAAA,EAAA,GAAuB,IAAA;AAAA,EAChC;AACF,CAAA;;;ACpHO,IAAM,WAAA,GAAc;AAAA,EACzB,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGrB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,SAAA,EAAW,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGtB,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKb,WAAA,EAAa,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG3B,QAAQ;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKhB,WAAA,EAAa,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG3B,QAAQ;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAKhB,WAAA,EAAa,CAAC,QAAA,KAAqB;AAAA;AAAA;AAAA,QAAA,EAG3B,QAAQ;AAAA;AAAA;AAAA,EAAA;AAIlB,CAAA;;;ACvBO,IAAM,kBAAA,GAAqB,CAAC,MAAA,MAA2B;AAAA,EAC5D,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACqC;AAzBzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0BI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,WAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,mBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC,CAAA;AAAA,EACA,MAAM,WAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACqC;AA5CzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6CI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,WAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACvB,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC,CAAA;AAAA,EACA,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACkC;AA/DtC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAgEI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,WAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,gBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,QAAA,KAAV,IAAA,GAAA,EAAA,GAAsB,IAAA;AAAA,EAC/B,CAAA;AAAA,EACA,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACkC;AAnFtC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAoFI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,QAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,gBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,QAAA,KAAV,IAAA,GAAA,EAAA,GAAsB,IAAA;AAAA,EAC/B,CAAA;AAAA,EACA,MAAM,SAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACmC;AAvGvC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwGI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,SAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,iBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,SAAA,KAAV,IAAA,GAAA,EAAA,GAAuB,IAAA;AAAA,EAChC;AACF,CAAA;;;ACpHO,IAAM,mBAAA,GAAsB;AAAA,EAC/B,mBAAA,EAAqB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG1B,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,mBAAA,EAAqB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG1B,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,mBAAA,EAAqB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG1B,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA;AAAA,EAKnB,gBAAA,EAAkB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGvB,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,kBAAA,EAAoB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGzB,KAAK;AAAA;AAAA;AAAA,IAAA;AAIvB,CAAA;;;AC5BO,IAAM,8BAAA,GAAqE;AAAA,EAC9E;AACJ,CAAA;AAIO,IAAM,oCAAA,GAA6E;AAAA,EACtF,aAAA,EAAe;AACnB,CAAA;AAaO,IAAM,gCAAA,GAAyE;AAAA,EAClF;AACJ,CAAA;AAIO,IAAM,sCAAA,GAAiF;AAAA,EAC1F,eAAA,EAAiB;AACrB,CAAA;AAIO,IAAM,iCAAA,GAAoC,8BAAA;AAE1C,IAAM,uCAAA,GAA0C,oCAAA;AAOhD,IAAM,iCAAA,GAAoC,8BAAA;AAE1C,IAAM,uCAAA,GAA0C,oCAAA;AAMhD,IAAM,iCAAA,GAA2E;AAAA,EACpF;AACJ,CAAA;;;ACvDO,IAAM,0BAAA,GAA6B,CAAC,MAAA,MAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBlE,MAAM,kBAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EAC0C;AApClD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAqCQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACrB,mBAAA,CAAoB,kBAAA;AAAA,QAChB,qBAAA;AAAA,UAAA,CACI,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,gCAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AACjC,OACJ;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,kBAAA,KAAV,IAAA,GAAA,EAAA,GAAgC,IAAA;AAAA,EAC3C,CAAA;AAAA,EACA,MAAM,gBAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EACwC;AAxDhD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAyDQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACrB,mBAAA,CAAoB,gBAAA;AAAA,QAChB,qBAAA;AAAA,UAAA,CACI,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,8BAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AACjC,OACJ;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,gBAAA,KAAV,IAAA,GAAA,EAAA,GAA8B,IAAA;AAAA,EACzC,CAAA;AAAA,EACA,MAAM,mBAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EAC2C;AA5EnD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6EQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACzB,mBAAA,CAAoB,mBAAA;AAAA,QAChB,qBAAA;AAAA,UAAA,CACA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,iCAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC7B,OACJ;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACA;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,mBAAA,KAAV,IAAA,GAAA,EAAA,GAAiC,IAAA;AAAA,EAC5C,CAAA;AAAA,EACA,MAAM,mBAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EAC2C;AAhGnD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiGQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACzB,mBAAA,CAAoB,mBAAA;AAAA,QAChB,qBAAA;AAAA,UAAA,CACI,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,iCAAA;AAAA,UAAA,CACjB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AACjC,OACJ;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,mBAAA,KAAV,IAAA,GAAA,EAAA,GAAiC,IAAA;AAAA,EAC5C,CAAA;AAAA,EACA,MAAM,mBAAA,CACF,KAAA,EACA,WAAA,EAGA,MAAA,EAC2C;AAnHnD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAoHQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACzB,mBAAA,CAAoB,mBAAA;AAAA,QAChB,qBAAA;AAAA,UAAA,CACI,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB;AAAA;AACzB,OACJ;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACA;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,mBAAA,KAAV,IAAA,GAAA,EAAA,GAAiC,IAAA;AAAA,EAC5C;AACJ,CAAA;;;AC/HO,IAAM,WAAA,GAAc;AAAA,EACvB,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGf,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,SAAA,EAAW,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGhB,KAAK;AAAA;AAAA;AAAA,IAAA;AAIvB,CAAA;;;ACZO,IAAM,gBAAA,GAAsC;AAAA,EAC/C,KAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA;AAAA,EACA;AACJ;AAEO,IAAM,UAAA,GAA0B;AAAA,EACnC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA;AACJ;AAEO,IAAM,SAAA,GAAwB;AAAA,EACjC,KAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,sBAAA;AAAA,EACA;AACJ;;;AC/BO,IAAM,gBAAA,GAA+C,CAAC,OAAO;AAI7D,IAAM,4BAAA,GAA6D;AAAA,EACtE,KAAA,EAAO;AACX;AAaO,IAAM,iBAAA,GAAiD,CAAC,QAAQ;AAIhE,IAAM,6BAAA,GAA+D;AAAA,EACxE,MAAA,EAAQ;AACZ;;;ACzBO,IAAM,kBAAA,GAAqB,CAAC,MAAA,MAA2B;AAAA,EAC5D,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACkC;AAjBtC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAkBI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,QAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,gBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,QAAA,KAAV,IAAA,GAAA,EAAA,GAAsB,IAAA;AAAA,EAC/B,CAAA;AAAA,EACA,MAAM,SAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACmC;AArCvC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAsCI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,SAAA;AAAA,QACV,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,iBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,SAAA,KAAV,IAAA,GAAA,EAAA,GAAuB,IAAA;AAAA,EAChC;AACF,CAAA;;;AClDO,IAAM,UAAA,GAAa;AAAA,EACtB,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGf,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,UAAA,EAAY,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGjB,KAAK;AAAA;AAAA;AAAA,IAAA;AAIvB,CAAA;;;ACHO,IAAM,eAAA,GAA8C,CAAC,MAAM;AAI3D,IAAM,4BAAA,GAA0E;AAAA,EACnF,GAAG;AACP;AACO,IAAM,2BAAA,GAA2D;AAAA,EACpE,IAAA,EAAM,SAAA;AAAA,EACN,GAAG;AACP;AAeO,IAAM,gBAAA,GAA+C;AAAA,EACxD,OAAA;AAAA,EAAS;AACb;AAKO,IAAM,4BAAA,GAA6D;AAAA,EACtE,KAAA,EAAO,SAAA;AAAA,EACP,cAAA,EAAgB,YAAA;AAAA,EAChB,GAAG;AACP;AAYO,IAAM,kBAAA,GAAmD,CAAC,MAAM;AAEhE,IAAM,8BAAA,GAAiE;;;ACnDvE,IAAM,iBAAA,GAAoB,CAAC,MAAA,MAA2B;AAAA,EAC3D,MAAM,UAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACoC;AAnBxC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAoBI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,UAAA,CAAW,UAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,kBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,UAAA,KAAV,IAAA,GAAA,EAAA,GAAwB,IAAA;AAAA,EACjC,CAAA;AAAA,EACA,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACkC;AAvCtC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwCI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,UAAA,CAAW,QAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,gBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,QAAA,KAAV,IAAA,GAAA,EAAA,GAAsB,IAAA;AAAA,EAC/B;AACF,CAAA;;;ACpDO,IAAM,iBAAA,GAAoB;AAAA,EAC7B,cAAA,EAAgB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGrB,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,eAAA,EAAiB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGtB,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,cAAA,EAAgB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGrB,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,iBAAA,EAAmB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGxB,KAAK;AAAA;AAAA;AAAA,IAAA;AAIvB,CAAA;;;AClBO,IAAM,sBAAA,GAA2D;AAAA,EACpE;AACJ;AAKO,IAAM,mCAAA,GAA+F;AAAA,EACxG,KAAA,EAAO;AACX;AACO,IAAM,kCAAA,GAAyE;AAAA,EAClF,WAAA,EAAa,gBAAA;AAAA,EACb,GAAG;AACP;AAgBO,IAAM,uBAAA,GAA6D;AAAA,EACtE,cAAA;AAAA,EAAgB;AACpB;AAMO,IAAM,oCAAA,GAAkG;AAAA,EAC3G,KAAA,EAAO,SAAA;AAAA,EACP,cAAA,EAAgB,gBAAA;AAAA,EAChB,GAAG;AACP;AACO,IAAM,mCAAA,GAA2E;AAAA,EACpF,YAAA,EAAc,gBAAA;AAAA,EACd,GAAG;AACP;AAOO,IAAM,sBAAA,GAAyB;AAE/B,IAAM,kCAAA,GAAqC;AAQ3C,IAAM,yBAAA,GAA4B;AAElC,IAAM,qCAAA,GAAwC;;;AC7D9C,IAAM,wBAAA,GAA2B,CAAC,MAAA,MAA2B;AAAA,EAClE,MAAM,iBAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EAC2C;AAtB/C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAuBI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,iBAAA,CAAkB,iBAAA;AAAA,QAChB,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,yBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,iBAAA,KAAV,IAAA,GAAA,EAAA,GAA+B,IAAA;AAAA,EACxC,CAAA;AAAA,EACA,MAAM,cAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACwC;AA1C5C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA2CI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,iBAAA,CAAkB,cAAA;AAAA,QAChB,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,sBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,cAAA,KAAV,IAAA,GAAA,EAAA,GAA4B,IAAA;AAAA,EACrC,CAAA;AAAA,EACA,MAAM,cAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACwC;AA9D5C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA+DI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,iBAAA,CAAkB,cAAA;AAAA,QAChB,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,sBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,cAAA,KAAV,IAAA,GAAA,EAAA,GAA4B,IAAA;AAAA,EACrC,CAAA;AAAA,EACA,MAAM,eAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACyC;AAlF7C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmFI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,iBAAA,CAAkB,eAAA;AAAA,QAChB,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,uBAAA;AAAA,UAAA,CACrB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,iBAAb,IAAA,GAAA,EAAA,GAA6B;AAAA;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,eAAA,KAAV,IAAA,GAAA,EAAA,GAA6B,IAAA;AAAA,EACtC;AACF,CAAA","file":"index.cjs.js","sourcesContent":["export type AuthTokenProvider = () => Promise<string | null> | string | null;\nexport type HeadersFactory = () => Promise<Record<string, string>> | Record<string, string>;\n\nexport const toAsyncTokenProvider = (p?: AuthTokenProvider): (() => Promise<string | null>) => {\n if (!p) return async () => null;\n return async () => {\n try {\n const res = p();\n return res instanceof Promise ? await res : res;\n } catch {\n return null;\n }\n };\n};\n\nexport const toAsyncHeadersFactory = (\n f?: HeadersFactory\n): (() => Promise<Record<string, string>>) => {\n if (!f) return async () => ({});\n return async () => {\n try {\n const res = f();\n return (res instanceof Promise ? await res : res) ?? {};\n } catch {\n return {};\n }\n };\n};\n","export class SdkError extends Error {\n code?: string;\n info?: any;\n constructor(message: string, code?: string, info?: any) {\n super(message);\n this.name = \"SdkError\";\n this.code = code;\n this.info = info;\n }\n}\n\nexport class NetworkError extends SdkError {\n constructor(message = \"Network error\", info?: any) {\n super(message, \"NETWORK_ERROR\", info);\n }\n}\n\nexport class AuthenticationError extends SdkError {\n constructor(message = \"Authentication failed\", info?: any) {\n super(message, \"AUTH_ERROR\", info);\n }\n}\n","import { GraphQLRequest, GraphQLResponse } from \"./types/request\";\nimport { CacheRequestOptions } from \"./middlewares/cache\";\n\nexport type RequestContext<U = any> = {\n request: GraphQLRequest<U>;\n url: string;\n headers: Record<string, string>;\n meta?: Record<string, any>;\n cacheOptions?: CacheRequestOptions;\n};\n\nexport type ResponseContext<T = any> = {\n response?: GraphQLResponse<T> | null;\n error?: Error | null;\n status?: number | null;\n};\n\nexport type Next = () => Promise<void>;\n\nexport type Middleware = <T = any, U = any>(\n ctx: RequestContext<U>,\n resCtx: ResponseContext<T>,\n next: Next\n) => Promise<void>;\n\n/**\n * compose middlewares into a single runner.\n * similar idea to koa-compose.\n */\nexport const compose =\n (middlewares: Middleware[]) =>\n async <T = any, U = any>(ctx: RequestContext<U>, resCtx: ResponseContext<T>) => {\n let idx = -1;\n const dispatch = async (i: number): Promise<void> => {\n if (i <= idx) throw new Error(\"next() called multiple times\");\n idx = i;\n const fn = middlewares[i];\n if (!fn) return;\n await fn(ctx, resCtx, () => dispatch(i + 1));\n };\n await dispatch(0);\n };\n","import type { RequestContext, ResponseContext, Middleware } from \"./middleware\";\nimport type { GraphQLResponse } from \"./types/request\";\n\nexport type TransportOptions = {\n fetchImpl?: typeof fetch; // allow injection (node polyfill or axios wrapper)\n timeoutMs?: number;\n};\n\nexport const createTransport = (opts?: TransportOptions): Middleware => {\n const fetchImpl = opts?.fetchImpl ?? (typeof fetch !== \"undefined\" ? fetch.bind(globalThis) : undefined);\n\n if (!fetchImpl) {\n throw new Error(\n \"No fetch implementation available. Provide fetchImpl in TransportOptions or polyfill fetch.\"\n );\n }\n\n return async (ctx: RequestContext, resCtx: ResponseContext, next) => {\n // last middleware should perform network request and fill resCtx.response or resCtx.error\n const body = JSON.stringify({ query: ctx.request.query, variables: ctx.request.variables });\n try {\n const controller = typeof AbortController !== \"undefined\" ? new AbortController() : null;\n const signal = controller?.signal;\n let timer: any;\n if (controller && opts?.timeoutMs) timer = setTimeout(() => controller.abort(), opts!.timeoutMs);\n\n const r = await fetchImpl(ctx.url, {\n method: \"POST\",\n headers: ctx.headers,\n body,\n signal,\n });\n\n if (timer) clearTimeout(timer);\n\n const text = await r.text();\n let parsed: GraphQLResponse;\n try {\n parsed = JSON.parse(text);\n } catch {\n resCtx.error = new Error(\"Invalid JSON response\");\n resCtx.status = r.status;\n return;\n }\n resCtx.response = parsed;\n resCtx.status = r.status;\n } catch (err: any) {\n if (err.name === \"AbortError\") resCtx.error = new Error(\"Request timed out\");\n else resCtx.error = err;\n }\n await next();\n };\n};\n","import { compose, type Middleware, type RequestContext, type ResponseContext } from \"./middleware\";\nimport { createTransport } from \"./transport\";\nimport { toAsyncHeadersFactory, toAsyncTokenProvider } from \"./auth\";\nimport type { GraphQLResponse } from \"./types/request\";\n\nexport type ClientOptions = {\n url: string;\n tokenProvider?: (() => Promise<string | null>) | (() => string | null);\n headersFactory?: (() => Promise<Record<string, string>>) | (() => Record<string, string>);\n fetchImpl?: typeof fetch;\n timeoutMs?: number;\n middlewares?: Middleware[]; // additional user middlewares\n};\nexport type RequestOption<U = any> = Partial<Omit<RequestContext<U>, \"request\"|\"url\">>\n\nexport class GraphQLClient {\n private url: string;\n private tokenProvider: () => Promise<string | null>;\n private headersFactory: () => Promise<Record<string, string>>;\n private middlewares: Middleware[];\n\n public async token(): Promise<string | null> {\n return this.tokenProvider();\n }\n\n public async headers(): Promise<Record<string, string>> {\n return this.headersFactory();\n }\n\n public getUrl(){\n return this.url\n }\n\n constructor(opts: ClientOptions) {\n this.url = opts.url;\n this.tokenProvider = toAsyncTokenProvider(opts.tokenProvider);\n this.headersFactory = toAsyncHeadersFactory(opts.headersFactory);\n // base pipeline: auth headers middleware -> user middlewares -> transport\n const base: Middleware[] = [this.authMiddleware.bind(this)];\n if (opts.middlewares) base.push(...opts.middlewares);\n base.push(createTransport({ fetchImpl: opts.fetchImpl, timeoutMs: opts.timeoutMs }));\n this.middlewares = base;\n }\n\n private async authMiddleware<T = any, U = any>(ctx: RequestContext<U>, resCtx: ResponseContext<T>, next: () => Promise<void>) {\n const token = await this.tokenProvider();\n const dynamicHeaders = await this.headersFactory();\n ctx.headers = {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n ...dynamicHeaders,\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\n ...(ctx.headers ?? {}),\n };\n await next();\n }\n\n // core request\n public async request<T = any, U = any>(query: string, variables?: U, options?: RequestOption): Promise<GraphQLResponse<T>> {\n const ctx: RequestContext<U> = { \n request: { query, variables }, \n url: this.url, \n headers: options?.headers ?? {},\n cacheOptions: options?.cacheOptions\n };\n const resCtx: ResponseContext<T> = {};\n const runner = compose(this.middlewares);\n await runner<T>(ctx, resCtx);\n\n if (resCtx.error) throw resCtx.error;\n if (!resCtx.response) throw new Error(\"No response from GraphQL transport\");\n if (resCtx.response.errors && resCtx.response.errors.length) {\n console.log(\"Detailed error - log: \", JSON.stringify(resCtx.response.errors))\n // normalize, throw first error (apps can inspect)\n const e = resCtx.response.errors[0];\n const err = new Error(e.message);\n (err as any).extensions = e.extensions;\n throw err;\n }\n return resCtx.response;\n }\n}\n","export function gqlQueryStringBuilder<Q extends object, T = undefined>(\n query?: (keyof Q)[] | (keyof T)[],\n nestedValues?: T\n) {\n let queryString = \"\";\n if (query)\n for (let i = 0; i < query.length; i++) {\n const element = query?.[i];\n if (nestedValues?.[element as keyof T]) {\n queryString += `${String(element)} { \n ${gqlQueryStringBuilder(nestedValues[element as keyof T] as (keyof T)[], nestedValues)} \n }`;\n } else queryString += `${String(element)} `;\n }\n return queryString;\n}","export const userSchema = {\n getUserDashStats: (query: string) => `\n query getUserDashStats {\n getUserDashStats {\n ${query}\n }\n }\n `,\n me: (query: string) => `\n query me {\n me {\n ${query}\n }\n }\n `,\n getUser: (query: string) => `\n query getUser($user: UserInput!) {\n user(user: $user) {\n ${query}\n }\n }\n `,\n\n getUsers: (query: string) => `\n query getUsers($user: UserInput, $userIds: [String], $limit: Int!, $skip: Int!) {\n users(user: $user, userIds: $userIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n updateUser: (mutation: string) => `\n mutation updateUser($userId: String!, $userUpdate: UpdateUserFieldInput, $imageType: String) {\n updateUser(userId: $userId, userUpdate: $userUpdate, imageType: $imageType) {\n ${mutation}\n }\n }\n `,\n}\n\nexport default userSchema","import { Account, NotificationChannels, ProductCounts, RestockCounts, SaleCounts, ServiceUpdate, TransactionCounts, User, UserNotificationSettings, UserSetting, Wallet } from \"../../types\";\n\nexport type AccountFields = (keyof Account)[];\nexport type WalletFields = (keyof Wallet)[];\nexport type UserFields = (keyof User)[];\nexport type UserNotificationSettingsFields = (keyof UserNotificationSettings)[];\nexport type NotificationChannelsFields = (keyof NotificationChannels)[];\nexport type ServiceUpdateFields = (keyof ServiceUpdate)[]\nexport type UserSettingFields = (keyof UserSetting)[]\nexport type ProductCountsFields = (keyof ProductCounts)[];\nexport type RestockCountsFields = (keyof RestockCounts)[]\nexport type SaleCountsFields = (keyof SaleCounts)[];\nexport type TransactionCountsFields = (keyof TransactionCounts)[];\n\n\n\nexport const transactionCountsQuery:TransactionCountsFields = [\n \"totalTx\", \"totalTxThisMonth\", \"totalTxThisYear\", \"totalTxToday\"\n]\nexport const saleCountsQuery:SaleCountsFields = [\n \"totalSales\", \"totalSalesThisMonth\", \"totalSalesThisYear\", \n \"totalSalesToday\"\n]\nexport const restockCountsQuery:RestockCountsFields = [\n \"totalRestock\", \"totalRestockThisMonth\", \"totalRestockThisYear\", \n \"totalRestockToday\"\n]\nexport const productCountsQuery:ProductCountsFields = [\n \"totalProduct\", \"totalProductThisMonth\", \"totalProductThisYear\",\n \"totalProductToday\"\n]\n\n\nexport const accountQuery:AccountFields = [\n \"_id\", \"accountStatus\", \"bvn\", \"createdAt\", \"nin\", \"totalBalance\", \"userId\", \"wallets\",\n]\nexport const walletQuery: WalletFields = [\n \"_id\", \"accountId\", \"balance\", \"createdAt\", \"currency\", \"status\", \"storeId\",\n]\nexport const userQuery:UserFields = [\n \"_id\", \"country\", \"createdAt\", \"dob\", \"email\",\n \"firstName\", \"isAdmin\", \"lastName\", \"phone\",\n \"phoneVerified\", \"phoneVerifiedAt\", \"profileImageUrl\", \n \"updatedAt\"\n]\nexport const notificationChannelsQuery:NotificationChannelsFields = [\n \"emailNotification\", \"pushNotification\", \"smsNotification\"\n]\nexport const serviceUpdateQuery:ServiceUpdateFields = [\n \"debtorAlert\", \"deliveryStatus\", \"inventory\", \"priceMovement\", \"saleAlert\",\n]\nexport const userNotificationSettingsQuery:UserNotificationSettingsFields = [\n \"_id\", \"notificationChannels\", \"serviceUpdate\", \"userId\"\n]\nexport const userSettingQuery:UserSettingFields = [\n \"_id\", \"defaultStoreId\", \"hasFa2\", \"hasTransactionPin\",\n \"subBillType\", \"subscriptionPlanID\", \"userId\"\n]","import { Address, Price, Product, ProductAttribute, ProductCategory, ProductName, ProductPackage, Stock, Store, StoreCategory } from \"../../types\";\n\nexport type StoreCategoryFields = (keyof StoreCategory)[]\nexport const storeCategoryQuery: StoreCategoryFields = [\n \"_id\",\n \"name\",\n \"description\",\n \"tags\",\n \"createdAt\"\n]\n\nexport type AttributeFields = (keyof ProductAttribute)[]\nexport const attributeQuery: AttributeFields = [\n \"name\",\n \"value\",\n]\nexport type PriceFields = (keyof Price)[];\nexport const priceQuery:PriceFields = [\n \"_id\",\n \"packageId\",\n \"sellingPrice\",\n \"costPrice\",\n \"deduction\",\n \"storeId\",\n \"createdAt\"\n]\nexport type StockFields = (keyof Stock)[]\nexport const stockQuery: StockFields = [\n \"_id\",\n \"packageId\",\n \"stockQty\",\n \"costPerPackage\",\n \"sellPerPackage\",\n \"deduction\",\n \"storeId\",\n \"createdAt\"\n]\nexport type StoreFields = (keyof Store)[]\nexport const storeQuery: StoreFields = [\n \"_id\",\n \"name\",\n \"address\",\n \"shopType\",\n \"ownerId\",\n \"createdAt\",\n \"storeLocation\"\n]\nexport type AddressFields = (keyof Address)[]\nexport const addressQuery:AddressFields = [\n \"city\", \"country\", \"state\", \"zipcode\"\n]\nexport type CategoryFields = (keyof ProductCategory)[]\nexport const categoryQuery: CategoryFields = [\n \"_id\",\n \"name\",\n \"description\",\n \"categoryStatus\",\n \"storeId\",\n \"createdAt\",\n \"status\",\n \"isTemplate\"\n]\n\nexport type PackageFields = (keyof ProductPackage)[]\nexport const productQuery:ProductFields = [\n \"_id\",\n \"barcode\",\n \"category\",\n \"categoryId\",\n \"createdAt\",\n \"description\",\n \"images\",\n \"smallestPackage\",\n \"smallestPackageId\",\n \"name\",\n \"productAttributes\",\n \"productPackages\",\n \"storeId\",\n \"tag\", \n \"totalStockInSmallestPackage\",\n]\nexport type ProductNamesFields = (keyof ProductName)[]\nexport const productNameQuery: ProductNamesFields = [\n \"_id\",\n \"name\"\n]\nexport type ProductFields = (keyof Product)[]\nexport const packageQuery: PackageFields = [\n \"_id\",\n \"name\",\n \"description\",\n \"trackIndex\",\n \"productId\",\n \"unit\",\n \"unitQuantity\",\n \"totalStock\",\n \"barcode\",\n \"priorityPrice\",\n \"stockLimit\",\n \"storeId\",\n \"createdAt\",\n \"price\",\n \"deduction\",\n \"stocks\"\n]","import { Account } from \"../../../types\";\nimport { AccountFields, accountQuery, WalletFields, walletQuery } from \"../user.entity\";\n\nexport interface GetAccountRequest {\n account: Partial<Account>;\n}\nexport interface GetAccountResponse {\n account: Account;\n}\nexport const getAccountResponse: (keyof GetAccountResponse)[] = [\n \"account\"\n]\nexport interface GetAccountResponseNestedFields {\n account: AccountFields;\n wallets: WalletFields;\n}\nexport const getAccountResponseNestedFields: GetAccountResponseNestedFields = {\n account: accountQuery,\n wallets: walletQuery,\n}","import { \n Account,\n ProductCounts,\n RestockCounts,\n SaleCounts,\n Store,\n TransactionCounts,\n User,\n UserSetting,\n UserType \n} from \"../../../types\";\nimport { AccountFields, ProductCountsFields, productCountsQuery, RestockCountsFields, restockCountsQuery, SaleCountsFields, saleCountsQuery, TransactionCountsFields, transactionCountsQuery, UserFields, userQuery, UserSettingFields, userSettingQuery } from \"../user.entity\";\nimport { AddressFields, addressQuery, StoreFields, storeQuery } from \"../../inventory/entities\";\nimport { getAccountResponseNestedFields } from \"./account.type\"\n\n\n// user dashboard stats \nexport interface GetUserDashStatsResponse {\n outOfStockCount: number;\n productCounts: ProductCounts;\n restockCounts: RestockCounts;\n saleCounts: SaleCounts;\n stockValue: number;\n transactionCounts: TransactionCounts;\n}\nexport const getUserDashStatsResponse:(keyof GetUserDashStatsResponse)[] = [\n \"outOfStockCount\", \"productCounts\", \"restockCounts\", \"saleCounts\",\n \"stockValue\", \"transactionCounts\"\n]\nexport interface GetUserDashStatsResponseNestedFields {\n productCounts: ProductCountsFields;\n restockCounts: RestockCountsFields;\n saleCounts: SaleCountsFields;\n transactionCounts: TransactionCountsFields;\n}\nexport const getUserDashStatsResponseNestedFields:GetUserDashStatsResponseNestedFields = {\n productCounts: productCountsQuery,\n restockCounts: restockCountsQuery,\n saleCounts: saleCountsQuery,\n transactionCounts: transactionCountsQuery\n}\n\n// get user \nexport interface GetUserRequest {\n userId: string;\n}\nexport interface GetUserResponse {\n user: User;\n}\nexport interface GetUserResponseNestedFields {\n user: UserFields;\n address: AddressFields;\n}\nexport const getUserResponse: (keyof GetUserResponse)[] = [\n \"user\"\n]\nexport const _getUserResponseNestedFields: Omit<GetUserResponseNestedFields, \"user\"> = {\n address: addressQuery,\n}\nexport const getUserResponseNestedFields: GetUserResponseNestedFields = {\n user: userQuery,\n ..._getUserResponseNestedFields,\n}\n\n\n// get users\nexport interface GetUsersRequest {\n userIds?: string[];\n user?: User;\n limit: number;\n skip: number;\n}\nexport interface GetUsersResponse {\n users: User[];\n}\nexport interface GetUsersResponseNestedFields extends Omit<GetUserResponseNestedFields, \"user\"> {\n users: UserFields\n}\nexport const getUsersResponse: (keyof GetUsersResponse)[] = [\n \"users\"\n];\nexport const getUsersResponseNestedFields: GetUsersResponseNestedFields = {\n users: userQuery,\n ..._getUserResponseNestedFields,\n}\n\n\n// add user \nexport interface AddUserRequest {\n user: User;\n userType: UserType;\n}\nexport interface AddUserResponse {\n user: User;\n}\nexport type AddUserResponseNestedFields = GetUserResponseNestedFields;\nexport const addUserResponse = getUserResponse;\nexport const addUserResponseNestedFields = getUserResponseNestedFields;\n\n// update user \nexport interface UpdateUserRequest {\n userId: string;\n user: User;\n}\nexport interface UploadUserImageResponse {\n url: string;\n fileUrl: string;\n}\nexport interface UpdateUserResponse {\n user: User;\n uploadImageResponse: UploadUserImageResponse\n}\nexport interface UpdateUserResponseNestedFields extends GetUserResponseNestedFields {\n uploadImageResponse: (keyof UploadUserImageResponse)[]\n}\nexport const updateUserResponse = {\n ...getUserResponse,\n \"uploadImageResponse\": [\"fileUrl\", \"url\"]\n}\nexport const updateUserResponseNestedFields: UpdateUserResponseNestedFields = {\n ...getUserResponseNestedFields,\n uploadImageResponse: [\"fileUrl\", \"url\"]\n}\n\n// me \nexport interface MeResponse {\n user: User;\n account?: Account;\n stores?: Store[];\n userSetting?: UserSetting;\n}\nexport const meResponse: (keyof MeResponse)[] = [\n \"user\",\n \"account\",\n \"stores\",\n \"userSetting\"\n]\nexport interface MeResponseNestedFields extends GetUserResponseNestedFields {\n user: UserFields;\n account: AccountFields;\n stores: StoreFields;\n userSetting: UserSettingFields;\n}\nexport const meResponseNestedFields: MeResponseNestedFields = {\n stores: storeQuery,\n userSetting: userSettingQuery,\n ...getUserResponseNestedFields,\n ...getAccountResponseNestedFields,\n}","import type { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport userSchema from \"./schemas/user.schema\";\nimport { getUserDashStatsResponse, GetUserDashStatsResponse, getUserDashStatsResponseNestedFields, GetUserDashStatsResponseNestedFields, GetUserRequest, getUserResponse, GetUserResponse, GetUserResponseNestedFields, getUserResponseNestedFields, GetUsersRequest, getUsersResponse, GetUsersResponse, getUsersResponseNestedFields, GetUsersResponseNestedFields, meResponse, MeResponse, meResponseNestedFields, MeResponseNestedFields } from \"./types/user.type\";\nimport { GraphQLResponse } from \"../../types\";\n\nexport const createUserService = (client: GraphQLClient) => ({ \n async getUserDashStats(\n fetchFields?: {\n root?: (keyof GetUserDashStatsResponse)[],\n nestedFields?: GetUserDashStatsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetUserDashStatsResponse|undefined>{\n const res = await client.request<{ getUserDashStats: GetUserDashStatsResponse }>(\n userSchema.getUserDashStats(\n gqlQueryStringBuilder<GetUserDashStatsResponse, GetUserDashStatsResponseNestedFields>(\n fetchFields?.root ?? getUserDashStatsResponse,\n fetchFields?.nestedFields ?? getUserDashStatsResponseNestedFields\n )\n ), \n {},\n option\n );\n return res.data?.getUserDashStats;\n },\n async me(\n fetchFields?: {\n root?: (keyof MeResponse)[],\n nestedFields?: MeResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ me: MeResponse }>> {\n return client.request<{ me: MeResponse }>(\n userSchema.me(\n gqlQueryStringBuilder<MeResponse, MeResponseNestedFields>(\n fetchFields?.root ?? meResponse,\n fetchFields?.nestedFields ?? meResponseNestedFields\n )\n ), \n {},\n option\n );\n },\n async getUser(\n input: GetUserRequest,\n fetchFields?: {\n root?: (keyof GetUserResponse)[],\n nestedFields?: GetUserResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ getUser: GetUserResponse }>> {\n return client.request<{ getUser: GetUserResponse }>(\n userSchema.getUser(\n gqlQueryStringBuilder<GetUserResponse, GetUserResponseNestedFields>(\n fetchFields?.root ?? getUserResponse,\n fetchFields?.nestedFields ?? getUserResponseNestedFields\n )\n ), \n input,\n option\n );\n },\n async getUsers(\n input: GetUsersRequest,\n fetchFields?: {\n root?: (keyof GetUsersResponse)[],\n nestedFields?: GetUsersResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ getUsers: GetUsersResponse }>> {\n return client.request<{ getUsers: GetUsersResponse }>(\n userSchema.getUsers(\n gqlQueryStringBuilder<GetUsersResponse, GetUsersResponseNestedFields>(\n fetchFields?.root ?? getUsersResponse,\n fetchFields?.nestedFields ?? getUsersResponseNestedFields\n )\n ), \n input,\n option\n );\n },\n});\n\nexport type UserService = ReturnType<typeof createUserService>","export const authSchema = {\n // change pin \n changePin: (query: string) => `\n mutation changePin($userId: String!, $oldPin: String!, $newPin: String!) {\n changePin(userId: $userId, oldPin: $oldPin, newPin: $newPin) {\n ${query}\n }\n }\n `,\n checkRegistration: (query: string) => `\n query checkRegistration($phone: String!) {\n checkRegistration(phone: $phone) {\n ${query}\n }\n }\n `,\n\n login: (query: string) => `\n mutation login($phone: String!, $pin: String!, $userType: UserTypeEnum) {\n login(phone: $phone, pin: $pin, userType: $userType) {\n ${query}\n }\n }\n `,\n\n signUp: (query: string) => `\n mutation signUp($firstName: String!, $lastName: String!, $phone: String!, $pin: String!, $storeName: String!, $storeLocation: String, $email: String, $userType: UserTypeEnum) {\n signUp( firstName: $firstName, lastName: $lastName, phone: $phone, pin: $pin, storeName: $storeName, storeLocation: $storeLocation, email: $email, userType: $userType) {\n ${query}\n }\n }\n `,\n\n resetPin: (query: string) => `\n mutation resetPin($phone: String!, $pin: String!) {\n resetPin(phone: $phone, pin: $pin) {\n ${query}\n }\n }\n `,\n\n sendOTP: (query: string) => `\n mutation sendOTP($phone: String!) {\n sendOTP(phone: $phone) {\n ${query}\n }\n }\n `,\n\n verifyOTP: (query: string) => `\n mutation verifyOTP($phone: String!, $otp: String!) {\n verifyOTP(phone: $phone, otp: $otp) {\n ${query}\n }\n }\n `,\n updateTxPin: (mutation: string) => `\n mutation updateTxPin($userId: String!, $pin: String!, $oldPin: String!) {\n updateTxPin(userId: $userId, pin: $pin, oldPin: $oldPin) {\n ${mutation}\n }\n }\n `,\n}","import { UserType } from \"../../../types\";\n\nexport interface CheckRegistrationRequest {\n phone: string;\n}\nexport interface CheckRegistrationResponse {\n isRegistered: boolean;\n}\nexport const checkRegistrationResponse:(keyof CheckRegistrationResponse)[] = [\n \"isRegistered\"\n]\n\n// change pin\nexport interface ChangePinRequest {\n userId: string;\n oldPin: string;\n newPin: string;\n}\nexport interface ChangePinResponse {\n success: boolean;\n}\nexport const changePinResponse:(keyof ChangePinResponse)[] = [\n \"success\"\n]\n\n// update tx pin\nexport interface UpdateTxPinRequest {\n userId: string;\n pin: string;\n oldPin: string;\n}\nexport interface UpdateTxPinResponse {\n success: boolean;\n}\nexport const updateTxPinResponse:(keyof UpdateTxPinResponse)[] = [\n \"success\"\n]\n\n// reset pin \nexport interface ResetPinRequest {\n phone: string;\n pin: string;\n}\nexport interface ResetPinResponse {\n success: boolean;\n}\nexport const resetPinResponse:(keyof ResetPinResponse)[] = [\n \"success\"\n]\n\n// send otp\nexport interface SendOTPRequest {\n phone: string;\n}\nexport interface SendOTPResponse {\n successful: boolean;\n otp: string;\n}\nexport const sendOTPResponse: (keyof SendOTPResponse)[] = [\n \"successful\",\n \"otp\"\n]\n\n// verify otp \nexport interface VerifyOTPRequest {\n phone: string;\n otp: string;\n}\nexport interface VerifyOTPResponse {\n otpVerifiedAccessToken: string;\n}\nexport const verifyOTPResponse: (keyof VerifyOTPResponse)[] = [\n \"otpVerifiedAccessToken\"\n]\n\n// login\nexport interface LoginRequest {\n pin: string;\n phone: string;\n userType?: UserType;\n}\nexport interface LoginResponse {\n accessToken: string;\n userId: string;\n}\nexport const loginResponse: (keyof LoginResponse)[] = [\n \"accessToken\",\n \"userId\"\n]\n\n// sign up \nexport interface SignUpRequest {\n phone: string;\n pin: string;\n storeName: string;\n lastName: string;\n firstName: string;\n\n storeLocation?: string;\n email?: string;\n userType?: UserType;\n}\nexport interface SignUpResponse {\n accessToken: string;\n userId: string;\n}\nexport const signUpResponse: (keyof SignUpResponse)[] = [\n \"accessToken\",\n \"userId\"\n]\n\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { GraphQLResponse } from \"../../types\";\nimport {authSchema} from \"./schemas/auth.schema\";\nimport { \n ChangePinRequest,\n changePinResponse,\n ChangePinResponse,\n CheckRegistrationRequest,\n checkRegistrationResponse,\n CheckRegistrationResponse,\n LoginRequest, loginResponse, LoginResponse, \n ResetPinRequest, resetPinResponse, ResetPinResponse, \n SendOTPRequest, sendOTPResponse, SendOTPResponse, \n SignUpRequest, signUpResponse, SignUpResponse, \n UpdateTxPinRequest, updateTxPinResponse, UpdateTxPinResponse, \n VerifyOTPRequest, verifyOTPResponse, VerifyOTPResponse \n} from \"./types/auth.type\";\n\nexport const createAuthService = (client: GraphQLClient) => ({\n async checkRegistration(\n input: CheckRegistrationRequest, \n fetchFields?: {\n root?: (keyof CheckRegistrationResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ checkRegistration: CheckRegistrationResponse }>> {\n return client.request<{ checkRegistration: CheckRegistrationResponse }, CheckRegistrationRequest>(\n authSchema.checkRegistration(\n gqlQueryStringBuilder<CheckRegistrationResponse>(\n fetchFields?.root ?? checkRegistrationResponse,\n )\n ), \n input, \n option\n );\n },\n async changePin(\n input: ChangePinRequest, \n fetchFields?: {\n root?: (keyof ChangePinResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ changePin: ChangePinResponse }>> {\n return client.request<{ changePin: ChangePinResponse }, ChangePinRequest>(\n authSchema.changePin(\n gqlQueryStringBuilder<ChangePinResponse>(\n fetchFields?.root ?? changePinResponse,\n )\n ), \n input,\n option\n );\n },\n async updateTxPin(\n input: UpdateTxPinRequest, \n fetchFields?: {\n root?: (keyof UpdateTxPinResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ updateTxPin: UpdateTxPinResponse }>> {\n return client.request<{ updateTxPin: UpdateTxPinResponse }, UpdateTxPinRequest>(\n authSchema.updateTxPin(\n gqlQueryStringBuilder<UpdateTxPinResponse>(\n fetchFields?.root ?? updateTxPinResponse,\n )\n ), \n input, \n option\n );\n },\n async verifyOTP(\n input: VerifyOTPRequest, \n fetchFields?: {\n root?: (keyof VerifyOTPResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ verifyOTP: VerifyOTPResponse }>> {\n return client.request<{ verifyOTP: VerifyOTPResponse }, VerifyOTPRequest>(\n authSchema.verifyOTP(\n gqlQueryStringBuilder<VerifyOTPResponse>(\n fetchFields?.root ?? verifyOTPResponse,\n )\n ), \n input, \n option\n );\n },\n async sendOTP(\n input: SendOTPRequest, \n fetchFields?: {\n root?: (keyof SendOTPResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ sendOTP: SendOTPResponse }>> {\n return client.request<{ sendOTP: SendOTPResponse }, SendOTPRequest>(\n authSchema.sendOTP(\n gqlQueryStringBuilder<SendOTPResponse>(\n fetchFields?.root ?? sendOTPResponse,\n )\n ), \n input, \n option\n );\n },\n async resetPin(\n input: ResetPinRequest, \n fetchFields?: {\n root?: (keyof ResetPinResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{resetPin: ResetPinResponse}>> {\n return client.request<{ resetPin: ResetPinResponse }, ResetPinRequest>(\n authSchema.resetPin(\n gqlQueryStringBuilder<ResetPinResponse>(\n fetchFields?.root ?? resetPinResponse,\n )\n ), \n input, \n option\n );\n },\n async signUp(\n input: SignUpRequest, \n fetchFields?: {\n root?: (keyof SignUpResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ signUp: SignUpResponse }>> {\n return client.request<{ signUp: SignUpResponse }, SignUpRequest>(\n authSchema.signUp(\n gqlQueryStringBuilder<SignUpResponse>(\n fetchFields?.root ?? signUpResponse,\n )\n ), \n input, \n option\n );\n },\n async login(\n input: LoginRequest, \n fetchFields?: {\n root?: (keyof LoginResponse)[],\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ login: LoginResponse }>> {\n return client.request<{ login: LoginResponse }, LoginRequest>(\n authSchema.login(\n gqlQueryStringBuilder<LoginResponse>(\n fetchFields?.root ?? loginResponse,\n )\n ), \n input, \n option\n );\n },\n})\n\nexport type AuthService = ReturnType<typeof createAuthService>","import { Product, ProductCategory } from \"../../../types\"\nimport { \n AttributeFields,\n attributeQuery,\n CategoryFields,\n categoryQuery,\n PackageFields, packageQuery, \n PriceFields, \n priceQuery, \n ProductFields, productNameQuery, ProductNamesFields, \n productQuery, \n StockFields,\n stockQuery} from \"../entities\"\n\nexport interface GetProductRequest {\n product: Partial<Product>\n}\nexport interface GetProductResponse {\n product: Product\n}\nexport interface GetProductResponseNestedFields {\n product: ProductFields;\n productPackages: PackageFields;\n smallestPackage: PackageFields;\n category: CategoryFields;\n price: PriceFields;\n stocks: StockFields;\n productAttributes: AttributeFields;\n}\nexport const getProductResponseFields: (keyof GetProductResponse)[] = [\n \"product\"\n]\nexport const _getProductResponseNestedFields: Omit<GetProductResponseNestedFields, \"product\"> = {\n productPackages: packageQuery,\n smallestPackage: packageQuery,\n category: categoryQuery,\n price: priceQuery,\n stocks: stockQuery,\n productAttributes: attributeQuery,\n}\nexport const getProductResponseNestedFields: GetProductResponseNestedFields = {\n product: productQuery,\n ..._getProductResponseNestedFields\n}\n\n\n// get products\nexport interface GetProductsRequest {\n product?: Partial<Product>\n productIds?: string[]\n search?: string\n limit: number\n skip: number\n template?: boolean\n shouldGetFromAllStores?: boolean\n}\nexport interface GetProductsResponse {\n products: Product[]\n}\nexport interface GetProductsResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\">{\n products: ProductFields;\n}\nexport const getProductsResponseFields: (keyof GetProductsResponse)[] = [\n \"products\"\n]\nexport const getProductsResponseNestedFields: GetProductsResponseNestedFields = {\n products: productQuery,\n ..._getProductResponseNestedFields\n}\n\n\nexport interface GetProductByBarcodeRequest {\n barcode: string\n fetchFromGS1IfNotFound?: boolean\n template?: boolean\n}\nexport interface GetProductByBarcodeResponse {\n Product: Product; // this is Capital letter for now\n fromGS1: boolean;\n gs1ProductInfo: any;\n productLookup: any;\n}\nexport interface GetProductByBarcodeResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\"> {\n Product: ProductFields;\n}\nexport const getProductByBarcodeResponse:(keyof GetProductByBarcodeResponse)[] = [\n \"Product\"\n]\nexport const getProductByBarcodeResponseNestedFields: GetProductByBarcodeResponseNestedFields = {\n Product: productQuery,\n ..._getProductResponseNestedFields\n}\n\n//search product names \nexport interface SearchProductNamesRequest {\n search: string\n product?: Partial<Product>;\n limit?: number\n skip?: number\n template?: boolean\n}\nexport interface SearchProductNamesResponse {\n productNames: Product[]\n}\nexport const searchProductNamesResponse: (keyof SearchProductNamesResponse)[] = [\n \"productNames\"\n]\nexport interface SearchProductNamesResponseNestedFields {\n productNames: ProductNamesFields;\n}\nexport const searchProductNamesResponseNestedFields: SearchProductNamesResponseNestedFields = {\n productNames: productNameQuery\n}\n\n// \n\n// add product \nexport interface UploadImageResponse {\n fileUrl: string\n url: string\n}\nexport interface AddProductRequest {\n product: Partial<Product>\n imageTypes?: string[]\n template?: boolean\n}\nexport interface AddProductResponse {\n product: Product;\n uploadImageResponse: UploadImageResponse\n}\nexport interface AddProductResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\"> {\n product: ProductFields;\n uploadImageResponse: (keyof UploadImageResponse)[];\n\n}\nexport const addProductResponseFields: (keyof AddProductResponse)[] = [\n \"product\"\n]\nexport const addProductResponseNestedFields: AddProductResponseNestedFields = {\n product: productQuery,\n uploadImageResponse: [\"fileUrl\", \"url\"],\n ..._getProductResponseNestedFields\n}\n\n// update product\nexport interface UpdateProductRequest {\n productId: string\n product: Partial<Product>\n template?: boolean\n}\nexport interface UpdateProductResponse {\n product: Product\n}\nexport type UpdateProductResponseNestedFields = GetProductResponseNestedFields;\nexport const updateProductResponseFields = getProductResponseFields\nexport const updateProductResponseNestedFields = getProductResponseNestedFields\n\n// remove product \nexport interface RemoveProductRequest {\n productId: string\n template?: boolean\n}\nexport interface RemoveProductResponse {\n productId: string;\n}\nexport const removeProductResponseFields: (keyof RemoveProductResponse)[] = [\n \"productId\"\n]\n\n// search categories and templates \nexport interface SearchCategoriesAndTemplateRequest {\n search?: string\n shouldGetFromAllStores?: boolean\n}\nexport interface SearchCategoriesAndTemplateResponse {\n productCategories: ProductCategory[];\n}\nexport const searchCategoriesAndTemplateResponse: (keyof SearchCategoriesAndTemplateResponse)[] = [\n \"productCategories\"\n]\nexport interface SearchCategoriesAndTemplateResponseNestedFields {\n productCategories: CategoryFields;\n}\nexport const searchCategoriesAndTemplateResponseNestedFields: SearchCategoriesAndTemplateResponseNestedFields = {\n productCategories: categoryQuery\n}","import { Product, ProductPackage } from \"../../../types/inventory\";\nimport { PackageFields, packageQuery, PriceFields, priceQuery, ProductFields, productQuery, StockFields, stockQuery } from \"../entities\";\nimport { getProductResponseNestedFields, GetProductResponseNestedFields } from \"./product.type\";\n\n// get package\nexport interface GetPackageRequest {\n productPackage: Partial<ProductPackage>;\n template?: boolean;\n}\nexport interface GetPackageResponse {\n productPackage: ProductPackage;\n}\nexport interface GetPackageResponseFields {\n productPackage: PackageFields;\n price: PriceFields;\n stocks: StockFields;\n}\nexport const getPackageResponseFields: (keyof GetPackageResponse)[] = [\n \"productPackage\",\n]\nexport const _getPackageResponseNestedFields: Omit<GetPackageResponseFields, \"productPackage\"> = {\n price: priceQuery,\n stocks: stockQuery\n}\nexport const getPackageResponseNestedFields: GetPackageResponseFields = {\n productPackage: packageQuery,\n ..._getPackageResponseNestedFields,\n}\n\n// remove package\nexport interface RemovePackageRequest {\n packageId: string;\n template?: boolean;\n}\nexport interface RemovePackageResponse {\n packageId: string;\n}\nexport const removePackageResponseFields: (keyof RemovePackageResponse)[] = [\n \"packageId\"\n];\n\n// update package\nexport interface UpdatePackagesRequest {\n packages: UpdatePackageRequest[];\n}\nexport interface UpdatePackagesResponse {\n packages: ProductPackage[];\n}\nexport interface UpdatePackageRequest {\n packageId: string;\n productPackage: Partial<ProductPackage>;\n template?: boolean;\n}\nexport interface UpdatePackageResponse {\n productPackage: ProductPackage;\n}\nexport type UpdatePackageResponseFields = GetPackageResponseFields;\nexport const updatePackageResponseFields = getPackageResponseFields;\nexport const updatePackageResponseNestedFields = getPackageResponseNestedFields;\n\n// add packages\nexport interface AddPackagesRequest {\n productPackages: Partial<ProductPackage>[];\n template?: boolean;\n}\nexport interface AddPackagesResponse {\n productPackages: ProductPackage[];\n}\nexport interface AddPackagesResponseFields extends Omit<GetPackageResponseFields, \"productPackage\"> {\n productPackages: PackageFields;\n}\nexport const addPackagesResponseFields: (keyof AddPackagesResponse)[] = [\n \"productPackages\",\n]\nexport const addPackagesResponseNestedFields: AddPackagesResponseFields = {\n productPackages: packageQuery,\n ..._getPackageResponseNestedFields,\n}\n\n// add package\nexport interface AddPackageRequest {\n productPackage: Partial<ProductPackage>;\n template?: boolean;\n}\nexport interface AddPackageResponse {\n productPackage: ProductPackage; \n}\nexport type AddPackageResponseFields = GetPackageResponseFields;\nexport const addPackageResponseFields = getPackageResponseFields;\nexport const addPackageResponseNestedFields = getPackageResponseNestedFields;\n\nexport interface GetPackagesRequest {\n productPackage?: Partial<ProductPackage>;\n packageIds?: string[];\n search?: string;\n template?: boolean;\n shouldGetFromAllStores?: boolean;\n limit: number;\n skip: number;\n}\nexport interface GetPackagesResponse {\n productPackages: ProductPackage[];\n uniqueProducts: Product[];\n}\nexport interface GetPackagesResponseFields extends Omit<GetPackageResponseFields, \"productPackage\">, GetProductResponseNestedFields {\n productPackages: PackageFields;\n uniqueProducts: ProductFields\n}\nexport const getPackagesResponseFields: (keyof GetPackagesResponse)[] = [\n \"productPackages\", \"uniqueProducts\"\n]\nexport const getPackagesResponseNestedFields: GetPackagesResponseFields = {\n // productPackages: packageQuery, product already contained this \n uniqueProducts: productQuery,\n ...getPackageResponseNestedFields,\n ...getProductResponseNestedFields\n}","import { Price } from \"../../../types/inventory\";\nimport { PriceFields, priceQuery } from \"../entities\";\nexport interface GetPriceRequest {\n price: Partial<Price>\n}\nexport interface GetPriceResponse {\n price: Price\n}\nexport interface GetPriceResponseFields {\n price: PriceFields\n}\nexport const getPriceResponseFields: (keyof GetPriceResponse)[] = [\"price\"]\nconst _getPriceResponseNestedFields: Omit<GetPriceResponseFields, \"price\"> = {}\nexport const getPriceResponseNestedFields: GetPriceResponseFields = {\n price: priceQuery,\n ..._getPriceResponseNestedFields\n}\n\n// get prices\nexport interface GetPricesRequest {\n price?: Partial<Price>\n priceIds?: string[]\n limit: number\n skip: number\n}\nexport interface GetPricesResponse {\n prices: Price[]\n}\nexport interface GetPricesResponseFields extends Omit<GetPriceResponseFields, \"price\"> {\n prices: PriceFields\n}\nexport const getPricesResponseFields: (keyof GetPricesResponse)[] = [\"prices\"]\nexport const getPricesResponseNestedFields: GetPricesResponseFields = {\n ..._getPriceResponseNestedFields,\n prices: priceQuery\n}\n\n// add price \nexport interface AddPriceRequest {\n price: Partial<Price>\n}\nexport interface AddPriceResponse {\n price: Price\n}\nexport type AddPriceResponseFields = GetPriceResponseFields\nexport const addPriceResponseFields = getPriceResponseFields;\nexport const addPriceResponseNestedFields = getPriceResponseNestedFields;\n\n// update price \nexport interface UpdatePriceRequest {\n priceId: string\n price: Partial<Price>\n}\nexport interface UpdatePriceResponse {\n price: Price\n}\nexport type UpdatePriceResponseFields = GetPriceResponseFields\nexport const updatePriceResponseFields = getPriceResponseFields;\nexport const updatePriceResponseNestedFields = getPriceResponseNestedFields;\n\n// remove price \nexport interface RemovePriceRequest {\n priceId: string\n}\nexport interface RemovePriceResponse {\n priceId: string\n}\nexport const removePriceResponseFields: (keyof RemovePriceResponse)[] = [\n \"priceId\"\n]","import { Stock } from \"../../../types\";\nimport { stockQuery, type StockFields } from \"../entities\"\n\nexport interface GetStockRequest {\n stock: Promise<Stock>;\n}\nexport interface GetStockResponse {\n stock?: Stock;\n}\nexport const getStockResponse: (keyof GetStockResponse)[] = [\n \"stock\"\n]\nexport interface GetStockResponseNestedFields {\n stock: StockFields\n}\nexport const getStockResponseNestedFields: GetStockResponseNestedFields = {\n stock: stockQuery,\n}\n\n// get stocks \nexport interface GetStocksRequest {\n stock?: Promise<Stock>;\n stockIds?: string[];\n limit: number;\n skip: number;\n}\nexport interface GetStocksResponse {\n stocks?: Stock[];\n}\nexport const getStocksResponse:(keyof GetStocksResponse)[] = [\n \"stocks\"\n]\nexport interface GetStocksResponseNestedFields {\n stocks: StockFields;\n}\nexport const getStocksResponseNestedFields: GetStocksResponseNestedFields = {\n stocks: stockQuery\n}\n\n// add stock \nexport type AddStockRequest = GetStockRequest;\nexport type AddStockResponse = GetStockResponse;\nexport const addStockResponse = getStockResponse;\nexport type AddStockResponseNestedFields = GetStockResponseNestedFields;\nexport const addStockResponseNestedFields = getStockResponseNestedFields;\n\n// update stock \nexport interface UpdateStockRequest {\n stockId: string;\n stock: Promise<Stock>;\n}\nexport type UpdateStockResponse = GetStockResponse;\nexport const updateStockResponse = getStockResponse;\nexport type UpdateStockResponseNestedFields = GetStockResponseNestedFields;\nexport const updateStockResponseNestedFields = getStockResponseNestedFields;\n\n// remove stock \nexport interface RemoveStockRequest {\n stockId: string;\n}\nexport interface RemoveStockResponse {\n stockId: string;\n} \nexport const removeStockResponse: (keyof RemoveStockResponse)[] = [\n \"stockId\"\n]\n","import { Store } from \"../../../types\";\nimport { AddressFields, addressQuery, storeQuery, type StoreFields } from \"../entities\"\n\nexport interface GetStoreRequest {\n store: Promise<Store>;\n}\nexport interface GetStoreResponse {\n store?: Store;\n}\nexport const getStoreResponse: (keyof GetStoreResponse)[] = [\n \"store\"\n]\nexport interface GetStoreResponseNestedFields {\n store: StoreFields\n address: AddressFields;\n}\nexport const _getStoreResponseNestedFields: Omit<GetStoreResponseNestedFields, \"store\"> = {\n address: addressQuery\n}\nexport const getStoreResponseNestedFields: GetStoreResponseNestedFields = {\n store: storeQuery,\n ..._getStoreResponseNestedFields,\n}\n\n// get stores \nexport interface GetStoresRequest {\n store?: Promise<Store>;\n storeIds?: string[];\n limit: number;\n skip: number;\n}\nexport interface GetStoresResponse {\n stores?: Store[];\n}\nexport const getStoresResponse:(keyof GetStoresResponse)[] = [\n \"stores\"\n]\nexport interface GetStoresResponseNestedFields extends Omit<GetStoreResponseNestedFields, \"store\"> {\n stores: StoreFields;\n}\nexport const getStoresResponseNestedFields: GetStoresResponseNestedFields = {\n stores: storeQuery,\n address: addressQuery,\n}\n\n// add store \nexport type AddStoreRequest = GetStoreRequest;\nexport type AddStoreResponse = GetStoreResponse;\nexport const addStoreResponse = getStoreResponse;\nexport type AddStoreResponseNestedFields = GetStoreResponseNestedFields;\nexport const addStoreResponseNestedFields = getStoreResponseNestedFields;\n\n// update store \nexport interface UpdateStoreRequest {\n storeId: string;\n store: Promise<Store>;\n}\nexport type UpdateStoreResponse = GetStoreResponse;\nexport const updateStoreResponse = getStoreResponse;\nexport type UpdateStoreResponseNestedFields = GetStoreResponseNestedFields;\nexport const updateStoreResponseNestedFields = getStoreResponseNestedFields;\n\n// remove store \nexport interface RemoveStoreRequest {\n storeId: string;\n}\nexport interface RemoveStoreResponse {\n storeId: string;\n} \nexport const removeStoreResponse: (keyof RemoveStoreResponse)[] = [\n \"storeId\"\n]\n","export const packageSchema = {\n getPackage: (query: string) => `\n query getPackage($productPackage: ProductPackageInput!, $template: Boolean) {\n getPackage(productPackage: $productPackage, template: $template) {\n ${query}\n }\n }\n `,\n getPackages: (query: string) => `\n query getPackages($productPackage: ProductPackageInput, $packageIds: [String], $search: String, $template: Boolean, $shouldGetFromAllStores: Boolean, $limit: Int, $skip: Int) {\n getPackages(productPackage: $productPackage, packageIds: $packageIds, search: $search, template: $template, shouldGetFromAllStores: $shouldGetFromAllStores, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n addPackage: (query: string) => `\n mutation addPackage($productPackage: ProductPackageInput!, $template: Boolean) {\n addPackage(productPackage: $productPackage, template: $template) {\n ${query}\n }\n }\n `,\n addPackages: (query: string) => `\n mutation addPackages($productPackages: [ProductPackagesInput]!, $template: Boolean) {\n addPackages(productPackages: $productPackages, template: $template) {\n ${query}\n }\n }\n `,\n updatePackage: (query: string) => `\n mutation updatePackage($packageId: String!, $productPackage: ProductPackageInput!, $template: Boolean) {\n updatePackage(packageId: $packageId, productPackage: $productPackage, template: $template) {\n ${query}\n }\n }\n `,\n updatePackages: (query: string) => `\n mutation updatePackages($packages: [PackagesInput]) {\n updatePackages(packages: $packages) {\n ${query}\n }\n }\n `,\n\n removePackage: (query: string) => `\n mutation removePackage($packageId: String!, $template: Boolean) {\n removePackage(packageId: $packageId, template: $template) {\n ${query}\n }\n }\n `\n}\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { packageSchema } from \"./schema/package.schema\";\nimport { \n AddPackageRequest, AddPackageResponse, addPackageResponseFields, AddPackageResponseFields, addPackageResponseNestedFields, \n AddPackagesRequest, \n AddPackagesResponse, \n addPackagesResponseFields, \n AddPackagesResponseFields, \n addPackagesResponseNestedFields, \n GetPackageRequest, GetPackageResponse, getPackageResponseFields, GetPackageResponseFields, getPackageResponseNestedFields, \n GetPackagesRequest, GetPackagesResponse, getPackagesResponseFields, GetPackagesResponseFields, getPackagesResponseNestedFields,\n RemovePackageRequest,\n RemovePackageResponse,\n removePackageResponseFields,\n UpdatePackageRequest,\n UpdatePackageResponse,\n UpdatePackageResponseFields,\n updatePackageResponseFields,\n updatePackageResponseNestedFields, \n} from \"./types/package.type\";\n\nexport const createPackageService = (client: GraphQLClient) => ({\n async updatePackage(\n input: UpdatePackageRequest, \n fetchFields?: {\n root?: (keyof UpdatePackageResponse)[],\n nestedFields?: UpdatePackageResponseFields\n },\n option?: RequestOption\n ): Promise<UpdatePackageResponse | null> {\n const res = await client.request<{ updatePackage: UpdatePackageResponse }, UpdatePackageRequest>(\n packageSchema.updatePackage(\n gqlQueryStringBuilder<UpdatePackageResponse, UpdatePackageResponseFields>(\n fetchFields?.root ?? updatePackageResponseFields,\n fetchFields?.nestedFields ?? updatePackageResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updatePackage ?? null;\n },\n async removePackage(\n input: RemovePackageRequest, \n fetchFields?: {\n root?: (keyof RemovePackageResponse)[],\n },\n option?: RequestOption\n ): Promise<RemovePackageResponse | null> {\n const res = await client.request<{ removePackage: RemovePackageResponse }, RemovePackageRequest>(\n packageSchema.removePackage(\n gqlQueryStringBuilder<RemovePackageResponse>(\n fetchFields?.root ?? removePackageResponseFields,\n )\n ), \n input, \n option\n );\n return res.data?.removePackage ?? null;\n },\n async addPackages(\n input: AddPackagesRequest, \n fetchFields?: {\n root?: (keyof AddPackagesResponse)[],\n nestedFields?: AddPackagesResponseFields\n },\n option?: RequestOption\n ): Promise<AddPackagesResponse | null> {\n const res = await client.request<{ addPackages: AddPackagesResponse }, AddPackagesRequest>(\n packageSchema.addPackages(\n gqlQueryStringBuilder<AddPackagesResponse, AddPackagesResponseFields>(\n fetchFields?.root ?? addPackagesResponseFields,\n fetchFields?.nestedFields ?? addPackagesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addPackages ?? null;\n },\n async addPackage(\n input: AddPackageRequest, \n fetchFields?: {\n root?: (keyof AddPackageResponse)[],\n nestedFields?: AddPackageResponseFields\n },\n option?: RequestOption\n ): Promise<AddPackageResponse | null> {\n const res = await client.request<{ addPackage: AddPackageResponse }, AddPackageRequest>(\n packageSchema.addPackage(\n gqlQueryStringBuilder<AddPackageResponse, AddPackageResponseFields>(\n fetchFields?.root ?? addPackageResponseFields,\n fetchFields?.nestedFields ?? addPackageResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addPackage ?? null;\n },\n async getPackage(\n input: GetPackageRequest, \n fetchFields?: {\n root?: (keyof GetPackageResponse)[],\n nestedFields?: GetPackageResponseFields\n },\n option?: RequestOption\n ): Promise<GetPackageResponse | null> {\n const res = await client.request<{ getPackage: GetPackageResponse }, GetPackageRequest>(\n packageSchema.getPackage(\n gqlQueryStringBuilder<GetPackageResponse, GetPackageResponseFields>(\n fetchFields?.root ?? getPackageResponseFields,\n fetchFields?.nestedFields ?? getPackageResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getPackage ?? null;\n },\n async getPackages(\n input: GetPackagesRequest, \n fetchFields?: {\n root?: (keyof GetPackagesResponse)[],\n nestedFields?: GetPackagesResponseFields\n },\n option?: RequestOption\n ): Promise<GetPackagesResponse | null> {\n const res = await client.request<{ getPackages: GetPackagesResponse }, GetPackagesRequest>(\n packageSchema.getPackages(\n gqlQueryStringBuilder<GetPackagesResponse, GetPackagesResponseFields>(\n fetchFields?.root ?? getPackagesResponseFields,\n fetchFields?.nestedFields ?? getPackagesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getPackages ?? null;\n },\n})\n\nexport type ProductPackageService = ReturnType<typeof createPackageService> \nexport type PackageService = ReturnType<typeof createPackageService> ","export const priceSchema = {\n getPrice: (query: string) => `\n query getPrice($price: PriceInput!) {\n price(price: $price) {\n ${query}\n }\n }\n `,\n\n getPrices: (query: string) => `\n query getPrices($price: PriceInput, $priceIds: [String], $limit: Int!, $skip: Int!) {\n prices(price: $price, priceIds: $priceIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n\n addPrice: (mutation: string) => `\n mutation addPrice($price: PriceInput) {\n addPrice(price: $price) {\n ${mutation}\n }\n }\n `,\n\n updatePrice: (mutation: string) => `\n mutation updatePrice($priceId: String, $price: PriceInput) {\n updatePrice(priceId: $priceId, price: $price) {\n ${mutation}\n }\n }\n `,\n\n removePrice: (mutation: string) => `\n mutation removePrice($priceId: String!) {\n removePrice(priceId: $priceId) {\n ${mutation}\n }\n }\n `\n}\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { priceSchema } from \"./schema/price.schema\";\nimport { \n AddPriceRequest, AddPriceResponse, addPriceResponseFields, AddPriceResponseFields, \n addPriceResponseNestedFields, \n GetPriceRequest, GetPriceResponse, getPriceResponseFields, GetPriceResponseFields, \n getPriceResponseNestedFields, \n GetPricesRequest, GetPricesResponse, getPricesResponseFields, GetPricesResponseFields,\n getPricesResponseNestedFields,\n RemovePriceRequest,\n RemovePriceResponse,\n removePriceResponseFields,\n UpdatePriceRequest,\n UpdatePriceResponse,\n UpdatePriceResponseFields,\n updatePriceResponseFields,\n updatePriceResponseNestedFields,\n} from \"./types/price.type\";\n\nexport const createPriceService = (client: GraphQLClient) => ({\n async updatePrice(\n input: UpdatePriceRequest, \n fetchFields?: {\n root?: (keyof UpdatePriceResponse)[],\n nestedFields?: UpdatePriceResponseFields\n },\n option?: RequestOption\n ): Promise<UpdatePriceResponse | null> {\n const res = await client.request<{ updatePrice: UpdatePriceResponse }, UpdatePriceRequest>(\n priceSchema.updatePrice(\n gqlQueryStringBuilder<UpdatePriceResponse, UpdatePriceResponseFields>(\n fetchFields?.root ?? updatePriceResponseFields,\n fetchFields?.nestedFields ?? updatePriceResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updatePrice ?? null;\n },\n async removePrice(\n input: RemovePriceRequest, \n fetchFields?: {\n root?: (keyof RemovePriceResponse)[],\n },\n option?: RequestOption\n ): Promise<RemovePriceResponse | null> {\n const res = await client.request<{ removePrice: RemovePriceResponse }, RemovePriceRequest>(\n priceSchema.removePrice(\n gqlQueryStringBuilder<RemovePriceResponse>(\n fetchFields?.root ?? removePriceResponseFields,\n )\n ), \n input, \n option\n );\n return res.data?.removePrice ?? null;\n },\n async addPrice(\n input: AddPriceRequest, \n fetchFields?: {\n root?: (keyof AddPriceResponse)[],\n nestedFields?: AddPriceResponseFields\n },\n option?: RequestOption\n ): Promise<AddPriceResponse | null> {\n const res = await client.request<{ addPrice: AddPriceResponse }, AddPriceRequest>(\n priceSchema.addPrice(\n gqlQueryStringBuilder<AddPriceResponse, AddPriceResponseFields>(\n fetchFields?.root ?? addPriceResponseFields,\n fetchFields?.nestedFields ?? addPriceResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addPrice ?? null;\n },\n async getPrice(\n input: GetPriceRequest, \n fetchFields?: {\n root?: (keyof GetPriceResponse)[],\n nestedFields?: GetPriceResponseFields\n },\n option?: RequestOption\n ): Promise<GetPriceResponse | null> {\n const res = await client.request<{ getPrice: GetPriceResponse }, GetPriceRequest>(\n priceSchema.getPrice(\n gqlQueryStringBuilder<GetPriceResponse, GetPriceResponseFields>(\n fetchFields?.root ?? getPriceResponseFields,\n fetchFields?.nestedFields ?? getPriceResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getPrice ?? null;\n },\n async getPrices(\n input: GetPricesRequest, \n fetchFields?: {\n root?: (keyof GetPricesResponse)[],\n nestedFields?: GetPricesResponseFields\n },\n option?: RequestOption\n ): Promise<GetPricesResponse | null> {\n const res = await client.request<{ getPrices: GetPricesResponse }, GetPricesRequest>(\n priceSchema.getPrices(\n gqlQueryStringBuilder<GetPricesResponse, GetPricesResponseFields>(\n fetchFields?.root ?? getPricesResponseFields,\n fetchFields?.nestedFields ?? getPricesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getPrices ?? null;\n },\n})","export const productSchema = {\n searchCategoriesAndTemplate: (query: string) => `\n query searchCategoriesAndTemplate($search: String, $shouldGetFromAllStores: Boolean){\n searchCategoriesAndTemplate(search: $search, shouldGetFromAllStores: $shouldGetFromAllStores) {\n ${query}\n }\n }\n `,\n getProduct: (query: string) => `\n query getProduct($product: ProductInput!, $template: Boolean) {\n getProduct(product: $product, template: $template) {\n ${query}\n }\n }\n `,\n\n getProducts: (query: string) => `\n query getProducts($product: ProductInput, $productIds: [String], $search: String, $limit: Int!, $skip: Int!, $template: Boolean, $shouldGetFromAllStores: Boolean) {\n getProducts(product: $product, productIds: $productIds, search: $search, limit: $limit, skip: $skip, template: $template, shouldGetFromAllStores: $shouldGetFromAllStores) {\n ${query}\n }\n }\n `,\n getProductByBarcode: (query: string) => `\n query getProductByBarcode($barcode: String!, $fetchFromGS1IfNotFound: Boolean, $template: Boolean) {\n getProductByBarcode(barcode: $barcode, fetchFromGS1IfNotFound: $fetchFromGS1IfNotFound, template: $template) {\n ${query}\n }\n }\n `,\n searchProductNames: (query: string) => `\n query searchProductNames($search: String!, $product: ProductInput, $limit: Int, $skip: Int, $template: Boolean) {\n searchProductNames(search: $search, product: $product, limit: $limit, skip: $skip, template: $template) {\n ${query}\n }\n }\n `,\n\n addProduct: (mutation: string) => `\n mutation addProduct($product: ProductInput!, $imageTypes: [String], $template: Boolean) {\n addProduct(product: $product, imageTypes: $imageTypes, template: $template) {\n ${mutation}\n }\n }\n `,\n\n updateProduct: (mutation: string) => `\n mutation updateProduct($productId: String!, $product: ProductInput!, $template: Boolean) {\n updateProduct(productId: $productId, product: $product, template: $template) {\n ${mutation}\n }\n }\n `,\n\n removeProduct: (mutation: string) => `\n mutation removeProduct($productId: String!, $template: Boolean) {\n removeProduct(productId: $productId, template: $template) {\n ${mutation}\n }\n }\n `\n}\nexport default productSchema","import type { GraphQLClient } from \"../../client\";\n\nexport const createFileService = (client: GraphQLClient) => ({\n async uploadFile<TResponse = any>(formData: FormData): Promise<TResponse> {\n const url = client[\"url\"].replace(\"/graphql\", \"\") + \"/api/upload\";\n const token = await client[\"tokenProvider\"]();\n\n const headers: Record<string, string> = {\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\n };\n // ✅ Do not use formData.getHeaders() — not available in React Native/browser\n const res = await fetch(url, {\n method: \"POST\",\n headers,\n body: formData, // native FormData works fine\n });\n\n const text = await res.text();\n if (!res.ok) throw new Error(`File upload failed: ${res.status} - ${text}`);\n try {\n return JSON.parse(text);\n } catch {\n return text as any;\n }\n },\n});\n\nexport type FileService = ReturnType<typeof createFileService>;\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { Product } from \"../../types\";\nimport { productSchema } from \"./schema/product.schema\";\nimport { \n AddProductRequest, AddProductResponse, addProductResponseFields, addProductResponseNestedFields, \n GetProductRequest, GetProductResponse, getProductResponseFields, getProductResponseNestedFields, \n GetProductsRequest, GetProductsResponse, getProductsResponseFields, getProductsResponseNestedFields,\n RemoveProductRequest,\n RemoveProductResponse,\n removeProductResponseFields,\n UpdateProductRequest,\n UpdateProductResponse,\n UpdateProductResponseNestedFields,\n updateProductResponseFields,\n updateProductResponseNestedFields,\n AddProductResponseNestedFields,\n GetProductResponseNestedFields,\n GetProductsResponseNestedFields,\n SearchProductNamesRequest,\n SearchProductNamesResponse,\n SearchProductNamesResponseNestedFields,\n searchProductNamesResponse,\n searchProductNamesResponseNestedFields,\n SearchCategoriesAndTemplateResponse,\n SearchCategoriesAndTemplateResponseNestedFields,\n SearchCategoriesAndTemplateRequest,\n searchCategoriesAndTemplateResponse,\n searchCategoriesAndTemplateResponseNestedFields, \n} from \"./types/product.type\";\nimport { createFileService } from \"../file/file.service\";\n\nexport const createProductService = (client: GraphQLClient) => ({\n async uploadProductImage(form: FormData) {\n const fileClient = createFileService(client);\n return ((await fileClient.uploadFile<{product: Product}>(form as any)).product);\n },\n async searchCategoriesAndTemplate(\n input: SearchCategoriesAndTemplateRequest, \n fetchFields?: {\n root?: (keyof SearchCategoriesAndTemplateResponse)[],\n nestedFields?: SearchCategoriesAndTemplateResponseNestedFields\n },\n option?: RequestOption\n ): Promise<SearchCategoriesAndTemplateResponse | null> {\n const res = await client.request<{ searchCategoriesAndTemplate: SearchCategoriesAndTemplateResponse }, SearchCategoriesAndTemplateRequest>(\n productSchema.searchCategoriesAndTemplate(\n gqlQueryStringBuilder<SearchCategoriesAndTemplateResponse, SearchCategoriesAndTemplateResponseNestedFields>(\n fetchFields?.root ?? searchCategoriesAndTemplateResponse,\n fetchFields?.nestedFields ?? searchCategoriesAndTemplateResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.searchCategoriesAndTemplate ?? null;\n },\n async searchProductNames(\n input: SearchProductNamesRequest, \n fetchFields?: {\n root?: (keyof SearchProductNamesResponse)[],\n nestedFields?: SearchProductNamesResponseNestedFields\n },\n option?: RequestOption\n ): Promise<SearchProductNamesResponse | null> {\n const res = await client.request<{ searchProductNames: SearchProductNamesResponse }, SearchProductNamesRequest>(\n productSchema.searchProductNames(\n gqlQueryStringBuilder<SearchProductNamesResponse, SearchProductNamesResponseNestedFields>(\n fetchFields?.root ?? searchProductNamesResponse,\n fetchFields?.nestedFields ?? searchProductNamesResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.searchProductNames ?? null;\n },\n async updateProduct(\n input: UpdateProductRequest, \n fetchFields?: {\n root?: (keyof UpdateProductResponse)[],\n nestedFields?: UpdateProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateProductResponse | null> {\n const res = await client.request<{ updateProduct: UpdateProductResponse }, UpdateProductRequest>(\n productSchema.updateProduct(\n gqlQueryStringBuilder<UpdateProductResponse, UpdateProductResponseNestedFields>(\n fetchFields?.root ?? updateProductResponseFields,\n fetchFields?.nestedFields ?? updateProductResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateProduct ?? null;\n },\n async removeProduct(\n input: RemoveProductRequest, \n fetchFields?: {\n root?: (keyof RemoveProductResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveProductResponse | null> {\n const res = await client.request<{ removeProduct: RemoveProductResponse }, RemoveProductRequest>(\n productSchema.removeProduct(\n gqlQueryStringBuilder<RemoveProductResponse>(\n fetchFields?.root ?? removeProductResponseFields,\n )\n ), \n input, \n option\n );\n return res.data?.removeProduct ?? null;\n },\n async addProduct(\n input: AddProductRequest, \n fetchFields?: {\n root?: (keyof AddProductResponse)[],\n nestedFields?: AddProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddProductResponse | null> {\n const res = await client.request<{ addProduct: AddProductResponse }, AddProductRequest>(\n productSchema.addProduct(\n gqlQueryStringBuilder<AddProductResponse, AddProductResponseNestedFields>(\n fetchFields?.root ?? addProductResponseFields,\n fetchFields?.nestedFields ?? addProductResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addProduct ?? null;\n },\n async getProduct(\n input: GetProductRequest, \n fetchFields?: {\n root?: (keyof GetProductResponse)[],\n nestedFields?: GetProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetProductResponse | null> {\n const res = await client.request<{ getProduct: GetProductResponse }, GetProductRequest>(\n productSchema.getProduct(\n gqlQueryStringBuilder<GetProductResponse, GetProductResponseNestedFields>(\n fetchFields?.root ?? getProductResponseFields,\n fetchFields?.nestedFields ?? getProductResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getProduct ?? null;\n },\n async getProducts(\n input: GetProductsRequest, \n fetchFields?: {\n root?: (keyof GetProductsResponse)[],\n nestedFields?: GetProductsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetProductsResponse | null> {\n const res = await client.request<{ getProducts: GetProductsResponse }, GetProductsRequest>(\n productSchema.getProducts(\n gqlQueryStringBuilder<GetProductsResponse, GetProductsResponseNestedFields>(\n fetchFields?.root ?? getProductsResponseFields,\n fetchFields?.nestedFields ?? getProductsResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getProducts ?? null;\n },\n})\n\nexport type ProductService = ReturnType<typeof createProductService>;","export const stockSchema = {\n getStock: (query: string) => `\n query getStock($stock: StockInput!) {\n stock(stock: $stock) {\n ${query}\n }\n }\n `,\n\n getStocks: (query: string) => `\n query getStocks($stock: StockInput, $stockIds: [String], $limit: Int!, $skip: Int!) {\n stocks(stock: $stock, stockIds: $stockIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n\n addStock: (mutation: string) => `\n mutation addStock($stock: StockInput!) {\n addStock(stock: $stock) {\n ${mutation}\n }\n }\n `,\n\n updateStock: (mutation: string) => `\n mutation updateStock($stockId: String!, $stock: StockInput!) {\n updateStock(stockId: $stockId, stock: $stock) {\n ${mutation}\n }\n }\n `,\n\n removeStock: (mutation: string) => `\n mutation removeStock($stockId: String!) {\n removeStock(stockId: $stockId) {\n ${mutation}\n }\n }\n `\n}\n","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { stockSchema } from \"./schema/stock.schema\";\nimport { \n AddStockRequest, addStockResponse, AddStockResponse, AddStockResponseNestedFields, addStockResponseNestedFields, \n GetStockRequest, getStockResponse, GetStockResponse, GetStockResponseNestedFields, getStockResponseNestedFields, \n GetStocksRequest, getStocksResponse, GetStocksResponse, GetStocksResponseNestedFields, getStocksResponseNestedFields,\n RemoveStockRequest,\n removeStockResponse,\n RemoveStockResponse,\n UpdateStockRequest,\n updateStockResponse,\n UpdateStockResponse,\n UpdateStockResponseNestedFields,\n updateStockResponseNestedFields, \n} from \"./types/stock.type\";\n\nexport const createStockService = (client: GraphQLClient) => ({\n async updateStock(\n input: UpdateStockRequest, \n fetchFields?: {\n root?: (keyof UpdateStockResponse)[],\n nestedFields?: UpdateStockResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateStockResponse | null> {\n const res = await client.request<{ updateStock: UpdateStockResponse }, UpdateStockRequest>(\n stockSchema.updateStock(\n gqlQueryStringBuilder<UpdateStockResponse, UpdateStockResponseNestedFields>(\n fetchFields?.root ?? updateStockResponse,\n fetchFields?.nestedFields ?? updateStockResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateStock ?? null;\n },\n async removeStock(\n input: RemoveStockRequest, \n fetchFields?: {\n root?: (keyof RemoveStockResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveStockResponse | null> {\n const res = await client.request<{ removeStock: RemoveStockResponse }, RemoveStockRequest>(\n stockSchema.removeStock(\n gqlQueryStringBuilder<RemoveStockResponse>(\n fetchFields?.root ?? removeStockResponse,\n )\n ), \n input, \n option\n );\n return res.data?.removeStock ?? null;\n },\n async addStock(\n input: AddStockRequest, \n fetchFields?: {\n root?: (keyof AddStockResponse)[],\n nestedFields?: AddStockResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddStockResponse | null> {\n const res = await client.request<{ addStock: AddStockResponse }, AddStockRequest>(\n stockSchema.addStock(\n gqlQueryStringBuilder<AddStockResponse, AddStockResponseNestedFields>(\n fetchFields?.root ?? addStockResponse,\n fetchFields?.nestedFields ?? addStockResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addStock ?? null;\n },\n async getStock(\n input: GetStockRequest, \n fetchFields?: {\n root?: (keyof GetStockResponse)[],\n nestedFields?: GetStockResponseNestedFields;\n },\n option?: RequestOption\n ): Promise<GetStockResponse | null> {\n const res = await client.request<{ getStock: GetStockResponse }, GetStockRequest>(\n stockSchema.getStock(\n gqlQueryStringBuilder<GetStockResponse, GetStockResponseNestedFields>(\n fetchFields?.root ?? getStockResponse,\n fetchFields?.nestedFields ?? getStockResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getStock ?? null;\n },\n async getStocks(\n input: GetStocksRequest, \n fetchFields?: {\n root?: (keyof GetStocksResponse)[],\n nestedFields?: GetStocksResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStocksResponse | null> {\n const res = await client.request<{ getStocks: GetStocksResponse }, GetStocksRequest>(\n stockSchema.getStocks(\n gqlQueryStringBuilder<GetStocksResponse, GetStocksResponseNestedFields>(\n fetchFields?.root ?? getStocksResponse,\n fetchFields?.nestedFields ?? getStocksResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getStocks ?? null;\n },\n})","export const storeSchema = {\n getStore: (query: string) => `\n query getStore($store: StoreInput!) {\n store(store: $store) {\n ${query}\n }\n }\n `,\n\n getStores: (query: string) => `\n query getStores($search: String, $store: StoreInput, $storeIds: [String], $limit: Int, $skip: Int) {\n stores(search: $search, store: $store, storeIds: $storeIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n\n createStore: (mutation: string) => `\n mutation createStore($store: StoreInput) {\n createStore(store: $store) {\n ${mutation}\n }\n }\n `,\n\n updateStore: (mutation: string) => `\n mutation updateStore($storeId: String, $store: StoreInput) {\n updateStore(storeId: $storeId, store: $store) {\n ${mutation}\n }\n }\n `,\n\n deleteStore: (mutation: string) => `\n mutation deleteStore($storeId: String) {\n deleteStore(storeId: $storeId) {\n ${mutation}\n }\n }\n `\n}\n\nexport default storeSchema","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { storeSchema } from \"./schema/store.schema\";\nimport { \n AddStoreRequest, addStoreResponse, AddStoreResponse, AddStoreResponseNestedFields, addStoreResponseNestedFields, \n GetStoreRequest, getStoreResponse, GetStoreResponse, GetStoreResponseNestedFields, getStoreResponseNestedFields, \n GetStoresRequest, getStoresResponse, GetStoresResponse, GetStoresResponseNestedFields, getStoresResponseNestedFields,\n RemoveStoreRequest,\n removeStoreResponse,\n RemoveStoreResponse,\n UpdateStoreRequest,\n updateStoreResponse,\n UpdateStoreResponse,\n UpdateStoreResponseNestedFields,\n updateStoreResponseNestedFields, \n} from \"./types/store.type\";\n\nexport const createStoreService = (client: GraphQLClient) => ({\n async updateStore(\n input: UpdateStoreRequest, \n fetchFields?: {\n root?: (keyof UpdateStoreResponse)[],\n nestedFields?: UpdateStoreResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateStoreResponse | null> {\n const res = await client.request<{ updateStore: UpdateStoreResponse }, UpdateStoreRequest>(\n storeSchema.updateStore(\n gqlQueryStringBuilder<UpdateStoreResponse, UpdateStoreResponseNestedFields>(\n fetchFields?.root ?? updateStoreResponse,\n fetchFields?.nestedFields ?? updateStoreResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateStore ?? null;\n },\n async removeStore(\n input: RemoveStoreRequest, \n fetchFields?: {\n root?: (keyof RemoveStoreResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveStoreResponse | null> {\n const res = await client.request<{ removeStore: RemoveStoreResponse }, RemoveStoreRequest>(\n storeSchema.deleteStore(\n gqlQueryStringBuilder<RemoveStoreResponse>(\n fetchFields?.root ?? removeStoreResponse,\n )\n ), \n input, \n option\n );\n return res.data?.removeStore ?? null;\n },\n async addStore(\n input: AddStoreRequest, \n fetchFields?: {\n root?: (keyof AddStoreResponse)[],\n nestedFields?: AddStoreResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddStoreResponse | null> {\n const res = await client.request<{ addStore: AddStoreResponse }, AddStoreRequest>(\n storeSchema.createStore(\n gqlQueryStringBuilder<AddStoreResponse, AddStoreResponseNestedFields>(\n fetchFields?.root ?? addStoreResponse,\n fetchFields?.nestedFields ?? addStoreResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addStore ?? null;\n },\n async getStore(\n input: GetStoreRequest, \n fetchFields?: {\n root?: (keyof GetStoreResponse)[],\n nestedFields?: GetStoreResponseNestedFields;\n },\n option?: RequestOption\n ): Promise<GetStoreResponse | null> {\n const res = await client.request<{ getStore: GetStoreResponse }, GetStoreRequest>(\n storeSchema.getStore(\n gqlQueryStringBuilder<GetStoreResponse, GetStoreResponseNestedFields>(\n fetchFields?.root ?? getStoreResponse,\n fetchFields?.nestedFields ?? getStoreResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getStore ?? null;\n },\n async getStores(\n input: GetStoresRequest, \n fetchFields?: {\n root?: (keyof GetStoresResponse)[],\n nestedFields?: GetStoresResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStoresResponse | null> {\n const res = await client.request<{ getStores: GetStoresResponse }, GetStoresRequest>(\n storeSchema.getStores(\n gqlQueryStringBuilder<GetStoresResponse, GetStoresResponseNestedFields>(\n fetchFields?.root ?? getStoresResponse,\n fetchFields?.nestedFields ?? getStoresResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getStores ?? null;\n },\n})","export const storeCategorySchema = {\n createStoreCategory: (query: string) => `\n mutation createStoreCategory($storeCategory: StoreCategoryInput!) {\n createStoreCategory(storeCategory: $storeCategory) {\n ${query}\n }\n }\n `,\n updateStoreCategory: (query: string) => `\n mutation updateStoreCategory($storeCategoryId: String!, $storeCategory: StoreCategoryInput!) {\n updateStoreCategory(storeCategoryId: $storeCategoryId, storeCategory: $storeCategory) {\n ${query}\n }\n }\n `,\n removeStoreCategory: (query: string) => `\n mutation removeStoreCategory($storeCategoryId: String!) {\n removeStoreCategory(storeCategoryId: $storeCategoryId) {\n ${query}\n }\n }\n `,\n // get \n getStoreCategory: (query: string) => `\n query getStoreCategory($storeCategory: StoreCategoryInput!) {\n storeCategory(storeCategory: $storeCategory) {\n ${query}\n }\n }\n `,\n getStoreCategories: (query: string) => `\n query getStoreCategories($search: String, $storeCategory: StoreCategoryInput, $storeCategoryIds: [String], $limit: Int!, $skip: Int!) {\n storeCategories(search: $search, storeCategory: $storeCategory, storeCategoryIds: $storeCategoryIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n}","import { StoreCategory } from \"../../../types\";\nimport { StoreCategoryFields, storeCategoryQuery } from \"../entities\";\n\nexport interface GetStoreCategoryRequest {\n storeCategory: Partial<StoreCategory>;\n}\nexport interface GetStoreCategoryResponse {\n storeCategory: StoreCategory;\n}\nexport const getStoreCategoryResponseFields: (keyof GetStoreCategoryResponse)[] = [\n \"storeCategory\"\n]\nexport interface GetStoreCategoryResponseNestedFields {\n storeCategory: StoreCategoryFields;\n}\nexport const getStoreCategoryResponseNestedFields: GetStoreCategoryResponseNestedFields = {\n storeCategory: storeCategoryQuery\n}\n\n// get store categories \nexport interface GetStoreCategoriesRequest {\n search?: string;\n storeCategoryIds?: string[];\n storeCategory?: Partial<StoreCategory>[];\n limit: number;\n skip: number;\n}\nexport interface GetStoreCategoriesResponse {\n storeCategories: StoreCategory[];\n}\nexport const getStoreCategoriesResponseFields: (keyof GetStoreCategoriesResponse)[] = [\n \"storeCategories\"\n]\nexport interface GetStoreCategoriesResponseNestedFields extends Omit<GetStoreCategoryResponseNestedFields, \"storeCategory\"> {\n storeCategories: StoreCategoryFields;\n}\nexport const getStoreCategoriesResponseNestedFields: GetStoreCategoriesResponseNestedFields = {\n storeCategories: storeCategoryQuery\n}\n\nexport type CreateStoreCategoryRequest = GetStoreCategoryRequest;\nexport type CreateStoreCategoryResponse = GetStoreCategoryResponse;\nexport const createStoreCategoryResponseFields = getStoreCategoryResponseFields;\nexport type CreateStoreCategoryResponseNestedFields = GetStoreCategoryResponseNestedFields;\nexport const createStoreCategoryResponseNestedFields = getStoreCategoryResponseNestedFields;\n\nexport interface UpdateStoreCategoryRequest {\n storeCategory: Partial<StoreCategory>;\n storeCategoryId: string;\n}\nexport type UpdateStoreCategoryResponse = GetStoreCategoryResponse;\nexport const updateStoreCategoryResponseFields = getStoreCategoryResponseFields;\nexport type UpdateStoreCategoryResponseNestedFields = GetStoreCategoryResponseNestedFields;\nexport const updateStoreCategoryResponseNestedFields = getStoreCategoryResponseNestedFields;\n\nexport interface RemoveStoreCategoryRequest {\n storeCategoryId: string;\n}\nexport type RemoveStoreCategoryResponse = RemoveStoreCategoryRequest;\nexport const removeStoreCategoryResponseFields: (keyof RemoveStoreCategoryResponse)[] = [\n \"storeCategoryId\"\n];","import { get } from \"http\";\nimport { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { storeCategorySchema } from \"./schema/store-category.schema\";\nimport { CreateStoreCategoryRequest, CreateStoreCategoryResponse, createStoreCategoryResponseFields, createStoreCategoryResponseNestedFields, CreateStoreCategoryResponseNestedFields, GetStoreCategoriesRequest, GetStoreCategoriesResponse, getStoreCategoriesResponseFields, getStoreCategoriesResponseNestedFields, GetStoreCategoriesResponseNestedFields, GetStoreCategoryRequest, GetStoreCategoryResponse, getStoreCategoryResponseFields, getStoreCategoryResponseNestedFields, GetStoreCategoryResponseNestedFields, RemoveStoreCategoryRequest, RemoveStoreCategoryResponse, removeStoreCategoryResponseFields, UpdateStoreCategoryRequest, UpdateStoreCategoryResponse, updateStoreCategoryResponseFields, updateStoreCategoryResponseNestedFields, UpdateStoreCategoryResponseNestedFields } from \"./types/store-category.type\";\n\nexport const createStoreCategoryService = (client: GraphQLClient) => ({\n /**\n * async updateStore(\n input: UpdateStoreRequest, \n fetchFields?: {\n root?: (keyof UpdateStoreResponse)[],\n nestedFields?: UpdateStoreResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateStoreResponse | null> {\n const res = await client.request<{ updateStore: UpdateStoreResponse }, UpdateStoreRequest>(\n storeSchema.updateStore(\n gqlQueryStringBuilder<UpdateStoreResponse, UpdateStoreResponseNestedFields>(\n fetchFields?.root ?? updateStoreResponse,\n fetchFields?.nestedFields ?? updateStoreResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateStore ?? null;\n },\n */\n async getStoreCategories(\n input: GetStoreCategoriesRequest, \n fetchFields?: {\n root?: (keyof GetStoreCategoriesResponse)[],\n nestedFields?: GetStoreCategoriesResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStoreCategoriesResponse | null> {\n const res = await client.request<{ getStoreCategories: GetStoreCategoriesResponse }, GetStoreCategoriesRequest>(\n storeCategorySchema.getStoreCategories(\n gqlQueryStringBuilder<GetStoreCategoriesResponse, GetStoreCategoriesResponseNestedFields>(\n fetchFields?.root ?? getStoreCategoriesResponseFields,\n fetchFields?.nestedFields ?? getStoreCategoriesResponseNestedFields,\n )\n ), \n input, \n option\n ) \n return res.data?.getStoreCategories ?? null;\n },\n async getStoreCategory(\n input: GetStoreCategoryRequest, \n fetchFields?: {\n root?: (keyof GetStoreCategoryResponse)[],\n nestedFields?: GetStoreCategoryResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStoreCategoryResponse | null> {\n const res = await client.request<{ getStoreCategory: GetStoreCategoryResponse }, GetStoreCategoryRequest>(\n storeCategorySchema.getStoreCategory(\n gqlQueryStringBuilder<GetStoreCategoryResponse, GetStoreCategoryResponseNestedFields>(\n fetchFields?.root ?? getStoreCategoryResponseFields,\n fetchFields?.nestedFields ?? getStoreCategoryResponseNestedFields,\n )\n ), \n input, \n option\n ) \n return res.data?.getStoreCategory ?? null;\n },\n async updateStoreCategory(\n input: UpdateStoreCategoryRequest, \n fetchFields?: {\n root?: (keyof UpdateStoreCategoryResponse)[],\n nestedFields?: UpdateStoreCategoryResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateStoreCategoryResponse | null> {\n const res = await client.request<{ updateStoreCategory: UpdateStoreCategoryResponse }, UpdateStoreCategoryRequest>(\n storeCategorySchema.updateStoreCategory(\n gqlQueryStringBuilder<UpdateStoreCategoryResponse, UpdateStoreCategoryResponseNestedFields>(\n fetchFields?.root ?? updateStoreCategoryResponseFields,\n fetchFields?.nestedFields ?? updateStoreCategoryResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateStoreCategory ?? null;\n },\n async createStoreCategory(\n input: CreateStoreCategoryRequest, \n fetchFields?: {\n root?: (keyof CreateStoreCategoryResponse)[],\n nestedFields?: CreateStoreCategoryResponseNestedFields\n },\n option?: RequestOption\n ): Promise<CreateStoreCategoryResponse | null> {\n const res = await client.request<{ createStoreCategory: CreateStoreCategoryResponse }, CreateStoreCategoryRequest>(\n storeCategorySchema.createStoreCategory(\n gqlQueryStringBuilder<CreateStoreCategoryResponse, CreateStoreCategoryResponseNestedFields>(\n fetchFields?.root ?? createStoreCategoryResponseFields,\n fetchFields?.nestedFields ?? createStoreCategoryResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.createStoreCategory ?? null;\n },\n async removeStoreCategory(\n input: RemoveStoreCategoryRequest, \n fetchFields?: {\n root?: (keyof RemoveStoreCategoryResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveStoreCategoryResponse | null> {\n const res = await client.request<{ removeStoreCategory: RemoveStoreCategoryResponse }, RemoveStoreCategoryRequest>(\n storeCategorySchema.removeStoreCategory(\n gqlQueryStringBuilder<RemoveStoreCategoryResponse>(\n fetchFields?.root ?? removeStoreCategoryResponseFields,\n )\n ), \n input, \n option\n );\n return res.data?.removeStoreCategory ?? null;\n },\n})","export const orderSchema = {\n getOrder: (query: string) => `\n query getOrder($order: OrderInput) {\n getOrder(order: $order){\n ${query}\n }\n }\n `,\n getOrders: (query: string) => `\n query getOrders($orderIds: [String], $order: OrderInput, $limit: Int, $skip: Int){\n getOrders(orderIds: $orderIds, order: $order, limit: $limit, skip: $skip){\n ${query}\n }\n }\n `,\n}","import { Order, Sale, Transaction } from \"../../types\";\n\nexport type TransactionFields = (keyof Transaction)[];\nexport const transactionQuery: TransactionFields = [\n \"_id\", \n \"amountPaid\",\n \"amountTotal\",\n \"createdAt\",\n \"from\", \n \"fromWallet\", \n \"isCredit\",\n \"paymentDate\", \n \"paymentType\",\n \"platform\", \n \"saleIds\", \n \"saleStatus\", \n \"sales\", \n \"storeId\",\n \"to\", \n \"toWallet\", \n \"txStatus\"\n]\nexport type OrderFields = (keyof Order)[];\nexport const orderQuery: OrderFields = [\n \"_id\",\n \"createdAt\",\n \"orderStatus\",\n \"transactionId\",\n \"userId\"\n]\nexport type SaleFields = (keyof Sale)[];\nexport const saleQuery: SaleFields = [\n \"_id\",\n \"amountTotal\", \n \"createdAt\", \n \"packageId\", \n \"productId\", \n \"quantity\", \n \"quantityInMetricUnit\", \n \"storeId\"\n]","import { Order } from \"../../../types\";\nimport { OrderFields, orderQuery } from \"../sale.entity\";\n\nexport interface GetOrderRequest {\n order: Promise<Order>;\n}\nexport interface GetOrderResponse {\n order: Order\n}\nexport const getOrderResponse: (keyof GetOrderResponse)[] = [\"order\"];\nexport interface GetOrderResponseNestedFields {\n order: OrderFields\n}\nexport const getOrderResponseNestedFields: GetOrderResponseNestedFields = {\n order: orderQuery,\n}\n\n\n// get orders\nexport interface GetOrdersRequest {\n order?: Promise<Order>;\n orderIds?: string[];\n limit: number;\n skip: number;\n}\nexport interface GetOrdersResponse {\n orders: Order[];\n}\nexport const getOrdersResponse: (keyof GetOrdersResponse)[] = [\"orders\"];\nexport interface GetOrdersResponseNestedFields extends Omit<GetOrderResponseNestedFields, \"order\"> {\n orders: OrderFields\n}\nexport const getOrdersResponseNestedFields: GetOrdersResponseNestedFields = {\n orders: orderQuery,\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { orderSchema } from \"./schemas/order.schema\";\nimport { \n GetOrderRequest, getOrderResponse, GetOrderResponse, GetOrderResponseNestedFields, getOrderResponseNestedFields, \n GetOrdersRequest, getOrdersResponse, GetOrdersResponse, GetOrdersResponseNestedFields, getOrdersResponseNestedFields,\n\n} from \"./types/order.type\";\n\nexport const createOrderService = (client: GraphQLClient) => ({\n async getOrder(\n input: GetOrderRequest, \n fetchFields?: {\n root?: (keyof GetOrderResponse)[],\n nestedFields?: GetOrderResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetOrderResponse | null> {\n const res = await client.request<{ getOrder: GetOrderResponse }, GetOrderRequest>(\n orderSchema.getOrder(\n gqlQueryStringBuilder<GetOrderResponse, GetOrderResponseNestedFields>(\n fetchFields?.root ?? getOrderResponse,\n fetchFields?.nestedFields ?? getOrderResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getOrder ?? null;\n },\n async getOrders(\n input: GetOrdersRequest, \n fetchFields?: {\n root?: (keyof GetOrdersResponse)[],\n nestedFields?: GetOrdersResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetOrdersResponse | null> {\n const res = await client.request<{ getOrders: GetOrdersResponse }, GetOrdersRequest>(\n orderSchema.getOrders(\n gqlQueryStringBuilder<GetOrdersResponse, GetOrdersResponseNestedFields>(\n fetchFields?.root ?? getOrdersResponse,\n fetchFields?.nestedFields ?? getOrdersResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getOrders ?? null;\n },\n})","export const saleSchema = {\n getSales: (query: string) => `\n query getSales($saleIds: [String], $saleFilter: SaleFilterInput, $ShouldGetFromAllStores: Boolean, $dateFilter: DateFilterInput, $limit: Int, $skip: Int) {\n getSales(saleIds: $saleIds, saleFilter: $saleFilter, ShouldGetFromAllStores: $ShouldGetFromAllStores, dateFilter: $dateFilter, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n updateSale: (query: string) => `\n mutation updateSale($saleId: String!, $sale: SaleInput!) {\n updateSale(saleId: $saleId, sale: $sale) {\n ${query}\n }\n }\n `,\n}","import { DateFilter, Product, Sale } from \"../../../types\";\nimport { SaleFields, saleQuery } from \"../sale.entity\"\nimport { ProductFields, productQuery } from \"../../inventory/entities\"\nimport { _getProductResponseNestedFields, GetProductResponseNestedFields, GetProductsResponseNestedFields } from \"../../inventory/types\"\nexport interface GetSalesRequest {\n sale: Promise<Sale>;\n}\n\nexport interface GetSalesResponse {\n sale: Sale;\n}\n\nexport const getSaleResponse: (keyof GetSalesResponse)[] = [\"sale\"]\nexport interface GetSaleResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\"> {\n sale: SaleFields;\n}\nexport const _getSaleResponseNestedFields: Omit<GetSaleResponseNestedFields, \"sale\"> = {\n ..._getProductResponseNestedFields\n}\nexport const getSaleResponseNestedFields: GetSaleResponseNestedFields = {\n sale: saleQuery,\n ..._getSaleResponseNestedFields\n}\n\nexport interface GetSalesRequest {\n saleIds?: string[];\n saleFilter?: Promise<Sale>;\n ShouldGetFromAllStores?: boolean;\n dateFilter?: DateFilter;\n limit?: number;\n skip?: number;\n}\nexport interface GetSalesResponse {\n sales: Sale[];\n uniqueProducts: Product[]\n}\n\nexport const getSalesResponse: (keyof GetSalesResponse)[] = [\n \"sales\", \"uniqueProducts\"\n]\nexport interface GetSalesResponseNestedFields extends Omit<GetSaleResponseNestedFields, \"sale\"> {\n sales: SaleFields;\n uniqueProducts: ProductFields;\n}\nexport const getSalesResponseNestedFields: GetSalesResponseNestedFields = {\n sales: saleQuery,\n uniqueProducts: productQuery,\n ..._getSaleResponseNestedFields\n}\n\n// update sale \n\nexport interface UpdateSaleRequest {\n saleId: string;\n sale: Promise<Sale>;\n}\n\nexport interface UpdateSaleResponse {\n sale: Sale;\n}\nexport const UpdateSaleResponse: (keyof UpdateSaleResponse)[] = [\"sale\"];\nexport type UpdateSaleResponseNestedFields = GetSaleResponseNestedFields;\nexport const updateSaleResponseNestedFields: UpdateSaleResponseNestedFields = getSaleResponseNestedFields","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { saleSchema } from \"./schemas/sale.schema\";\nimport { \n GetSalesRequest, getSalesResponse, GetSalesResponse, GetSalesResponseNestedFields, getSalesResponseNestedFields,\n UpdateSaleRequest,\n UpdateSaleResponse,\n UpdateSaleResponseNestedFields,\n updateSaleResponseNestedFields, \n} from \"./types/sale.type\";\n\nexport const createSaleService = (client: GraphQLClient) => ({\n async updateSale(\n input: UpdateSaleRequest, \n fetchFields?: {\n root?: (keyof UpdateSaleResponse)[],\n nestedFields?: UpdateSaleResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateSaleResponse | null> {\n const res = await client.request<{ updateSale: UpdateSaleResponse }, UpdateSaleRequest>(\n saleSchema.updateSale(\n gqlQueryStringBuilder<UpdateSaleResponse, UpdateSaleResponseNestedFields>(\n fetchFields?.root ?? UpdateSaleResponse,\n fetchFields?.nestedFields ?? updateSaleResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateSale ?? null;\n },\n async getSales(\n input: GetSalesRequest, \n fetchFields?: {\n root?: (keyof GetSalesResponse)[],\n nestedFields?: GetSalesResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSalesResponse | null> {\n const res = await client.request<{ getSales: GetSalesResponse }, GetSalesRequest>(\n saleSchema.getSales(\n gqlQueryStringBuilder<GetSalesResponse, GetSalesResponseNestedFields>(\n fetchFields?.root ?? getSalesResponse,\n fetchFields?.nestedFields ?? getSalesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSales ?? null;\n },\n})\n\nexport type SaleService = ReturnType<typeof createSaleService>","export const transactionSchema = {\n getTransaction: (query: string) => `\n query getTransaction($transaction: TransactionInput!){\n getTransaction(transaction: $transaction){\n ${query}\n }\n }\n `,\n getTransactions: (query: string) => `\n query getTransactions($dateFilter: DateFilterInput, $transactionIds: [String], $transaction: TransactionInput, $limit: Int, $skip: Int, $shouldGetFromAllStores: Boolean){\n getTransactions(dateFilter: $dateFilter, transactionIds: $transactionIds, transaction: $transaction, limit: $limit, skip: $skip, shouldGetFromAllStores: $shouldGetFromAllStores){\n ${query}\n }\n }\n `,\n addTransaction: (query: string) => `\n mutation addTransaction($transaction: TransactionInput!){\n addTransaction(transaction: $transaction){\n ${query}\n }\n }\n `,\n updateTransaction: (query: string) => `\n mutation updateTransaction($transactionId: String!, $transaction: TransactionInput!){\n updateTransaction(transactionId: $transactionId, transaction: $transaction){\n ${query}\n }\n }\n `,\n}","import { DateFilter, Product, Sale, Transaction, TransactionPin } from \"../../../types\";\nimport { _getProductResponseNestedFields, GetProductResponseNestedFields } from \"../../inventory\";\nimport { ProductFields, productNameQuery } from \"../../inventory/entities\";\nimport { SaleFields, saleQuery, TransactionFields, transactionQuery } from \"../sale.entity\";\n\nexport interface GetTransactionRequest {\n transaction: Partial<Transaction>;\n}\nexport interface GetTransactionResponse {\n transaction: Transaction\n}\nexport const getTransactionResponse: (keyof GetTransactionResponse)[] = [\n \"transaction\"\n]\nexport interface GetTransactionResponseNestedFields {\n transaction: TransactionFields\n sales: SaleFields;\n}\nexport const _getTransactionResponseNestedFields: Omit<GetTransactionResponseNestedFields, \"transaction\"> = {\n sales: saleQuery\n}\nexport const getTransactionResponseNestedFields: GetTransactionResponseNestedFields = {\n transaction: transactionQuery,\n ..._getTransactionResponseNestedFields\n}\n\n\n// get transactions\nexport interface GetTransactionsRequest {\n transactionIds?: string[];\n transaction?: Partial<Transaction>;\n dateFilter?: Partial<DateFilter>;\n shouldGetFromAllStores?: boolean;\n limit: number;\n skip: number;\n}\nexport interface GetTransactionsResponse {\n transactions: Transaction[];\n uniqueProducts: Product[];\n}\nexport const getTransactionsResponse: (keyof GetTransactionsResponse)[] = [\n \"transactions\", \"uniqueProducts\"\n]\nexport interface GetTransactionsResponseNestedFields extends Omit<GetProductResponseNestedFields, \"product\"> {\n transactions: TransactionFields;\n sales: SaleFields;\n uniqueProducts: ProductFields;\n}\nexport const _getTransactionsResponseNestedFields: Omit<GetTransactionsResponseNestedFields, \"transactions\"> = {\n sales: saleQuery,\n uniqueProducts: productNameQuery,\n ..._getProductResponseNestedFields\n}\nexport const getTransactionsResponseNestedFields: GetTransactionsResponseNestedFields = {\n transactions: transactionQuery,\n ..._getTransactionsResponseNestedFields\n}\n\n// add transactions \nexport interface AddTransactionRequest {\n transaction: Partial<Omit<Transaction, \"txStatus\"|\"saleStatus\"|\"storeId\">>;\n}\nexport type AddTransactionResponse = GetTransactionResponse;\nexport const addTransactionResponse = getTransactionResponse;\nexport type AddTransactionResponseNestedFields = GetTransactionResponseNestedFields;\nexport const addTransactionResponseNestedFields = getTransactionResponseNestedFields;\n\n// update transaction \nexport interface UpdateTransactionRequest {\n transactionId: string;\n transaction: Partial<Transaction>;\n}\nexport type UpdateTransactionResponse = GetTransactionResponse;\nexport const updateTransactionResponse = getTransactionResponse;\nexport type UpdateTransactionResponseNestedFields = GetTransactionResponseNestedFields;\nexport const updateTransactionResponseNestedFields = getTransactionResponseNestedFields;","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { transactionSchema } from \"./schemas/transaction.schema\";\nimport { \n AddTransactionRequest, addTransactionResponse, AddTransactionResponse, AddTransactionResponseNestedFields, addTransactionResponseNestedFields, \n GetTransactionRequest, getTransactionResponse, GetTransactionResponse, GetTransactionResponseNestedFields, getTransactionResponseNestedFields, \n GetTransactionsRequest, getTransactionsResponse, GetTransactionsResponse, GetTransactionsResponseNestedFields, getTransactionsResponseNestedFields,\n UpdateTransactionRequest,\n updateTransactionResponse,\n UpdateTransactionResponse,\n UpdateTransactionResponseNestedFields,\n updateTransactionResponseNestedFields, \n} from \"./types/transaction.type\";\n\nexport const createTransactionService = (client: GraphQLClient) => ({\n async updateTransaction(\n input: UpdateTransactionRequest, \n fetchFields?: {\n root?: (keyof UpdateTransactionResponse)[],\n nestedFields?: UpdateTransactionResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateTransactionResponse | null> {\n const res = await client.request<{ updateTransaction: UpdateTransactionResponse }, UpdateTransactionRequest>(\n transactionSchema.updateTransaction(\n gqlQueryStringBuilder<UpdateTransactionResponse, UpdateTransactionResponseNestedFields>(\n fetchFields?.root ?? updateTransactionResponse,\n fetchFields?.nestedFields ?? updateTransactionResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateTransaction ?? null;\n },\n async addTransaction(\n input: AddTransactionRequest, \n fetchFields?: {\n root?: (keyof AddTransactionResponse)[],\n nestedFields?: AddTransactionResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddTransactionResponse | null> {\n const res = await client.request<{ addTransaction: AddTransactionResponse }, AddTransactionRequest>(\n transactionSchema.addTransaction(\n gqlQueryStringBuilder<AddTransactionResponse, AddTransactionResponseNestedFields>(\n fetchFields?.root ?? addTransactionResponse,\n fetchFields?.nestedFields ?? addTransactionResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addTransaction ?? null;\n },\n async getTransaction(\n input: GetTransactionRequest, \n fetchFields?: {\n root?: (keyof GetTransactionResponse)[],\n nestedFields?: GetTransactionResponseNestedFields;\n },\n option?: RequestOption\n ): Promise<GetTransactionResponse | null> {\n const res = await client.request<{ getTransaction: GetTransactionResponse }, GetTransactionRequest>(\n transactionSchema.getTransaction(\n gqlQueryStringBuilder<GetTransactionResponse, GetTransactionResponseNestedFields>(\n fetchFields?.root ?? getTransactionResponse,\n fetchFields?.nestedFields ?? getTransactionResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getTransaction ?? null;\n },\n async getTransactions(\n input: GetTransactionsRequest, \n fetchFields?: {\n root?: (keyof GetTransactionsResponse)[],\n nestedFields?: GetTransactionsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetTransactionsResponse | null> {\n const res = await client.request<{ getTransactions: GetTransactionsResponse }, GetTransactionsRequest>(\n transactionSchema.getTransactions(\n gqlQueryStringBuilder<GetTransactionsResponse, GetTransactionsResponseNestedFields>(\n fetchFields?.root ?? getTransactionsResponse,\n fetchFields?.nestedFields ?? getTransactionsResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getTransactions ?? null;\n },\n})\n\nexport type TransactionService = ReturnType<typeof createTransactionService>"]}