@connect-plus-online/ogabai-integrations 0.0.39 → 0.0.50
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.
- package/dist/index.cjs.js +167 -2
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.mts +94 -1
- package/dist/index.d.ts +94 -1
- package/dist/index.esm.js +157 -3
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js.map
CHANGED
|
@@ -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/user/schemas/user-notification.schema.ts","../src/services/user/types/user-notification.type.ts","../src/services/user/user-notification.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/types/store-category-product.type.ts","../src/services/inventory/types/store-category.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/store-category.service.ts","../src/services/inventory/schema/store-category-product.schema.ts","../src/services/inventory/store-category-product.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","../src/services/subscription/schemas/paystack.schema.ts","../src/services/subscription/types/paystack.ts","../src/services/subscription/paystack.service.ts","../src/services/subscription/subscription.entity.ts","../src/services/subscription/types/subscription-plan-feature.type.ts","../src/services/subscription/types/subscription-plan.type.ts","../src/services/subscription/schemas/subscription-plan-feature.schema.ts","../src/services/subscription/subscription-plan-feature.service.ts","../src/services/subscription/schemas/subscription-plan.schema.ts","../src/services/subscription/subscription-plan.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\n // admin dashboard stats\n getUserTypeCounts: (query: string) => `\n query getUserTypeCounts {\n getUserTypeCounts {\n ${query}\n }\n }\n `,\n getMonthlyUserStatsByYear: (query: string) => `\n query getMonthlyUserStatsByYear($year: Int!) {\n getMonthlyUserStatsByYear(year: $year) {\n ${query}\n }\n }\n `,\n // mobile dashboard stats\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 getUsers(user: $user, userIds: $userIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n updateUser: (query: string) => `\n mutation updateUser($userId: String!, $user: UserInput, $imageType: String) {\n updateUser(userId: $userId, user: $user, imageType: $imageType) {\n ${query}\n }\n }\n `,\n}\n\nexport default userSchema","import { Account, MonthlyUserStat, Notification, NotificationChannels, ProductCounts, RestockCounts, SaleCounts, ServiceUpdate, TransactionCounts, User, UserNotification, UserNotificationSettings, UserSetting, UserTypeCounts, 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)[];\nexport type UserNotificationFields = (keyof UserNotification)[];\nexport type NotificationFields = (keyof Notification)[]\nexport type MonthlyUserStatFields = (keyof MonthlyUserStat)[]\nexport type UserTypeCountsFields = (keyof UserTypeCounts)[]\n\n\n\n\nexport const userTypeCountsQuery:UserTypeCountsFields = [\n \"customers\", \"distributors\", \"manufacturer\", \"total\"\n]\nexport const monthlyUserStatQuery:MonthlyUserStatFields = [\n \"month\", \"total\"\n]\nexport const notificationQuery: NotificationFields = [\n \"createdAt\",\n \"description\",\n \"id\",\n \"notificationAction\",\n \"notificationStatus\",\n \"notificationType\",\n \"title\",\n \"updatedAt\"\n]\nexport const userNotificationQuery:UserNotificationFields = [\n \"createdAt\",\n \"id\",\n \"notificationStatus\",\n \"updatedAt\",\n \"userId\",\n \"itemId\",\n \"notificationId\",\n \"notification\",\n \"storeId\"\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\", \"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, CustomersProductCount, Price, Product, ProductAttribute, ProductCategory, ProductName, ProductPackage, Stock, Store, StoreCategory, StoreCategoryProduct } from \"../../types\";\n\n\n\nexport type CustomersProductCountFields = (keyof CustomersProductCount)[]\nexport const customersProductCountQuery: CustomersProductCountFields = [\n \"count\",\n \"storeId\",\n \"userId\"\n]\n\n\nexport type StoreCategoryProductFields = (keyof StoreCategoryProduct)[]\nexport const storeCategoryProductQuery: StoreCategoryProductFields = [\n \"_id\",\n \"createdAt\",\n \"productId\",\n \"storeCategoryId\"\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 MonthlyUserStat,\n ProductCounts,\n RestockCounts,\n SaleCounts,\n Store,\n TransactionCounts,\n User,\n UserSetting,\n UserType, \n UserTypeCounts\n} from \"../../../types\";\nimport { AccountFields, MonthlyUserStatFields, monthlyUserStatQuery, ProductCountsFields, productCountsQuery, RestockCountsFields, restockCountsQuery, SaleCountsFields, saleCountsQuery, TransactionCountsFields, transactionCountsQuery, UserFields, userQuery, UserSettingFields, userSettingQuery, UserTypeCountsFields, userTypeCountsQuery } from \"../user.entity\";\nimport { AddressFields, addressQuery, StoreFields, storeQuery } from \"../../inventory/entities\";\nimport { getAccountResponseNestedFields } from \"./account.type\"\n\n// admin dashboard stats \n\nexport interface GetUserTypeCountsResponse {\n userTypeCounts: UserTypeCounts\n}\nexport const getUserTypeCountsResponse:(keyof GetUserTypeCountsResponse)[] = [\n \"userTypeCounts\"\n]\nexport interface GetUserTypeCountsResponseNestedFields {\n userTypeCounts: UserTypeCountsFields\n}\nexport const getUserTypeCountsResponseNestedFields:GetUserTypeCountsResponseNestedFields = {\n userTypeCounts: userTypeCountsQuery\n}\n\n\nexport interface GetMonthlyUserStatsByYearRequest {\n year: number;\n}\nexport interface GetMonthlyUserStatsByYearResponse {\n monthlyUserStat: MonthlyUserStat[];\n}\nexport interface GetMonthlyUserStatsByYearResponseNestedFields {\n monthlyUserStat: MonthlyUserStatFields;\n}\nexport const getMonthlyUserStatsByYearResponse: (keyof GetMonthlyUserStatsByYearResponse)[] = [\n \"monthlyUserStat\"\n]\nexport const getMonthlyUserStatsByYearResponseNestedFields: GetMonthlyUserStatsByYearResponseNestedFields = {\n monthlyUserStat: monthlyUserStatQuery\n}\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 // search?: string;\n userIds?: string[];\n user?: Partial<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: Partial<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 {\n uploadImageResponse: (keyof UploadUserImageResponse)[]\n user: UserFields\n}\nexport const updateUserResponse: (keyof UpdateUserResponse)[] = [\n \"uploadImageResponse\", \"user\"\n]\n\nexport const updateUserResponseNestedFields: UpdateUserResponseNestedFields = {\n uploadImageResponse: [\"fileUrl\", \"url\"],\n user: userQuery,\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 { GetMonthlyUserStatsByYearRequest, getMonthlyUserStatsByYearResponse, GetMonthlyUserStatsByYearResponse, getMonthlyUserStatsByYearResponseNestedFields, GetMonthlyUserStatsByYearResponseNestedFields, getUserDashStatsResponse, GetUserDashStatsResponse, getUserDashStatsResponseNestedFields, GetUserDashStatsResponseNestedFields, GetUserRequest, getUserResponse, GetUserResponse, GetUserResponseNestedFields, getUserResponseNestedFields, GetUsersRequest, getUsersResponse, GetUsersResponse, getUsersResponseNestedFields, GetUsersResponseNestedFields, getUserTypeCountsResponse, GetUserTypeCountsResponse, getUserTypeCountsResponseNestedFields, GetUserTypeCountsResponseNestedFields, meResponse, MeResponse, meResponseNestedFields, MeResponseNestedFields, UpdateUserRequest, updateUserResponse, UpdateUserResponse, updateUserResponseNestedFields, UpdateUserResponseNestedFields } from \"./types/user.type\";\nimport { GraphQLResponse } from \"../../types\";\n\nexport const createUserService = (client: GraphQLClient) => ({ \n // admin dashboard stats \n async getUserTypeCounts(\n fetchFields?: {\n root?: (keyof GetUserTypeCountsResponse)[],\n nestedFields?: GetUserTypeCountsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetUserTypeCountsResponse|undefined>{\n const res = await client.request<{ getUserTypeCounts: GetUserTypeCountsResponse }>(\n userSchema.getUserTypeCounts(\n gqlQueryStringBuilder<GetUserTypeCountsResponse, GetUserTypeCountsResponseNestedFields>(\n fetchFields?.root ?? getUserTypeCountsResponse,\n fetchFields?.nestedFields ?? getUserTypeCountsResponseNestedFields\n )\n ), \n {},\n option\n );\n return res.data?.getUserTypeCounts;\n },\n async getMonthlyUserStatsByYear(\n input: GetMonthlyUserStatsByYearRequest,\n fetchFields?: {\n root?: (keyof GetMonthlyUserStatsByYearResponse)[],\n nestedFields?: GetMonthlyUserStatsByYearResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetMonthlyUserStatsByYearResponse|undefined>{\n const res = await client.request<{ getMonthlyUserStatsByYear: GetMonthlyUserStatsByYearResponse }>(\n userSchema.getMonthlyUserStatsByYear(\n gqlQueryStringBuilder<GetMonthlyUserStatsByYearResponse, GetMonthlyUserStatsByYearResponseNestedFields>(\n fetchFields?.root ?? getMonthlyUserStatsByYearResponse,\n fetchFields?.nestedFields ?? getMonthlyUserStatsByYearResponseNestedFields\n )\n ), \n input,\n option\n );\n return res.data?.getMonthlyUserStatsByYear;\n },\n // user dashboard stats\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 async updateUser(\n input: UpdateUserRequest,\n fetchFields?: {\n root?: (keyof UpdateUserResponse)[],\n nestedFields?: UpdateUserResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ updateUser: UpdateUserResponse }>> {\n return client.request<{ updateUser: UpdateUserResponse }>(\n userSchema.updateUser(\n gqlQueryStringBuilder<UpdateUserResponse, UpdateUserResponseNestedFields>(\n fetchFields?.root ?? updateUserResponse,\n fetchFields?.nestedFields ?? updateUserResponseNestedFields\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>","export const userNotificationSchema = {\n getUserNotifications: (query: string) => `\n query getUserNotifications($search: String, $userNotification: UserNotificationInput, $userNotificationIds: [String], $limit: Int!, $skip: Int!) {\n getUserNotifications(search: $search, userNotification: $userNotification, userNotificationIds: $userNotificationIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n}","import { UserNotification } from \"../../../types\";\nimport { NotificationFields, notificationQuery, UserNotificationFields, userNotificationQuery } from \"../user.entity\";\n\nexport interface GetUserNotificationsRequest {\n search?: string;\n userNotificationIds?: string[]\n userNotification?: Partial<UserNotification>\n limit: number\n skip: number \n}\nexport interface GetUserNotificationsResponse {\n userNotifications: UserNotification[]\n}\nexport const getUserNotificationsResponseFields: (keyof GetUserNotificationsResponse)[] = [\"userNotifications\"]\nexport interface GetUserNotificationsResponseNestedFields {\n notification: NotificationFields\n userNotifications: UserNotificationFields\n}\nexport const getUserNotificationsResponseNestedFields: GetUserNotificationsResponseNestedFields = {\n notification: notificationQuery,\n userNotifications: userNotificationQuery\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { userNotificationSchema } from \"./schemas/user-notification.schema\";\nimport { GetUserNotificationsRequest, GetUserNotificationsResponse, getUserNotificationsResponseFields, getUserNotificationsResponseNestedFields, GetUserNotificationsResponseNestedFields } from \"./types/user-notification.type\";\n\nexport const createUserNotificationService = (client: GraphQLClient) => ({\n async getUserNotifications(\n input: GetUserNotificationsRequest,\n fetchFields?: {\n root?: (keyof GetUserNotificationsResponse)[],\n nestedFields?: GetUserNotificationsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetUserNotificationsResponse|undefined>{\n const res = await client.request<{ getUserNotifications: GetUserNotificationsResponse }>(\n userNotificationSchema.getUserNotifications(\n gqlQueryStringBuilder<GetUserNotificationsResponse, GetUserNotificationsResponseNestedFields>(\n fetchFields?.root ?? getUserNotificationsResponseFields,\n fetchFields?.nestedFields ?? getUserNotificationsResponseNestedFields\n )\n ), \n input,\n option\n );\n return res.data?.getUserNotifications;\n },\n})\n\nexport type UserNotificationService = ReturnType<typeof createUserNotificationService>","import { CustomersProductCount, Product, ProductCategory } from \"../../../types\"\nimport { \n AttributeFields,\n attributeQuery,\n CategoryFields,\n categoryQuery,\n CustomersProductCountFields,\n customersProductCountQuery,\n PackageFields, packageQuery, \n PriceFields, \n priceQuery, \n ProductFields, productNameQuery, ProductNamesFields, \n productQuery, \n StockFields,\n stockQuery} from \"../entities\"\n\n\n\nexport interface GetCustomerProductCountsByIdsRequest {\n userIds: string[]\n}\nexport interface GetCustomerProductCountsByIdsResponse {\n customersProductCounts: CustomersProductCount[]\n}\nexport const getCustomerProductCountsByIdsResponse: (keyof GetCustomerProductCountsByIdsResponse)[] = [\n \"customersProductCounts\"\n]\nexport interface GetCustomerProductCountsByIdsResponseNestedFields {\n customersProductCounts: CustomersProductCountFields\n}\nexport const getCustomerProductCountsByIdsResponseNestedFields: GetCustomerProductCountsByIdsResponseNestedFields = {\n customersProductCounts: customersProductCountQuery\n}\n\nexport interface GetProductRequest {\n product: Partial<Product>\n template?: boolean;\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: Partial<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?: Partial<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: Partial<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 type GetStoreCountRequest = GetStoreRequest;\nexport interface GetStoreCountResponse {\n count: number;\n}\nexport const getStoreCountResponse: (keyof GetStoreCountResponse)[] = [\n \"count\"\n]\n\nexport interface GetStoreRequest {\n store: Partial<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?: Partial<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: Partial<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","import { StoreCategoryProduct } from \"../../../types\";\nimport { StoreCategoryProductFields, storeCategoryProductQuery } from \"../entities\";\n\nexport interface GetStoreCategoryProductRequest {\n storeCategoryProduct: Partial<StoreCategoryProduct>;\n}\nexport interface GetStoreCategoryProductResponse {\n storeCategoryProduct: StoreCategoryProduct;\n}\nexport const getStoreCategoryProductResponseFields: (keyof GetStoreCategoryProductResponse)[] = [\n \"storeCategoryProduct\"\n]\nexport interface GetStoreCategoryProductResponseNestedFields {\n storeCategoryProduct: StoreCategoryProductFields;\n}\nexport const getStoreCategoryProductResponseNestedFields: GetStoreCategoryProductResponseNestedFields = {\n storeCategoryProduct: storeCategoryProductQuery\n}\n\n// get store categories \nexport interface GetStoreCategoryProductsRequest {\n search?: string;\n storeCategoryProductIds?: string[];\n storeCategoryProduct?: Partial<StoreCategoryProduct>[];\n limit: number;\n skip: number;\n}\nexport interface GetStoreCategoryProductsResponse {\n storeCategoryProducts: StoreCategoryProduct[];\n}\nexport const getStoreCategoryProductsResponseFields: (keyof GetStoreCategoryProductsResponse)[] = [\n \"storeCategoryProducts\"\n]\nexport interface GetStoreCategoryProductsResponseNestedFields extends Omit<GetStoreCategoryProductResponseNestedFields, \"storeCategoryProduct\"> {\n storeCategoryProducts: StoreCategoryProductFields;\n}\nexport const getStoreCategoryProductsResponseNestedFields: GetStoreCategoryProductsResponseNestedFields = {\n storeCategoryProducts: storeCategoryProductQuery\n}\n\nexport type CreateStoreCategoryProductRequest = GetStoreCategoryProductRequest;\nexport type CreateStoreCategoryProductResponse = GetStoreCategoryProductResponse;\nexport const createStoreCategoryProductResponseFields = getStoreCategoryProductResponseFields;\nexport type CreateStoreCategoryProductResponseNestedFields = GetStoreCategoryProductResponseNestedFields;\nexport const createStoreCategoryProductResponseNestedFields = getStoreCategoryProductResponseNestedFields;\n\nexport interface UpdateStoreCategoryProductRequest {\n storeCategoryProduct: Partial<StoreCategoryProduct>;\n storeCategoryProductId: string;\n}\nexport type UpdateStoreCategoryProductResponse = GetStoreCategoryProductResponse;\nexport const updateStoreCategoryProductResponseFields = getStoreCategoryProductResponseFields;\nexport type UpdateStoreCategoryProductResponseNestedFields = GetStoreCategoryProductResponseNestedFields;\nexport const updateStoreCategoryProductResponseNestedFields = getStoreCategoryProductResponseNestedFields;\n\nexport interface RemoveStoreCategoryProductRequest {\n storeCategoryProductId: string;\n}\nexport type RemoveStoreCategoryProductResponse = RemoveStoreCategoryProductRequest;\nexport const removeStoreCategoryProductResponseFields: (keyof RemoveStoreCategoryProductResponse)[] = [\n \"storeCategoryProductId\"\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];","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 getCustomerProductCountsByIds: (query: string) => `\n query getCustomerProductCountsByIds($userIds: [String]!) {\n getCustomerProductCountsByIds(userIds: $userIds) {\n ${query}\n }\n }\n `,\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 GetCustomerProductCountsByIdsRequest,\n GetCustomerProductCountsByIdsResponse,\n getCustomerProductCountsByIdsResponse,\n GetCustomerProductCountsByIdsResponseNestedFields,\n getCustomerProductCountsByIdsResponseNestedFields, \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 getCustomerProductCountsByIds(\n input: GetCustomerProductCountsByIdsRequest, \n fetchFields?: {\n root?: (keyof GetCustomerProductCountsByIdsResponse)[],\n nestedFields?: GetCustomerProductCountsByIdsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetCustomerProductCountsByIdsResponse | null> {\n const res = await client.request<{ getCustomerProductCountsByIds: GetCustomerProductCountsByIdsResponse }, GetCustomerProductCountsByIdsRequest>(\n productSchema.getCustomerProductCountsByIds(\n gqlQueryStringBuilder<GetCustomerProductCountsByIdsResponse, GetCustomerProductCountsByIdsResponseNestedFields>(\n fetchFields?.root ?? getCustomerProductCountsByIdsResponse,\n fetchFields?.nestedFields ?? getCustomerProductCountsByIdsResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getCustomerProductCountsByIds ?? null;\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})\n\nexport type CreateStockService = ReturnType<typeof createStockService>","export const storeSchema = {\n getStoreCount: (query: string) => `\n query getStoreCount($store: StoreInput!) {\n getStoreCount(store: $store) {\n ${query}\n }\n }\n `,\n getStore: (query: string) => `\n query getStore($store: StoreInput!) {\n getStore(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 getStores(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 GetStoreCountRequest, \n getStoreCountResponse, \n GetStoreCountResponse, \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<{ deleteStore: RemoveStoreResponse }, RemoveStoreRequest>(\n storeSchema.deleteStore(\n gqlQueryStringBuilder<RemoveStoreResponse>(\n fetchFields?.root ?? removeStoreResponse,\n )\n ), \n input, \n option\n );\n return res.data?.deleteStore ?? 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<{ createStore: 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?.createStore ?? null;\n },\n async getStoreCount(\n input: GetStoreCountRequest, \n fetchFields?: {\n root?: (keyof GetStoreCountResponse)[],\n },\n option?: RequestOption\n ): Promise<GetStoreCountResponse | null> {\n const res = await client.request<{ getStoreCount: GetStoreCountResponse }, GetStoreCountRequest>(\n storeSchema.getStoreCount(\n gqlQueryStringBuilder<GetStoreCountResponse>(\n fetchFields?.root ?? getStoreCountResponse,\n )\n ), \n input, \n option\n );\n return res.data?.getStoreCount ?? 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})\n\nexport type StoreService = ReturnType<typeof createStoreService>;","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 getStoreCategory(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 getStoreCategories(search: $search, storeCategory: $storeCategory, storeCategoryIds: $storeCategoryIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\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 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})\n\nexport type StoreCategoryService = ReturnType<typeof createStoreCategoryService>","export const storeCategoryProductSchema = {\n createStoreCategoryProduct: (query: string) => `\n mutation createStoreCategoryProduct($storeCategoryProduct: StoreCategoryProductInput!) {\n createStoreCategoryProduct(storeCategoryProduct: $storeCategoryProduct) {\n ${query}\n }\n }\n `,\n updateStoreCategoryProduct: (query: string) => `\n mutation updateStoreCategoryProduct($storeCategoryProductId: String!, $storeCategoryProduct: StoreCategoryProductInput!) {\n updateStoreCategoryProduct(storeCategoryProductId: $storeCategoryProductId, storeCategoryProduct: $storeCategoryProduct) {\n ${query}\n }\n }\n `,\n removeStoreCategoryProduct: (query: string) => `\n mutation removeStoreCategoryProduct($storeCategoryProductId: String!) {\n removeStoreCategoryProduct(storeCategoryProductId: $storeCategoryProductId) {\n ${query}\n }\n }\n `,\n // get \n getStoreCategoryProduct: (query: string) => `\n query getStoreCategoryProduct($storeCategoryProduct: StoreCategoryProductInput!) {\n getStoreCategoryProduct(storeCategoryProduct: $storeCategoryProduct) {\n ${query}\n }\n }\n `,\n getStoreCategoryProducts: (query: string) => `\n query getStoreCategoryProducts($search: String, $storeCategoryProduct: StoreCategoryProductInput, $storeCategoryProductIds: [String], $limit: Int!, $skip: Int!) {\n getStoreCategoryProducts(search: $search, storeCategoryProduct: $storeCategoryProduct, storeCategoryProductIds: $storeCategoryProductIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { storeCategoryProductSchema } from \"./schema/store-category-product.schema\";\nimport { CreateStoreCategoryProductRequest, CreateStoreCategoryProductResponse, createStoreCategoryProductResponseFields, createStoreCategoryProductResponseNestedFields, CreateStoreCategoryProductResponseNestedFields, GetStoreCategoryProductsRequest, GetStoreCategoryProductsResponse, getStoreCategoryProductsResponseFields, getStoreCategoryProductsResponseNestedFields, GetStoreCategoryProductsResponseNestedFields, GetStoreCategoryProductRequest, GetStoreCategoryProductResponse, getStoreCategoryProductResponseFields, getStoreCategoryProductResponseNestedFields, GetStoreCategoryProductResponseNestedFields, RemoveStoreCategoryProductRequest, RemoveStoreCategoryProductResponse, removeStoreCategoryProductResponseFields, UpdateStoreCategoryProductRequest, UpdateStoreCategoryProductResponse, updateStoreCategoryProductResponseFields, updateStoreCategoryProductResponseNestedFields, UpdateStoreCategoryProductResponseNestedFields } from \"./types/store-category-product.type\";\n\nexport const createStoreCategoryProductService = (client: GraphQLClient) => ({\n async getStoreCategoryProducts(\n input: GetStoreCategoryProductsRequest, \n fetchFields?: {\n root?: (keyof GetStoreCategoryProductsResponse)[],\n nestedFields?: GetStoreCategoryProductsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStoreCategoryProductsResponse | null> {\n const res = await client.request<{ getStoreCategoryProducts: GetStoreCategoryProductsResponse }, GetStoreCategoryProductsRequest>(\n storeCategoryProductSchema.getStoreCategoryProducts(\n gqlQueryStringBuilder<GetStoreCategoryProductsResponse, GetStoreCategoryProductsResponseNestedFields>(\n fetchFields?.root ?? getStoreCategoryProductsResponseFields,\n fetchFields?.nestedFields ?? getStoreCategoryProductsResponseNestedFields,\n )\n ), \n input, \n option\n ) \n return res.data?.getStoreCategoryProducts ?? null;\n },\n async getStoreCategoryProduct(\n input: GetStoreCategoryProductRequest, \n fetchFields?: {\n root?: (keyof GetStoreCategoryProductResponse)[],\n nestedFields?: GetStoreCategoryProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStoreCategoryProductResponse | null> {\n const res = await client.request<{ getStoreCategoryProduct: GetStoreCategoryProductResponse }, GetStoreCategoryProductRequest>(\n storeCategoryProductSchema.getStoreCategoryProduct(\n gqlQueryStringBuilder<GetStoreCategoryProductResponse, GetStoreCategoryProductResponseNestedFields>(\n fetchFields?.root ?? getStoreCategoryProductResponseFields,\n fetchFields?.nestedFields ?? getStoreCategoryProductResponseNestedFields,\n )\n ), \n input, \n option\n ) \n return res.data?.getStoreCategoryProduct ?? null;\n },\n async updateStoreCategoryProduct(\n input: UpdateStoreCategoryProductRequest, \n fetchFields?: {\n root?: (keyof UpdateStoreCategoryProductResponse)[],\n nestedFields?: UpdateStoreCategoryProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateStoreCategoryProductResponse | null> {\n const res = await client.request<{ updateStoreCategoryProduct: UpdateStoreCategoryProductResponse }, UpdateStoreCategoryProductRequest>(\n storeCategoryProductSchema.updateStoreCategoryProduct(\n gqlQueryStringBuilder<UpdateStoreCategoryProductResponse, UpdateStoreCategoryProductResponseNestedFields>(\n fetchFields?.root ?? updateStoreCategoryProductResponseFields,\n fetchFields?.nestedFields ?? updateStoreCategoryProductResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateStoreCategoryProduct ?? null;\n },\n async createStoreCategoryProduct(\n input: CreateStoreCategoryProductRequest, \n fetchFields?: {\n root?: (keyof CreateStoreCategoryProductResponse)[],\n nestedFields?: CreateStoreCategoryProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<CreateStoreCategoryProductResponse | null> {\n const res = await client.request<{ createStoreCategoryProduct: CreateStoreCategoryProductResponse }, CreateStoreCategoryProductRequest>(\n storeCategoryProductSchema.createStoreCategoryProduct(\n gqlQueryStringBuilder<CreateStoreCategoryProductResponse, CreateStoreCategoryProductResponseNestedFields>(\n fetchFields?.root ?? createStoreCategoryProductResponseFields,\n fetchFields?.nestedFields ?? createStoreCategoryProductResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.createStoreCategoryProduct ?? null;\n },\n async removeStoreCategoryProduct(\n input: RemoveStoreCategoryProductRequest, \n fetchFields?: {\n root?: (keyof RemoveStoreCategoryProductResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveStoreCategoryProductResponse | null> {\n const res = await client.request<{ removeStoreCategoryProduct: RemoveStoreCategoryProductResponse }, RemoveStoreCategoryProductRequest>(\n storeCategoryProductSchema.removeStoreCategoryProduct(\n gqlQueryStringBuilder<RemoveStoreCategoryProductResponse>(\n fetchFields?.root ?? removeStoreCategoryProductResponseFields,\n )\n ), \n input, \n option\n );\n return res.data?.removeStoreCategoryProduct ?? null;\n },\n})\n\nexport type StoreCategoryProductService = ReturnType<typeof createStoreCategoryProductService>","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 \"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\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>","export const paystackSchema = {\n paystackInitializePayment: (query: string) => `\n mutation paystackInitializePayment($userId: String!) {\n paystackInitializePayment(userId: $userId) {\n ${query}\n }\n }\n `\n}","export interface PaystackInitializePaymentRequest{\n userId: string;\n}\nexport interface PaystackInitializePaymentResponse{\n authorization_url: string;\n access_code: string;\n reference: string;\n}\nexport const paystackInitializePaymentResponse:(keyof PaystackInitializePaymentResponse)[] = [\n \"access_code\", \n \"authorization_url\", \n \"reference\"\n]","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { paystackSchema } from \"./schemas/paystack.schema\";\nimport { PaystackInitializePaymentRequest, paystackInitializePaymentResponse, PaystackInitializePaymentResponse } from \"./types/paystack\";\n\nexport const createPaystackService = (client: GraphQLClient) => ({\n async paystackInitializePayment(\n input: PaystackInitializePaymentRequest,\n fetchFields?: {\n root?: (keyof PaystackInitializePaymentResponse)[],\n },\n option?: RequestOption\n ):Promise<PaystackInitializePaymentResponse|undefined> {\n const res = await client.request<{ paystackInitializePayment: PaystackInitializePaymentResponse }>(\n paystackSchema.paystackInitializePayment(\n gqlQueryStringBuilder<PaystackInitializePaymentResponse>(\n fetchFields?.root ?? paystackInitializePaymentResponse\n )\n ),\n input,\n option\n );\n return res.data?.paystackInitializePayment;\n }\n})\n\nexport type PaystackService = ReturnType<typeof createPaystackService>","import { SubscriptionPlan, \n SubscriptionPlanFeature } from \"../../types\";\n\nexport type SubscriptionPlanFeatureFields = (keyof SubscriptionPlanFeature)[];\nexport type SubscriptionPlanFields = (keyof SubscriptionPlan)[];\n\n\nexport const subscriptionPlanFeatureQuery: SubscriptionPlanFeatureFields = [\n \"id\", \n \"title\", \n \"description\", \n \"createdAt\"\n]\nexport const subscriptionPlanQuery: SubscriptionPlanFields = [\n \"id\", \n \"code\", \n \"title\", \n \"description\", \n \"price\", \n \"currency\", \n \"period\", \n \"trialDays\", \n \"subscriptionPlanStatus\", \n \"createdAt\", \n \"updatedAt\", \n \"subscriptionPlanFeatureIds\",\n \"features\",\n]","import { SubscriptionPlanFeature } from \"../../../types\";\nimport { SubscriptionPlanFeatureFields, subscriptionPlanFeatureQuery } from \"../subscription.entity\";\n\nexport interface GetSubscriptionPlanFeatureRequest {\n subscriptionPlanFeature: Partial<SubscriptionPlanFeature>;\n}\nexport interface GetSubscriptionPlanFeatureResponse {\n subscriptionPlanFeature: SubscriptionPlanFeature\n}\nexport const getSubscriptionPlanFeatureResponse: (keyof GetSubscriptionPlanFeatureResponse)[] = [\n \"subscriptionPlanFeature\"\n]\nexport interface GetSubscriptionPlanFeatureResponseNestedFields {\n subscriptionPlanFeature: SubscriptionPlanFeatureFields\n}\nexport const _getSubscriptionPlanFeatureResponseNestedFields: \nOmit<GetSubscriptionPlanFeatureResponseNestedFields, \"subscriptionPlanFeature\"> = {\n \n}\nexport const getSubscriptionPlanFeatureResponseNestedFields: GetSubscriptionPlanFeatureResponseNestedFields = {\n ..._getSubscriptionPlanFeatureResponseNestedFields,\n subscriptionPlanFeature: subscriptionPlanFeatureQuery\n}\n\n\n// gets\nexport interface GetSubscriptionPlanFeaturesRequest {\n subscriptionPlanFeature?: Partial<SubscriptionPlanFeature>;\n subscriptionPlanFeatureIds?: string[];\n search?: string;\n limit: number;\n skip: number;\n}\nexport interface GetSubscriptionPlanFeaturesResponse {\n subscriptionPlanFeatures: SubscriptionPlanFeature[]\n total: number\n}\nexport const getSubscriptionPlanFeaturesResponse: (keyof GetSubscriptionPlanFeaturesResponse)[] = [\n \"subscriptionPlanFeatures\",\n \"total\"\n]\nexport interface GetSubscriptionPlanFeaturesResponseNestedFields extends \nOmit<GetSubscriptionPlanFeatureResponseNestedFields, \"subscriptionPlanFeature\"> {\n subscriptionPlanFeatures: SubscriptionPlanFeatureFields\n}\nexport const getSubscriptionPlanFeaturesResponseNestedFields: GetSubscriptionPlanFeaturesResponseNestedFields = {\n ..._getSubscriptionPlanFeatureResponseNestedFields,\n subscriptionPlanFeatures: subscriptionPlanFeatureQuery\n}\n\n// create \nexport interface AddSubscriptionPlanFeatureRequest {\n subscriptionPlanFeature: Partial<SubscriptionPlanFeature>;\n}\nexport interface AddSubscriptionPlanFeatureResponse {\n subscriptionPlanFeature: SubscriptionPlanFeature\n}\nexport const addSubscriptionPlanFeatureResponse: (keyof AddSubscriptionPlanFeatureResponse)[] = getSubscriptionPlanFeatureResponse;\nexport type AddSubscriptionPlanFeatureResponseNestedFields = GetSubscriptionPlanFeatureResponseNestedFields;\nexport const addSubscriptionPlanFeatureResponseNestedFields: AddSubscriptionPlanFeatureResponseNestedFields = getSubscriptionPlanFeatureResponseNestedFields;\n\n// update\nexport interface UpdateSubscriptionPlanFeatureRequest {\n subscriptionPlanFeatureId: string;\n subscriptionPlanFeature: Partial<SubscriptionPlanFeature>;\n}\nexport type UpdateSubscriptionPlanFeatureResponse = GetSubscriptionPlanFeatureResponse;\nexport const updateSubscriptionPlanFeatureResponse: (keyof UpdateSubscriptionPlanFeatureResponse)[] = getSubscriptionPlanFeatureResponse;\nexport type UpdateSubscriptionPlanFeatureResponseNestedFields = GetSubscriptionPlanFeatureResponseNestedFields;\nexport const updateSubscriptionPlanFeatureResponseNestedFields: UpdateSubscriptionPlanFeatureResponseNestedFields = getSubscriptionPlanFeatureResponseNestedFields;\n\n// remove \nexport interface RemoveSubscriptionPlanFeatureRequest {\n subscriptionPlanFeatureId: string;\n}\nexport interface RemoveSubscriptionPlanFeatureResponse {\n subscriptionPlanFeatureId: string;\n}\nexport const removeSubscriptionPlanFeatureResponse: (keyof RemoveSubscriptionPlanFeatureResponse)[] = [\n \"subscriptionPlanFeatureId\"\n];\n","import { SubscriptionPlan } from \"../../../types\";\nimport { SubscriptionPlanFields, subscriptionPlanQuery } from \"../subscription.entity\";\n\nexport interface GetSubscriptionPlanRequest {\n subscriptionPlan: Partial<SubscriptionPlan>;\n}\nexport interface GetSubscriptionPlanResponse {\n subscriptionPlan: SubscriptionPlan\n}\nexport const getSubscriptionPlanResponse: (keyof GetSubscriptionPlanResponse)[] = [\n \"subscriptionPlan\"\n]\nexport interface GetSubscriptionPlanResponseNestedFields {\n subscriptionPlan: SubscriptionPlanFields\n}\nexport const _getSubscriptionPlanResponseNestedFields: \nOmit<GetSubscriptionPlanResponseNestedFields, \"subscriptionPlan\"> = {\n \n}\nexport const getSubscriptionPlanResponseNestedFields: GetSubscriptionPlanResponseNestedFields = {\n ..._getSubscriptionPlanResponseNestedFields,\n subscriptionPlan: subscriptionPlanQuery\n}\n\n\n// gets\nexport interface GetSubscriptionPlansRequest {\n subscriptionPlan?: Partial<SubscriptionPlan>;\n subscriptionPlanIds?: string[];\n search?: string;\n limit: number;\n skip: number;\n}\nexport interface GetSubscriptionPlansResponse {\n subscriptionPlans: SubscriptionPlan[]\n total: number\n}\nexport const getSubscriptionPlansResponse: (keyof GetSubscriptionPlansResponse)[] = [\n \"subscriptionPlans\",\n \"total\"\n]\nexport interface GetSubscriptionPlansResponseNestedFields extends \nOmit<GetSubscriptionPlanResponseNestedFields, \"subscriptionPlan\"> {\n subscriptionPlans: SubscriptionPlanFields\n}\nexport const getSubscriptionPlansResponseNestedFields: GetSubscriptionPlansResponseNestedFields = {\n ..._getSubscriptionPlanResponseNestedFields,\n subscriptionPlans: subscriptionPlanQuery\n}\n\n// create \nexport interface AddSubscriptionPlanRequest {\n subscriptionPlan: Partial<SubscriptionPlan>;\n}\nexport interface AddSubscriptionPlanResponse {\n subscriptionPlan: SubscriptionPlan\n}\nexport const addSubscriptionPlanResponse: (keyof AddSubscriptionPlanResponse)[] = getSubscriptionPlanResponse;\nexport type AddSubscriptionPlanResponseNestedFields = GetSubscriptionPlanResponseNestedFields;\nexport const addSubscriptionPlanResponseNestedFields: AddSubscriptionPlanResponseNestedFields = getSubscriptionPlanResponseNestedFields;\n\n// update\nexport interface UpdateSubscriptionPlanRequest {\n subscriptionPlanId: string;\n subscriptionPlan: Partial<SubscriptionPlan>;\n}\nexport type UpdateSubscriptionPlanResponse = GetSubscriptionPlanResponse;\nexport const updateSubscriptionPlanResponse: (keyof UpdateSubscriptionPlanResponse)[] = getSubscriptionPlanResponse;\nexport type UpdateSubscriptionPlanResponseNestedFields = GetSubscriptionPlanResponseNestedFields;\nexport const updateSubscriptionPlanResponseNestedFields: UpdateSubscriptionPlanResponseNestedFields = getSubscriptionPlanResponseNestedFields;\n\n// remove \nexport interface RemoveSubscriptionPlanRequest {\n subscriptionPlanId: string;\n}\nexport interface RemoveSubscriptionPlanResponse {\n subscriptionPlanId: string;\n}\nexport const removeSubscriptionPlanResponse: (keyof RemoveSubscriptionPlanResponse)[] = [\n \"subscriptionPlanId\"\n];\n","export const subscriptionPlanFeatureSchema = {\n getSubscriptionPlanFeature: (query: string) => `\n query getSubscriptionPlanFeature($subscriptionPlanFeature: SubscriptionPlanFeatureInput!) {\n getSubscriptionPlanFeature(subscriptionPlanFeature: $subscriptionPlanFeature) {\n ${query}\n }\n }\n `,\n getSubscriptionPlanFeatures: (query: string) => `\n query getSubscriptionPlanFeatures($search String, $subscriptionPlanFeatureIds: [String], $subscriptionPlanFeature: SubscriptionPlanFeatureInput, $limit: Int!, $skip: Int!) {\n getSubscriptionPlanFeatures(search: $search, subscriptionPlanFeatureIds: $subscriptionPlanFeatureIds, subscriptionPlanFeature: $subscriptionPlanFeature, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n addSubscriptionPlanFeature: (query: string) => `\n mutation addSubscriptionPlanFeature($subscriptionPlanFeature: SubscriptionPlanFeatureInput!) {\n addSubscriptionPlanFeature(subscriptionPlanFeature: $subscriptionPlanFeature) {\n ${query}\n }\n }\n `,\n updateSubscriptionPlanFeature: (query: string) => `\n mutation updateSubscriptionPlanFeature($subscriptionPlanFeatureId: String!, $subscriptionPlanFeature: SubscriptionPlanFeatureInput!) {\n updateSubscriptionPlanFeature(subscriptionPlanFeatureId: $subcriptionPlanFeatureId, subscriptionPlanFeature: $subscriptionPlanFeature) {\n ${query}\n }\n }\n `,\n removeSubscriptionPlanFeature: (query: string) => `\n mutation removeSubscriptionPlanFeature($subscriptionPlanFeatureId: String!) {\n removeSubscriptionPlanFeature(subscriptionPlanFeatureId: $subcriptionPlanFeatureId) {\n ${query}\n }\n }\n `\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { subscriptionPlanFeatureSchema } from \"./schemas/subscription-plan-feature.schema\";\nimport { AddSubscriptionPlanFeatureRequest, addSubscriptionPlanFeatureResponse, AddSubscriptionPlanFeatureResponse, addSubscriptionPlanFeatureResponseNestedFields, AddSubscriptionPlanFeatureResponseNestedFields, GetSubscriptionPlanFeatureRequest, getSubscriptionPlanFeatureResponse, GetSubscriptionPlanFeatureResponse, getSubscriptionPlanFeatureResponseNestedFields, GetSubscriptionPlanFeatureResponseNestedFields, GetSubscriptionPlanFeaturesRequest, getSubscriptionPlanFeaturesResponse, GetSubscriptionPlanFeaturesResponse, getSubscriptionPlanFeaturesResponseNestedFields, GetSubscriptionPlanFeaturesResponseNestedFields, RemoveSubscriptionPlanFeatureRequest, removeSubscriptionPlanFeatureResponse, RemoveSubscriptionPlanFeatureResponse, UpdateSubscriptionPlanFeatureRequest, updateSubscriptionPlanFeatureResponse, UpdateSubscriptionPlanFeatureResponse, updateSubscriptionPlanFeatureResponseNestedFields, UpdateSubscriptionPlanFeatureResponseNestedFields } from \"./types/subscription-plan-feature.type\";\n\nexport const createSubscriptionPlanFeatureService = (client: GraphQLClient) => ({\n async removeSubscriptionPlanFeature(\n input: RemoveSubscriptionPlanFeatureRequest, \n fetchFields?: {\n root?: (keyof RemoveSubscriptionPlanFeatureResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveSubscriptionPlanFeatureResponse | null> {\n const res = await client.request<\n { removeSubscriptionPlanFeature: RemoveSubscriptionPlanFeatureResponse }, \n RemoveSubscriptionPlanFeatureRequest\n >(\n subscriptionPlanFeatureSchema.removeSubscriptionPlanFeature(\n gqlQueryStringBuilder<RemoveSubscriptionPlanFeatureResponse>(\n fetchFields?.root ?? removeSubscriptionPlanFeatureResponse,\n )\n ), \n input, \n option\n );\n return res.data?.removeSubscriptionPlanFeature ?? null;\n },\n async updateSubscriptionPlanFeature(\n input: UpdateSubscriptionPlanFeatureRequest, \n fetchFields?: {\n root?: (keyof UpdateSubscriptionPlanFeatureResponse)[],\n nestedFields?: UpdateSubscriptionPlanFeatureResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateSubscriptionPlanFeatureResponse | null> {\n const res = await client.request<\n { updateSubscriptionPlanFeature: UpdateSubscriptionPlanFeatureResponse }, \n UpdateSubscriptionPlanFeatureRequest\n >(\n subscriptionPlanFeatureSchema.updateSubscriptionPlanFeature(\n gqlQueryStringBuilder<UpdateSubscriptionPlanFeatureResponse, UpdateSubscriptionPlanFeatureResponseNestedFields>(\n fetchFields?.root ?? updateSubscriptionPlanFeatureResponse,\n fetchFields?.nestedFields ?? updateSubscriptionPlanFeatureResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.updateSubscriptionPlanFeature ?? null;\n },\n async addSubscriptionPlanFeature(\n input: AddSubscriptionPlanFeatureRequest, \n fetchFields?: {\n root?: (keyof AddSubscriptionPlanFeatureResponse)[],\n nestedFields?: AddSubscriptionPlanFeatureResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddSubscriptionPlanFeatureResponse | null> {\n const res = await client.request<\n { addSubscriptionPlanFeature: AddSubscriptionPlanFeatureResponse }, \n AddSubscriptionPlanFeatureRequest\n >(\n subscriptionPlanFeatureSchema.addSubscriptionPlanFeature(\n gqlQueryStringBuilder<AddSubscriptionPlanFeatureResponse, AddSubscriptionPlanFeatureResponseNestedFields>(\n fetchFields?.root ?? addSubscriptionPlanFeatureResponse,\n fetchFields?.nestedFields ?? addSubscriptionPlanFeatureResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addSubscriptionPlanFeature ?? null;\n },\n async getSubscriptionPlanFeature(\n input: GetSubscriptionPlanFeatureRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionPlanFeatureResponse)[],\n nestedFields?: GetSubscriptionPlanFeatureResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionPlanFeatureResponse | null> {\n const res = await client.request<\n { getSubscriptionPlanFeature: GetSubscriptionPlanFeatureResponse }, \n GetSubscriptionPlanFeatureRequest\n >(\n subscriptionPlanFeatureSchema.getSubscriptionPlanFeature(\n gqlQueryStringBuilder<GetSubscriptionPlanFeatureResponse, GetSubscriptionPlanFeatureResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionPlanFeatureResponse,\n fetchFields?.nestedFields ?? getSubscriptionPlanFeatureResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscriptionPlanFeature ?? null;\n },\n async getSubscriptionPlanFeatures(\n input: GetSubscriptionPlanFeaturesRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionPlanFeaturesResponse)[],\n nestedFields?: GetSubscriptionPlanFeaturesResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionPlanFeaturesResponse | null> {\n const res = await client.request<\n { getSubscriptionPlanFeatures: GetSubscriptionPlanFeaturesResponse }, \n GetSubscriptionPlanFeaturesRequest\n >(\n subscriptionPlanFeatureSchema.getSubscriptionPlanFeatures(\n gqlQueryStringBuilder<GetSubscriptionPlanFeaturesResponse, GetSubscriptionPlanFeaturesResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionPlanFeaturesResponse,\n fetchFields?.nestedFields ?? getSubscriptionPlanFeaturesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscriptionPlanFeatures ?? null;\n },\n})","export const subscriptionPlanSchema = {\n getSubscriptionPlan: (query: string) => `\n query getSubscriptionPlan($subscriptionPlan: SubscriptionPlanInput!) {\n getSubscriptionPlan(subscriptionPlan: $subscriptionPlan) {\n ${query}\n }\n }\n `,\n getSubscriptionPlans: (query: string) => `\n query getSubscriptionPlans($search String, $subscriptionPlanIds: [String], $subscriptionPlan: SubscriptionPlanInput, $limit: Int!, $skip: Int!) {\n getSubscriptionPlans(search: $search, subscriptionPlanIds: $subscriptionPlanIds, subscriptionPlan: $subscriptionPlan, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n addSubscriptionPlan: (query: string) => `\n mutation addSubscriptionPlan($subscriptionPlan: SubscriptionPlanInput!) {\n addSubscriptionPlan(subscriptionPlan: $subscriptionPlan) {\n ${query}\n }\n }\n `,\n updateSubscriptionPlan: (query: string) => `\n mutation updateSubscriptionPlan($subscriptionPlanId: String!, $subscriptionPlan: SubscriptionPlanInput!) {\n updateSubscriptionPlan(subscriptionPlanId: $subcriptionPlanId, subscriptionPlan: $subscriptionPlan) {\n ${query}\n }\n }\n `,\n removeSubscriptionPlan: (query: string) => `\n mutation removeSubscriptionPlan($subscriptionPlanId: String!) {\n removeSubscriptionPlan(subscriptionPlanId: $subcriptionPlanId) {\n ${query}\n }\n }\n `\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { subscriptionPlanSchema } from \"./schemas/subscription-plan.schema\";\nimport { AddSubscriptionPlanRequest, addSubscriptionPlanResponse, AddSubscriptionPlanResponse, addSubscriptionPlanResponseNestedFields, AddSubscriptionPlanResponseNestedFields, GetSubscriptionPlanRequest, getSubscriptionPlanResponse, GetSubscriptionPlanResponse, getSubscriptionPlanResponseNestedFields, GetSubscriptionPlanResponseNestedFields, GetSubscriptionPlansRequest, getSubscriptionPlansResponse, GetSubscriptionPlansResponse, getSubscriptionPlansResponseNestedFields, GetSubscriptionPlansResponseNestedFields, RemoveSubscriptionPlanRequest, removeSubscriptionPlanResponse, RemoveSubscriptionPlanResponse, UpdateSubscriptionPlanRequest, updateSubscriptionPlanResponse, UpdateSubscriptionPlanResponse, updateSubscriptionPlanResponseNestedFields, UpdateSubscriptionPlanResponseNestedFields } from \"./types/subscription-plan.type\";\n\nexport const createSubscriptionPlanService = (client: GraphQLClient) => ({\n async removeSubscriptionPlan(\n input: RemoveSubscriptionPlanRequest, \n fetchFields?: {\n root?: (keyof RemoveSubscriptionPlanResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveSubscriptionPlanResponse | null> {\n const res = await client.request<\n { removeSubscriptionPlan: RemoveSubscriptionPlanResponse }, \n RemoveSubscriptionPlanRequest\n >(\n subscriptionPlanSchema.removeSubscriptionPlan(\n gqlQueryStringBuilder<RemoveSubscriptionPlanResponse>(\n fetchFields?.root ?? removeSubscriptionPlanResponse,\n )\n ), \n input, \n option\n );\n return res.data?.removeSubscriptionPlan ?? null;\n },\n async updateSubscriptionPlan(\n input: UpdateSubscriptionPlanRequest, \n fetchFields?: {\n root?: (keyof UpdateSubscriptionPlanResponse)[],\n nestedFields?: UpdateSubscriptionPlanResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateSubscriptionPlanResponse | null> {\n const res = await client.request<\n { updateSubscriptionPlan: UpdateSubscriptionPlanResponse }, \n UpdateSubscriptionPlanRequest\n >(\n subscriptionPlanSchema.updateSubscriptionPlan(\n gqlQueryStringBuilder<UpdateSubscriptionPlanResponse, UpdateSubscriptionPlanResponseNestedFields>(\n fetchFields?.root ?? updateSubscriptionPlanResponse,\n fetchFields?.nestedFields ?? updateSubscriptionPlanResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.updateSubscriptionPlan ?? null;\n },\n async addSubscriptionPlan(\n input: AddSubscriptionPlanRequest, \n fetchFields?: {\n root?: (keyof AddSubscriptionPlanResponse)[],\n nestedFields?: AddSubscriptionPlanResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddSubscriptionPlanResponse | null> {\n const res = await client.request<\n { addSubscriptionPlan: AddSubscriptionPlanResponse }, \n AddSubscriptionPlanRequest\n >(\n subscriptionPlanSchema.addSubscriptionPlan(\n gqlQueryStringBuilder<AddSubscriptionPlanResponse, AddSubscriptionPlanResponseNestedFields>(\n fetchFields?.root ?? addSubscriptionPlanResponse,\n fetchFields?.nestedFields ?? addSubscriptionPlanResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addSubscriptionPlan ?? null;\n },\n async getSubscriptionPlan(\n input: GetSubscriptionPlanRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionPlanResponse)[],\n nestedFields?: GetSubscriptionPlanResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionPlanResponse | null> {\n const res = await client.request<\n { getSubscriptionPlan: GetSubscriptionPlanResponse }, \n GetSubscriptionPlanRequest\n >(\n subscriptionPlanSchema.getSubscriptionPlan(\n gqlQueryStringBuilder<GetSubscriptionPlanResponse, GetSubscriptionPlanResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionPlanResponse,\n fetchFields?.nestedFields ?? getSubscriptionPlanResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscriptionPlan ?? null;\n },\n async getSubscriptionPlans(\n input: GetSubscriptionPlansRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionPlansResponse)[],\n nestedFields?: GetSubscriptionPlansResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionPlansResponse | null> {\n const res = await client.request<\n { getSubscriptionPlans: GetSubscriptionPlansResponse }, \n GetSubscriptionPlansRequest\n >(\n subscriptionPlanSchema.getSubscriptionPlans(\n gqlQueryStringBuilder<GetSubscriptionPlansResponse, GetSubscriptionPlansResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionPlansResponse,\n fetchFields?.nestedFields ?? getSubscriptionPlansResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscriptionPlans ?? null;\n },\n})"]}
|
|
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/user/schemas/user-notification.schema.ts","../src/services/user/types/user-notification.type.ts","../src/services/user/user-notification.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/types/store-category-product.type.ts","../src/services/inventory/types/store-category.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/store-category.service.ts","../src/services/inventory/schema/store-category-product.schema.ts","../src/services/inventory/store-category-product.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","../src/services/subscription/schemas/paystack.schema.ts","../src/services/subscription/types/paystack.ts","../src/services/subscription/paystack.service.ts","../src/services/subscription/subscription.entity.ts","../src/services/subscription/types/subscription-plan-feature.type.ts","../src/services/subscription/types/subscription-plan.type.ts","../src/services/subscription/types/subscription.type.ts","../src/services/subscription/schemas/subscription-plan-feature.schema.ts","../src/services/subscription/subscription-plan-feature.service.ts","../src/services/subscription/schemas/subscription-plan.schema.ts","../src/services/subscription/subscription-plan.service.ts","../src/services/subscription/schemas/subscription.schema.ts","../src/services/subscription/subscription.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;AAAA,EAGxB,iBAAA,EAAmB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAG9B,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,yBAAA,EAA2B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGtC,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA;AAAA,EAKb,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,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAGvB,KAAK;AAAA;AAAA;AAAA,EAAA;AAIf,CAAA;AAEA,IAAO,mBAAA,GAAQ,UAAA;;;ACnCR,IAAM,mBAAA,GAA2C;AAAA,EACpD,WAAA;AAAA,EAAa,cAAA;AAAA,EAAgB,cAAA;AAAA,EAAgB;AACjD,CAAA;AACO,IAAM,oBAAA,GAA6C;AAAA,EACtD,OAAA;AAAA,EAAS;AACb,CAAA;AACO,IAAM,iBAAA,GAAwC;AAAA,EACjD,WAAA;AAAA,EACA,aAAA;AAAA,EACA,IAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,OAAA;AAAA,EACA;AACJ,CAAA;AACO,IAAM,qBAAA,GAA+C;AAAA,EACxD,WAAA;AAAA,EACA,IAAA;AAAA,EACA,oBAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACJ,CAAA;AACO,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,UAAA;AAAA,EAAY,OAAA;AAAA,EACzB,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;;;ACpFO,IAAM,0BAAA,GAA0D;AAAA,EACnE,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACJ,CAAA;AAIO,IAAM,yBAAA,GAAwD;AAAA,EACjE,KAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA;AACJ,CAAA;AAEO,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;;;ACzGO,IAAM,8BAAA,GAAiE;AAAA,EAC1E,OAAA,EAAS,YAAA;AAAA,EACT,OAAA,EAAS;AACb,CAAA;;;ACGO,IAAM,yBAAA,GAAgE;AAAA,EACzE;AACJ,CAAA;AAIO,IAAM,qCAAA,GAA8E;AAAA,EACvF,cAAA,EAAgB;AACpB,CAAA;AAYO,IAAM,iCAAA,GAAiF;AAAA,EAC1F;AACJ,CAAA;AACO,IAAM,6CAAA,GAA+F;AAAA,EACxG,eAAA,EAAiB;AACrB,CAAA;AAYO,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;AAiBO,IAAM,gBAAA,GAA+C;AAAA,EACxD;AACJ,CAAA;AACO,IAAM,4BAAA,GAA6D;AAAA,EACtE,KAAA,EAAO,SAAA;AAAA,EACP,GAAG;AACP,CAAA;AAgCO,IAAM,kBAAA,GAAmD;AAAA,EAC5D,qBAAA;AAAA,EAAuB;AAC3B,CAAA;AAEO,IAAM,8BAAA,GAAiE;AAAA,EAC1E,mBAAA,EAAqB,CAAC,SAAA,EAAW,KAAK,CAAA;AAAA,EACtC,IAAA,EAAM;AACV,CAAA;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;;;AClLO,IAAM,iBAAA,GAAoB,CAAC,MAAA,MAA2B;AAAA;AAAA,EAE3D,MAAM,iBAAA,CACJ,WAAA,EAIA,MAAA,EAC6C;AAdjD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAeI,IAAA,MAAM,GAAA,GAAM,MAAO,MAAA,CAAO,OAAA;AAAA,MACxB,mBAAA,CAAW,iBAAA;AAAA,QACT,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,EAAC;AAAA,MACD;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,GAAA,CAAI,SAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,iBAAA;AAAA,EACnB,CAAA;AAAA,EACA,MAAM,yBAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACqD;AAlCzD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmCI,IAAA,MAAM,GAAA,GAAM,MAAO,MAAA,CAAO,OAAA;AAAA,MACxB,mBAAA,CAAW,yBAAA;AAAA,QACT,qBAAA;AAAA,UAAA,CACE,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;AAC/B,OACF;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,GAAA,CAAI,SAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,yBAAA;AAAA,EACnB,CAAA;AAAA;AAAA,EAEA,MAAM,gBAAA,CACJ,WAAA,EAIA,MAAA,EAC4C;AAtDhD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAuDI,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;AAzElD,IAAA,IAAA,EAAA,EAAA,EAAA;AA0EI,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;AA5F9D,IAAA,IAAA,EAAA,EAAA,EAAA;AA6FM,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;AA/GhE,IAAA,IAAA,EAAA,EAAA,EAAA;AAgHM,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,CAAA;AAAA,EACF,MAAM,UAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EAC8D;AAlIpE,IAAA,IAAA,EAAA,EAAA,EAAA;AAmIM,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,mBAAA,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;AAAA,EACF;AACJ,CAAA;;;AC9IO,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;;;AC5JO,IAAM,sBAAA,GAAyB;AAAA,EAClC,oBAAA,EAAsB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG3B,KAAK;AAAA;AAAA;AAAA,IAAA;AAIvB,CAAA;;;ACKO,IAAM,kCAAA,GAA6E,CAAC,mBAAmB,CAAA;AAKvG,IAAM,wCAAA,GAAqF;AAAA,EAC9F,YAAA,EAAc,iBAAA;AAAA,EACd,iBAAA,EAAmB;AACvB,CAAA;;;AChBO,IAAM,6BAAA,GAAgC,CAAC,MAAA,MAA2B;AAAA,EACrE,MAAM,oBAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EACgD;AAbxD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAcQ,IAAA,MAAM,GAAA,GAAM,MAAO,MAAA,CAAO,OAAA;AAAA,MACxB,sBAAA,CAAuB,oBAAA;AAAA,QACrB,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,kCAAA;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,GAAA,CAAI,SAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,oBAAA;AAAA,EACnB;AACN,CAAA;;;ACFO,IAAM,qCAAA,GAAyF;AAAA,EAClG;AACJ;AAIO,IAAM,iDAAA,GAAuG;AAAA,EAChH,sBAAA,EAAwB;AAC5B;AAkBO,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;;;AC7LO,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;;;AC1DO,IAAM,qBAAA,GAAyD;AAAA,EAClE;AACJ;AAQO,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;;;ACtEO,IAAM,qCAAA,GAAmF;AAAA,EAC5F;AACJ;AAIO,IAAM,2CAAA,GAA2F;AAAA,EACpG,oBAAA,EAAsB;AAC1B;AAaO,IAAM,sCAAA,GAAqF;AAAA,EAC9F;AACJ;AAIO,IAAM,4CAAA,GAA6F;AAAA,EACtG,qBAAA,EAAuB;AAC3B;AAIO,IAAM,wCAAA,GAA2C;AAEjD,IAAM,8CAAA,GAAiD;AAOvD,IAAM,wCAAA,GAA2C;AAEjD,IAAM,8CAAA,GAAiD;AAMvD,IAAM,wCAAA,GAAyF;AAAA,EAClG;AACJ;;;ACpDO,IAAM,8BAAA,GAAqE;AAAA,EAC9E;AACJ;AAIO,IAAM,oCAAA,GAA6E;AAAA,EACtF,aAAA,EAAe;AACnB;AAaO,IAAM,gCAAA,GAAyE;AAAA,EAClF;AACJ;AAIO,IAAM,sCAAA,GAAiF;AAAA,EAC1F,eAAA,EAAiB;AACrB;AAIO,IAAM,iCAAA,GAAoC;AAE1C,IAAM,uCAAA,GAA0C;AAOhD,IAAM,iCAAA,GAAoC;AAE1C,IAAM,uCAAA,GAA0C;AAMhD,IAAM,iCAAA,GAA2E;AAAA,EACpF;AACJ;;;AC7DO,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,6BAAA,EAA+B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAG1C,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,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;;;AClEO,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;;;ACYO,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,6BAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACuD;AAjD3D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAkDI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,aAAA,CAAc,6BAAA;AAAA,QACZ,qBAAA;AAAA,UAAA,CACE,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,qCAAA;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,6BAAA,KAAV,IAAA,GAAA,EAAA,GAA2C,IAAA;AAAA,EACpD,CAAA;AAAA,EACA,MAAM,2BAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACqD;AArEzD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAsEI,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;AAzFhD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0FI,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;AA7G3C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA8GI,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;AAhI3C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiII,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;AAnJxC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAoJI,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;AAvKxC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwKI,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;AA3LzC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA4LI,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;;;ACxMO,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,aAAA,EAAe,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,QAAA,EAG1B,KAAK;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,EAIb,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;;;AC3BO,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,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;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,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,WAAA,KAAV,IAAA,GAAA,EAAA,GAAyB,IAAA;AAAA,EAClC,CAAA;AAAA,EACA,MAAM,aAAA,CACJ,KAAA,EACA,WAAA,EAGA,MAAA,EACuC;AArF3C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAsFI,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACvB,WAAA,CAAY,aAAA;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,aAAA,KAAV,IAAA,GAAA,EAAA,GAA2B,IAAA;AAAA,EACpC,CAAA;AAAA,EACA,MAAM,QAAA,CACJ,KAAA,EACA,WAAA,EAIA,MAAA,EACkC;AAxGtC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAyGI,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;AA5HvC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6HI,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;;;ACzIO,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;;;AC/BO,IAAM,0BAAA,GAA6B,CAAC,MAAA,MAA2B;AAAA,EAClE,MAAM,kBAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EAC0C;AAdlD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAeQ,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;AAlChD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmCQ,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;AAtDnD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAuDQ,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;AA1EnD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA2EQ,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;AA7FnD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA8FQ,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;;;ACzGO,IAAM,0BAAA,GAA6B;AAAA,EACtC,0BAAA,EAA4B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGjC,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,0BAAA,EAA4B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGjC,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,0BAAA,EAA4B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGjC,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA;AAAA,EAKnB,uBAAA,EAAyB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG9B,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,wBAAA,EAA0B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG/B,KAAK;AAAA;AAAA;AAAA,IAAA;AAIvB,CAAA;;;AChCO,IAAM,iCAAA,GAAoC,CAAC,MAAA,MAA2B;AAAA,EACzE,MAAM,wBAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EACgD;AAbxD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAcQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACrB,0BAAA,CAA2B,wBAAA;AAAA,QACvB,qBAAA;AAAA,UAAA,CACI,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,sCAAA;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,wBAAA,KAAV,IAAA,GAAA,EAAA,GAAsC,IAAA;AAAA,EACjD,CAAA;AAAA,EACA,MAAM,uBAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EAC+C;AAjCvD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAkCQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACrB,0BAAA,CAA2B,uBAAA;AAAA,QACvB,qBAAA;AAAA,UAAA,CACI,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,qCAAA;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,uBAAA,KAAV,IAAA,GAAA,EAAA,GAAqC,IAAA;AAAA,EAChD,CAAA;AAAA,EACA,MAAM,0BAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EACkD;AArD1D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAsDQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACzB,0BAAA,CAA2B,0BAAA;AAAA,QACvB,qBAAA;AAAA,UAAA,CACA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,wCAAA;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,0BAAA,KAAV,IAAA,GAAA,EAAA,GAAwC,IAAA;AAAA,EACnD,CAAA;AAAA,EACA,MAAM,0BAAA,CACF,KAAA,EACA,WAAA,EAIA,MAAA,EACkD;AAzE1D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0EQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACzB,0BAAA,CAA2B,0BAAA;AAAA,QACvB,qBAAA;AAAA,UAAA,CACI,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,wCAAA;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,0BAAA,KAAV,IAAA,GAAA,EAAA,GAAwC,IAAA;AAAA,EACnD,CAAA;AAAA,EACA,MAAM,0BAAA,CACF,KAAA,EACA,WAAA,EAGA,MAAA,EACkD;AA5F1D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6FQ,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACzB,0BAAA,CAA2B,0BAAA;AAAA,QACvB,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,0BAAA,KAAV,IAAA,GAAA,EAAA,GAAwC,IAAA;AAAA,EACnD;AACJ,CAAA;;;ACxGO,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;AACJ;;;AC9BO,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,EAKnB,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;;;ACnBO,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;;;AC/FO,IAAM,cAAA,GAAiB;AAAA,EAC1B,yBAAA,EAA2B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGhC,KAAK;AAAA;AAAA;AAAA,IAAA;AAIvB,CAAA;;;ACAO,IAAM,iCAAA,GAAgF;AAAA,EACzF,aAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACJ;;;ACPO,IAAM,qBAAA,GAAwB,CAAC,MAAA,MAA2B;AAAA,EAC7D,MAAM,yBAAA,CACE,KAAA,EACA,WAAA,EAGA,MAAA,EACmD;AAZ/D,IAAA,IAAA,EAAA,EAAA,EAAA;AAaY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MACrB,cAAA,CAAe,yBAAA;AAAA,QACX,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,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,GAAA,CAAI,SAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,yBAAA;AAAA,EACrB;AACR,CAAA;;;ACfO,IAAM,iBAAA,GAAwC;AAAA,EACjD,mBAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,wBAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA;AACJ,CAAA;AACO,IAAM,4BAAA,GAA8D;AAAA,EACvE,IAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA;AACJ,CAAA;AACO,IAAM,qBAAA,GAAgD;AAAA,EACzD,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,wBAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,4BAAA;AAAA,EACA;AACJ,CAAA;;;ACrCO,IAAM,kCAAA,GAAmF;AAAA,EAC5F;AACJ;AAIO,IAAM,kDACqE;AAG3E,IAAM,8CAAA,GAAiG;AAAA,EAC1G,GAAG,+CAAA;AAAA,EACH,uBAAA,EAAyB;AAC7B;AAeO,IAAM,mCAAA,GAAqF;AAAA,EAC9F,0BAAA;AAAA,EACA;AACJ;AAKO,IAAM,+CAAA,GAAmG;AAAA,EAC5G,GAAG,+CAAA;AAAA,EACH,wBAAA,EAA0B;AAC9B;AASO,IAAM,kCAAA,GAAmF;AAEzF,IAAM,8CAAA,GAAiG;AAQvG,IAAM,qCAAA,GAAyF;AAE/F,IAAM,iDAAA,GAAuG;AAS7G,IAAM,qCAAA,GAAyF;AAAA,EAClG;AACJ;;;ACvEO,IAAM,2BAAA,GAAqE;AAAA,EAC9E;AACJ;AAIO,IAAM,2CACuD;AAG7D,IAAM,uCAAA,GAAmF;AAAA,EAC5F,GAAG,wCAAA;AAAA,EACH,gBAAA,EAAkB;AACtB;AAeO,IAAM,4BAAA,GAAuE;AAAA,EAChF,mBAAA;AAAA,EACA;AACJ;AAKO,IAAM,wCAAA,GAAqF;AAAA,EAC9F,GAAG,wCAAA;AAAA,EACH,iBAAA,EAAmB;AACvB;AASO,IAAM,2BAAA,GAAqE;AAE3E,IAAM,uCAAA,GAAmF;AAQzF,IAAM,8BAAA,GAA2E;AAEjF,IAAM,0CAAA,GAAyF;AAS/F,IAAM,8BAAA,GAA2E;AAAA,EACpF;AACJ;;;ACvEO,IAAM,uBAAA,GAA6D;AAAA,EACtE;AACJ;AAIO,IAAM,uCAC+C;AAGrD,IAAM,mCAAA,GAA2E;AAAA,EACpF,GAAG,oCAAA;AAAA,EACH,YAAA,EAAc;AAClB;AAeO,IAAM,wBAAA,GAA+D;AAAA,EACxE,eAAA;AAAA,EACA;AACJ;AAKO,IAAM,oCAAA,GAA6E;AAAA,EACtF,GAAG,oCAAA;AAAA,EACH,aAAA,EAAe;AACnB;AASO,IAAM,uBAAA,GAA6D;AAEnE,IAAM,mCAAA,GAA2E;AAQjF,IAAM,0BAAA,GAAmE;AAEzE,IAAM,sCAAA,GAAiF;AASvF,IAAM,0BAAA,GAAmE;AAAA,EAC5E;AACJ;;;AChFO,IAAM,6BAAA,GAAgC;AAAA,EACzC,0BAAA,EAA4B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGjC,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,2BAAA,EAA6B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGlC,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,0BAAA,EAA4B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGjC,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,6BAAA,EAA+B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGpC,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,6BAAA,EAA+B,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGpC,KAAK;AAAA;AAAA;AAAA,IAAA;AAIvB,CAAA;;;AC/BO,IAAM,oCAAA,GAAuC,CAAC,MAAA,MAA2B;AAAA,EAC1E,MAAM,6BAAA,CACA,KAAA,EACA,WAAA,EAGA,MAAA,EACqD;AAZjE,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAaY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,6BAAA,CAA8B,6BAAA;AAAA,QAC1B,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,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,6BAAA,KAAV,IAAA,GAAA,EAAA,GAA2C,IAAA;AAAA,EACxD,CAAA;AAAA,EACA,MAAM,6BAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EACqD;AAlCjE,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmCY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,6BAAA,CAA8B,6BAAA;AAAA,QAC1B,qBAAA;AAAA,UAAA,CACA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,qCAAA;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,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,6BAAA,KAAV,IAAA,GAAA,EAAA,GAA2C,IAAA;AAAA,EACxD,CAAA;AAAA,EACA,MAAM,0BAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EACkD;AAzD9D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0DY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,6BAAA,CAA8B,0BAAA;AAAA,QAC1B,qBAAA;AAAA,UAAA,CACA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,kCAAA;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,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,0BAAA,KAAV,IAAA,GAAA,EAAA,GAAwC,IAAA;AAAA,EACrD,CAAA;AAAA,EACA,MAAM,0BAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EACkD;AAhF9D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiFY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,6BAAA,CAA8B,0BAAA;AAAA,QAC1B,qBAAA;AAAA,UAAA,CACA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,kCAAA;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,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,0BAAA,KAAV,IAAA,GAAA,EAAA,GAAwC,IAAA;AAAA,EACrD,CAAA;AAAA,EACA,MAAM,2BAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EACmD;AAvG/D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwGY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,6BAAA,CAA8B,2BAAA;AAAA,QAC1B,qBAAA;AAAA,UAAA,CACA,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;AAC7B,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,2BAAA,KAAV,IAAA,GAAA,EAAA,GAAyC,IAAA;AAAA,EACtD;AACN,CAAA;;;ACvHO,IAAM,sBAAA,GAAyB;AAAA,EAClC,mBAAA,EAAqB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG1B,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,oBAAA,EAAsB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG3B,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,sBAAA,EAAwB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG7B,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,sBAAA,EAAwB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAG7B,KAAK;AAAA;AAAA;AAAA,IAAA;AAIvB,CAAA;;;AC/BO,IAAM,6BAAA,GAAgC,CAAC,MAAA,MAA2B;AAAA,EACnE,MAAM,sBAAA,CACA,KAAA,EACA,WAAA,EAGA,MAAA,EAC8C;AAZ1D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAaY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,sBAAA,CAAuB,sBAAA;AAAA,QACnB,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,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,sBAAA,KAAV,IAAA,GAAA,EAAA,GAAoC,IAAA;AAAA,EACjD,CAAA;AAAA,EACA,MAAM,sBAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EAC8C;AAlC1D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmCY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,sBAAA,CAAuB,sBAAA;AAAA,QACnB,qBAAA;AAAA,UAAA,CACA,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;AAC7B,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,sBAAA,KAAV,IAAA,GAAA,EAAA,GAAoC,IAAA;AAAA,EACjD,CAAA;AAAA,EACA,MAAM,mBAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EAC2C;AAzDvD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0DY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,sBAAA,CAAuB,mBAAA;AAAA,QACnB,qBAAA;AAAA,UAAA,CACA,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;AAC7B,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,EAC9C,CAAA;AAAA,EACA,MAAM,mBAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EAC2C;AAhFvD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiFY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,sBAAA,CAAuB,mBAAA;AAAA,QACnB,qBAAA;AAAA,UAAA,CACA,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;AAC7B,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,EAC9C,CAAA;AAAA,EACA,MAAM,oBAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EAC4C;AAvGxD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwGY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,sBAAA,CAAuB,oBAAA;AAAA,QACnB,qBAAA;AAAA,UAAA,CACA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAb,IAAA,GAAA,EAAA,GAAqB,4BAAA;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,KACJ;AACA,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,oBAAA,KAAV,IAAA,GAAA,EAAA,GAAkC,IAAA;AAAA,EAC/C;AACN,CAAA;;;ACvHO,IAAM,kBAAA,GAAqB;AAAA,EAC9B,eAAA,EAAiB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGtB,KAAK;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,EAInB,gBAAA,EAAkB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGvB,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,kBAAA,EAAoB,CAAC,KAAA,KAAkB;AAAA;AAAA;AAAA,gBAAA,EAGzB,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;;;AC/BO,IAAM,yBAAA,GAA4B,CAAC,MAAA,MAA2B;AAAA,EAC/D,MAAM,kBAAA,CACA,KAAA,EACA,WAAA,EAGA,MAAA,EAC0C;AAZtD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAaY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,kBAAA,CAAmB,kBAAA;AAAA,QACf,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,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,EAC7C,CAAA;AAAA,EACA,MAAM,kBAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EAC0C;AAlCtD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmCY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,kBAAA,CAAmB,kBAAA;AAAA,QACf,qBAAA;AAAA,UAAA,CACA,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;AAC7B,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,EAC7C,CAAA;AAAA,EACA,MAAM,eAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EACuC;AAzDnD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0DY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,kBAAA,CAAmB,eAAA;AAAA,QACf,qBAAA;AAAA,UAAA,CACA,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;AAC7B,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,eAAA,KAAV,IAAA,GAAA,EAAA,GAA6B,IAAA;AAAA,EAC1C,CAAA;AAAA,EACA,MAAM,eAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EACuC;AAhFnD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiFY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,kBAAA,CAAmB,eAAA;AAAA,QACf,qBAAA;AAAA,UAAA,CACA,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;AAC7B,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,eAAA,KAAV,IAAA,GAAA,EAAA,GAA6B,IAAA;AAAA,EAC1C,CAAA;AAAA,EACA,MAAM,gBAAA,CACA,KAAA,EACA,WAAA,EAIA,MAAA,EACwC;AAvGpD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwGY,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAA;AAAA,MAIrB,kBAAA,CAAmB,gBAAA;AAAA,QACf,qBAAA;AAAA,UAAA,CACA,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;AAC7B,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,EAC3C;AACN,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\n // admin dashboard stats\n getUserTypeCounts: (query: string) => `\n query getUserTypeCounts {\n getUserTypeCounts {\n ${query}\n }\n }\n `,\n getMonthlyUserStatsByYear: (query: string) => `\n query getMonthlyUserStatsByYear($year: Int!) {\n getMonthlyUserStatsByYear(year: $year) {\n ${query}\n }\n }\n `,\n // mobile dashboard stats\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 getUsers(user: $user, userIds: $userIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n updateUser: (query: string) => `\n mutation updateUser($userId: String!, $user: UserInput, $imageType: String) {\n updateUser(userId: $userId, user: $user, imageType: $imageType) {\n ${query}\n }\n }\n `,\n}\n\nexport default userSchema","import { Account, MonthlyUserStat, Notification, NotificationChannels, ProductCounts, RestockCounts, SaleCounts, ServiceUpdate, TransactionCounts, User, UserNotification, UserNotificationSettings, UserSetting, UserTypeCounts, 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)[];\nexport type UserNotificationFields = (keyof UserNotification)[];\nexport type NotificationFields = (keyof Notification)[]\nexport type MonthlyUserStatFields = (keyof MonthlyUserStat)[]\nexport type UserTypeCountsFields = (keyof UserTypeCounts)[]\n\n\n\n\nexport const userTypeCountsQuery:UserTypeCountsFields = [\n \"customers\", \"distributors\", \"manufacturer\", \"total\"\n]\nexport const monthlyUserStatQuery:MonthlyUserStatFields = [\n \"month\", \"total\"\n]\nexport const notificationQuery: NotificationFields = [\n \"createdAt\",\n \"description\",\n \"id\",\n \"notificationAction\",\n \"notificationStatus\",\n \"notificationType\",\n \"title\",\n \"updatedAt\"\n]\nexport const userNotificationQuery:UserNotificationFields = [\n \"createdAt\",\n \"id\",\n \"notificationStatus\",\n \"updatedAt\",\n \"userId\",\n \"itemId\",\n \"notificationId\",\n \"notification\",\n \"storeId\"\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\", \"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, CustomersProductCount, Price, Product, ProductAttribute, ProductCategory, ProductName, ProductPackage, Stock, Store, StoreCategory, StoreCategoryProduct } from \"../../types\";\n\n\n\nexport type CustomersProductCountFields = (keyof CustomersProductCount)[]\nexport const customersProductCountQuery: CustomersProductCountFields = [\n \"count\",\n \"storeId\",\n \"userId\"\n]\n\n\nexport type StoreCategoryProductFields = (keyof StoreCategoryProduct)[]\nexport const storeCategoryProductQuery: StoreCategoryProductFields = [\n \"_id\",\n \"createdAt\",\n \"productId\",\n \"storeCategoryId\"\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 MonthlyUserStat,\n ProductCounts,\n RestockCounts,\n SaleCounts,\n Store,\n TransactionCounts,\n User,\n UserSetting,\n UserType, \n UserTypeCounts\n} from \"../../../types\";\nimport { AccountFields, MonthlyUserStatFields, monthlyUserStatQuery, ProductCountsFields, productCountsQuery, RestockCountsFields, restockCountsQuery, SaleCountsFields, saleCountsQuery, TransactionCountsFields, transactionCountsQuery, UserFields, userQuery, UserSettingFields, userSettingQuery, UserTypeCountsFields, userTypeCountsQuery } from \"../user.entity\";\nimport { AddressFields, addressQuery, StoreFields, storeQuery } from \"../../inventory/entities\";\nimport { getAccountResponseNestedFields } from \"./account.type\"\n\n// admin dashboard stats \n\nexport interface GetUserTypeCountsResponse {\n userTypeCounts: UserTypeCounts\n}\nexport const getUserTypeCountsResponse:(keyof GetUserTypeCountsResponse)[] = [\n \"userTypeCounts\"\n]\nexport interface GetUserTypeCountsResponseNestedFields {\n userTypeCounts: UserTypeCountsFields\n}\nexport const getUserTypeCountsResponseNestedFields:GetUserTypeCountsResponseNestedFields = {\n userTypeCounts: userTypeCountsQuery\n}\n\n\nexport interface GetMonthlyUserStatsByYearRequest {\n year: number;\n}\nexport interface GetMonthlyUserStatsByYearResponse {\n monthlyUserStat: MonthlyUserStat[];\n}\nexport interface GetMonthlyUserStatsByYearResponseNestedFields {\n monthlyUserStat: MonthlyUserStatFields;\n}\nexport const getMonthlyUserStatsByYearResponse: (keyof GetMonthlyUserStatsByYearResponse)[] = [\n \"monthlyUserStat\"\n]\nexport const getMonthlyUserStatsByYearResponseNestedFields: GetMonthlyUserStatsByYearResponseNestedFields = {\n monthlyUserStat: monthlyUserStatQuery\n}\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 // search?: string;\n userIds?: string[];\n user?: Partial<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: Partial<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 {\n uploadImageResponse: (keyof UploadUserImageResponse)[]\n user: UserFields\n}\nexport const updateUserResponse: (keyof UpdateUserResponse)[] = [\n \"uploadImageResponse\", \"user\"\n]\n\nexport const updateUserResponseNestedFields: UpdateUserResponseNestedFields = {\n uploadImageResponse: [\"fileUrl\", \"url\"],\n user: userQuery,\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 { GetMonthlyUserStatsByYearRequest, getMonthlyUserStatsByYearResponse, GetMonthlyUserStatsByYearResponse, getMonthlyUserStatsByYearResponseNestedFields, GetMonthlyUserStatsByYearResponseNestedFields, getUserDashStatsResponse, GetUserDashStatsResponse, getUserDashStatsResponseNestedFields, GetUserDashStatsResponseNestedFields, GetUserRequest, getUserResponse, GetUserResponse, GetUserResponseNestedFields, getUserResponseNestedFields, GetUsersRequest, getUsersResponse, GetUsersResponse, getUsersResponseNestedFields, GetUsersResponseNestedFields, getUserTypeCountsResponse, GetUserTypeCountsResponse, getUserTypeCountsResponseNestedFields, GetUserTypeCountsResponseNestedFields, meResponse, MeResponse, meResponseNestedFields, MeResponseNestedFields, UpdateUserRequest, updateUserResponse, UpdateUserResponse, updateUserResponseNestedFields, UpdateUserResponseNestedFields } from \"./types/user.type\";\nimport { GraphQLResponse } from \"../../types\";\n\nexport const createUserService = (client: GraphQLClient) => ({ \n // admin dashboard stats \n async getUserTypeCounts(\n fetchFields?: {\n root?: (keyof GetUserTypeCountsResponse)[],\n nestedFields?: GetUserTypeCountsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetUserTypeCountsResponse|undefined>{\n const res = await client.request<{ getUserTypeCounts: GetUserTypeCountsResponse }>(\n userSchema.getUserTypeCounts(\n gqlQueryStringBuilder<GetUserTypeCountsResponse, GetUserTypeCountsResponseNestedFields>(\n fetchFields?.root ?? getUserTypeCountsResponse,\n fetchFields?.nestedFields ?? getUserTypeCountsResponseNestedFields\n )\n ), \n {},\n option\n );\n return res.data?.getUserTypeCounts;\n },\n async getMonthlyUserStatsByYear(\n input: GetMonthlyUserStatsByYearRequest,\n fetchFields?: {\n root?: (keyof GetMonthlyUserStatsByYearResponse)[],\n nestedFields?: GetMonthlyUserStatsByYearResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetMonthlyUserStatsByYearResponse|undefined>{\n const res = await client.request<{ getMonthlyUserStatsByYear: GetMonthlyUserStatsByYearResponse }>(\n userSchema.getMonthlyUserStatsByYear(\n gqlQueryStringBuilder<GetMonthlyUserStatsByYearResponse, GetMonthlyUserStatsByYearResponseNestedFields>(\n fetchFields?.root ?? getMonthlyUserStatsByYearResponse,\n fetchFields?.nestedFields ?? getMonthlyUserStatsByYearResponseNestedFields\n )\n ), \n input,\n option\n );\n return res.data?.getMonthlyUserStatsByYear;\n },\n // user dashboard stats\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 async updateUser(\n input: UpdateUserRequest,\n fetchFields?: {\n root?: (keyof UpdateUserResponse)[],\n nestedFields?: UpdateUserResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GraphQLResponse<{ updateUser: UpdateUserResponse }>> {\n return client.request<{ updateUser: UpdateUserResponse }>(\n userSchema.updateUser(\n gqlQueryStringBuilder<UpdateUserResponse, UpdateUserResponseNestedFields>(\n fetchFields?.root ?? updateUserResponse,\n fetchFields?.nestedFields ?? updateUserResponseNestedFields\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>","export const userNotificationSchema = {\n getUserNotifications: (query: string) => `\n query getUserNotifications($search: String, $userNotification: UserNotificationInput, $userNotificationIds: [String], $limit: Int!, $skip: Int!) {\n getUserNotifications(search: $search, userNotification: $userNotification, userNotificationIds: $userNotificationIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n}","import { UserNotification } from \"../../../types\";\nimport { NotificationFields, notificationQuery, UserNotificationFields, userNotificationQuery } from \"../user.entity\";\n\nexport interface GetUserNotificationsRequest {\n search?: string;\n userNotificationIds?: string[]\n userNotification?: Partial<UserNotification>\n limit: number\n skip: number \n}\nexport interface GetUserNotificationsResponse {\n userNotifications: UserNotification[]\n}\nexport const getUserNotificationsResponseFields: (keyof GetUserNotificationsResponse)[] = [\"userNotifications\"]\nexport interface GetUserNotificationsResponseNestedFields {\n notification: NotificationFields\n userNotifications: UserNotificationFields\n}\nexport const getUserNotificationsResponseNestedFields: GetUserNotificationsResponseNestedFields = {\n notification: notificationQuery,\n userNotifications: userNotificationQuery\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { userNotificationSchema } from \"./schemas/user-notification.schema\";\nimport { GetUserNotificationsRequest, GetUserNotificationsResponse, getUserNotificationsResponseFields, getUserNotificationsResponseNestedFields, GetUserNotificationsResponseNestedFields } from \"./types/user-notification.type\";\n\nexport const createUserNotificationService = (client: GraphQLClient) => ({\n async getUserNotifications(\n input: GetUserNotificationsRequest,\n fetchFields?: {\n root?: (keyof GetUserNotificationsResponse)[],\n nestedFields?: GetUserNotificationsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetUserNotificationsResponse|undefined>{\n const res = await client.request<{ getUserNotifications: GetUserNotificationsResponse }>(\n userNotificationSchema.getUserNotifications(\n gqlQueryStringBuilder<GetUserNotificationsResponse, GetUserNotificationsResponseNestedFields>(\n fetchFields?.root ?? getUserNotificationsResponseFields,\n fetchFields?.nestedFields ?? getUserNotificationsResponseNestedFields\n )\n ), \n input,\n option\n );\n return res.data?.getUserNotifications;\n },\n})\n\nexport type UserNotificationService = ReturnType<typeof createUserNotificationService>","import { CustomersProductCount, Product, ProductCategory } from \"../../../types\"\nimport { \n AttributeFields,\n attributeQuery,\n CategoryFields,\n categoryQuery,\n CustomersProductCountFields,\n customersProductCountQuery,\n PackageFields, packageQuery, \n PriceFields, \n priceQuery, \n ProductFields, productNameQuery, ProductNamesFields, \n productQuery, \n StockFields,\n stockQuery} from \"../entities\"\n\n\n\nexport interface GetCustomerProductCountsByIdsRequest {\n userIds: string[]\n}\nexport interface GetCustomerProductCountsByIdsResponse {\n customersProductCounts: CustomersProductCount[]\n}\nexport const getCustomerProductCountsByIdsResponse: (keyof GetCustomerProductCountsByIdsResponse)[] = [\n \"customersProductCounts\"\n]\nexport interface GetCustomerProductCountsByIdsResponseNestedFields {\n customersProductCounts: CustomersProductCountFields\n}\nexport const getCustomerProductCountsByIdsResponseNestedFields: GetCustomerProductCountsByIdsResponseNestedFields = {\n customersProductCounts: customersProductCountQuery\n}\n\nexport interface GetProductRequest {\n product: Partial<Product>\n template?: boolean;\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: Partial<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?: Partial<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: Partial<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 type GetStoreCountRequest = GetStoreRequest;\nexport interface GetStoreCountResponse {\n count: number;\n}\nexport const getStoreCountResponse: (keyof GetStoreCountResponse)[] = [\n \"count\"\n]\n\nexport interface GetStoreRequest {\n store: Partial<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?: Partial<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: Partial<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","import { StoreCategoryProduct } from \"../../../types\";\nimport { StoreCategoryProductFields, storeCategoryProductQuery } from \"../entities\";\n\nexport interface GetStoreCategoryProductRequest {\n storeCategoryProduct: Partial<StoreCategoryProduct>;\n}\nexport interface GetStoreCategoryProductResponse {\n storeCategoryProduct: StoreCategoryProduct;\n}\nexport const getStoreCategoryProductResponseFields: (keyof GetStoreCategoryProductResponse)[] = [\n \"storeCategoryProduct\"\n]\nexport interface GetStoreCategoryProductResponseNestedFields {\n storeCategoryProduct: StoreCategoryProductFields;\n}\nexport const getStoreCategoryProductResponseNestedFields: GetStoreCategoryProductResponseNestedFields = {\n storeCategoryProduct: storeCategoryProductQuery\n}\n\n// get store categories \nexport interface GetStoreCategoryProductsRequest {\n search?: string;\n storeCategoryProductIds?: string[];\n storeCategoryProduct?: Partial<StoreCategoryProduct>[];\n limit: number;\n skip: number;\n}\nexport interface GetStoreCategoryProductsResponse {\n storeCategoryProducts: StoreCategoryProduct[];\n}\nexport const getStoreCategoryProductsResponseFields: (keyof GetStoreCategoryProductsResponse)[] = [\n \"storeCategoryProducts\"\n]\nexport interface GetStoreCategoryProductsResponseNestedFields extends Omit<GetStoreCategoryProductResponseNestedFields, \"storeCategoryProduct\"> {\n storeCategoryProducts: StoreCategoryProductFields;\n}\nexport const getStoreCategoryProductsResponseNestedFields: GetStoreCategoryProductsResponseNestedFields = {\n storeCategoryProducts: storeCategoryProductQuery\n}\n\nexport type CreateStoreCategoryProductRequest = GetStoreCategoryProductRequest;\nexport type CreateStoreCategoryProductResponse = GetStoreCategoryProductResponse;\nexport const createStoreCategoryProductResponseFields = getStoreCategoryProductResponseFields;\nexport type CreateStoreCategoryProductResponseNestedFields = GetStoreCategoryProductResponseNestedFields;\nexport const createStoreCategoryProductResponseNestedFields = getStoreCategoryProductResponseNestedFields;\n\nexport interface UpdateStoreCategoryProductRequest {\n storeCategoryProduct: Partial<StoreCategoryProduct>;\n storeCategoryProductId: string;\n}\nexport type UpdateStoreCategoryProductResponse = GetStoreCategoryProductResponse;\nexport const updateStoreCategoryProductResponseFields = getStoreCategoryProductResponseFields;\nexport type UpdateStoreCategoryProductResponseNestedFields = GetStoreCategoryProductResponseNestedFields;\nexport const updateStoreCategoryProductResponseNestedFields = getStoreCategoryProductResponseNestedFields;\n\nexport interface RemoveStoreCategoryProductRequest {\n storeCategoryProductId: string;\n}\nexport type RemoveStoreCategoryProductResponse = RemoveStoreCategoryProductRequest;\nexport const removeStoreCategoryProductResponseFields: (keyof RemoveStoreCategoryProductResponse)[] = [\n \"storeCategoryProductId\"\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];","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 getCustomerProductCountsByIds: (query: string) => `\n query getCustomerProductCountsByIds($userIds: [String]!) {\n getCustomerProductCountsByIds(userIds: $userIds) {\n ${query}\n }\n }\n `,\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 GetCustomerProductCountsByIdsRequest,\n GetCustomerProductCountsByIdsResponse,\n getCustomerProductCountsByIdsResponse,\n GetCustomerProductCountsByIdsResponseNestedFields,\n getCustomerProductCountsByIdsResponseNestedFields, \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 getCustomerProductCountsByIds(\n input: GetCustomerProductCountsByIdsRequest, \n fetchFields?: {\n root?: (keyof GetCustomerProductCountsByIdsResponse)[],\n nestedFields?: GetCustomerProductCountsByIdsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetCustomerProductCountsByIdsResponse | null> {\n const res = await client.request<{ getCustomerProductCountsByIds: GetCustomerProductCountsByIdsResponse }, GetCustomerProductCountsByIdsRequest>(\n productSchema.getCustomerProductCountsByIds(\n gqlQueryStringBuilder<GetCustomerProductCountsByIdsResponse, GetCustomerProductCountsByIdsResponseNestedFields>(\n fetchFields?.root ?? getCustomerProductCountsByIdsResponse,\n fetchFields?.nestedFields ?? getCustomerProductCountsByIdsResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getCustomerProductCountsByIds ?? null;\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})\n\nexport type CreateStockService = ReturnType<typeof createStockService>","export const storeSchema = {\n getStoreCount: (query: string) => `\n query getStoreCount($store: StoreInput!) {\n getStoreCount(store: $store) {\n ${query}\n }\n }\n `,\n getStore: (query: string) => `\n query getStore($store: StoreInput!) {\n getStore(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 getStores(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 GetStoreCountRequest, \n getStoreCountResponse, \n GetStoreCountResponse, \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<{ deleteStore: RemoveStoreResponse }, RemoveStoreRequest>(\n storeSchema.deleteStore(\n gqlQueryStringBuilder<RemoveStoreResponse>(\n fetchFields?.root ?? removeStoreResponse,\n )\n ), \n input, \n option\n );\n return res.data?.deleteStore ?? 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<{ createStore: 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?.createStore ?? null;\n },\n async getStoreCount(\n input: GetStoreCountRequest, \n fetchFields?: {\n root?: (keyof GetStoreCountResponse)[],\n },\n option?: RequestOption\n ): Promise<GetStoreCountResponse | null> {\n const res = await client.request<{ getStoreCount: GetStoreCountResponse }, GetStoreCountRequest>(\n storeSchema.getStoreCount(\n gqlQueryStringBuilder<GetStoreCountResponse>(\n fetchFields?.root ?? getStoreCountResponse,\n )\n ), \n input, \n option\n );\n return res.data?.getStoreCount ?? 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})\n\nexport type StoreService = ReturnType<typeof createStoreService>;","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 getStoreCategory(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 getStoreCategories(search: $search, storeCategory: $storeCategory, storeCategoryIds: $storeCategoryIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\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 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})\n\nexport type StoreCategoryService = ReturnType<typeof createStoreCategoryService>","export const storeCategoryProductSchema = {\n createStoreCategoryProduct: (query: string) => `\n mutation createStoreCategoryProduct($storeCategoryProduct: StoreCategoryProductInput!) {\n createStoreCategoryProduct(storeCategoryProduct: $storeCategoryProduct) {\n ${query}\n }\n }\n `,\n updateStoreCategoryProduct: (query: string) => `\n mutation updateStoreCategoryProduct($storeCategoryProductId: String!, $storeCategoryProduct: StoreCategoryProductInput!) {\n updateStoreCategoryProduct(storeCategoryProductId: $storeCategoryProductId, storeCategoryProduct: $storeCategoryProduct) {\n ${query}\n }\n }\n `,\n removeStoreCategoryProduct: (query: string) => `\n mutation removeStoreCategoryProduct($storeCategoryProductId: String!) {\n removeStoreCategoryProduct(storeCategoryProductId: $storeCategoryProductId) {\n ${query}\n }\n }\n `,\n // get \n getStoreCategoryProduct: (query: string) => `\n query getStoreCategoryProduct($storeCategoryProduct: StoreCategoryProductInput!) {\n getStoreCategoryProduct(storeCategoryProduct: $storeCategoryProduct) {\n ${query}\n }\n }\n `,\n getStoreCategoryProducts: (query: string) => `\n query getStoreCategoryProducts($search: String, $storeCategoryProduct: StoreCategoryProductInput, $storeCategoryProductIds: [String], $limit: Int!, $skip: Int!) {\n getStoreCategoryProducts(search: $search, storeCategoryProduct: $storeCategoryProduct, storeCategoryProductIds: $storeCategoryProductIds, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { storeCategoryProductSchema } from \"./schema/store-category-product.schema\";\nimport { CreateStoreCategoryProductRequest, CreateStoreCategoryProductResponse, createStoreCategoryProductResponseFields, createStoreCategoryProductResponseNestedFields, CreateStoreCategoryProductResponseNestedFields, GetStoreCategoryProductsRequest, GetStoreCategoryProductsResponse, getStoreCategoryProductsResponseFields, getStoreCategoryProductsResponseNestedFields, GetStoreCategoryProductsResponseNestedFields, GetStoreCategoryProductRequest, GetStoreCategoryProductResponse, getStoreCategoryProductResponseFields, getStoreCategoryProductResponseNestedFields, GetStoreCategoryProductResponseNestedFields, RemoveStoreCategoryProductRequest, RemoveStoreCategoryProductResponse, removeStoreCategoryProductResponseFields, UpdateStoreCategoryProductRequest, UpdateStoreCategoryProductResponse, updateStoreCategoryProductResponseFields, updateStoreCategoryProductResponseNestedFields, UpdateStoreCategoryProductResponseNestedFields } from \"./types/store-category-product.type\";\n\nexport const createStoreCategoryProductService = (client: GraphQLClient) => ({\n async getStoreCategoryProducts(\n input: GetStoreCategoryProductsRequest, \n fetchFields?: {\n root?: (keyof GetStoreCategoryProductsResponse)[],\n nestedFields?: GetStoreCategoryProductsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStoreCategoryProductsResponse | null> {\n const res = await client.request<{ getStoreCategoryProducts: GetStoreCategoryProductsResponse }, GetStoreCategoryProductsRequest>(\n storeCategoryProductSchema.getStoreCategoryProducts(\n gqlQueryStringBuilder<GetStoreCategoryProductsResponse, GetStoreCategoryProductsResponseNestedFields>(\n fetchFields?.root ?? getStoreCategoryProductsResponseFields,\n fetchFields?.nestedFields ?? getStoreCategoryProductsResponseNestedFields,\n )\n ), \n input, \n option\n ) \n return res.data?.getStoreCategoryProducts ?? null;\n },\n async getStoreCategoryProduct(\n input: GetStoreCategoryProductRequest, \n fetchFields?: {\n root?: (keyof GetStoreCategoryProductResponse)[],\n nestedFields?: GetStoreCategoryProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetStoreCategoryProductResponse | null> {\n const res = await client.request<{ getStoreCategoryProduct: GetStoreCategoryProductResponse }, GetStoreCategoryProductRequest>(\n storeCategoryProductSchema.getStoreCategoryProduct(\n gqlQueryStringBuilder<GetStoreCategoryProductResponse, GetStoreCategoryProductResponseNestedFields>(\n fetchFields?.root ?? getStoreCategoryProductResponseFields,\n fetchFields?.nestedFields ?? getStoreCategoryProductResponseNestedFields,\n )\n ), \n input, \n option\n ) \n return res.data?.getStoreCategoryProduct ?? null;\n },\n async updateStoreCategoryProduct(\n input: UpdateStoreCategoryProductRequest, \n fetchFields?: {\n root?: (keyof UpdateStoreCategoryProductResponse)[],\n nestedFields?: UpdateStoreCategoryProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateStoreCategoryProductResponse | null> {\n const res = await client.request<{ updateStoreCategoryProduct: UpdateStoreCategoryProductResponse }, UpdateStoreCategoryProductRequest>(\n storeCategoryProductSchema.updateStoreCategoryProduct(\n gqlQueryStringBuilder<UpdateStoreCategoryProductResponse, UpdateStoreCategoryProductResponseNestedFields>(\n fetchFields?.root ?? updateStoreCategoryProductResponseFields,\n fetchFields?.nestedFields ?? updateStoreCategoryProductResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.updateStoreCategoryProduct ?? null;\n },\n async createStoreCategoryProduct(\n input: CreateStoreCategoryProductRequest, \n fetchFields?: {\n root?: (keyof CreateStoreCategoryProductResponse)[],\n nestedFields?: CreateStoreCategoryProductResponseNestedFields\n },\n option?: RequestOption\n ): Promise<CreateStoreCategoryProductResponse | null> {\n const res = await client.request<{ createStoreCategoryProduct: CreateStoreCategoryProductResponse }, CreateStoreCategoryProductRequest>(\n storeCategoryProductSchema.createStoreCategoryProduct(\n gqlQueryStringBuilder<CreateStoreCategoryProductResponse, CreateStoreCategoryProductResponseNestedFields>(\n fetchFields?.root ?? createStoreCategoryProductResponseFields,\n fetchFields?.nestedFields ?? createStoreCategoryProductResponseNestedFields,\n )\n ), \n input, \n option\n );\n return res.data?.createStoreCategoryProduct ?? null;\n },\n async removeStoreCategoryProduct(\n input: RemoveStoreCategoryProductRequest, \n fetchFields?: {\n root?: (keyof RemoveStoreCategoryProductResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveStoreCategoryProductResponse | null> {\n const res = await client.request<{ removeStoreCategoryProduct: RemoveStoreCategoryProductResponse }, RemoveStoreCategoryProductRequest>(\n storeCategoryProductSchema.removeStoreCategoryProduct(\n gqlQueryStringBuilder<RemoveStoreCategoryProductResponse>(\n fetchFields?.root ?? removeStoreCategoryProductResponseFields,\n )\n ), \n input, \n option\n );\n return res.data?.removeStoreCategoryProduct ?? null;\n },\n})\n\nexport type StoreCategoryProductService = ReturnType<typeof createStoreCategoryProductService>","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 \"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\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>","export const paystackSchema = {\n paystackInitializePayment: (query: string) => `\n mutation paystackInitializePayment($userId: String!) {\n paystackInitializePayment(userId: $userId) {\n ${query}\n }\n }\n `\n}","export interface PaystackInitializePaymentRequest{\n userId: string;\n}\nexport interface PaystackInitializePaymentResponse{\n authorization_url: string;\n access_code: string;\n reference: string;\n}\nexport const paystackInitializePaymentResponse:(keyof PaystackInitializePaymentResponse)[] = [\n \"access_code\", \n \"authorization_url\", \n \"reference\"\n]","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { paystackSchema } from \"./schemas/paystack.schema\";\nimport { PaystackInitializePaymentRequest, paystackInitializePaymentResponse, PaystackInitializePaymentResponse } from \"./types/paystack\";\n\nexport const createPaystackService = (client: GraphQLClient) => ({\n async paystackInitializePayment(\n input: PaystackInitializePaymentRequest,\n fetchFields?: {\n root?: (keyof PaystackInitializePaymentResponse)[],\n },\n option?: RequestOption\n ):Promise<PaystackInitializePaymentResponse|undefined> {\n const res = await client.request<{ paystackInitializePayment: PaystackInitializePaymentResponse }>(\n paystackSchema.paystackInitializePayment(\n gqlQueryStringBuilder<PaystackInitializePaymentResponse>(\n fetchFields?.root ?? paystackInitializePaymentResponse\n )\n ),\n input,\n option\n );\n return res.data?.paystackInitializePayment;\n }\n})\n\nexport type PaystackService = ReturnType<typeof createPaystackService>","import { Subscription, SubscriptionPlan, \n SubscriptionPlanFeature } from \"../../types\";\n\nexport type SubscriptionPlanFeatureFields = (keyof SubscriptionPlanFeature)[];\nexport type SubscriptionPlanFields = (keyof SubscriptionPlan)[];\nexport type SubscriptionFields = (keyof Subscription)[]\n\n\n\nexport const subscriptionQuery: SubscriptionFields = [\n \"cancelAtPeriodEnd\",\n \"canceledAt\",\n \"createdAt\",\n \"currency\",\n \"currentPeriodEnd\",\n \"currentPeriodStart\",\n \"defaultPaymentMethodId\",\n \"id\",\n \"price\",\n \"subscriptionPlanId\",\n \"subscriptionStatus\",\n \"trialEnd\",\n \"updatedAt\",\n \"userId\",\n \"version\"\n]\nexport const subscriptionPlanFeatureQuery: SubscriptionPlanFeatureFields = [\n \"id\", \n \"title\", \n \"description\", \n \"createdAt\"\n]\nexport const subscriptionPlanQuery: SubscriptionPlanFields = [\n \"id\", \n \"code\", \n \"title\", \n \"description\", \n \"price\", \n \"currency\", \n \"period\", \n \"trialDays\", \n \"subscriptionPlanStatus\", \n \"createdAt\", \n \"updatedAt\", \n \"subscriptionPlanFeatureIds\",\n \"features\",\n]","import { SubscriptionPlanFeature } from \"../../../types\";\nimport { SubscriptionPlanFeatureFields, subscriptionPlanFeatureQuery } from \"../subscription.entity\";\n\nexport interface GetSubscriptionPlanFeatureRequest {\n subscriptionPlanFeature: Partial<SubscriptionPlanFeature>;\n}\nexport interface GetSubscriptionPlanFeatureResponse {\n subscriptionPlanFeature: SubscriptionPlanFeature\n}\nexport const getSubscriptionPlanFeatureResponse: (keyof GetSubscriptionPlanFeatureResponse)[] = [\n \"subscriptionPlanFeature\"\n]\nexport interface GetSubscriptionPlanFeatureResponseNestedFields {\n subscriptionPlanFeature: SubscriptionPlanFeatureFields\n}\nexport const _getSubscriptionPlanFeatureResponseNestedFields: \nOmit<GetSubscriptionPlanFeatureResponseNestedFields, \"subscriptionPlanFeature\"> = {\n \n}\nexport const getSubscriptionPlanFeatureResponseNestedFields: GetSubscriptionPlanFeatureResponseNestedFields = {\n ..._getSubscriptionPlanFeatureResponseNestedFields,\n subscriptionPlanFeature: subscriptionPlanFeatureQuery\n}\n\n\n// gets\nexport interface GetSubscriptionPlanFeaturesRequest {\n subscriptionPlanFeature?: Partial<SubscriptionPlanFeature>;\n subscriptionPlanFeatureIds?: string[];\n search?: string;\n limit: number;\n skip: number;\n}\nexport interface GetSubscriptionPlanFeaturesResponse {\n subscriptionPlanFeatures: SubscriptionPlanFeature[]\n total: number\n}\nexport const getSubscriptionPlanFeaturesResponse: (keyof GetSubscriptionPlanFeaturesResponse)[] = [\n \"subscriptionPlanFeatures\",\n \"total\"\n]\nexport interface GetSubscriptionPlanFeaturesResponseNestedFields extends \nOmit<GetSubscriptionPlanFeatureResponseNestedFields, \"subscriptionPlanFeature\"> {\n subscriptionPlanFeatures: SubscriptionPlanFeatureFields\n}\nexport const getSubscriptionPlanFeaturesResponseNestedFields: GetSubscriptionPlanFeaturesResponseNestedFields = {\n ..._getSubscriptionPlanFeatureResponseNestedFields,\n subscriptionPlanFeatures: subscriptionPlanFeatureQuery\n}\n\n// create \nexport interface AddSubscriptionPlanFeatureRequest {\n subscriptionPlanFeature: Partial<SubscriptionPlanFeature>;\n}\nexport interface AddSubscriptionPlanFeatureResponse {\n subscriptionPlanFeature: SubscriptionPlanFeature\n}\nexport const addSubscriptionPlanFeatureResponse: (keyof AddSubscriptionPlanFeatureResponse)[] = getSubscriptionPlanFeatureResponse;\nexport type AddSubscriptionPlanFeatureResponseNestedFields = GetSubscriptionPlanFeatureResponseNestedFields;\nexport const addSubscriptionPlanFeatureResponseNestedFields: AddSubscriptionPlanFeatureResponseNestedFields = getSubscriptionPlanFeatureResponseNestedFields;\n\n// update\nexport interface UpdateSubscriptionPlanFeatureRequest {\n subscriptionPlanFeatureId: string;\n subscriptionPlanFeature: Partial<SubscriptionPlanFeature>;\n}\nexport type UpdateSubscriptionPlanFeatureResponse = GetSubscriptionPlanFeatureResponse;\nexport const updateSubscriptionPlanFeatureResponse: (keyof UpdateSubscriptionPlanFeatureResponse)[] = getSubscriptionPlanFeatureResponse;\nexport type UpdateSubscriptionPlanFeatureResponseNestedFields = GetSubscriptionPlanFeatureResponseNestedFields;\nexport const updateSubscriptionPlanFeatureResponseNestedFields: UpdateSubscriptionPlanFeatureResponseNestedFields = getSubscriptionPlanFeatureResponseNestedFields;\n\n// remove \nexport interface RemoveSubscriptionPlanFeatureRequest {\n subscriptionPlanFeatureId: string;\n}\nexport interface RemoveSubscriptionPlanFeatureResponse {\n subscriptionPlanFeatureId: string;\n}\nexport const removeSubscriptionPlanFeatureResponse: (keyof RemoveSubscriptionPlanFeatureResponse)[] = [\n \"subscriptionPlanFeatureId\"\n];\n","import { SubscriptionPlan } from \"../../../types\";\nimport { SubscriptionPlanFields, subscriptionPlanQuery } from \"../subscription.entity\";\n\nexport interface GetSubscriptionPlanRequest {\n subscriptionPlan: Partial<SubscriptionPlan>;\n}\nexport interface GetSubscriptionPlanResponse {\n subscriptionPlan: SubscriptionPlan\n}\nexport const getSubscriptionPlanResponse: (keyof GetSubscriptionPlanResponse)[] = [\n \"subscriptionPlan\"\n]\nexport interface GetSubscriptionPlanResponseNestedFields {\n subscriptionPlan: SubscriptionPlanFields\n}\nexport const _getSubscriptionPlanResponseNestedFields: \nOmit<GetSubscriptionPlanResponseNestedFields, \"subscriptionPlan\"> = {\n \n}\nexport const getSubscriptionPlanResponseNestedFields: GetSubscriptionPlanResponseNestedFields = {\n ..._getSubscriptionPlanResponseNestedFields,\n subscriptionPlan: subscriptionPlanQuery\n}\n\n\n// gets\nexport interface GetSubscriptionPlansRequest {\n subscriptionPlan?: Partial<SubscriptionPlan>;\n subscriptionPlanIds?: string[];\n search?: string;\n limit: number;\n skip: number;\n}\nexport interface GetSubscriptionPlansResponse {\n subscriptionPlans: SubscriptionPlan[]\n total: number\n}\nexport const getSubscriptionPlansResponse: (keyof GetSubscriptionPlansResponse)[] = [\n \"subscriptionPlans\",\n \"total\"\n]\nexport interface GetSubscriptionPlansResponseNestedFields extends \nOmit<GetSubscriptionPlanResponseNestedFields, \"subscriptionPlan\"> {\n subscriptionPlans: SubscriptionPlanFields\n}\nexport const getSubscriptionPlansResponseNestedFields: GetSubscriptionPlansResponseNestedFields = {\n ..._getSubscriptionPlanResponseNestedFields,\n subscriptionPlans: subscriptionPlanQuery\n}\n\n// create \nexport interface AddSubscriptionPlanRequest {\n subscriptionPlan: Partial<SubscriptionPlan>;\n}\nexport interface AddSubscriptionPlanResponse {\n subscriptionPlan: SubscriptionPlan\n}\nexport const addSubscriptionPlanResponse: (keyof AddSubscriptionPlanResponse)[] = getSubscriptionPlanResponse;\nexport type AddSubscriptionPlanResponseNestedFields = GetSubscriptionPlanResponseNestedFields;\nexport const addSubscriptionPlanResponseNestedFields: AddSubscriptionPlanResponseNestedFields = getSubscriptionPlanResponseNestedFields;\n\n// update\nexport interface UpdateSubscriptionPlanRequest {\n subscriptionPlanId: string;\n subscriptionPlan: Partial<SubscriptionPlan>;\n}\nexport type UpdateSubscriptionPlanResponse = GetSubscriptionPlanResponse;\nexport const updateSubscriptionPlanResponse: (keyof UpdateSubscriptionPlanResponse)[] = getSubscriptionPlanResponse;\nexport type UpdateSubscriptionPlanResponseNestedFields = GetSubscriptionPlanResponseNestedFields;\nexport const updateSubscriptionPlanResponseNestedFields: UpdateSubscriptionPlanResponseNestedFields = getSubscriptionPlanResponseNestedFields;\n\n// remove \nexport interface RemoveSubscriptionPlanRequest {\n subscriptionPlanId: string;\n}\nexport interface RemoveSubscriptionPlanResponse {\n subscriptionPlanId: string;\n}\nexport const removeSubscriptionPlanResponse: (keyof RemoveSubscriptionPlanResponse)[] = [\n \"subscriptionPlanId\"\n];\n","import { Subscription } from \"../../../types\";\nimport { SubscriptionFields, subscriptionQuery } from \"../subscription.entity\";\n\nexport interface GetSubscriptionRequest {\n subscription: Partial<Subscription>;\n}\nexport interface GetSubscriptionResponse {\n subscription: Subscription\n}\nexport const getSubscriptionResponse: (keyof GetSubscriptionResponse)[] = [\n \"subscription\"\n]\nexport interface GetSubscriptionResponseNestedFields {\n subscription: SubscriptionFields\n}\nexport const _getSubscriptionResponseNestedFields: \nOmit<GetSubscriptionResponseNestedFields, \"subscription\"> = {\n \n}\nexport const getSubscriptionResponseNestedFields: GetSubscriptionResponseNestedFields = {\n ..._getSubscriptionResponseNestedFields,\n subscription: subscriptionQuery\n}\n\n\n// gets\nexport interface GetSubscriptionsRequest {\n subscription?: Partial<Subscription>;\n subscriptionIds?: string[];\n search?: string;\n limit: number;\n skip: number;\n}\nexport interface GetSubscriptionsResponse {\n subscriptions: Subscription[]\n total: number\n}\nexport const getSubscriptionsResponse: (keyof GetSubscriptionsResponse)[] = [\n \"subscriptions\",\n \"total\"\n]\nexport interface GetSubscriptionsResponseNestedFields extends \nOmit<GetSubscriptionResponseNestedFields, \"subscription\"> {\n subscriptions: SubscriptionFields\n}\nexport const getSubscriptionsResponseNestedFields: GetSubscriptionsResponseNestedFields = {\n ..._getSubscriptionResponseNestedFields,\n subscriptions: subscriptionQuery\n}\n\n// create \nexport interface AddSubscriptionRequest {\n subscription: Partial<Subscription>;\n}\nexport interface AddSubscriptionResponse {\n subscription: Subscription\n}\nexport const addSubscriptionResponse: (keyof AddSubscriptionResponse)[] = getSubscriptionResponse;\nexport type AddSubscriptionResponseNestedFields = GetSubscriptionResponseNestedFields;\nexport const addSubscriptionResponseNestedFields: AddSubscriptionResponseNestedFields = getSubscriptionResponseNestedFields;\n\n// update\nexport interface UpdateSubscriptionRequest {\n subscriptionId: string;\n subscription: Partial<Subscription>;\n}\nexport type UpdateSubscriptionResponse = GetSubscriptionResponse;\nexport const updateSubscriptionResponse: (keyof UpdateSubscriptionResponse)[] = getSubscriptionResponse;\nexport type UpdateSubscriptionResponseNestedFields = GetSubscriptionResponseNestedFields;\nexport const updateSubscriptionResponseNestedFields: UpdateSubscriptionResponseNestedFields = getSubscriptionResponseNestedFields;\n\n// remove \nexport interface RemoveSubscriptionRequest {\n subscriptionId: string;\n}\nexport interface RemoveSubscriptionResponse {\n subscriptionId: string;\n}\nexport const removeSubscriptionResponse: (keyof RemoveSubscriptionResponse)[] = [\n \"subscriptionId\"\n];\n","export const subscriptionPlanFeatureSchema = {\n getSubscriptionPlanFeature: (query: string) => `\n query getSubscriptionPlanFeature($subscriptionPlanFeature: SubscriptionPlanFeatureInput!) {\n getSubscriptionPlanFeature(subscriptionPlanFeature: $subscriptionPlanFeature) {\n ${query}\n }\n }\n `,\n getSubscriptionPlanFeatures: (query: string) => `\n query getSubscriptionPlanFeatures($search: String, $subscriptionPlanFeatureIds: [String], $subscriptionPlanFeature: SubscriptionPlanFeatureInput, $limit: Int!, $skip: Int!) {\n getSubscriptionPlanFeatures(search: $search, subscriptionPlanFeatureIds: $subscriptionPlanFeatureIds, subscriptionPlanFeature: $subscriptionPlanFeature, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n addSubscriptionPlanFeature: (query: string) => `\n mutation addSubscriptionPlanFeature($subscriptionPlanFeature: SubscriptionPlanFeatureInput!) {\n addSubscriptionPlanFeature(subscriptionPlanFeature: $subscriptionPlanFeature) {\n ${query}\n }\n }\n `,\n updateSubscriptionPlanFeature: (query: string) => `\n mutation updateSubscriptionPlanFeature($subscriptionPlanFeatureId: String!, $subscriptionPlanFeature: SubscriptionPlanFeatureInput!) {\n updateSubscriptionPlanFeature(subscriptionPlanFeatureId: $subcriptionPlanFeatureId, subscriptionPlanFeature: $subscriptionPlanFeature) {\n ${query}\n }\n }\n `,\n removeSubscriptionPlanFeature: (query: string) => `\n mutation removeSubscriptionPlanFeature($subscriptionPlanFeatureId: String!) {\n removeSubscriptionPlanFeature(subscriptionPlanFeatureId: $subcriptionPlanFeatureId) {\n ${query}\n }\n }\n `\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { subscriptionPlanFeatureSchema } from \"./schemas/subscription-plan-feature.schema\";\nimport { AddSubscriptionPlanFeatureRequest, addSubscriptionPlanFeatureResponse, AddSubscriptionPlanFeatureResponse, addSubscriptionPlanFeatureResponseNestedFields, AddSubscriptionPlanFeatureResponseNestedFields, GetSubscriptionPlanFeatureRequest, getSubscriptionPlanFeatureResponse, GetSubscriptionPlanFeatureResponse, getSubscriptionPlanFeatureResponseNestedFields, GetSubscriptionPlanFeatureResponseNestedFields, GetSubscriptionPlanFeaturesRequest, getSubscriptionPlanFeaturesResponse, GetSubscriptionPlanFeaturesResponse, getSubscriptionPlanFeaturesResponseNestedFields, GetSubscriptionPlanFeaturesResponseNestedFields, RemoveSubscriptionPlanFeatureRequest, removeSubscriptionPlanFeatureResponse, RemoveSubscriptionPlanFeatureResponse, UpdateSubscriptionPlanFeatureRequest, updateSubscriptionPlanFeatureResponse, UpdateSubscriptionPlanFeatureResponse, updateSubscriptionPlanFeatureResponseNestedFields, UpdateSubscriptionPlanFeatureResponseNestedFields } from \"./types/subscription-plan-feature.type\";\n\nexport const createSubscriptionPlanFeatureService = (client: GraphQLClient) => ({\n async removeSubscriptionPlanFeature(\n input: RemoveSubscriptionPlanFeatureRequest, \n fetchFields?: {\n root?: (keyof RemoveSubscriptionPlanFeatureResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveSubscriptionPlanFeatureResponse | null> {\n const res = await client.request<\n { removeSubscriptionPlanFeature: RemoveSubscriptionPlanFeatureResponse }, \n RemoveSubscriptionPlanFeatureRequest\n >(\n subscriptionPlanFeatureSchema.removeSubscriptionPlanFeature(\n gqlQueryStringBuilder<RemoveSubscriptionPlanFeatureResponse>(\n fetchFields?.root ?? removeSubscriptionPlanFeatureResponse,\n )\n ), \n input, \n option\n );\n return res.data?.removeSubscriptionPlanFeature ?? null;\n },\n async updateSubscriptionPlanFeature(\n input: UpdateSubscriptionPlanFeatureRequest, \n fetchFields?: {\n root?: (keyof UpdateSubscriptionPlanFeatureResponse)[],\n nestedFields?: UpdateSubscriptionPlanFeatureResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateSubscriptionPlanFeatureResponse | null> {\n const res = await client.request<\n { updateSubscriptionPlanFeature: UpdateSubscriptionPlanFeatureResponse }, \n UpdateSubscriptionPlanFeatureRequest\n >(\n subscriptionPlanFeatureSchema.updateSubscriptionPlanFeature(\n gqlQueryStringBuilder<UpdateSubscriptionPlanFeatureResponse, UpdateSubscriptionPlanFeatureResponseNestedFields>(\n fetchFields?.root ?? updateSubscriptionPlanFeatureResponse,\n fetchFields?.nestedFields ?? updateSubscriptionPlanFeatureResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.updateSubscriptionPlanFeature ?? null;\n },\n async addSubscriptionPlanFeature(\n input: AddSubscriptionPlanFeatureRequest, \n fetchFields?: {\n root?: (keyof AddSubscriptionPlanFeatureResponse)[],\n nestedFields?: AddSubscriptionPlanFeatureResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddSubscriptionPlanFeatureResponse | null> {\n const res = await client.request<\n { addSubscriptionPlanFeature: AddSubscriptionPlanFeatureResponse }, \n AddSubscriptionPlanFeatureRequest\n >(\n subscriptionPlanFeatureSchema.addSubscriptionPlanFeature(\n gqlQueryStringBuilder<AddSubscriptionPlanFeatureResponse, AddSubscriptionPlanFeatureResponseNestedFields>(\n fetchFields?.root ?? addSubscriptionPlanFeatureResponse,\n fetchFields?.nestedFields ?? addSubscriptionPlanFeatureResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addSubscriptionPlanFeature ?? null;\n },\n async getSubscriptionPlanFeature(\n input: GetSubscriptionPlanFeatureRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionPlanFeatureResponse)[],\n nestedFields?: GetSubscriptionPlanFeatureResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionPlanFeatureResponse | null> {\n const res = await client.request<\n { getSubscriptionPlanFeature: GetSubscriptionPlanFeatureResponse }, \n GetSubscriptionPlanFeatureRequest\n >(\n subscriptionPlanFeatureSchema.getSubscriptionPlanFeature(\n gqlQueryStringBuilder<GetSubscriptionPlanFeatureResponse, GetSubscriptionPlanFeatureResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionPlanFeatureResponse,\n fetchFields?.nestedFields ?? getSubscriptionPlanFeatureResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscriptionPlanFeature ?? null;\n },\n async getSubscriptionPlanFeatures(\n input: GetSubscriptionPlanFeaturesRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionPlanFeaturesResponse)[],\n nestedFields?: GetSubscriptionPlanFeaturesResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionPlanFeaturesResponse | null> {\n const res = await client.request<\n { getSubscriptionPlanFeatures: GetSubscriptionPlanFeaturesResponse }, \n GetSubscriptionPlanFeaturesRequest\n >(\n subscriptionPlanFeatureSchema.getSubscriptionPlanFeatures(\n gqlQueryStringBuilder<GetSubscriptionPlanFeaturesResponse, GetSubscriptionPlanFeaturesResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionPlanFeaturesResponse,\n fetchFields?.nestedFields ?? getSubscriptionPlanFeaturesResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscriptionPlanFeatures ?? null;\n },\n})","export const subscriptionPlanSchema = {\n getSubscriptionPlan: (query: string) => `\n query getSubscriptionPlan($subscriptionPlan: SubscriptionPlanInput!) {\n getSubscriptionPlan(subscriptionPlan: $subscriptionPlan) {\n ${query}\n }\n }\n `,\n getSubscriptionPlans: (query: string) => `\n query getSubscriptionPlans($search: String, $subscriptionPlanIds: [String], $subscriptionPlan: SubscriptionPlanInput, $limit: Int!, $skip: Int!) {\n getSubscriptionPlans(search: $search, subscriptionPlanIds: $subscriptionPlanIds, subscriptionPlan: $subscriptionPlan, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n addSubscriptionPlan: (query: string) => `\n mutation addSubscriptionPlan($subscriptionPlan: SubscriptionPlanInput!) {\n addSubscriptionPlan(subscriptionPlan: $subscriptionPlan) {\n ${query}\n }\n }\n `,\n updateSubscriptionPlan: (query: string) => `\n mutation updateSubscriptionPlan($subscriptionPlanId: String!, $subscriptionPlan: SubscriptionPlanInput!) {\n updateSubscriptionPlan(subscriptionPlanId: $subcriptionPlanId, subscriptionPlan: $subscriptionPlan) {\n ${query}\n }\n }\n `,\n removeSubscriptionPlan: (query: string) => `\n mutation removeSubscriptionPlan($subscriptionPlanId: String!) {\n removeSubscriptionPlan(subscriptionPlanId: $subcriptionPlanId) {\n ${query}\n }\n }\n `\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { subscriptionPlanSchema } from \"./schemas/subscription-plan.schema\";\nimport { AddSubscriptionPlanRequest, addSubscriptionPlanResponse, AddSubscriptionPlanResponse, addSubscriptionPlanResponseNestedFields, AddSubscriptionPlanResponseNestedFields, GetSubscriptionPlanRequest, getSubscriptionPlanResponse, GetSubscriptionPlanResponse, getSubscriptionPlanResponseNestedFields, GetSubscriptionPlanResponseNestedFields, GetSubscriptionPlansRequest, getSubscriptionPlansResponse, GetSubscriptionPlansResponse, getSubscriptionPlansResponseNestedFields, GetSubscriptionPlansResponseNestedFields, RemoveSubscriptionPlanRequest, removeSubscriptionPlanResponse, RemoveSubscriptionPlanResponse, UpdateSubscriptionPlanRequest, updateSubscriptionPlanResponse, UpdateSubscriptionPlanResponse, updateSubscriptionPlanResponseNestedFields, UpdateSubscriptionPlanResponseNestedFields } from \"./types/subscription-plan.type\";\n\nexport const createSubscriptionPlanService = (client: GraphQLClient) => ({\n async removeSubscriptionPlan(\n input: RemoveSubscriptionPlanRequest, \n fetchFields?: {\n root?: (keyof RemoveSubscriptionPlanResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveSubscriptionPlanResponse | null> {\n const res = await client.request<\n { removeSubscriptionPlan: RemoveSubscriptionPlanResponse }, \n RemoveSubscriptionPlanRequest\n >(\n subscriptionPlanSchema.removeSubscriptionPlan(\n gqlQueryStringBuilder<RemoveSubscriptionPlanResponse>(\n fetchFields?.root ?? removeSubscriptionPlanResponse,\n )\n ), \n input, \n option\n );\n return res.data?.removeSubscriptionPlan ?? null;\n },\n async updateSubscriptionPlan(\n input: UpdateSubscriptionPlanRequest, \n fetchFields?: {\n root?: (keyof UpdateSubscriptionPlanResponse)[],\n nestedFields?: UpdateSubscriptionPlanResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateSubscriptionPlanResponse | null> {\n const res = await client.request<\n { updateSubscriptionPlan: UpdateSubscriptionPlanResponse }, \n UpdateSubscriptionPlanRequest\n >(\n subscriptionPlanSchema.updateSubscriptionPlan(\n gqlQueryStringBuilder<UpdateSubscriptionPlanResponse, UpdateSubscriptionPlanResponseNestedFields>(\n fetchFields?.root ?? updateSubscriptionPlanResponse,\n fetchFields?.nestedFields ?? updateSubscriptionPlanResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.updateSubscriptionPlan ?? null;\n },\n async addSubscriptionPlan(\n input: AddSubscriptionPlanRequest, \n fetchFields?: {\n root?: (keyof AddSubscriptionPlanResponse)[],\n nestedFields?: AddSubscriptionPlanResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddSubscriptionPlanResponse | null> {\n const res = await client.request<\n { addSubscriptionPlan: AddSubscriptionPlanResponse }, \n AddSubscriptionPlanRequest\n >(\n subscriptionPlanSchema.addSubscriptionPlan(\n gqlQueryStringBuilder<AddSubscriptionPlanResponse, AddSubscriptionPlanResponseNestedFields>(\n fetchFields?.root ?? addSubscriptionPlanResponse,\n fetchFields?.nestedFields ?? addSubscriptionPlanResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addSubscriptionPlan ?? null;\n },\n async getSubscriptionPlan(\n input: GetSubscriptionPlanRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionPlanResponse)[],\n nestedFields?: GetSubscriptionPlanResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionPlanResponse | null> {\n const res = await client.request<\n { getSubscriptionPlan: GetSubscriptionPlanResponse }, \n GetSubscriptionPlanRequest\n >(\n subscriptionPlanSchema.getSubscriptionPlan(\n gqlQueryStringBuilder<GetSubscriptionPlanResponse, GetSubscriptionPlanResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionPlanResponse,\n fetchFields?.nestedFields ?? getSubscriptionPlanResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscriptionPlan ?? null;\n },\n async getSubscriptionPlans(\n input: GetSubscriptionPlansRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionPlansResponse)[],\n nestedFields?: GetSubscriptionPlansResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionPlansResponse | null> {\n const res = await client.request<\n { getSubscriptionPlans: GetSubscriptionPlansResponse }, \n GetSubscriptionPlansRequest\n >(\n subscriptionPlanSchema.getSubscriptionPlans(\n gqlQueryStringBuilder<GetSubscriptionPlansResponse, GetSubscriptionPlansResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionPlansResponse,\n fetchFields?.nestedFields ?? getSubscriptionPlansResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscriptionPlans ?? null;\n },\n})","export const subscriptionSchema = {\n getSubscription: (query: string) => `\n query getSubscription($subscription: SubscriptionInput!) {\n getSubscription(subscription: $subscription) {\n ${query}\n }\n }\n `,\n getSubscriptions: (query: string) => `\n query getSubscriptions($search: String, $subscriptionIds: [String], $subscription: SubscriptionInput, $limit: Int!, $skip: Int!) {\n getSubscriptions(search: $search, subscriptionIds: $subscriptionIds, subscription: $subscription, limit: $limit, skip: $skip) {\n ${query}\n }\n }\n `,\n addSubscription: (query: string) => `\n mutation addSubscription($subscription: SubscriptionInput!) {\n addSubscription(subscription: $subscription) {\n ${query}\n }\n }\n `,\n updateSubscription: (query: string) => `\n mutation updateSubscription($subscriptionId: String!, $subscription: SubscriptionInput!) {\n updateSubscription(subscriptionId: $subcriptionId, subscription: $subscription) {\n ${query}\n }\n }\n `,\n removeSubscription: (query: string) => `\n mutation removeSubscription($subscriptionId: String!) {\n removeSubscription(subscriptionId: $subcriptionId) {\n ${query}\n }\n }\n `\n}","import { GraphQLClient, RequestOption } from \"../../client\";\nimport { gqlQueryStringBuilder } from \"../../helpers/query\";\nimport { subscriptionSchema } from \"./schemas/subscription.schema\";\nimport { AddSubscriptionRequest, addSubscriptionResponse, AddSubscriptionResponse, addSubscriptionResponseNestedFields, AddSubscriptionResponseNestedFields, GetSubscriptionRequest, getSubscriptionResponse, GetSubscriptionResponse, getSubscriptionResponseNestedFields, GetSubscriptionResponseNestedFields, GetSubscriptionsRequest, getSubscriptionsResponse, GetSubscriptionsResponse, getSubscriptionsResponseNestedFields, GetSubscriptionsResponseNestedFields, RemoveSubscriptionRequest, removeSubscriptionResponse, RemoveSubscriptionResponse, UpdateSubscriptionRequest, updateSubscriptionResponse, UpdateSubscriptionResponse, updateSubscriptionResponseNestedFields, UpdateSubscriptionResponseNestedFields } from \"./types/subscription.type\";\n\nexport const createSubscriptionService = (client: GraphQLClient) => ({\n async removeSubscription(\n input: RemoveSubscriptionRequest, \n fetchFields?: {\n root?: (keyof RemoveSubscriptionResponse)[],\n },\n option?: RequestOption\n ): Promise<RemoveSubscriptionResponse | null> {\n const res = await client.request<\n { removeSubscription: RemoveSubscriptionResponse }, \n RemoveSubscriptionRequest\n >(\n subscriptionSchema.removeSubscription(\n gqlQueryStringBuilder<RemoveSubscriptionResponse>(\n fetchFields?.root ?? removeSubscriptionResponse,\n )\n ), \n input, \n option\n );\n return res.data?.removeSubscription ?? null;\n },\n async updateSubscription(\n input: UpdateSubscriptionRequest, \n fetchFields?: {\n root?: (keyof UpdateSubscriptionResponse)[],\n nestedFields?: UpdateSubscriptionResponseNestedFields\n },\n option?: RequestOption\n ): Promise<UpdateSubscriptionResponse | null> {\n const res = await client.request<\n { updateSubscription: UpdateSubscriptionResponse }, \n UpdateSubscriptionRequest\n >(\n subscriptionSchema.updateSubscription(\n gqlQueryStringBuilder<UpdateSubscriptionResponse, UpdateSubscriptionResponseNestedFields>(\n fetchFields?.root ?? updateSubscriptionResponse,\n fetchFields?.nestedFields ?? updateSubscriptionResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.updateSubscription ?? null;\n },\n async addSubscription(\n input: AddSubscriptionRequest, \n fetchFields?: {\n root?: (keyof AddSubscriptionResponse)[],\n nestedFields?: AddSubscriptionResponseNestedFields\n },\n option?: RequestOption\n ): Promise<AddSubscriptionResponse | null> {\n const res = await client.request<\n { addSubscription: AddSubscriptionResponse }, \n AddSubscriptionRequest\n >(\n subscriptionSchema.addSubscription(\n gqlQueryStringBuilder<AddSubscriptionResponse, AddSubscriptionResponseNestedFields>(\n fetchFields?.root ?? addSubscriptionResponse,\n fetchFields?.nestedFields ?? addSubscriptionResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.addSubscription ?? null;\n },\n async getSubscription(\n input: GetSubscriptionRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionResponse)[],\n nestedFields?: GetSubscriptionResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionResponse | null> {\n const res = await client.request<\n { getSubscription: GetSubscriptionResponse }, \n GetSubscriptionRequest\n >(\n subscriptionSchema.getSubscription(\n gqlQueryStringBuilder<GetSubscriptionResponse, GetSubscriptionResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionResponse,\n fetchFields?.nestedFields ?? getSubscriptionResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscription ?? null;\n },\n async getSubscriptions(\n input: GetSubscriptionsRequest, \n fetchFields?: {\n root?: (keyof GetSubscriptionsResponse)[],\n nestedFields?: GetSubscriptionsResponseNestedFields\n },\n option?: RequestOption\n ): Promise<GetSubscriptionsResponse | null> {\n const res = await client.request<\n { getSubscriptions: GetSubscriptionsResponse }, \n GetSubscriptionsRequest\n >(\n subscriptionSchema.getSubscriptions(\n gqlQueryStringBuilder<GetSubscriptionsResponse, GetSubscriptionsResponseNestedFields>(\n fetchFields?.root ?? getSubscriptionsResponse,\n fetchFields?.nestedFields ?? getSubscriptionsResponseNestedFields\n )\n ), \n input, \n option\n );\n return res.data?.getSubscriptions ?? null;\n },\n})"]}
|