@otim/utils 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["z","z","z","z","z","z","z","z","feeResponseSchema","storedInstructionSchema","z","z","z","z","z"],"sources":["../../src/api/core/error.ts","../../src/api/core/instance.ts","../../src/api/core/service.ts","../../src/api/schemas/account.ts","../../src/api/schemas/activity.ts","../../src/api/schemas/auth.ts","../../src/api/schemas/chain.ts","../../src/api/schemas/config.ts","../../src/api/schemas/contacts.ts","../../src/api/schemas/instruction.ts","../../src/api/schemas/integration.ts","../../src/api/schemas/operating-account.ts","../../src/api/schemas/payments.ts","../../src/api/schemas/transaction.ts","../../src/api/utils/backoff.ts","../../src/api/utils/pagination.ts","../../src/api/services/base.ts","../../src/api/services/account.ts","../../src/api/services/activity.ts","../../src/api/services/auth.ts","../../src/api/services/config.ts","../../src/api/services/contacts.ts","../../src/api/services/developer.ts","../../src/api/services/instruction.ts","../../src/api/services/transaction.ts","../../src/api/services/payments.ts","../../src/api/services/integration.ts","../../src/api/services/operating-account.ts","../../src/api/api.ts","../../src/api/result.ts"],"sourcesContent":["import type { Nullish } from \"@otim/utils/helpers\";\n\nimport { z } from \"zod\";\n\nexport const apiErrorSchema = z.object({\n code: z.string().nullish(),\n message: z.string().nullish(),\n errorCode: z.string().nullish(),\n errorMessage: z.string().nullish(),\n status: z.number().nullish(),\n context: z\n .object({\n field_errors: z.record(z.string(), z.string()).nullish(),\n })\n .nullish(),\n});\n\nexport const errorResponseSchema = z.object({\n message: z.string().nullish(),\n errorMessage: z.string().nullish(),\n errorCode: z.string().nullish(),\n errors: z.array(apiErrorSchema).nullish(),\n});\n\n// Typed views of error payloads parsed by the helpers below\nexport type ApiErrorPayload = z.infer<typeof apiErrorSchema>;\nexport type ErrorResponsePayload = z.infer<typeof errorResponseSchema>;\n\nconst defaultErrorCode = \"unknown\";\nconst defaultErrorMessage = \"Unexpected error\";\n\n/**\n * Extract the most likely server-provided error payload from a thrown value.\n * Supports common shapes from HTTP clients (Axios/fetch) and plain objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractErrorData(maybeError: any): unknown {\n let errorData = maybeError?.body;\n\n if (!errorData && maybeError?.response?.data) {\n errorData = maybeError.response.data;\n }\n\n if (\n !errorData &&\n (maybeError?.errorMessage || maybeError?.message || maybeError?.errorCode)\n ) {\n errorData = maybeError;\n }\n\n return errorData;\n}\n\n/**\n * Normalize Error Shapes Into One User‑Facing Message.\n * Why: Prefer server messages and avoid leaking technical details.\n *\n * @param maybeError An unknown error thrown by an HTTP client, SDK, or server.\n * @param fallbackMessage Message used when the payload cannot be parsed or\n * lacks a message.\n */\nexport function getErrorMessage(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n maybeError: any,\n fallbackMessage?: string,\n): string {\n const errorMessage = fallbackMessage ?? defaultErrorMessage;\n\n const errorData = extractErrorData(maybeError);\n\n const result = errorResponseSchema.safeParse(errorData);\n if (!result.success) {\n return errorMessage;\n }\n\n const { message, errorMessage: apiErrorMessage, errors } = result.data;\n\n /**\n * Prioritize Error Message From Backend, Then Message, Then Errors Array.\n * Surfaces the most specific, server‑intended feedback first for better UX.\n */\n return (\n apiErrorMessage ??\n message ??\n errors?.[0]?.errorMessage ??\n errors?.[0]?.message ??\n errorMessage\n );\n}\n\nexport interface ErrorMessageWithCode {\n message: string;\n code: string;\n}\n\n/**\n * Provide A Unified Error Message And Code For UI/Control‑Flow.\n * Why: Normalize shapes and fall back to an \"unknown\" code.\n *\n * @param maybeError An unknown error thrown by an HTTP client, SDK, or server.\n * @param fallbackMessage Message used when the payload cannot be parsed or is\n * empty.\n */\nexport function getErrorMessageWithCode(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n maybeError: any,\n fallbackMessage?: string,\n): ErrorMessageWithCode {\n const errorMessage = fallbackMessage ?? defaultErrorMessage;\n\n const errorData = extractErrorData(maybeError);\n\n const result = errorResponseSchema.safeParse(errorData);\n if (\n !result.success ||\n (!result.data.errors?.[0] &&\n !result.data.errorMessage &&\n !result.data.message)\n ) {\n return {\n message: errorMessage,\n code: defaultErrorCode,\n };\n }\n\n const {\n message,\n errorMessage: apiErrorMessage,\n errorCode,\n errors,\n } = result.data;\n\n return {\n message:\n apiErrorMessage ??\n message ??\n errors?.[0]?.errorMessage ??\n errors?.[0]?.message ??\n errorMessage,\n code:\n errorCode ??\n errors?.[0]?.errorCode ??\n errors?.[0]?.code ??\n defaultErrorCode,\n };\n}\n\n/**\n * Detect User Rejection (e.g., Canceled Wallet Signature).\n * Why: Treat cancellations as benign and keep telemetry clean.\n *\n * @param error The error object to check.\n * @returns true if the error is a user rejection, false otherwise.\n */\nexport function isUserRejectionError(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any,\n): boolean {\n if (!error) return false;\n\n /**\n * Safely Extract Error Message From Various Possible Error Formats.\n * Providers may throw strings, plain objects, or non-Error values.\n */\n let errorMessage = \"\";\n if (typeof error === \"string\") {\n errorMessage = error;\n } else if (typeof error === \"object\") {\n errorMessage = error.message || error.errorMessage || error.details || \"\";\n }\n\n if (!errorMessage) {\n errorMessage = String(error);\n }\n\n errorMessage = errorMessage.toLowerCase();\n\n /**\n * Common Patterns For User Rejection Errors From Various Wallet Providers.\n * Why: Normalize detection across diverse SDKs to consistently handle\n * cancellations.\n */\n const rejectionPatterns = [\n \"user rejected\",\n \"user denied\",\n \"user cancelled\",\n \"cancelled by user\",\n \"rejected by user\",\n \"user abort\",\n \"transaction rejected\",\n \"signature rejected\",\n \"request rejected\",\n ];\n\n return rejectionPatterns.some((pattern) => errorMessage.includes(pattern));\n}\n\n/**\n * Determine If An Error Code Is User‑Addressable.\n * Why: 1000–1999 are intended to be surfaced to users.\n *\n * @param errorCode The error code to check.\n * @param errorMessage Optional error message.\n */\nexport const isUserAddressableError = (\n errorCode: number,\n errorMessage: Nullish<string>,\n): boolean => {\n const isInUserErrorRange = errorCode >= 1000 && errorCode < 2000;\n const hasErrorMessage = Boolean(errorMessage);\n\n return isInUserErrorRange && hasErrorMessage;\n};\n\n/**\n * Detect Whether An Error Looks Technical/Low‑Level.\n * Why: Avoid leaking framework/runtime details to users; rely on logging.\n */\nexport function isTechnicalError(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any,\n): boolean {\n if (!error) return false;\n\n /**\n * Safely Extract Error Message From Various Possible Error Formats.\n * Upstream code can throw strings or custom objects instead of Error\n * instances.\n */\n let errorMessage = \"\";\n if (typeof error === \"string\") {\n errorMessage = error;\n } else if (typeof error === \"object\") {\n errorMessage = error.message || error.errorMessage || error.details || \"\";\n }\n\n if (!errorMessage) {\n errorMessage = String(error);\n }\n\n errorMessage = errorMessage.toLowerCase();\n\n /**\n * Common Patterns For Technical Errors That Users Shouldn't See.\n * These originate from runtime/framework/network layers and are not\n * actionable.\n */\n const technicalErrorPatterns = [\n \"is not a function\",\n \"cannot read prop\",\n \"cannot read property\",\n \"reading undefined\",\n \"read undefined of\",\n \"cannot access before initialization\",\n \"is not defined\",\n \"is undefined\",\n \"is null\",\n \"unexpected token\",\n \"syntax error\",\n \"reference error\",\n \"type error\",\n \"network error\",\n \"failed to fetch\",\n \"server components\",\n ];\n\n return technicalErrorPatterns.some((pattern) =>\n errorMessage.includes(pattern),\n );\n}\n\nexport function getUserFriendlyErrorMessage(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any,\n fallbackMessage?: string,\n): string {\n if (isTechnicalError(error)) {\n return \"Internal server error\";\n }\n\n return getErrorMessage(error, fallbackMessage);\n}\n","import type { Optional } from \"@otim/utils/helpers\";\nimport type { AxiosInstance, CreateAxiosDefaults } from \"axios\";\n\nimport axios from \"axios\";\n\nconst API_INSTANCE_DEFAULT_TIMEOUT = 30000;\n\nexport interface CreateInstanceParameters extends CreateAxiosDefaults {}\n\nexport const createInstance = (config?: CreateAxiosDefaults) => {\n const instance = axios.create({\n timeout: API_INSTANCE_DEFAULT_TIMEOUT,\n ...config,\n });\n\n return instance;\n};\n\nexport const createAbortController = () => {\n return new AbortController();\n};\n\nexport type APIClientInit =\n | CreateInstanceParameters\n | { instance: AxiosInstance };\n\nexport const isInstanceInit = (\n init: Optional<APIClientInit>,\n): init is { instance: AxiosInstance } => {\n return !!init && typeof init === \"object\" && \"instance\" in init;\n};\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { ZodType } from \"zod\";\n\n/* Wraps a successful service response payload. */\nexport interface ServiceResponse<T> {\n data: T;\n}\n\n/**\n * Response shape for endpoints that return lists with pagination metadata.\n */\nexport interface PaginatedServiceResponse<T> {\n data: T;\n hasMore: boolean;\n}\n\n/* Standard pagination parameters accepted by list endpoints. */\nexport interface PaginatedRequest {\n page?: number;\n perPage?: number;\n}\n\n/* Error thrown when a request fails or a response is invalid. */\nexport class ServiceError extends Error {\n constructor(\n message: string,\n public readonly code?: string,\n ) {\n super(message);\n this.name = \"ServiceError\";\n }\n}\n\n/* Allowed HTTP methods for requests. */\nexport const HttpMethod = {\n Get: \"GET\",\n Post: \"POST\",\n Put: \"PUT\",\n Delete: \"DELETE\",\n} as const;\nexport type HttpMethod = (typeof HttpMethod)[keyof typeof HttpMethod];\n\n/**\n * Strongly-typed request config for services.\n * - `data` is the request body or query payload.\n * - `schema` is used to parse and validate the response.\n * - `validateResponse`, when provided, is evaluated prior to schema parsing.\n */\nexport interface ServiceRequestConfig<\n TRequest,\n Schema extends ZodType,\n> extends AxiosRequestConfig {\n data?: TRequest;\n schema?: Schema;\n validateResponse?: (data: unknown) => boolean;\n}\n","import { z } from \"zod\";\n\nexport const DelegationStatus = {\n Undelegated: \"Undelegated\",\n Pending: \"Pending\",\n Delegated: \"Delegated\",\n Expired: \"Expired\",\n Errored: \"Errored\",\n} as const;\nexport type DelegationStatus =\n (typeof DelegationStatus)[keyof typeof DelegationStatus];\nexport const delegationStatusValues = Object.values(DelegationStatus) as [\n DelegationStatus,\n ...DelegationStatus[],\n];\n\nexport const delegationStatusSchema = z.enum(delegationStatusValues);\n\nexport const delegationStatusRequestSchema = z.object({\n address: z.string(),\n chainId: z.number(),\n});\nexport type DelegationStatusRequest = z.infer<\n typeof delegationStatusRequestSchema\n>;\n\nexport const delegationStatusResponseSchema = z.object({\n delegationStatus: delegationStatusSchema,\n});\nexport type DelegationStatusResponse = z.infer<\n typeof delegationStatusResponseSchema\n>;\n\nexport const delegationCreateRequestSchema = z.object({\n signedAuthorization: z.string(),\n signerAddress: z.string(),\n});\nexport type DelegationCreateRequest = z.infer<\n typeof delegationCreateRequestSchema\n>;\n\nexport const delegationCreateResponseSchema = z.object({\n success: z.boolean(),\n transactionHash: z.string().optional(),\n message: z.string().optional(),\n});\nexport type DelegationCreateResponse = z.infer<\n typeof delegationCreateResponseSchema\n>;\n","import type { PaginatedRequest } from \"../core\";\n\nimport { z } from \"zod\";\n\nimport {\n hexStringSchema,\n InstructionAction,\n instructionActionValues,\n numberSchema,\n} from \"@otim/utils/schemas\";\n\nexport const actionNameSchema = z.enum(instructionActionValues);\nexport type ActionName = z.infer<typeof actionNameSchema>;\n\n/**\n * Human-readable labels for automation action names.\n */\nconst ACTION_NAME_LABELS: Partial<Record<ActionName, string>> = {\n [InstructionAction.Refuel]: \"Refuel\",\n [InstructionAction.RefuelERC20]: \"Refuel\",\n [InstructionAction.Transfer]: \"Transfer\",\n [InstructionAction.TransferERC20]: \"Transfer\",\n [InstructionAction.TransferCCTP]: \"Transfer\",\n [InstructionAction.Sweep]: \"Sweep\",\n [InstructionAction.SweepERC20]: \"Sweep\",\n [InstructionAction.SweepCCTP]: \"Sweep\",\n [InstructionAction.SweepUniswapV3]: \"Trade\",\n [InstructionAction.UniswapV3ExactInput]: \"Trade\",\n [InstructionAction.DepositERC4626]: \"Deposit\",\n [InstructionAction.SweepDepositERC4626]: \"Deposit\",\n [InstructionAction.WithdrawERC4626]: \"Withdraw\",\n [InstructionAction.SweepWithdrawERC4626]: \"Withdraw\",\n [InstructionAction.DeactivateInstruction]: \"Deactivate\",\n [InstructionAction.CallOnce]: \"Call Once\",\n} as const;\n\nconst DEFAULT_ACTION_LABEL = \"–\";\n\n/**\n * Human-readable labels for payment rails.\n */\nconst PAYMENT_RAIL_LABELS: Record<string, string> = {\n ach_push: \"ACH\",\n pix: \"PIX\",\n sepa: \"SEPA\",\n spei: \"SPEI\",\n wire: \"Wire\",\n} as const;\n\n/**\n * Human-readable labels for virtual account event types.\n */\nconst VIRTUAL_ACCOUNT_EVENT_LABELS: Record<string, string> = {\n funds_received: \"Funds Received\",\n payment_submitted: \"Payment Submitted\",\n payment_processed: \"Payment Processed\",\n in_review: \"In Review\",\n microdeposit: \"Microdeposit\",\n funds_scheduled: \"Funds Scheduled\",\n} as const;\n\n/**\n * Formats a payment rail value to a human-readable label.\n */\nexport function formatPaymentRail(paymentRail: string | undefined): string {\n if (!paymentRail) return DEFAULT_ACTION_LABEL;\n\n const label = PAYMENT_RAIL_LABELS[paymentRail.toLowerCase()];\n if (label) return label;\n\n // Fallback: format the payment rail (e.g., \"ach_push\" -> \"Ach Push\")\n return paymentRail\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n\n/**\n * Formats an action name to a human-readable label.\n */\nexport function formatActionName(\n actionName: string | null,\n source?: { payment_rail?: string },\n): string {\n if (!actionName) return DEFAULT_ACTION_LABEL;\n\n // Handle virtual account events (format: \"virtual_account_{event_type}\")\n if (actionName.startsWith(\"virtual_account_\")) {\n // If source.payment_rail is available, format it to a human-readable label\n if (source?.payment_rail) {\n return formatPaymentRail(source.payment_rail);\n }\n\n const eventType = actionName.replace(\"virtual_account_\", \"\");\n const label = VIRTUAL_ACCOUNT_EVENT_LABELS[eventType];\n if (label) return label;\n\n // Fallback: format the event type (e.g., \"funds_scheduled\" -> \"Funds Scheduled\")\n return eventType\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n }\n\n const label = ACTION_NAME_LABELS[actionName as ActionName];\n\n return label ?? DEFAULT_ACTION_LABEL;\n}\n\nconst transferFieldsSchema = z.object({\n token: hexStringSchema,\n from: hexStringSchema,\n to: hexStringSchema,\n value: hexStringSchema,\n});\n\nconst swapFieldsSchema = z.object({\n poolAddress: hexStringSchema,\n fromToken: hexStringSchema,\n toToken: hexStringSchema,\n from: hexStringSchema,\n to: hexStringSchema,\n fromAmount: hexStringSchema,\n toAmount: hexStringSchema,\n});\n\nconst cctpBurnFieldsSchema = z.object({\n token: hexStringSchema,\n from: hexStringSchema,\n mintRecipient: hexStringSchema,\n destinationDomain: hexStringSchema,\n value: hexStringSchema,\n});\n\nconst erc4626DepositFieldsSchema = z.object({\n vault: hexStringSchema,\n token: hexStringSchema,\n from: hexStringSchema,\n owner: hexStringSchema,\n value: hexStringSchema,\n shares: hexStringSchema,\n});\n\nconst erc4626WithdrawFieldsSchema = z.object({\n vault: hexStringSchema,\n token: hexStringSchema,\n from: hexStringSchema,\n to: hexStringSchema,\n value: hexStringSchema,\n shares: hexStringSchema,\n});\n\nexport const activityDataSchema = z.union([\n z.object({ transfer: transferFieldsSchema }),\n z.object({ swap: swapFieldsSchema }),\n z.object({ cctpBurn: cctpBurnFieldsSchema }),\n z.object({ erc4626Deposit: erc4626DepositFieldsSchema }),\n z.object({ erc4626Withdraw: erc4626WithdrawFieldsSchema }),\n]);\nexport type ActivityData = z.infer<typeof activityDataSchema>;\n\nexport type ActivityTransferData = z.infer<typeof transferFieldsSchema>;\nexport type ActivitySwapData = z.infer<typeof swapFieldsSchema>;\nexport type ActivityCCTPBurnData = z.infer<typeof cctpBurnFieldsSchema>;\nexport type ActivityERC4626DepositData = z.infer<\n typeof erc4626DepositFieldsSchema\n>;\nexport type ActivityERC4626WithdrawData = z.infer<\n typeof erc4626WithdrawFieldsSchema\n>;\n\nexport const activityRecordSchema = z.object({\n actionName: actionNameSchema,\n blockTimestamp: numberSchema,\n transactionHash: hexStringSchema,\n activity: activityDataSchema,\n instructionId: hexStringSchema.nullable(),\n executionCount: z.number().nullable(),\n});\nexport type ActivityRecord = z.infer<typeof activityRecordSchema>;\n\nexport const getInstructionActivityRequestSchema = z.object({\n chainId: z.number(),\n actionNames: z.array(actionNameSchema),\n page: numberSchema.optional(),\n perPage: numberSchema.optional(),\n});\nexport type GetInstructionActivityRequest = z.infer<\n typeof getInstructionActivityRequestSchema\n>;\n\nexport const getInstructionActivityResponseSchema =\n z.array(activityRecordSchema);\nexport type GetInstructionActivityResponse = z.infer<\n typeof getInstructionActivityResponseSchema\n>;\n\nexport interface InstructionActivityRequest extends PaginatedRequest {\n chainId: number;\n actionNames: ActionName[];\n}\n","import { z } from \"zod\";\n\nimport { userSchema, vrsSchema } from \"@otim/utils/schemas\";\n\nexport const authLoginRequestSchema = z.object({\n siwe: z.string(),\n signature: vrsSchema,\n});\nexport type AuthLoginRequest = z.infer<typeof authLoginRequestSchema>;\n\nexport const authLoginResponseSchema = z.object({\n authorization: z.string(),\n user: userSchema,\n});\nexport type AuthLoginResponse = z.infer<typeof authLoginResponseSchema>;\n\nexport const turnkeyVerificationRequestSchema = z.object({\n email: z.string().email(),\n});\nexport type TurnkeyVerificationRequest = z.infer<\n typeof turnkeyVerificationRequestSchema\n>;\n\nexport const turnkeyVerificationResponseSchema = z.object({\n isLogin: z.boolean(),\n /**\n * True when a verification code was already sent and is still valid.\n * In this case, the user should proceed to enter the existing code\n * instead of receiving a new one.\n */\n codeAlreadyExists: z.boolean().optional(),\n});\nexport type TurnkeyVerificationResponse = z.infer<\n typeof turnkeyVerificationResponseSchema\n>;\n\nexport const attestationSchema = z.object({\n credentialId: z.string(),\n clientDataJson: z.string(),\n attestationObject: z.string(),\n transports: z.array(z.string()).optional(),\n});\nexport type Attestation = z.infer<typeof attestationSchema>;\n\nexport const turnkeyLoginRequestSchema = z.object({\n email: z.email(),\n verificationCode: z.coerce.number().int().min(100000).max(999999),\n passkeyChallenge: z.string().optional(),\n attestation: attestationSchema.optional(),\n});\nexport type TurnkeyLoginRequest = z.infer<typeof turnkeyLoginRequestSchema>;\n\nexport const turnkeyLoginResponseSchema = z.object({\n email: z.string(),\n subOrgId: z.string(),\n walletAddress: z.string(),\n isLogin: z.boolean().optional(),\n});\nexport type TurnkeyLoginResponse = z.infer<typeof turnkeyLoginResponseSchema>;\n\nexport const meResponseSchema = userSchema;\nexport type MeResponse = z.infer<typeof meResponseSchema>;\n\nexport const sessionTokenRequestSchema = z.object({\n sessionToken: z.string(),\n userId: z.string(),\n});\nexport type SessionTokenRequest = z.infer<typeof sessionTokenRequestSchema>;\n\nexport const sessionTokenResponseSchema = z.object({\n success: z.boolean(),\n});\nexport type SessionTokenResponse = z.infer<typeof sessionTokenResponseSchema>;\n\nexport const sessionVerifyResponseSchema = z.object({\n authenticated: z.boolean(),\n hasSessionToken: z.boolean(),\n});\nexport type SessionVerifyResponse = z.infer<typeof sessionVerifyResponseSchema>;\n\n/**\n * @todo\n * - Remove later, this is a temporary schema for the whitelist check\n */\n\nexport const whitelistCheckRequestSchema = z.object({\n email: z.string().email(),\n});\nexport type WhitelistCheckRequest = z.infer<typeof whitelistCheckRequestSchema>;\n\nexport const whitelistCheckResponseSchema = z.object({\n isAllowed: z.boolean(),\n message: z.string().optional(),\n});\nexport type WhitelistCheckResponse = z.infer<\n typeof whitelistCheckResponseSchema\n>;\n\nexport const addressWhitelistCheckRequestSchema = z.object({\n address: z.string(),\n});\nexport type AddressWhitelistCheckRequest = z.infer<\n typeof addressWhitelistCheckRequestSchema\n>;\n\nexport const addressWhitelistCheckResponseSchema = z.object({\n isAllowed: z.boolean(),\n message: z.string().optional(),\n});\nexport type AddressWhitelistCheckResponse = z.infer<\n typeof addressWhitelistCheckResponseSchema\n>;\n","import { z } from \"zod\";\n\nexport const chainIdSchema = z.object({\n chainId: z.number().nullable(),\n});\n\nexport type ChainIdResponse = z.infer<typeof chainIdSchema>;\n\nexport const setChainIdSchema = z.object({\n chainId: z.number().positive(),\n});\nexport type SetChainIdRequest = z.infer<typeof setChainIdSchema>;\n\nexport const chainSuccessResponseSchema = z.object({\n success: z.boolean(),\n chainId: z.number().optional(),\n});\nexport type ChainSuccessResponse = z.infer<typeof chainSuccessResponseSchema>;\n","import { z } from \"zod\";\n\nimport { hexStringSchema } from \"@otim/utils/schemas\";\n\nexport const getDelegateAddressSchema = z.object({\n chainId: z.number(),\n});\nexport type GetDelegateAddressRequest = z.infer<\n typeof getDelegateAddressSchema\n>;\n\nexport const getDelegateAddressResponseSchema = z.object({\n otimDelegateAddress: z.string(),\n});\nexport type GetDelegateAddressResponse = z.infer<\n typeof getDelegateAddressResponseSchema\n>;\n\nexport const getConfigTokensRequestParametersSchema = z.object({\n chainId: z.number(),\n});\nexport type GetConfigTokensRequestParameters = z.infer<\n typeof getConfigTokensRequestParametersSchema\n>;\n\nexport const getConfigTokensResponseSchema = z.object({\n tokens: z.array(\n z.object({\n symbol: z.any(),\n address: hexStringSchema,\n }),\n ),\n});\nexport type GetConfigTokensResponse = z.infer<\n typeof getConfigTokensResponseSchema\n>;\n\nexport const getConfigChainsResponseSchema = z.unknown();\nexport type GetConfigChainsResponse = z.infer<\n typeof getConfigChainsResponseSchema\n>;\n\nexport const getMaxPriorityFeePerGasEstimateSchema = z.object({\n chainId: z.number(),\n});\nexport type GetMaxPriorityFeePerGasEstimateRequest = z.infer<\n typeof getMaxPriorityFeePerGasEstimateSchema\n>;\n\nexport const getMaxPriorityFeePerGasEstimateResponseSchema = z.object({\n slowMaxPriorityFeeEstimate: z.number(),\n normalMaxPriorityFeeEstimate: z.number(),\n fastMaxPriorityFeeEstimate: z.number(),\n});\nexport type GetMaxPriorityFeePerGasEstimateResponse = z.infer<\n typeof getMaxPriorityFeePerGasEstimateResponseSchema\n>;\n","import { z } from \"zod\";\n\nimport { hexStringSchema, numberSchema } from \"@otim/utils/schemas\";\n\nexport const newContactRequestSchema = z.object({\n address: hexStringSchema,\n name: z.string(),\n});\nexport type NewContactRequest = z.infer<typeof newContactRequestSchema>;\n\nexport const getContactsRequestSchema = z.object({\n perPage: numberSchema.optional(),\n page: numberSchema.optional(),\n});\nexport type GetContactsRequest = z.infer<typeof getContactsRequestSchema>;\n\nexport const contactSchema = z.object({\n userId: z.string(),\n address: hexStringSchema,\n name: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const getContactsResponseSchema = z.array(contactSchema);\nexport type GetContactsResponse = z.infer<typeof getContactsResponseSchema>;\n","import { z } from \"zod\";\n\nimport {\n eip2098SignatureSchema,\n hexStringSchema,\n instructionActionValues,\n numberSchema,\n instructionSchema as storedInstructionSchema,\n} from \"@otim/utils/schemas\";\n\nconst feeSchema = z.object({\n executionFee: hexStringSchema,\n maxBaseFeePerGas: hexStringSchema,\n maxPriorityFeePerGas: hexStringSchema,\n token: hexStringSchema,\n});\n\nconst scheduleSchema = z.object({\n startAt: numberSchema,\n startBy: numberSchema,\n interval: numberSchema,\n timeout: numberSchema,\n});\n\nconst baseActionArgumentsSchema = z.object({\n target: hexStringSchema,\n fee: feeSchema,\n token: hexStringSchema,\n});\n\nconst refuelActionArgumentsSchema = baseActionArgumentsSchema.extend({\n threshold: numberSchema,\n endBalance: numberSchema,\n gasLimit: numberSchema,\n});\n\nconst refuelERC20ActionArgumentsSchema = baseActionArgumentsSchema.extend({\n threshold: numberSchema,\n endBalance: numberSchema,\n gasLimit: numberSchema,\n});\n\nconst transferActionArgumentsSchema = baseActionArgumentsSchema.extend({\n value: numberSchema,\n gasLimit: numberSchema,\n schedule: scheduleSchema,\n});\n\nconst transferERC20ActionArgumentsSchema = baseActionArgumentsSchema.extend({\n value: numberSchema,\n gasLimit: numberSchema,\n schedule: scheduleSchema,\n});\n\nconst uniswapV3ExactInputActionArgumentsSchema = z.object({\n tokenIn: hexStringSchema,\n tokenOut: hexStringSchema,\n amountIn: numberSchema,\n floorAmountOut: numberSchema,\n feeTier: z.string(),\n recipient: hexStringSchema,\n meanPriceLookBack: numberSchema,\n maxPriceDeviationBps: numberSchema,\n fee: feeSchema,\n schedule: scheduleSchema,\n});\n\nconst deactivateInstructionActionArgumentsSchema = z.object({\n instructionId: hexStringSchema,\n fee: feeSchema,\n});\n\nconst depositERC4626ActionArgumentsSchema = z.object({\n vault: hexStringSchema,\n recipient: hexStringSchema,\n value: numberSchema,\n minDeposit: numberSchema,\n minTotalShares: numberSchema,\n schedule: scheduleSchema,\n fee: feeSchema,\n});\n\nconst sweepDepositERC4626ActionArgumentsSchema = z.object({\n vault: hexStringSchema,\n recipient: hexStringSchema,\n threshold: numberSchema,\n endBalance: numberSchema,\n minDeposit: numberSchema,\n minTotalShares: numberSchema,\n fee: feeSchema,\n});\n\nconst withdrawERC4626ActionArgumentsSchema = z.object({\n vault: hexStringSchema,\n recipient: hexStringSchema,\n value: numberSchema,\n minWithdraw: numberSchema,\n schedule: scheduleSchema,\n fee: feeSchema,\n});\n\nconst sweepWithdrawERC4626ActionArgumentsSchema = z.object({\n vault: hexStringSchema,\n recipient: hexStringSchema,\n threshold: numberSchema,\n endBalance: numberSchema,\n minWithdraw: numberSchema,\n fee: feeSchema,\n});\n\nexport const actionArgumentsSchema = z.union([\n refuelActionArgumentsSchema,\n refuelERC20ActionArgumentsSchema,\n transferActionArgumentsSchema,\n transferERC20ActionArgumentsSchema,\n uniswapV3ExactInputActionArgumentsSchema,\n deactivateInstructionActionArgumentsSchema,\n depositERC4626ActionArgumentsSchema,\n sweepDepositERC4626ActionArgumentsSchema,\n withdrawERC4626ActionArgumentsSchema,\n sweepWithdrawERC4626ActionArgumentsSchema,\n]);\nexport type ActionArguments = z.infer<typeof actionArgumentsSchema>;\n\n//\n\nconst feeResponseSchema = z.object({\n token: hexStringSchema,\n executionFee: hexStringSchema,\n maxBaseFeePerGas: hexStringSchema,\n maxPriorityFeePerGas: hexStringSchema,\n});\nexport type FeeResponse = z.infer<typeof feeResponseSchema>;\n\nconst scheduleResponseSchema = z.object({\n startAt: hexStringSchema,\n startBy: hexStringSchema,\n interval: hexStringSchema,\n timeout: hexStringSchema,\n});\nexport type ScheduleResponse = z.infer<typeof scheduleResponseSchema>;\n\nconst refuelActionResponseSchema = z.object({\n target: hexStringSchema,\n threshold: hexStringSchema,\n endBalance: hexStringSchema,\n gasLimit: hexStringSchema,\n fee: feeResponseSchema,\n});\n\nconst transferActionResponseSchema = z.object({\n target: hexStringSchema,\n value: hexStringSchema,\n gasLimit: hexStringSchema,\n schedule: scheduleResponseSchema,\n fee: feeResponseSchema,\n});\n\nconst refuelERC20ActionResponseSchema = z.object({\n token: hexStringSchema,\n target: hexStringSchema,\n threshold: hexStringSchema,\n endBalance: hexStringSchema,\n fee: feeResponseSchema,\n});\n\nconst transferERC20ActionResponseSchema = z.object({\n token: hexStringSchema,\n target: hexStringSchema,\n value: hexStringSchema,\n schedule: scheduleResponseSchema,\n fee: feeResponseSchema,\n});\n\nexport const actionArgumentsResponseSchema = z.union([\n refuelActionResponseSchema,\n transferActionResponseSchema,\n refuelERC20ActionResponseSchema,\n transferERC20ActionResponseSchema,\n]);\nexport type ActionArgumentsResponse = z.infer<\n typeof actionArgumentsResponseSchema\n>;\n\n//\n\nexport const instructionBuildSchema = z.object({\n action: hexStringSchema,\n arguments: hexStringSchema,\n maxExecutions: hexStringSchema,\n salt: hexStringSchema,\n nickname: z.string().nullish(),\n});\nexport type InstructionBuild = z.infer<typeof instructionBuildSchema>;\nexport type Instruction = InstructionBuild;\n\nexport const instructionGetAllRequestSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n actionName: z.string().optional(),\n page: z.number().optional(),\n perPage: z.number().optional(),\n});\nexport type InstructionGetAllRequest = z.infer<\n typeof instructionGetAllRequestSchema\n>;\n\nexport const instructionGetAllResponseSchema = z.array(storedInstructionSchema);\nexport type InstructionGetAllResponse = z.infer<\n typeof instructionGetAllResponseSchema\n>;\n\nexport const instructionBuildRequestSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n salt: z.number(),\n maxExecutions: z.number(),\n actionArguments: z.record(z.string(), actionArgumentsSchema).refine(\n (args) => {\n const keys = Object.keys(args);\n return (\n keys.length === 1 &&\n instructionActionValues.includes(\n keys[0] as (typeof instructionActionValues)[number],\n )\n );\n },\n {\n message:\n \"actionArguments must contain exactly one valid instruction action\",\n },\n ),\n});\nexport type InstructionBuildRequest = z.infer<\n typeof instructionBuildRequestSchema\n>;\n\nexport const instructionActivateRequestSchema = z.object({\n nickname: z.string().optional(),\n address: hexStringSchema,\n chainId: z.number(),\n salt: hexStringSchema,\n maxExecutions: hexStringSchema,\n action: hexStringSchema,\n arguments: hexStringSchema,\n activationSignature: eip2098SignatureSchema,\n});\nexport type InstructionActivateRequest = z.infer<\n typeof instructionActivateRequestSchema\n>;\n\nexport const instructionActivateResponseSchema = z.object({\n instructionId: hexStringSchema,\n});\nexport type InstructionActivateResponse = z.infer<\n typeof instructionActivateResponseSchema\n>;\n\nexport const instructionDeactivateRequestSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n deactivation: z.object({\n instructionId: hexStringSchema,\n }),\n deactivationSignature: eip2098SignatureSchema,\n});\nexport type InstructionDeactivateRequest = z.infer<\n typeof instructionDeactivateRequestSchema\n>;\n\nexport const instructionDeactivateResponseSchema = z.unknown();\nexport type InstructionDeactivateResponse = z.infer<\n typeof instructionDeactivateResponseSchema\n>;\n\nexport const instructionDetailsRequestSchema = z.object({\n address: hexStringSchema,\n instructionId: hexStringSchema,\n chainId: z.number(),\n});\nexport type InstructionDetailsRequest = z.infer<\n typeof instructionDetailsRequestSchema\n>;\n\nexport const instructionDetailsResponseSchema = z.object({\n action: hexStringSchema,\n actionArguments: z.any(),\n actionName: z.string().nullish(),\n salt: hexStringSchema,\n maxExecutions: hexStringSchema,\n nickname: z.string().nullish(),\n lastErrorCode: z.number().int(),\n lastErrorMessage: z.string().nullish(),\n});\nexport type InstructionDetailsResponse = z.infer<\n typeof instructionDetailsResponseSchema\n>;\n\nexport const instructionGetRulesRequestSchema = z.object({\n chainId: z.number(),\n page: z.number().optional(),\n perPage: z.number().optional(),\n});\nexport type InstructionGetRulesRequest = z.infer<\n typeof instructionGetRulesRequestSchema\n>;\n\nexport const instructionGetRulesResponseSchema = z.array(\n storedInstructionSchema,\n);\nexport type InstructionGetRulesResponse = z.infer<\n typeof instructionGetRulesResponseSchema\n>;\n","import { z } from \"zod\";\n\nexport const IntegrationType = {\n Bank: \"Bank\",\n Clio: \"Clio\",\n Stripe: \"Stripe\",\n QuickBooks: \"QuickBooks\",\n Bill: \"Bill\",\n Zoho: \"Zoho\",\n} as const;\nexport type IntegrationType =\n (typeof IntegrationType)[keyof typeof IntegrationType];\nexport const integrationTypeValues = [\n IntegrationType.Bank,\n IntegrationType.Clio,\n IntegrationType.Stripe,\n IntegrationType.QuickBooks,\n IntegrationType.Bill,\n IntegrationType.Zoho,\n] as const;\n\nconst quickBooksDetailsSchema = z.object({\n accessToken: z.string().optional(),\n refreshToken: z.string().optional(),\n realmId: z.string().optional(),\n tokenType: z.string().optional(),\n expiresIn: z.number().optional(),\n xRefreshTokenExpiresIn: z.number().optional(),\n});\n\nconst stripeTokensSchema = z.object({\n accessToken: z.string(),\n refreshToken: z.string().optional(),\n});\n\nconst stripeDetailsSchema = z.object({\n clientId: z.string().optional(),\n clientSecret: z.string().optional(),\n tokens: stripeTokensSchema.optional(),\n});\n\nconst billcomDetailsSchema = z.object({\n devKey: z.string().optional(),\n sessionId: z.string().optional(),\n orgId: z.string().optional(),\n rememberMeId: z.string().optional(),\n});\n\nconst liquidationAddressSchema = z.object({\n liquidationAddressId: z.string(),\n address: z.string(),\n chain: z.string(),\n currency: z.string(),\n blockchainMemo: z.string().optional(),\n});\n\nconst plaidAccountSchema = z.object({\n accountId: z.string(),\n name: z.string().optional(),\n mask: z.string().optional(),\n subtype: z.string().optional(),\n externalAccountId: z.string().optional(),\n liquidationAddress: liquidationAddressSchema.optional(),\n});\n\nconst plaidConnectionSchema = z.object({\n accessToken: z.string(),\n itemId: z.string(),\n institutionId: z.string().optional(),\n institutionName: z.string().optional(),\n accounts: z.array(plaidAccountSchema),\n});\n\nconst bridgeConnectionSchema = z.object({\n customerId: z.string(),\n kycLinkId: z.string().optional(),\n kycLink: z.string().optional(),\n tosLink: z.string().optional(),\n completedSteps: z.array(z.string()).optional(),\n});\n\nconst bankDetailsSchema = z.object({\n plaid: z.array(plaidConnectionSchema).optional(),\n bridge: z.array(bridgeConnectionSchema).optional(),\n});\n\nexport const integrationTypeSchema = z.enum(integrationTypeValues);\nexport type IntegrationTypeEnum = z.infer<typeof integrationTypeSchema>;\n\nexport const updateIntegrationRequestSchema = z.discriminatedUnion(\n \"integrationType\",\n [\n z.object({\n integrationType: z.literal(IntegrationType.QuickBooks),\n details: quickBooksDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Bank),\n details: bankDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Clio),\n details: z.unknown(),\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Stripe),\n details: stripeDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Bill),\n details: billcomDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Zoho),\n details: z.unknown(),\n }),\n ],\n);\nexport type UpdateIntegrationRequest = z.infer<\n typeof updateIntegrationRequestSchema\n>;\n\nexport const getIntegrationRequestSchema = z.object({\n integrationType: integrationTypeSchema,\n});\nexport type GetIntegrationRequest = z.infer<typeof getIntegrationRequestSchema>;\n\nexport const integrationResponseSchema = z.discriminatedUnion(\n \"integrationType\",\n [\n z.object({\n integrationType: z.literal(IntegrationType.QuickBooks),\n details: quickBooksDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Bank),\n details: bankDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Clio),\n details: z.unknown(),\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Stripe),\n details: stripeDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Bill),\n details: billcomDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Zoho),\n details: z.unknown(),\n }),\n ],\n);\nexport type IntegrationResponse = z.infer<typeof integrationResponseSchema>;\n","import { z } from \"zod\";\n\nexport const newOperatingAccountSubOrgResponseSchema = z.object({\n subOrganizationId: z.string(),\n endUserId: z.string(),\n});\nexport type NewOperatingAccountSubOrgResponse = z.infer<\n typeof newOperatingAccountSubOrgResponseSchema\n>;\n\nexport const getOperatingAccountSubOrgResponseSchema = z.object({\n subOrganizationId: z.string(),\n});\nexport type GetOperatingAccountSubOrgResponse = z.infer<\n typeof getOperatingAccountSubOrgResponseSchema\n>;\n","import type { PaginatedRequest } from \"../core\";\n\nimport { z } from \"zod\";\n\nimport {\n eip2098SignatureSchema,\n hexStringSchema,\n numberSchema,\n} from \"@otim/utils/schemas\";\n\nexport const paymentRequestsDirectionSchema = z.enum([\"from\", \"to\"]);\n\nexport const orchestrationTypeSchema = z.enum([\"AutoEarn\", \"PaymentRequest\"]);\nexport type OrchestrationType = z.infer<typeof orchestrationTypeSchema>;\n\nexport const getPaymentRequestsRequestSchema = z.object({\n direction: paymentRequestsDirectionSchema,\n statuses: z\n .array(z.enum([\"pending\", \"inProgress\", \"paid\", \"cancelled\", \"draft\"]))\n .optional(),\n perPage: numberSchema.optional(),\n page: numberSchema.optional(),\n orchestrationType: orchestrationTypeSchema.optional(),\n});\nexport type GetPaymentRequestsRequest = z.infer<\n typeof getPaymentRequestsRequestSchema\n>;\n\nexport const paymentRequestStatusSchema = z.enum([\n \"pending\",\n \"inProgress\",\n \"paid\",\n \"cancelled\",\n \"draft\",\n]);\n\nexport const paymentRequestSchema = z.object({\n id: z.string(),\n fromUserId: z.string(),\n toUserId: z.string().nullable(),\n payerAddress: hexStringSchema.nullable(),\n ephemeralWalletAddress: hexStringSchema,\n instructions: z.object({\n ids: z.array(z.string()),\n completionIds: z.array(z.string()),\n }),\n metadata: z.record(z.string(), z.unknown()),\n status: paymentRequestStatusSchema,\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const getPaymentRequestsResponseSchema = z.array(paymentRequestSchema);\nexport type GetPaymentRequestsResponse = z.infer<\n typeof getPaymentRequestsResponseSchema\n>;\n\nexport const buildEphemeralInstructionSchema = z.object({\n chainId: z.number(),\n salt: numberSchema,\n maxExecutions: numberSchema,\n actionArguments: z.record(z.string(), z.unknown()),\n setEphemeralTarget: z.boolean().optional(),\n});\n\nexport const paymentRequestBuildRequestSchema = z.object({\n payerAddress: hexStringSchema.nullish(),\n completionInstructions: z.array(buildEphemeralInstructionSchema),\n instructions: z.array(buildEphemeralInstructionSchema),\n metadata: z.record(z.string(), z.unknown()).optional().default({}),\n maxRuns: z\n .number()\n .int()\n .positive({ message: \"maxRuns must be greater than 0\" })\n .max(Number.MAX_SAFE_INTEGER, {\n message: \"maxRuns must be less than MAX_SAFE_INTEGER\",\n })\n .optional(),\n});\nexport type PaymentRequestBuildRequest = z.infer<\n typeof paymentRequestBuildRequestSchema\n>;\n\nexport const feeResponseSchema = z.object({\n token: hexStringSchema,\n executionFee: hexStringSchema,\n maxBaseFeePerGas: hexStringSchema,\n maxPriorityFeePerGas: hexStringSchema,\n});\n\nconst buildInstructionResponseSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n salt: hexStringSchema,\n maxExecutions: hexStringSchema,\n action: hexStringSchema,\n actionName: z.string().optional(),\n arguments: hexStringSchema,\n});\n\nexport const paymentRequestBuildResponseSchema = z.object({\n requestId: z.string(),\n subOrgId: z.string(),\n walletId: z.string(),\n ephemeralWalletAddress: hexStringSchema,\n completionInstructions: z.array(buildInstructionResponseSchema),\n instructions: z.array(buildInstructionResponseSchema),\n});\nexport type PaymentRequestBuildResponse = z.infer<\n typeof paymentRequestBuildResponseSchema\n>;\n\nexport const newInstructionRequestSchema = z.object({\n nickname: z.string().optional(),\n actionName: z.string().optional(),\n address: hexStringSchema,\n chainId: z.number(),\n salt: hexStringSchema,\n maxExecutions: hexStringSchema,\n action: hexStringSchema,\n arguments: hexStringSchema,\n activationSignature: eip2098SignatureSchema,\n});\n\nexport const paymentRequestNewRequestSchema = z.object({\n requestId: z.string(),\n signedAuthorization: z.string(),\n completionInstructions: z.array(newInstructionRequestSchema),\n instructions: z.array(newInstructionRequestSchema),\n});\nexport type PaymentRequestNewRequest = z.infer<\n typeof paymentRequestNewRequestSchema\n>;\n\nexport const paymentRequestDetailsRequestSchema = z.object({\n requestId: z.string(),\n});\nexport type PaymentRequestDetailsRequest = z.infer<\n typeof paymentRequestDetailsRequestSchema\n>;\n\nexport const paymentRequestDetailsResponseSchema = z.object({\n requestId: z.string(),\n ephemeralWalletAddress: hexStringSchema,\n ephemeralWalletId: z.string().optional(),\n status: z.enum([\"pending\", \"inProgress\", \"paid\", \"cancelled\", \"draft\"]),\n metadata: z.record(z.string(), z.unknown()),\n numRuns: z.number(),\n maxRuns: z.number().optional(),\n});\nexport type PaymentRequestDetailsResponse = z.infer<\n typeof paymentRequestDetailsResponseSchema\n>;\n\nexport interface PaymentsListRequest extends PaginatedRequest {\n tab: \"active\" | \"completed\";\n}\n\nexport const buildSettlementRequestSchema = z.object({\n acceptedTokens: z.record(z.string(), z.array(hexStringSchema)),\n settlementChain: z.number(),\n settlementToken: hexStringSchema,\n settlementAmount: numberSchema,\n recipientAddress: hexStringSchema,\n metadata: z.record(z.string(), z.unknown()),\n payerAddress: hexStringSchema.nullish(),\n dueDate: z.string().datetime().nullish(),\n maxRuns: z.number().int().positive().nullish(),\n});\nexport type BuildSettlementRequest = z.infer<\n typeof buildSettlementRequestSchema\n>;\n\nexport const buildSettlementResponseSchema = z.object({\n requestId: z.string(),\n subOrgId: z.string(),\n walletId: z.string(),\n ephemeralWalletAddress: hexStringSchema,\n completionInstructions: z.array(buildInstructionResponseSchema),\n instructions: z.array(buildInstructionResponseSchema),\n});\nexport type BuildSettlementResponse = z.infer<\n typeof buildSettlementResponseSchema\n>;\n","import { z } from \"zod\";\n\nimport {\n hexStringSchema,\n sortValues,\n transactionSchema,\n} from \"@otim/utils/schemas\";\n\nexport const transactionGetListRequestSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n instructionIds: z.array(z.string()).optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n page: z.number().optional(),\n perPage: z.number().optional(),\n sort: z.enum(sortValues).optional(),\n});\nexport type TransactionGetListRequest = z.infer<\n typeof transactionGetListRequestSchema\n>;\n\nexport const transactionGetListResponseSchema = z.array(transactionSchema);\nexport type TransactionGetListResponse = z.infer<\n typeof transactionGetListResponseSchema\n>;\n","export interface BackoffOptions {\n /* Initial interval in milliseconds. Default: 5000 */\n initialInterval?: number;\n /* Maximum interval in milliseconds. Default: 30000 */\n maxInterval?: number;\n /* Multiplier for exponential backoff. Default: 1.5 */\n multiplier?: number;\n}\n\nconst DEFAULT_INITIAL_INTERVAL = 5_000;\nconst DEFAULT_MAX_INTERVAL = 30_000;\nconst DEFAULT_MULTIPLIER = 1.5;\n\n/**\n * Calculates an exponential backoff interval based on the failure count.\n *\n * @param failureCount - Number of consecutive failures\n * @param options - Configuration options for the backoff calculation\n * @returns The calculated interval in milliseconds, capped at maxInterval\n */\nexport const calculateBackoffInterval = (\n failureCount: number,\n options: BackoffOptions = {},\n): number => {\n const {\n initialInterval = DEFAULT_INITIAL_INTERVAL,\n maxInterval = DEFAULT_MAX_INTERVAL,\n multiplier = DEFAULT_MULTIPLIER,\n } = options;\n\n return Math.min(\n initialInterval * Math.pow(multiplier, failureCount),\n maxInterval,\n );\n};\n","import type { PaginatedRequest } from \"../core\";\n\n/**\n * Determine if additional pages are likely available based on the number of\n * items received and the requested page size.\n *\n * Returns true when the current page contains at least `requestedPageSize`\n * items, implying there may be more data to fetch.\n *\n * @param items Array of items returned for the current page.\n * @param requestedPageSize The `perPage` value requested for this fetch.\n * @returns Whether another page may be available.\n */\nexport function calculateHasMore<T>(\n items: T[],\n requestedPageSize: number,\n): boolean {\n return items.length >= requestedPageSize;\n}\n\n/**\n * Extract pagination-related fields from a request object and return them\n * separately from the remaining parameters.\n *\n * @param request Request object containing `page`, `perPage`, and other fields.\n * @returns Object with `paginationParams` and `restParams` split for\n * convenience.\n */\nexport function extractPaginationParams<T extends PaginatedRequest>(\n request: T,\n): {\n paginationParams: PaginatedRequest;\n restParams: Omit<T, keyof PaginatedRequest>;\n} {\n const { page, perPage, ...restParams } = request;\n return {\n paginationParams: { page, perPage },\n restParams: restParams as Omit<T, keyof PaginatedRequest>,\n };\n}\n\n/**\n * Provide a standard default for pagination parameters.\n *\n * @returns Default pagination with `page: 0` and `perPage: 100`.\n */\nexport function getDefaultPagination(): Required<PaginatedRequest> {\n return {\n page: 0,\n perPage: 100,\n };\n}\n","import type {\n PaginatedRequest,\n PaginatedServiceResponse,\n ServiceRequestConfig,\n ServiceResponse,\n} from \"../core\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { AxiosError, AxiosInstance } from \"axios\";\nimport type { z, ZodType } from \"zod\";\n\nimport { parseSchema } from \"@otim/utils/helpers\";\n\nimport { HttpMethod, ServiceError } from \"../core\";\nimport {\n calculateHasMore,\n extractPaginationParams,\n getDefaultPagination,\n} from \"../utils\";\n\ninterface ErrorResponseData {\n [key: string]: unknown;\n errorCode?: string;\n errorMessage?: string;\n message?: string;\n}\n\nexport class BaseService {\n constructor(protected readonly instance: AxiosInstance) {}\n\n protected async makeRequest<\n TRequest,\n TResponse,\n Schema extends ZodType = z.ZodType,\n >({\n url,\n method = HttpMethod.Get,\n data,\n schema,\n validateResponse,\n ...config\n }: ServiceRequestConfig<TRequest, Schema>): Promise<\n ServiceResponse<TResponse>\n > {\n try {\n const res = await this.instance.request({ url, method, data, ...config });\n\n if (validateResponse && !validateResponse(res.data)) {\n throw new ServiceError(\"Invalid response format\", \"INVALID_RESPONSE\");\n }\n\n const parsedData = schema\n ? (parseSchema(res.data, schema) as unknown as TResponse)\n : (res.data as TResponse);\n\n return { data: parsedData };\n } catch (error) {\n if (error instanceof ServiceError) {\n throw error;\n }\n\n let errorMessage = \"Unknown error\";\n let errorCode: Optional<string>;\n\n if (error && typeof error === \"object\" && \"response\" in error) {\n const axiosError = error as AxiosError;\n const responseData = axiosError.response?.data as ErrorResponseData;\n\n errorMessage =\n responseData?.errorMessage || responseData?.message || errorMessage;\n errorCode = responseData?.errorCode;\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n throw new ServiceError(errorMessage, errorCode || \"REQUEST_FAILED\");\n }\n }\n\n protected async makePaginatedRequest<\n TRequest extends PaginatedRequest,\n TResponse,\n Schema extends ZodType = z.ZodType,\n >({\n url,\n method = HttpMethod.Get,\n data,\n schema,\n validateResponse,\n ...config\n }: ServiceRequestConfig<TRequest, Schema>): Promise<\n PaginatedServiceResponse<TResponse>\n > {\n const { paginationParams, restParams } = extractPaginationParams(\n data || ({} as TRequest),\n );\n\n const { page, perPage } = {\n ...getDefaultPagination(),\n ...paginationParams,\n };\n\n const requestData = { ...restParams, page, perPage };\n\n const response = await this.makeRequest<\n typeof requestData,\n TResponse,\n Schema\n >({\n url,\n method,\n data: requestData,\n schema,\n validateResponse,\n ...config,\n });\n\n // Calculate hasMore based on the response.\n const hasMore = Array.isArray(response.data)\n ? calculateHasMore(response.data, perPage)\n : false;\n\n return {\n data: response.data,\n hasMore,\n };\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n DelegationCreateRequest,\n DelegationCreateResponse,\n DelegationStatusRequest,\n DelegationStatusResponse,\n} from \"../schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport { delegationStatusResponseSchema } from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class AccountService extends BaseService {\n public async getDelegationStatus(\n requestBody: DelegationStatusRequest,\n ): Promise<ServiceResponse<DelegationStatusResponse>> {\n const res = await this.makeRequest<\n DelegationStatusRequest,\n DelegationStatusResponse\n >({\n url: \"/delegation/status\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: delegationStatusResponseSchema,\n });\n\n return res;\n }\n\n public async createDelegation(\n requestBody: DelegationCreateRequest,\n ): Promise<ServiceResponse<DelegationCreateResponse>> {\n await this.makeRequest<DelegationCreateRequest, unknown>({\n url: \"/delegation/new\",\n method: HttpMethod.Post,\n data: requestBody,\n });\n\n return {\n data: { success: true, message: \"Delegation created\" },\n };\n }\n}\n","import type { PaginatedServiceResponse } from \"../core\";\nimport type {\n GetInstructionActivityRequest,\n GetInstructionActivityResponse,\n} from \"../schemas\";\n\nimport { z } from \"zod\";\n\nimport { HttpMethod } from \"../core\";\nimport { activityRecordSchema } from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nconst safeParseActivityArray = (\n data: unknown,\n): GetInstructionActivityResponse => {\n if (!Array.isArray(data)) {\n return [];\n }\n\n const validRecords: GetInstructionActivityResponse = [];\n\n data.forEach((record) => {\n const result = activityRecordSchema.safeParse(record);\n\n if (result.success) {\n validRecords.push(result.data);\n }\n });\n\n return validRecords;\n};\n\nconst safeActivityArraySchema = z.unknown().transform(safeParseActivityArray);\n\nexport class ActivityService extends BaseService {\n public async getInstructionActivity(\n requestBody: GetInstructionActivityRequest,\n ): Promise<PaginatedServiceResponse<GetInstructionActivityResponse>> {\n return this.makePaginatedRequest<\n GetInstructionActivityRequest,\n GetInstructionActivityResponse\n >({\n url: \"/instructions/activity\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: safeActivityArraySchema,\n });\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n AuthLoginRequest,\n AuthLoginResponse,\n TurnkeyLoginRequest,\n TurnkeyLoginResponse,\n TurnkeyVerificationRequest,\n TurnkeyVerificationResponse,\n} from \"../schemas\";\nimport type { User, UserPreferences } from \"@otim/utils/schemas\";\n\nimport { userSchema } from \"@otim/utils/schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n authLoginResponseSchema,\n turnkeyLoginResponseSchema,\n turnkeyVerificationResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class AuthService extends BaseService {\n public async login(\n requestBody: AuthLoginRequest,\n ): Promise<ServiceResponse<AuthLoginResponse>> {\n const res = await this.makeRequest<AuthLoginRequest, AuthLoginResponse>({\n url: \"/auth/login\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: authLoginResponseSchema,\n });\n\n return res;\n }\n\n public async turnkeyVerification(\n requestBody: TurnkeyVerificationRequest,\n ): Promise<ServiceResponse<TurnkeyVerificationResponse>> {\n const res = await this.makeRequest<\n TurnkeyVerificationRequest,\n TurnkeyVerificationResponse\n >({\n url: \"/turnkey/verification\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: turnkeyVerificationResponseSchema,\n });\n\n return res;\n }\n\n public async turnkeyLogin(\n requestBody: TurnkeyLoginRequest,\n ): Promise<ServiceResponse<TurnkeyLoginResponse>> {\n const res = await this.makeRequest<\n TurnkeyLoginRequest,\n TurnkeyLoginResponse\n >({\n url: \"/turnkey/login\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: turnkeyLoginResponseSchema,\n });\n\n return res;\n }\n\n public async me(): Promise<ServiceResponse<User>> {\n const res = await this.makeRequest<undefined, User>({\n url: \"/auth/me\",\n method: HttpMethod.Get,\n schema: userSchema,\n });\n return res;\n }\n\n public async updatePreferences(\n preferences: UserPreferences,\n ): Promise<ServiceResponse<unknown>> {\n const res = await this.makeRequest<\n { preferences: UserPreferences },\n unknown\n >({\n url: \"/user/preferences\",\n method: HttpMethod.Put,\n data: { preferences },\n });\n\n return res;\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n GetConfigChainsResponse,\n GetConfigTokensRequestParameters,\n GetConfigTokensResponse,\n GetDelegateAddressRequest,\n GetDelegateAddressResponse,\n GetMaxPriorityFeePerGasEstimateRequest,\n GetMaxPriorityFeePerGasEstimateResponse,\n} from \"../schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n getConfigChainsResponseSchema,\n getConfigTokensResponseSchema,\n getDelegateAddressResponseSchema,\n getMaxPriorityFeePerGasEstimateResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class ConfigService extends BaseService {\n public async getDelegateAddress(\n requestBody: GetDelegateAddressRequest,\n ): Promise<ServiceResponse<GetDelegateAddressResponse>> {\n const res = await this.makeRequest<\n GetDelegateAddressRequest,\n GetDelegateAddressResponse\n >({\n url: `/config/delegate/address/${requestBody.chainId}`,\n method: HttpMethod.Get,\n schema: getDelegateAddressResponseSchema,\n });\n\n return res;\n }\n\n public async getConfigTokens({\n chainId,\n }: GetConfigTokensRequestParameters): Promise<\n ServiceResponse<GetConfigTokensResponse>\n > {\n const res = await this.makeRequest<\n GetConfigTokensRequestParameters,\n GetConfigTokensResponse\n >({\n url: `/config/tokens/${chainId}`,\n method: HttpMethod.Get,\n schema: getConfigTokensResponseSchema,\n });\n\n return res;\n }\n\n public async getConfigChains(): Promise<\n ServiceResponse<GetConfigChainsResponse>\n > {\n const res = await this.makeRequest<unknown, GetConfigChainsResponse>({\n url: `/config/chains`,\n method: HttpMethod.Get,\n schema: getConfigChainsResponseSchema,\n });\n\n return res;\n }\n\n public async getMaxPriorityFeePerGasEstimate(\n requestBody: GetMaxPriorityFeePerGasEstimateRequest,\n ): Promise<ServiceResponse<GetMaxPriorityFeePerGasEstimateResponse>> {\n const res = await this.makeRequest<\n GetMaxPriorityFeePerGasEstimateRequest,\n GetMaxPriorityFeePerGasEstimateResponse\n >({\n url: `/instruction/estimate/max_priority_fee_per_gas/${requestBody.chainId}`,\n method: HttpMethod.Get,\n schema: getMaxPriorityFeePerGasEstimateResponseSchema,\n });\n\n return res;\n }\n}\n","import type { PaginatedServiceResponse, ServiceResponse } from \"../core\";\nimport type {\n GetContactsRequest,\n GetContactsResponse,\n NewContactRequest,\n} from \"../schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n getContactsRequestSchema,\n getContactsResponseSchema,\n newContactRequestSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class ContactsService extends BaseService {\n public async create(\n request: NewContactRequest,\n ): Promise<ServiceResponse<unknown>> {\n const validated = newContactRequestSchema.parse(request);\n\n return this.makeRequest<NewContactRequest, unknown>({\n url: \"/contacts\",\n method: HttpMethod.Put,\n data: validated,\n });\n }\n\n public async list(\n request: GetContactsRequest,\n ): Promise<PaginatedServiceResponse<GetContactsResponse>> {\n const validated = getContactsRequestSchema.parse(request);\n\n return this.makePaginatedRequest<GetContactsRequest, GetContactsResponse>({\n url: \"/contacts\",\n method: HttpMethod.Get,\n data: validated,\n schema: getContactsResponseSchema,\n });\n }\n}\n","import { BaseService } from \"./base\";\nimport { HttpMethod } from \"../core\";\n\nexport class DeveloperService extends BaseService {\n async updatePublicKey(developerPublicKey: string) {\n return this.makeRequest({\n url: \"/developer/public_key\",\n method: HttpMethod.Put,\n data: { developerPublicKey },\n });\n }\n\n async generateApiKey() {\n return this.makeRequest({\n url: \"/developer/api_key\",\n method: HttpMethod.Post,\n });\n }\n}\n","import type { PaginatedServiceResponse, ServiceResponse } from \"../core\";\nimport type {\n InstructionActivateRequest,\n InstructionActivateResponse,\n InstructionBuild,\n InstructionBuildRequest,\n InstructionDeactivateRequest,\n InstructionDeactivateResponse,\n InstructionDetailsRequest,\n InstructionDetailsResponse,\n InstructionGetAllRequest,\n InstructionGetAllResponse,\n InstructionGetRulesRequest,\n InstructionGetRulesResponse,\n} from \"../schemas\";\n\nimport { instructionsSchema } from \"@otim/utils/schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n instructionActivateResponseSchema,\n instructionBuildSchema,\n instructionDeactivateResponseSchema,\n instructionDetailsResponseSchema,\n instructionGetRulesResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class InstructionService extends BaseService {\n public async all(\n requestBody: InstructionGetAllRequest,\n ): Promise<PaginatedServiceResponse<InstructionGetAllResponse>> {\n return this.makePaginatedRequest<\n InstructionGetAllRequest,\n InstructionGetAllResponse\n >({\n url: \"/instructions/all\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: instructionsSchema,\n });\n }\n\n public async build(\n requestBody: InstructionBuildRequest,\n ): Promise<ServiceResponse<InstructionBuild>> {\n const res = await this.makeRequest<\n InstructionBuildRequest,\n InstructionBuild\n >({\n url: \"/instruction/build\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: instructionBuildSchema,\n });\n\n return res;\n }\n\n public async activate(\n requestBody: InstructionActivateRequest,\n ): Promise<ServiceResponse<InstructionActivateResponse>> {\n const res = await this.makeRequest<\n InstructionActivateRequest,\n InstructionActivateResponse\n >({\n url: \"/instruction/new\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: instructionActivateResponseSchema,\n });\n\n return res;\n }\n\n public async deactivate(\n requestBody: InstructionDeactivateRequest,\n ): Promise<ServiceResponse<InstructionDeactivateResponse>> {\n const res = await this.makeRequest<InstructionDeactivateRequest, unknown>({\n url: \"/instruction/deactivate\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: instructionDeactivateResponseSchema,\n });\n\n return res;\n }\n\n public async details(\n requestBody: InstructionDetailsRequest,\n ): Promise<ServiceResponse<InstructionDetailsResponse>> {\n const res = await this.makeRequest<\n InstructionDetailsRequest,\n InstructionDetailsResponse\n >({\n url: \"/instruction/details\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: instructionDetailsResponseSchema,\n });\n\n return res;\n }\n\n public async rules(\n requestBody: InstructionGetRulesRequest,\n ): Promise<PaginatedServiceResponse<InstructionGetRulesResponse>> {\n return this.makePaginatedRequest<\n InstructionGetRulesRequest,\n InstructionGetRulesResponse\n >({\n url: \"/instructions/rules\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: instructionGetRulesResponseSchema,\n });\n }\n}\n","import type { PaginatedServiceResponse } from \"../core\";\nimport type {\n TransactionGetListRequest,\n TransactionGetListResponse,\n} from \"../schemas\";\nimport type { Transactions } from \"@otim/utils/schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport { transactionGetListResponseSchema } from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class TransactionService extends BaseService {\n public async list(\n requestBody: TransactionGetListRequest,\n ): Promise<PaginatedServiceResponse<Transactions>> {\n return this.makePaginatedRequest<\n TransactionGetListRequest,\n TransactionGetListResponse\n >({\n url: \"/transactions\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: transactionGetListResponseSchema,\n });\n }\n}\n","import type { PaginatedServiceResponse, ServiceResponse } from \"../core\";\nimport type {\n BuildSettlementRequest,\n BuildSettlementResponse,\n GetPaymentRequestsRequest,\n GetPaymentRequestsResponse,\n PaymentRequestBuildRequest,\n PaymentRequestBuildResponse,\n PaymentRequestDetailsRequest,\n PaymentRequestDetailsResponse,\n PaymentRequestNewRequest,\n PaymentsListRequest,\n} from \"../schemas\";\nimport type { Payments } from \"@otim/utils/schemas\";\n\nimport { PaymentsSchema } from \"@otim/utils/schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n buildSettlementResponseSchema,\n getPaymentRequestsResponseSchema,\n paymentRequestBuildResponseSchema,\n paymentRequestDetailsResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class PaymentsService extends BaseService {\n public async getOutgoingPaymentsList(\n request: PaymentsListRequest,\n ): Promise<PaginatedServiceResponse<Payments>> {\n return this.makePaginatedRequest<PaymentsListRequest, Payments>({\n url: \"/api/payments/outgoing\",\n method: HttpMethod.Get,\n data: request,\n schema: PaymentsSchema,\n });\n }\n\n public async getIncomingPaymentsList(\n request: PaymentsListRequest,\n ): Promise<PaginatedServiceResponse<Payments>> {\n return this.makePaginatedRequest<PaymentsListRequest, Payments>({\n url: \"/api/payments/incoming\",\n method: HttpMethod.Get,\n data: request,\n schema: PaymentsSchema,\n });\n }\n\n public async buildPaymentRequest(\n requestBody: PaymentRequestBuildRequest,\n ): Promise<ServiceResponse<PaymentRequestBuildResponse>> {\n return this.makeRequest<\n PaymentRequestBuildRequest,\n PaymentRequestBuildResponse\n >({\n url: \"/orchestration/build\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: paymentRequestBuildResponseSchema,\n });\n }\n\n public async newPaymentRequest(\n requestBody: PaymentRequestNewRequest,\n ): Promise<ServiceResponse<unknown>> {\n return this.makeRequest<PaymentRequestNewRequest, unknown>({\n url: \"/orchestration/new\",\n method: HttpMethod.Post,\n data: requestBody,\n validateResponse: () => true,\n });\n }\n\n public async getPaymentRequestDetails(\n requestBody: PaymentRequestDetailsRequest,\n ): Promise<ServiceResponse<PaymentRequestDetailsResponse>> {\n return this.makeRequest<\n PaymentRequestDetailsRequest,\n PaymentRequestDetailsResponse\n >({\n url: \"/orchestration/details\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: paymentRequestDetailsResponseSchema,\n });\n }\n\n public async getPaymentRequests(\n request: GetPaymentRequestsRequest,\n ): Promise<PaginatedServiceResponse<GetPaymentRequestsResponse>> {\n return this.makePaginatedRequest<\n GetPaymentRequestsRequest,\n GetPaymentRequestsResponse\n >({\n url: \"/orchestrations\",\n method: HttpMethod.Get,\n data: request,\n schema: getPaymentRequestsResponseSchema,\n });\n }\n\n public async buildSettlementOrchestration(\n requestBody: BuildSettlementRequest,\n ): Promise<ServiceResponse<BuildSettlementResponse>> {\n return this.makeRequest<BuildSettlementRequest, BuildSettlementResponse>({\n url: \"/orchestration/build/settlement\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: buildSettlementResponseSchema,\n });\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n GetIntegrationRequest,\n IntegrationResponse,\n UpdateIntegrationRequest,\n} from \"../schemas\";\n\nimport axios from \"axios\";\n\nimport { HttpMethod } from \"../core\";\nimport { integrationResponseSchema, IntegrationType } from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nfunction createEmptyIntegrationResponse(\n integrationType: string,\n): IntegrationResponse {\n switch (integrationType) {\n case IntegrationType.QuickBooks:\n return { integrationType: IntegrationType.QuickBooks, details: {} };\n case IntegrationType.Bank:\n return { integrationType: IntegrationType.Bank, details: {} };\n case IntegrationType.Clio:\n return { integrationType: IntegrationType.Clio, details: {} };\n case IntegrationType.Stripe:\n return { integrationType: IntegrationType.Stripe, details: {} };\n case IntegrationType.Bill:\n return { integrationType: IntegrationType.Bill, details: {} };\n case IntegrationType.Zoho:\n return { integrationType: IntegrationType.Zoho, details: {} };\n default:\n return { integrationType: IntegrationType.Bank, details: {} };\n }\n}\n\nexport class IntegrationService extends BaseService {\n public async upsert(\n request: UpdateIntegrationRequest,\n ): Promise<ServiceResponse<IntegrationResponse>> {\n return this.makeRequest<UpdateIntegrationRequest, IntegrationResponse>({\n url: \"/integration\",\n method: HttpMethod.Put,\n data: request,\n schema: integrationResponseSchema,\n });\n }\n\n public async get(\n request: GetIntegrationRequest,\n ): Promise<ServiceResponse<IntegrationResponse>> {\n try {\n return await this.makeRequest<GetIntegrationRequest, IntegrationResponse>(\n {\n url: \"/integration/get\",\n method: HttpMethod.Post,\n data: request,\n schema: integrationResponseSchema,\n },\n );\n } catch (error) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const defaultResponse = createEmptyIntegrationResponse(\n request.integrationType,\n );\n return { data: defaultResponse };\n }\n\n throw error;\n }\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n GetOperatingAccountSubOrgResponse,\n NewOperatingAccountSubOrgResponse,\n} from \"../schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n getOperatingAccountSubOrgResponseSchema,\n newOperatingAccountSubOrgResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class OperatingAccountService extends BaseService {\n public async createSubOrganization(): Promise<\n ServiceResponse<NewOperatingAccountSubOrgResponse>\n > {\n const res = await this.makeRequest<\n undefined,\n NewOperatingAccountSubOrgResponse\n >({\n url: \"/operating_accounts/sub_organization/new\",\n method: HttpMethod.Post,\n schema: newOperatingAccountSubOrgResponseSchema,\n });\n\n return res;\n }\n\n public async getSubOrganization(): Promise<\n ServiceResponse<GetOperatingAccountSubOrgResponse>\n > {\n const res = await this.makeRequest<\n undefined,\n GetOperatingAccountSubOrgResponse\n >({\n url: \"/operating_accounts/sub_organization\",\n method: HttpMethod.Get,\n schema: getOperatingAccountSubOrgResponseSchema,\n });\n\n return res;\n }\n}\n","import type { CreateInstanceParameters } from \"./core\";\nimport type { OtimEnvironment } from \"@otim/utils/server\";\nimport type { AxiosInstance } from \"axios\";\n\nimport { createInstance, isInstanceInit } from \"./core\";\nimport {\n AccountService,\n ActivityService,\n AuthService,\n ConfigService,\n ContactsService,\n DeveloperService,\n InstructionService,\n IntegrationService,\n OperatingAccountService,\n PaymentsService,\n TransactionService,\n} from \"./services\";\nimport { getOffchainApiUrl } from \"../config/api-urls\";\n\nexport type APIClientInitWithEnvironment =\n | (CreateInstanceParameters & { environment?: OtimEnvironment })\n | ({ instance: AxiosInstance } & { environment?: OtimEnvironment });\n\nexport class APIClient {\n public account: AccountService;\n public readonly activity: ActivityService;\n public readonly auth: AuthService;\n public readonly operatingAccount: OperatingAccountService;\n public readonly config: ConfigService;\n public readonly contacts: ContactsService;\n public readonly developer: DeveloperService;\n public readonly instruction: InstructionService;\n public readonly transaction: TransactionService;\n public readonly payments: PaymentsService;\n public readonly integration: IntegrationService;\n\n constructor(init?: APIClientInitWithEnvironment) {\n const instance = isInstanceInit(init)\n ? init.instance\n : createInstance({\n ...init,\n baseURL: init?.environment\n ? getOffchainApiUrl(init.environment)\n : init?.baseURL,\n });\n\n this.account = new AccountService(instance);\n this.activity = new ActivityService(instance);\n this.auth = new AuthService(instance);\n this.config = new ConfigService(instance);\n this.contacts = new ContactsService(instance);\n this.developer = new DeveloperService(instance);\n this.instruction = new InstructionService(instance);\n this.integration = new IntegrationService(instance);\n this.transaction = new TransactionService(instance);\n this.operatingAccount = new OperatingAccountService(instance);\n this.payments = new PaymentsService(instance);\n }\n}\n\nexport const createAPIClient = (\n ...params: ConstructorParameters<typeof APIClient>\n): APIClient => {\n return new APIClient(...params);\n};\n","/* Success result with data. */\nexport interface Success<T> {\n success: true;\n data: T;\n}\n\n/* Failure result with error message. */\nexport interface Failure {\n success: false;\n error: string;\n /* Optional error code for programmatic handling */\n code?: string;\n}\n\n/* Generic Result type - either Success or Failure. */\nexport type Result<T> = Success<T> | Failure;\n\n/* Helper to create a success result. */\nexport function success<T>(data: T): Success<T> {\n return { success: true, data };\n}\n\n/* Helper to create a failure result. */\nexport function failure(error: string, code?: string): Failure {\n return { success: false, error, code };\n}\n\n/* Type guard to check if result is successful. */\nexport function isSuccess<T>(result: Result<T>): result is Success<T> {\n return result.success === true;\n}\n\n/* Type guard to check if result is a failure. */\nexport function isFailure<T>(result: Result<T>): result is Failure {\n return result.success === false;\n}\n\n/* Common error codes for standardization. */\nexport const ErrorCode = {\n /* Network or API request failed */\n NetworkError: \"NETWORK_ERROR\",\n /* User is not authenticated */\n Unauthorized: \"UNAUTHORIZED\",\n /* Authentication failed (wrong credentials) */\n AuthenticationFailed: \"AUTH_FAILED\",\n /* Required parameter is missing */\n MissingParameter: \"MISSING_PARAMETER\",\n /* Operation not allowed */\n Forbidden: \"FORBIDDEN\",\n /* Session has expired */\n SessionExpired: \"SESSION_EXPIRED\",\n /* Invalid input data */\n InvalidInput: \"INVALID_INPUT\",\n /* Unknown/unexpected error */\n UnknownError: \"UNKNOWN_ERROR\",\n} as const;\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["z","z","z","z","z","z","z","z","feeResponseSchema","storedInstructionSchema","z","z","z","z","z"],"sources":["../../src/api/core/error.ts","../../src/api/core/instance.ts","../../src/api/core/service.ts","../../src/api/schemas/account.ts","../../src/api/schemas/activity.ts","../../src/api/schemas/auth.ts","../../src/api/schemas/chain.ts","../../src/api/schemas/config.ts","../../src/api/schemas/contacts.ts","../../src/api/schemas/instruction.ts","../../src/api/schemas/integration.ts","../../src/api/schemas/operating-account.ts","../../src/api/schemas/payments.ts","../../src/api/schemas/transaction.ts","../../src/api/utils/backoff.ts","../../src/api/utils/pagination.ts","../../src/api/services/base.ts","../../src/api/services/account.ts","../../src/api/services/activity.ts","../../src/api/services/auth.ts","../../src/api/services/config.ts","../../src/api/services/contacts.ts","../../src/api/services/developer.ts","../../src/api/services/instruction.ts","../../src/api/services/transaction.ts","../../src/api/services/payments.ts","../../src/api/services/integration.ts","../../src/api/services/operating-account.ts","../../src/api/api.ts","../../src/api/result.ts"],"sourcesContent":["import type { Nullish } from \"@otim/utils/helpers\";\n\nimport { z } from \"zod\";\n\nexport const apiErrorSchema = z.object({\n code: z.string().nullish(),\n message: z.string().nullish(),\n errorCode: z.string().nullish(),\n errorMessage: z.string().nullish(),\n status: z.number().nullish(),\n context: z\n .object({\n field_errors: z.record(z.string(), z.string()).nullish(),\n })\n .nullish(),\n});\n\nexport const errorResponseSchema = z.object({\n message: z.string().nullish(),\n errorMessage: z.string().nullish(),\n errorCode: z.string().nullish(),\n errors: z.array(apiErrorSchema).nullish(),\n});\n\n// Typed views of error payloads parsed by the helpers below\nexport type ApiErrorPayload = z.infer<typeof apiErrorSchema>;\nexport type ErrorResponsePayload = z.infer<typeof errorResponseSchema>;\n\nconst defaultErrorCode = \"unknown\";\nconst defaultErrorMessage = \"Unexpected error\";\n\n/**\n * Extract the most likely server-provided error payload from a thrown value.\n * Supports common shapes from HTTP clients (Axios/fetch) and plain objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractErrorData(maybeError: any): unknown {\n let errorData = maybeError?.body;\n\n if (!errorData && maybeError?.response?.data) {\n errorData = maybeError.response.data;\n }\n\n if (\n !errorData &&\n (maybeError?.errorMessage || maybeError?.message || maybeError?.errorCode)\n ) {\n errorData = maybeError;\n }\n\n return errorData;\n}\n\n/**\n * Normalize Error Shapes Into One User‑Facing Message.\n * Why: Prefer server messages and avoid leaking technical details.\n *\n * @param maybeError An unknown error thrown by an HTTP client, SDK, or server.\n * @param fallbackMessage Message used when the payload cannot be parsed or\n * lacks a message.\n */\nexport function getErrorMessage(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n maybeError: any,\n fallbackMessage?: string,\n): string {\n const errorMessage = fallbackMessage ?? defaultErrorMessage;\n\n const errorData = extractErrorData(maybeError);\n\n const result = errorResponseSchema.safeParse(errorData);\n if (!result.success) {\n return errorMessage;\n }\n\n const { message, errorMessage: apiErrorMessage, errors } = result.data;\n\n /**\n * Prioritize Error Message From Backend, Then Message, Then Errors Array.\n * Surfaces the most specific, server‑intended feedback first for better UX.\n */\n return (\n apiErrorMessage ??\n message ??\n errors?.[0]?.errorMessage ??\n errors?.[0]?.message ??\n errorMessage\n );\n}\n\nexport interface ErrorMessageWithCode {\n message: string;\n code: string;\n}\n\n/**\n * Provide A Unified Error Message And Code For UI/Control‑Flow.\n * Why: Normalize shapes and fall back to an \"unknown\" code.\n *\n * @param maybeError An unknown error thrown by an HTTP client, SDK, or server.\n * @param fallbackMessage Message used when the payload cannot be parsed or is\n * empty.\n */\nexport function getErrorMessageWithCode(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n maybeError: any,\n fallbackMessage?: string,\n): ErrorMessageWithCode {\n const errorMessage = fallbackMessage ?? defaultErrorMessage;\n\n const errorData = extractErrorData(maybeError);\n\n const result = errorResponseSchema.safeParse(errorData);\n if (\n !result.success ||\n (!result.data.errors?.[0] &&\n !result.data.errorMessage &&\n !result.data.message)\n ) {\n return {\n message: errorMessage,\n code: defaultErrorCode,\n };\n }\n\n const {\n message,\n errorMessage: apiErrorMessage,\n errorCode,\n errors,\n } = result.data;\n\n return {\n message:\n apiErrorMessage ??\n message ??\n errors?.[0]?.errorMessage ??\n errors?.[0]?.message ??\n errorMessage,\n code:\n errorCode ??\n errors?.[0]?.errorCode ??\n errors?.[0]?.code ??\n defaultErrorCode,\n };\n}\n\n/**\n * Detect User Rejection (e.g., Canceled Wallet Signature).\n * Why: Treat cancellations as benign and keep telemetry clean.\n *\n * @param error The error object to check.\n * @returns true if the error is a user rejection, false otherwise.\n */\nexport function isUserRejectionError(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any,\n): boolean {\n if (!error) return false;\n\n /**\n * Safely Extract Error Message From Various Possible Error Formats.\n * Providers may throw strings, plain objects, or non-Error values.\n */\n let errorMessage = \"\";\n if (typeof error === \"string\") {\n errorMessage = error;\n } else if (typeof error === \"object\") {\n errorMessage = error.message || error.errorMessage || error.details || \"\";\n }\n\n if (!errorMessage) {\n errorMessage = String(error);\n }\n\n errorMessage = errorMessage.toLowerCase();\n\n /**\n * Common Patterns For User Rejection Errors From Various Wallet Providers.\n * Why: Normalize detection across diverse SDKs to consistently handle\n * cancellations.\n */\n const rejectionPatterns = [\n \"user rejected\",\n \"user denied\",\n \"user cancelled\",\n \"cancelled by user\",\n \"rejected by user\",\n \"user abort\",\n \"transaction rejected\",\n \"signature rejected\",\n \"request rejected\",\n ];\n\n return rejectionPatterns.some((pattern) => errorMessage.includes(pattern));\n}\n\n/**\n * Determine If An Error Code Is User‑Addressable.\n * Why: 1000–1999 are intended to be surfaced to users.\n *\n * @param errorCode The error code to check.\n * @param errorMessage Optional error message.\n */\nexport const isUserAddressableError = (\n errorCode: number,\n errorMessage: Nullish<string>,\n): boolean => {\n const isInUserErrorRange = errorCode >= 1000 && errorCode < 2000;\n const hasErrorMessage = Boolean(errorMessage);\n\n return isInUserErrorRange && hasErrorMessage;\n};\n\n/**\n * Detect Whether An Error Looks Technical/Low‑Level.\n * Why: Avoid leaking framework/runtime details to users; rely on logging.\n */\nexport function isTechnicalError(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any,\n): boolean {\n if (!error) return false;\n\n /**\n * Safely Extract Error Message From Various Possible Error Formats.\n * Upstream code can throw strings or custom objects instead of Error\n * instances.\n */\n let errorMessage = \"\";\n if (typeof error === \"string\") {\n errorMessage = error;\n } else if (typeof error === \"object\") {\n errorMessage = error.message || error.errorMessage || error.details || \"\";\n }\n\n if (!errorMessage) {\n errorMessage = String(error);\n }\n\n errorMessage = errorMessage.toLowerCase();\n\n /**\n * Common Patterns For Technical Errors That Users Shouldn't See.\n * These originate from runtime/framework/network layers and are not\n * actionable.\n */\n const technicalErrorPatterns = [\n \"is not a function\",\n \"cannot read prop\",\n \"cannot read property\",\n \"reading undefined\",\n \"read undefined of\",\n \"cannot access before initialization\",\n \"is not defined\",\n \"is undefined\",\n \"is null\",\n \"unexpected token\",\n \"syntax error\",\n \"reference error\",\n \"type error\",\n \"network error\",\n \"failed to fetch\",\n \"server components\",\n ];\n\n return technicalErrorPatterns.some((pattern) =>\n errorMessage.includes(pattern),\n );\n}\n\nexport function getUserFriendlyErrorMessage(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any,\n fallbackMessage?: string,\n): string {\n if (isTechnicalError(error)) {\n return \"Internal server error\";\n }\n\n return getErrorMessage(error, fallbackMessage);\n}\n","import type { Optional } from \"@otim/utils/helpers\";\nimport type { AxiosInstance, CreateAxiosDefaults } from \"axios\";\n\nimport axios from \"axios\";\n\nconst API_INSTANCE_DEFAULT_TIMEOUT = 30000;\n\nexport interface CreateInstanceParameters extends CreateAxiosDefaults {}\n\nexport const createInstance = (config?: CreateAxiosDefaults) => {\n const instance = axios.create({\n timeout: API_INSTANCE_DEFAULT_TIMEOUT,\n ...config,\n });\n\n return instance;\n};\n\nexport const createAbortController = () => {\n return new AbortController();\n};\n\nexport type APIClientInit =\n | CreateInstanceParameters\n | { instance: AxiosInstance };\n\nexport const isInstanceInit = (\n init: Optional<APIClientInit>,\n): init is { instance: AxiosInstance } => {\n return !!init && typeof init === \"object\" && \"instance\" in init;\n};\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { ZodType } from \"zod\";\n\n/* Wraps a successful service response payload. */\nexport interface ServiceResponse<T> {\n data: T;\n}\n\n/**\n * Response shape for endpoints that return lists with pagination metadata.\n */\nexport interface PaginatedServiceResponse<T> {\n data: T;\n hasMore: boolean;\n}\n\n/* Standard pagination parameters accepted by list endpoints. */\nexport interface PaginatedRequest {\n page?: number;\n perPage?: number;\n}\n\n/* Error thrown when a request fails or a response is invalid. */\nexport class ServiceError extends Error {\n constructor(\n message: string,\n public readonly code?: string,\n ) {\n super(message);\n this.name = \"ServiceError\";\n }\n}\n\n/* Allowed HTTP methods for requests. */\nexport const HttpMethod = {\n Get: \"GET\",\n Post: \"POST\",\n Put: \"PUT\",\n Delete: \"DELETE\",\n} as const;\nexport type HttpMethod = (typeof HttpMethod)[keyof typeof HttpMethod];\n\n/**\n * Strongly-typed request config for services.\n * - `data` is the request body or query payload.\n * - `schema` is used to parse and validate the response.\n * - `validateResponse`, when provided, is evaluated prior to schema parsing.\n */\nexport interface ServiceRequestConfig<\n TRequest,\n Schema extends ZodType,\n> extends AxiosRequestConfig {\n data?: TRequest;\n schema?: Schema;\n validateResponse?: (data: unknown) => boolean;\n}\n","import { z } from \"zod\";\n\nexport const DelegationStatus = {\n Undelegated: \"Undelegated\",\n Pending: \"Pending\",\n Delegated: \"Delegated\",\n Expired: \"Expired\",\n Errored: \"Errored\",\n} as const;\nexport type DelegationStatus =\n (typeof DelegationStatus)[keyof typeof DelegationStatus];\nexport const delegationStatusValues = Object.values(DelegationStatus) as [\n DelegationStatus,\n ...DelegationStatus[],\n];\n\nexport const delegationStatusSchema = z.enum(delegationStatusValues);\n\nexport const delegationStatusRequestSchema = z.object({\n address: z.string(),\n chainId: z.number(),\n});\nexport type DelegationStatusRequest = z.infer<\n typeof delegationStatusRequestSchema\n>;\n\nexport const delegationStatusResponseSchema = z.object({\n delegationStatus: delegationStatusSchema,\n});\nexport type DelegationStatusResponse = z.infer<\n typeof delegationStatusResponseSchema\n>;\n\nexport const delegationCreateRequestSchema = z.object({\n signedAuthorization: z.string(),\n signerAddress: z.string(),\n});\nexport type DelegationCreateRequest = z.infer<\n typeof delegationCreateRequestSchema\n>;\n\nexport const delegationCreateResponseSchema = z.object({\n success: z.boolean(),\n transactionHash: z.string().optional(),\n message: z.string().optional(),\n});\nexport type DelegationCreateResponse = z.infer<\n typeof delegationCreateResponseSchema\n>;\n","import type { PaginatedRequest } from \"../core\";\n\nimport { z } from \"zod\";\n\nimport {\n hexStringSchema,\n InstructionAction,\n instructionActionValues,\n numberSchema,\n} from \"@otim/utils/schemas\";\n\nexport const actionNameSchema = z.enum(instructionActionValues);\nexport type ActionName = z.infer<typeof actionNameSchema>;\n\n/**\n * Human-readable labels for automation action names.\n */\nconst ACTION_NAME_LABELS: Partial<Record<ActionName, string>> = {\n [InstructionAction.Refuel]: \"Refuel\",\n [InstructionAction.RefuelERC20]: \"Refuel\",\n [InstructionAction.Transfer]: \"Transfer\",\n [InstructionAction.TransferERC20]: \"Transfer\",\n [InstructionAction.TransferCCTP]: \"Transfer\",\n [InstructionAction.Sweep]: \"Sweep\",\n [InstructionAction.SweepERC20]: \"Sweep\",\n [InstructionAction.SweepCCTP]: \"Sweep\",\n [InstructionAction.SweepUniswapV3]: \"Trade\",\n [InstructionAction.UniswapV3ExactInput]: \"Trade\",\n [InstructionAction.DepositERC4626]: \"Deposit\",\n [InstructionAction.SweepDepositERC4626]: \"Deposit\",\n [InstructionAction.WithdrawERC4626]: \"Withdraw\",\n [InstructionAction.SweepWithdrawERC4626]: \"Withdraw\",\n [InstructionAction.DeactivateInstruction]: \"Deactivate\",\n [InstructionAction.CallOnce]: \"Call Once\",\n} as const;\n\nconst DEFAULT_ACTION_LABEL = \"–\";\n\n/**\n * Human-readable labels for payment rails.\n */\nconst PAYMENT_RAIL_LABELS: Record<string, string> = {\n ach_push: \"ACH\",\n pix: \"PIX\",\n sepa: \"SEPA\",\n spei: \"SPEI\",\n wire: \"Wire\",\n} as const;\n\n/**\n * Human-readable labels for virtual account event types.\n */\nconst VIRTUAL_ACCOUNT_EVENT_LABELS: Record<string, string> = {\n funds_received: \"Funds Received\",\n payment_submitted: \"Payment Submitted\",\n payment_processed: \"Payment Processed\",\n in_review: \"In Review\",\n microdeposit: \"Microdeposit\",\n funds_scheduled: \"Funds Scheduled\",\n} as const;\n\n/**\n * Formats a payment rail value to a human-readable label.\n */\nexport function formatPaymentRail(paymentRail: string | undefined): string {\n if (!paymentRail) return DEFAULT_ACTION_LABEL;\n\n const label = PAYMENT_RAIL_LABELS[paymentRail.toLowerCase()];\n if (label) return label;\n\n // Fallback: format the payment rail (e.g., \"ach_push\" -> \"Ach Push\")\n return paymentRail\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n\n/**\n * Formats an action name to a human-readable label.\n */\nexport function formatActionName(\n actionName: string | null,\n source?: { payment_rail?: string },\n): string {\n if (!actionName) return DEFAULT_ACTION_LABEL;\n\n // Handle virtual account events (format: \"virtual_account_{event_type}\")\n if (actionName.startsWith(\"virtual_account_\")) {\n // If source.payment_rail is available, format it to a human-readable label\n if (source?.payment_rail) {\n return formatPaymentRail(source.payment_rail);\n }\n\n const eventType = actionName.replace(\"virtual_account_\", \"\");\n const label = VIRTUAL_ACCOUNT_EVENT_LABELS[eventType];\n if (label) return label;\n\n // Fallback: format the event type (e.g., \"funds_scheduled\" -> \"Funds Scheduled\")\n return eventType\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n }\n\n const label = ACTION_NAME_LABELS[actionName as ActionName];\n\n return label ?? DEFAULT_ACTION_LABEL;\n}\n\nconst transferFieldsSchema = z.object({\n token: hexStringSchema,\n from: hexStringSchema,\n to: hexStringSchema,\n value: hexStringSchema,\n});\n\nconst swapFieldsSchema = z.object({\n poolAddress: hexStringSchema,\n fromToken: hexStringSchema,\n toToken: hexStringSchema,\n from: hexStringSchema,\n to: hexStringSchema,\n fromAmount: hexStringSchema,\n toAmount: hexStringSchema,\n});\n\nconst cctpBurnFieldsSchema = z.object({\n token: hexStringSchema,\n from: hexStringSchema,\n mintRecipient: hexStringSchema,\n destinationDomain: hexStringSchema,\n value: hexStringSchema,\n});\n\nconst erc4626DepositFieldsSchema = z.object({\n vault: hexStringSchema,\n token: hexStringSchema,\n from: hexStringSchema,\n owner: hexStringSchema,\n value: hexStringSchema,\n shares: hexStringSchema,\n});\n\nconst erc4626WithdrawFieldsSchema = z.object({\n vault: hexStringSchema,\n token: hexStringSchema,\n from: hexStringSchema,\n to: hexStringSchema,\n value: hexStringSchema,\n shares: hexStringSchema,\n});\n\nexport const activityDataSchema = z.union([\n z.object({ transfer: transferFieldsSchema }),\n z.object({ swap: swapFieldsSchema }),\n z.object({ cctpBurn: cctpBurnFieldsSchema }),\n z.object({ erc4626Deposit: erc4626DepositFieldsSchema }),\n z.object({ erc4626Withdraw: erc4626WithdrawFieldsSchema }),\n]);\nexport type ActivityData = z.infer<typeof activityDataSchema>;\n\nexport type ActivityTransferData = z.infer<typeof transferFieldsSchema>;\nexport type ActivitySwapData = z.infer<typeof swapFieldsSchema>;\nexport type ActivityCCTPBurnData = z.infer<typeof cctpBurnFieldsSchema>;\nexport type ActivityERC4626DepositData = z.infer<\n typeof erc4626DepositFieldsSchema\n>;\nexport type ActivityERC4626WithdrawData = z.infer<\n typeof erc4626WithdrawFieldsSchema\n>;\n\nexport const activityRecordSchema = z.object({\n actionName: actionNameSchema,\n blockTimestamp: numberSchema,\n transactionHash: hexStringSchema,\n activity: activityDataSchema,\n instructionId: hexStringSchema.nullable(),\n executionCount: z.number().nullable(),\n});\nexport type ActivityRecord = z.infer<typeof activityRecordSchema>;\n\nexport const getInstructionActivityRequestSchema = z.object({\n chainId: z.number(),\n actionNames: z.array(actionNameSchema),\n page: numberSchema.optional(),\n perPage: numberSchema.optional(),\n});\nexport type GetInstructionActivityRequest = z.infer<\n typeof getInstructionActivityRequestSchema\n>;\n\nexport const getInstructionActivityResponseSchema =\n z.array(activityRecordSchema);\nexport type GetInstructionActivityResponse = z.infer<\n typeof getInstructionActivityResponseSchema\n>;\n\nexport interface InstructionActivityRequest extends PaginatedRequest {\n chainId: number;\n actionNames: ActionName[];\n}\n","import { z } from \"zod\";\n\nimport { userSchema, vrsSchema } from \"@otim/utils/schemas\";\n\nexport const authLoginRequestSchema = z.object({\n siwe: z.string(),\n signature: vrsSchema,\n});\nexport type AuthLoginRequest = z.infer<typeof authLoginRequestSchema>;\n\nexport const authLoginResponseSchema = z.object({\n authorization: z.string(),\n user: userSchema,\n});\nexport type AuthLoginResponse = z.infer<typeof authLoginResponseSchema>;\n\nexport const turnkeyVerificationRequestSchema = z.object({\n email: z.string().email(),\n});\nexport type TurnkeyVerificationRequest = z.infer<\n typeof turnkeyVerificationRequestSchema\n>;\n\nexport const turnkeyVerificationResponseSchema = z.object({\n isLogin: z.boolean(),\n /**\n * True when a verification code was already sent and is still valid.\n * In this case, the user should proceed to enter the existing code\n * instead of receiving a new one.\n */\n codeAlreadyExists: z.boolean().optional(),\n});\nexport type TurnkeyVerificationResponse = z.infer<\n typeof turnkeyVerificationResponseSchema\n>;\n\nexport const attestationSchema = z.object({\n credentialId: z.string(),\n clientDataJson: z.string(),\n attestationObject: z.string(),\n transports: z.array(z.string()).optional(),\n});\nexport type Attestation = z.infer<typeof attestationSchema>;\n\nexport const turnkeyLoginRequestSchema = z.object({\n email: z.email(),\n verificationCode: z.coerce.number().int().min(100000).max(999999),\n passkeyChallenge: z.string().optional(),\n attestation: attestationSchema.optional(),\n});\nexport type TurnkeyLoginRequest = z.infer<typeof turnkeyLoginRequestSchema>;\n\nexport const turnkeyLoginResponseSchema = z.object({\n email: z.string(),\n subOrgId: z.string(),\n walletAddress: z.string(),\n isLogin: z.boolean().optional(),\n});\nexport type TurnkeyLoginResponse = z.infer<typeof turnkeyLoginResponseSchema>;\n\nexport const meResponseSchema = userSchema;\nexport type MeResponse = z.infer<typeof meResponseSchema>;\n\nexport const sessionTokenRequestSchema = z.object({\n sessionToken: z.string(),\n userId: z.string(),\n});\nexport type SessionTokenRequest = z.infer<typeof sessionTokenRequestSchema>;\n\nexport const sessionTokenResponseSchema = z.object({\n success: z.boolean(),\n});\nexport type SessionTokenResponse = z.infer<typeof sessionTokenResponseSchema>;\n\nexport const sessionVerifyResponseSchema = z.object({\n authenticated: z.boolean(),\n hasSessionToken: z.boolean(),\n});\nexport type SessionVerifyResponse = z.infer<typeof sessionVerifyResponseSchema>;\n\n/**\n * @todo\n * - Remove later, this is a temporary schema for the whitelist check\n */\n\nexport const whitelistCheckRequestSchema = z.object({\n email: z.string().email(),\n});\nexport type WhitelistCheckRequest = z.infer<typeof whitelistCheckRequestSchema>;\n\nexport const whitelistCheckResponseSchema = z.object({\n isAllowed: z.boolean(),\n message: z.string().optional(),\n});\nexport type WhitelistCheckResponse = z.infer<\n typeof whitelistCheckResponseSchema\n>;\n\nexport const addressWhitelistCheckRequestSchema = z.object({\n address: z.string(),\n});\nexport type AddressWhitelistCheckRequest = z.infer<\n typeof addressWhitelistCheckRequestSchema\n>;\n\nexport const addressWhitelistCheckResponseSchema = z.object({\n isAllowed: z.boolean(),\n message: z.string().optional(),\n});\nexport type AddressWhitelistCheckResponse = z.infer<\n typeof addressWhitelistCheckResponseSchema\n>;\n","import { z } from \"zod\";\n\nexport const chainIdSchema = z.object({\n chainId: z.number().nullable(),\n});\n\nexport type ChainIdResponse = z.infer<typeof chainIdSchema>;\n\nexport const setChainIdSchema = z.object({\n chainId: z.number().positive(),\n});\nexport type SetChainIdRequest = z.infer<typeof setChainIdSchema>;\n\nexport const chainSuccessResponseSchema = z.object({\n success: z.boolean(),\n chainId: z.number().optional(),\n});\nexport type ChainSuccessResponse = z.infer<typeof chainSuccessResponseSchema>;\n","import { z } from \"zod\";\n\nimport { hexStringSchema } from \"@otim/utils/schemas\";\n\nexport const getDelegateAddressSchema = z.object({\n chainId: z.number(),\n});\nexport type GetDelegateAddressRequest = z.infer<\n typeof getDelegateAddressSchema\n>;\n\nexport const getDelegateAddressResponseSchema = z.object({\n otimDelegateAddress: z.string(),\n});\nexport type GetDelegateAddressResponse = z.infer<\n typeof getDelegateAddressResponseSchema\n>;\n\nexport const getConfigTokensRequestParametersSchema = z.object({\n chainId: z.number(),\n});\nexport type GetConfigTokensRequestParameters = z.infer<\n typeof getConfigTokensRequestParametersSchema\n>;\n\nexport const getConfigTokensResponseSchema = z.object({\n tokens: z.array(\n z.object({\n symbol: z.any(),\n address: hexStringSchema,\n }),\n ),\n});\nexport type GetConfigTokensResponse = z.infer<\n typeof getConfigTokensResponseSchema\n>;\n\nexport const getConfigChainsResponseSchema = z.unknown();\nexport type GetConfigChainsResponse = z.infer<\n typeof getConfigChainsResponseSchema\n>;\n\nexport const getMaxPriorityFeePerGasEstimateSchema = z.object({\n chainId: z.number(),\n});\nexport type GetMaxPriorityFeePerGasEstimateRequest = z.infer<\n typeof getMaxPriorityFeePerGasEstimateSchema\n>;\n\nexport const getMaxPriorityFeePerGasEstimateResponseSchema = z.object({\n slowMaxPriorityFeeEstimate: z.number(),\n normalMaxPriorityFeeEstimate: z.number(),\n fastMaxPriorityFeeEstimate: z.number(),\n});\nexport type GetMaxPriorityFeePerGasEstimateResponse = z.infer<\n typeof getMaxPriorityFeePerGasEstimateResponseSchema\n>;\n","import { z } from \"zod\";\n\nimport { hexStringSchema, numberSchema } from \"@otim/utils/schemas\";\n\nexport const newContactRequestSchema = z.object({\n address: hexStringSchema,\n name: z.string(),\n});\nexport type NewContactRequest = z.infer<typeof newContactRequestSchema>;\n\nexport const getContactsRequestSchema = z.object({\n perPage: numberSchema.optional(),\n page: numberSchema.optional(),\n});\nexport type GetContactsRequest = z.infer<typeof getContactsRequestSchema>;\n\nexport const contactSchema = z.object({\n userId: z.string(),\n address: hexStringSchema,\n name: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const getContactsResponseSchema = z.array(contactSchema);\nexport type GetContactsResponse = z.infer<typeof getContactsResponseSchema>;\n","import { z } from \"zod\";\n\nimport {\n eip2098SignatureSchema,\n hexStringSchema,\n instructionActionValues,\n numberSchema,\n instructionSchema as storedInstructionSchema,\n} from \"@otim/utils/schemas\";\n\nconst feeSchema = z.object({\n executionFee: hexStringSchema,\n maxBaseFeePerGas: hexStringSchema,\n maxPriorityFeePerGas: hexStringSchema,\n token: hexStringSchema,\n});\n\nconst scheduleSchema = z.object({\n startAt: numberSchema,\n startBy: numberSchema,\n interval: numberSchema,\n timeout: numberSchema,\n});\n\nconst baseActionArgumentsSchema = z.object({\n target: hexStringSchema,\n fee: feeSchema,\n token: hexStringSchema,\n});\n\nconst refuelActionArgumentsSchema = baseActionArgumentsSchema.extend({\n threshold: numberSchema,\n endBalance: numberSchema,\n gasLimit: numberSchema,\n});\n\nconst refuelERC20ActionArgumentsSchema = baseActionArgumentsSchema.extend({\n threshold: numberSchema,\n endBalance: numberSchema,\n gasLimit: numberSchema,\n});\n\nconst transferActionArgumentsSchema = baseActionArgumentsSchema.extend({\n value: numberSchema,\n gasLimit: numberSchema,\n schedule: scheduleSchema,\n});\n\nconst transferERC20ActionArgumentsSchema = baseActionArgumentsSchema.extend({\n value: numberSchema,\n gasLimit: numberSchema,\n schedule: scheduleSchema,\n});\n\nconst uniswapV3ExactInputActionArgumentsSchema = z.object({\n tokenIn: hexStringSchema,\n tokenOut: hexStringSchema,\n amountIn: numberSchema,\n floorAmountOut: numberSchema,\n feeTier: z.string(),\n recipient: hexStringSchema,\n meanPriceLookBack: numberSchema,\n maxPriceDeviationBps: numberSchema,\n fee: feeSchema,\n schedule: scheduleSchema,\n});\n\nconst deactivateInstructionActionArgumentsSchema = z.object({\n instructionId: hexStringSchema,\n fee: feeSchema,\n});\n\nconst depositERC4626ActionArgumentsSchema = z.object({\n vault: hexStringSchema,\n recipient: hexStringSchema,\n value: numberSchema,\n minDeposit: numberSchema,\n minTotalShares: numberSchema,\n schedule: scheduleSchema,\n fee: feeSchema,\n});\n\nconst sweepDepositERC4626ActionArgumentsSchema = z.object({\n vault: hexStringSchema,\n recipient: hexStringSchema,\n threshold: numberSchema,\n endBalance: numberSchema,\n minDeposit: numberSchema,\n minTotalShares: numberSchema,\n fee: feeSchema,\n});\n\nconst withdrawERC4626ActionArgumentsSchema = z.object({\n vault: hexStringSchema,\n recipient: hexStringSchema,\n value: numberSchema,\n minWithdraw: numberSchema,\n schedule: scheduleSchema,\n fee: feeSchema,\n});\n\nconst sweepWithdrawERC4626ActionArgumentsSchema = z.object({\n vault: hexStringSchema,\n recipient: hexStringSchema,\n threshold: numberSchema,\n endBalance: numberSchema,\n minWithdraw: numberSchema,\n fee: feeSchema,\n});\n\nexport const actionArgumentsSchema = z.union([\n refuelActionArgumentsSchema,\n refuelERC20ActionArgumentsSchema,\n transferActionArgumentsSchema,\n transferERC20ActionArgumentsSchema,\n uniswapV3ExactInputActionArgumentsSchema,\n deactivateInstructionActionArgumentsSchema,\n depositERC4626ActionArgumentsSchema,\n sweepDepositERC4626ActionArgumentsSchema,\n withdrawERC4626ActionArgumentsSchema,\n sweepWithdrawERC4626ActionArgumentsSchema,\n]);\nexport type ActionArguments = z.infer<typeof actionArgumentsSchema>;\n\n//\n\nconst feeResponseSchema = z.object({\n token: hexStringSchema,\n executionFee: hexStringSchema,\n maxBaseFeePerGas: hexStringSchema,\n maxPriorityFeePerGas: hexStringSchema,\n});\nexport type FeeResponse = z.infer<typeof feeResponseSchema>;\n\nconst scheduleResponseSchema = z.object({\n startAt: hexStringSchema,\n startBy: hexStringSchema,\n interval: hexStringSchema,\n timeout: hexStringSchema,\n});\nexport type ScheduleResponse = z.infer<typeof scheduleResponseSchema>;\n\nconst refuelActionResponseSchema = z.object({\n target: hexStringSchema,\n threshold: hexStringSchema,\n endBalance: hexStringSchema,\n gasLimit: hexStringSchema,\n fee: feeResponseSchema,\n});\n\nconst transferActionResponseSchema = z.object({\n target: hexStringSchema,\n value: hexStringSchema,\n gasLimit: hexStringSchema,\n schedule: scheduleResponseSchema,\n fee: feeResponseSchema,\n});\n\nconst refuelERC20ActionResponseSchema = z.object({\n token: hexStringSchema,\n target: hexStringSchema,\n threshold: hexStringSchema,\n endBalance: hexStringSchema,\n fee: feeResponseSchema,\n});\n\nconst transferERC20ActionResponseSchema = z.object({\n token: hexStringSchema,\n target: hexStringSchema,\n value: hexStringSchema,\n schedule: scheduleResponseSchema,\n fee: feeResponseSchema,\n});\n\nexport const actionArgumentsResponseSchema = z.union([\n refuelActionResponseSchema,\n transferActionResponseSchema,\n refuelERC20ActionResponseSchema,\n transferERC20ActionResponseSchema,\n]);\nexport type ActionArgumentsResponse = z.infer<\n typeof actionArgumentsResponseSchema\n>;\n\n//\n\nexport const instructionBuildSchema = z.object({\n action: hexStringSchema,\n arguments: hexStringSchema,\n maxExecutions: hexStringSchema,\n salt: hexStringSchema,\n nickname: z.string().nullish(),\n});\nexport type InstructionBuild = z.infer<typeof instructionBuildSchema>;\nexport type Instruction = InstructionBuild;\n\nexport const instructionGetAllRequestSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n actionName: z.string().optional(),\n page: z.number().optional(),\n perPage: z.number().optional(),\n});\nexport type InstructionGetAllRequest = z.infer<\n typeof instructionGetAllRequestSchema\n>;\n\nexport const instructionGetAllResponseSchema = z.array(storedInstructionSchema);\nexport type InstructionGetAllResponse = z.infer<\n typeof instructionGetAllResponseSchema\n>;\n\nexport const instructionBuildRequestSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n salt: z.number(),\n maxExecutions: z.number(),\n actionArguments: z.record(z.string(), actionArgumentsSchema).refine(\n (args) => {\n const keys = Object.keys(args);\n return (\n keys.length === 1 &&\n instructionActionValues.includes(\n keys[0] as (typeof instructionActionValues)[number],\n )\n );\n },\n {\n message:\n \"actionArguments must contain exactly one valid instruction action\",\n },\n ),\n});\nexport type InstructionBuildRequest = z.infer<\n typeof instructionBuildRequestSchema\n>;\n\nexport const instructionActivateRequestSchema = z.object({\n nickname: z.string().optional(),\n address: hexStringSchema,\n chainId: z.number(),\n salt: hexStringSchema,\n maxExecutions: hexStringSchema,\n action: hexStringSchema,\n arguments: hexStringSchema,\n activationSignature: eip2098SignatureSchema,\n});\nexport type InstructionActivateRequest = z.infer<\n typeof instructionActivateRequestSchema\n>;\n\nexport const instructionActivateResponseSchema = z.object({\n instructionId: hexStringSchema,\n});\nexport type InstructionActivateResponse = z.infer<\n typeof instructionActivateResponseSchema\n>;\n\nexport const instructionDeactivateRequestSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n deactivation: z.object({\n instructionId: hexStringSchema,\n }),\n deactivationSignature: eip2098SignatureSchema,\n});\nexport type InstructionDeactivateRequest = z.infer<\n typeof instructionDeactivateRequestSchema\n>;\n\nexport const instructionDeactivateResponseSchema = z.unknown();\nexport type InstructionDeactivateResponse = z.infer<\n typeof instructionDeactivateResponseSchema\n>;\n\nexport const instructionDetailsRequestSchema = z.object({\n address: hexStringSchema,\n instructionId: hexStringSchema,\n chainId: z.number(),\n});\nexport type InstructionDetailsRequest = z.infer<\n typeof instructionDetailsRequestSchema\n>;\n\nexport const instructionDetailsResponseSchema = z.object({\n action: hexStringSchema,\n actionArguments: z.any(),\n actionName: z.string().nullish(),\n salt: hexStringSchema,\n maxExecutions: hexStringSchema,\n nickname: z.string().nullish(),\n lastErrorCode: z.number().int(),\n lastErrorMessage: z.string().nullish(),\n});\nexport type InstructionDetailsResponse = z.infer<\n typeof instructionDetailsResponseSchema\n>;\n\nexport const instructionGetRulesRequestSchema = z.object({\n chainId: z.number(),\n page: z.number().optional(),\n perPage: z.number().optional(),\n});\nexport type InstructionGetRulesRequest = z.infer<\n typeof instructionGetRulesRequestSchema\n>;\n\nexport const instructionGetRulesResponseSchema = z.array(\n storedInstructionSchema,\n);\nexport type InstructionGetRulesResponse = z.infer<\n typeof instructionGetRulesResponseSchema\n>;\n","import { z } from \"zod\";\n\nexport const IntegrationType = {\n Bank: \"Bank\",\n Clio: \"Clio\",\n Stripe: \"Stripe\",\n QuickBooks: \"QuickBooks\",\n Bill: \"Bill\",\n Zoho: \"Zoho\",\n} as const;\nexport type IntegrationType =\n (typeof IntegrationType)[keyof typeof IntegrationType];\nexport const integrationTypeValues = [\n IntegrationType.Bank,\n IntegrationType.Clio,\n IntegrationType.Stripe,\n IntegrationType.QuickBooks,\n IntegrationType.Bill,\n IntegrationType.Zoho,\n] as const;\n\nconst quickBooksDetailsSchema = z.object({\n accessToken: z.string().optional(),\n refreshToken: z.string().optional(),\n realmId: z.string().optional(),\n tokenType: z.string().optional(),\n expiresIn: z.number().optional(),\n xRefreshTokenExpiresIn: z.number().optional(),\n});\n\nconst stripeTokensSchema = z.object({\n accessToken: z.string(),\n refreshToken: z.string().optional(),\n});\n\nconst stripeDetailsSchema = z.object({\n clientId: z.string().optional(),\n clientSecret: z.string().optional(),\n tokens: stripeTokensSchema.optional(),\n});\n\nconst billcomDetailsSchema = z.object({\n devKey: z.string().optional(),\n sessionId: z.string().optional(),\n orgId: z.string().optional(),\n rememberMeId: z.string().optional(),\n});\n\nconst liquidationAddressSchema = z.object({\n liquidationAddressId: z.string(),\n address: z.string(),\n chain: z.string(),\n currency: z.string(),\n blockchainMemo: z.string().optional(),\n});\n\nconst plaidAccountSchema = z.object({\n accountId: z.string(),\n name: z.string().optional(),\n mask: z.string().optional(),\n subtype: z.string().optional(),\n externalAccountId: z.string().optional(),\n liquidationAddress: liquidationAddressSchema.optional(),\n});\n\nconst plaidConnectionSchema = z.object({\n accessToken: z.string(),\n itemId: z.string(),\n institutionId: z.string().optional(),\n institutionName: z.string().optional(),\n accounts: z.array(plaidAccountSchema),\n});\n\nconst bridgeConnectionSchema = z.object({\n customerId: z.string(),\n kycLinkId: z.string().optional(),\n kycLink: z.string().optional(),\n tosLink: z.string().optional(),\n completedSteps: z.array(z.string()).optional(),\n});\n\nconst bankDetailsSchema = z.object({\n plaid: z.array(plaidConnectionSchema).optional(),\n bridge: z.array(bridgeConnectionSchema).optional(),\n});\n\nexport const integrationTypeSchema = z.enum(integrationTypeValues);\nexport type IntegrationTypeEnum = z.infer<typeof integrationTypeSchema>;\n\nexport const updateIntegrationRequestSchema = z.discriminatedUnion(\n \"integrationType\",\n [\n z.object({\n integrationType: z.literal(IntegrationType.QuickBooks),\n details: quickBooksDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Bank),\n details: bankDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Clio),\n details: z.unknown(),\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Stripe),\n details: stripeDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Bill),\n details: billcomDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Zoho),\n details: z.unknown(),\n }),\n ],\n);\nexport type UpdateIntegrationRequest = z.infer<\n typeof updateIntegrationRequestSchema\n>;\n\nexport const getIntegrationRequestSchema = z.object({\n integrationType: integrationTypeSchema,\n});\nexport type GetIntegrationRequest = z.infer<typeof getIntegrationRequestSchema>;\n\nexport const integrationResponseSchema = z.discriminatedUnion(\n \"integrationType\",\n [\n z.object({\n integrationType: z.literal(IntegrationType.QuickBooks),\n details: quickBooksDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Bank),\n details: bankDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Clio),\n details: z.unknown(),\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Stripe),\n details: stripeDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Bill),\n details: billcomDetailsSchema,\n }),\n z.object({\n integrationType: z.literal(IntegrationType.Zoho),\n details: z.unknown(),\n }),\n ],\n);\nexport type IntegrationResponse = z.infer<typeof integrationResponseSchema>;\n","import { z } from \"zod\";\n\nexport const newOperatingAccountSubOrgResponseSchema = z.object({\n subOrganizationId: z.string(),\n endUserId: z.string(),\n});\nexport type NewOperatingAccountSubOrgResponse = z.infer<\n typeof newOperatingAccountSubOrgResponseSchema\n>;\n\nexport const getOperatingAccountSubOrgResponseSchema = z.object({\n subOrganizationId: z.string(),\n});\nexport type GetOperatingAccountSubOrgResponse = z.infer<\n typeof getOperatingAccountSubOrgResponseSchema\n>;\n","import type { PaginatedRequest } from \"../core\";\n\nimport { z } from \"zod\";\n\nimport {\n eip2098SignatureSchema,\n hexStringSchema,\n numberSchema,\n} from \"@otim/utils/schemas\";\n\nexport const paymentRequestsDirectionSchema = z.enum([\"from\", \"to\"]);\n\nexport const orchestrationTypeSchema = z.enum([\"AutoEarn\", \"PaymentRequest\"]);\nexport type OrchestrationType = z.infer<typeof orchestrationTypeSchema>;\n\nexport const getPaymentRequestsRequestSchema = z.object({\n direction: paymentRequestsDirectionSchema,\n statuses: z\n .array(z.enum([\"pending\", \"inProgress\", \"paid\", \"cancelled\", \"draft\"]))\n .optional(),\n perPage: numberSchema.optional(),\n page: numberSchema.optional(),\n orchestrationType: orchestrationTypeSchema.optional(),\n});\nexport type GetPaymentRequestsRequest = z.infer<\n typeof getPaymentRequestsRequestSchema\n>;\n\nexport const paymentRequestStatusSchema = z.enum([\n \"pending\",\n \"inProgress\",\n \"paid\",\n \"cancelled\",\n \"draft\",\n]);\n\nexport const paymentRequestSchema = z.object({\n id: z.string(),\n fromUserId: z.string(),\n toUserId: z.string().nullable(),\n payerAddress: hexStringSchema.nullable(),\n ephemeralWalletAddress: hexStringSchema,\n instructions: z.object({\n ids: z.array(z.string()),\n completionIds: z.array(z.string()),\n }),\n metadata: z.record(z.string(), z.unknown()),\n status: paymentRequestStatusSchema,\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const getPaymentRequestsResponseSchema = z.array(paymentRequestSchema);\nexport type GetPaymentRequestsResponse = z.infer<\n typeof getPaymentRequestsResponseSchema\n>;\n\nexport const buildEphemeralInstructionSchema = z.object({\n chainId: z.number(),\n salt: numberSchema,\n maxExecutions: numberSchema,\n actionArguments: z.record(z.string(), z.unknown()),\n setEphemeralTarget: z.boolean().optional(),\n});\n\nexport const paymentRequestBuildRequestSchema = z.object({\n payerAddress: hexStringSchema.nullish(),\n completionInstructions: z.array(buildEphemeralInstructionSchema),\n instructions: z.array(buildEphemeralInstructionSchema),\n metadata: z.record(z.string(), z.unknown()).optional().default({}),\n maxRuns: z\n .number()\n .int()\n .positive({ message: \"maxRuns must be greater than 0\" })\n .max(Number.MAX_SAFE_INTEGER, {\n message: \"maxRuns must be less than MAX_SAFE_INTEGER\",\n })\n .optional(),\n});\nexport type PaymentRequestBuildRequest = z.infer<\n typeof paymentRequestBuildRequestSchema\n>;\n\nexport const feeResponseSchema = z.object({\n token: hexStringSchema,\n executionFee: hexStringSchema,\n maxBaseFeePerGas: hexStringSchema,\n maxPriorityFeePerGas: hexStringSchema,\n});\n\nconst buildInstructionResponseSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n salt: hexStringSchema,\n maxExecutions: hexStringSchema,\n action: hexStringSchema,\n actionName: z.string().optional(),\n arguments: hexStringSchema,\n});\n\nexport const paymentRequestBuildResponseSchema = z.object({\n requestId: z.string(),\n subOrgId: z.string(),\n walletId: z.string(),\n ephemeralWalletAddress: hexStringSchema,\n completionInstructions: z.array(buildInstructionResponseSchema),\n instructions: z.array(buildInstructionResponseSchema),\n});\nexport type PaymentRequestBuildResponse = z.infer<\n typeof paymentRequestBuildResponseSchema\n>;\n\nexport const newInstructionRequestSchema = z.object({\n nickname: z.string().optional(),\n actionName: z.string().optional(),\n address: hexStringSchema,\n chainId: z.number(),\n salt: hexStringSchema,\n maxExecutions: hexStringSchema,\n action: hexStringSchema,\n arguments: hexStringSchema,\n activationSignature: eip2098SignatureSchema,\n});\n\nexport const paymentRequestNewRequestSchema = z.object({\n requestId: z.string(),\n signedAuthorization: z.string(),\n completionInstructions: z.array(newInstructionRequestSchema),\n instructions: z.array(newInstructionRequestSchema),\n});\nexport type PaymentRequestNewRequest = z.infer<\n typeof paymentRequestNewRequestSchema\n>;\n\nexport const paymentRequestDetailsRequestSchema = z.object({\n requestId: z.string(),\n});\nexport type PaymentRequestDetailsRequest = z.infer<\n typeof paymentRequestDetailsRequestSchema\n>;\n\nexport const paymentRequestDetailsResponseSchema = z.object({\n requestId: z.string(),\n ephemeralWalletAddress: hexStringSchema,\n ephemeralWalletId: z.string().optional(),\n status: z.enum([\"pending\", \"inProgress\", \"paid\", \"cancelled\", \"draft\"]),\n metadata: z.record(z.string(), z.unknown()),\n numRuns: z.number(),\n maxRuns: z.number().nullish(),\n});\nexport type PaymentRequestDetailsResponse = z.infer<\n typeof paymentRequestDetailsResponseSchema\n>;\n\nexport interface PaymentsListRequest extends PaginatedRequest {\n tab: \"active\" | \"completed\";\n}\n\n// Settlement-specific params for standard multi-chain settlement\nexport const settlementParamsSchema = z.object({\n acceptedTokens: z.record(z.string(), z.array(hexStringSchema)),\n settlementChainId: z.number(),\n settlementToken: hexStringSchema,\n settlementAmount: numberSchema,\n recipientAddress: hexStringSchema,\n});\nexport type SettlementParams = z.infer<typeof settlementParamsSchema>;\n\n// Vault withdrawal settlement params for ERC4626 vault withdrawals\nexport const vaultWithdrawSettlementParamsSchema = z.object({\n vaultAddress: hexStringSchema,\n vaultUnderlyingToken: hexStringSchema,\n vaultChainId: z.number(),\n settlementChainId: z.number(),\n settlementToken: hexStringSchema,\n recipientAddress: hexStringSchema,\n withdrawAmount: numberSchema,\n});\nexport type VaultWithdrawSettlementParams = z.infer<\n typeof vaultWithdrawSettlementParamsSchema\n>;\n\n// Discriminated union for orchestration params (matches Rust enum with camelCase)\nexport const orchestrationParamsSchema = z.union([\n z.object({ settlement: settlementParamsSchema }),\n z.object({ vaultWithdrawSettlement: vaultWithdrawSettlementParamsSchema }),\n]);\nexport type OrchestrationParams = z.infer<typeof orchestrationParamsSchema>;\n\nexport const buildSettlementRequestSchema = z.object({\n params: orchestrationParamsSchema,\n payerAddress: hexStringSchema.nullish(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n dueDate: z.string().datetime().nullish(),\n maxRuns: z.number().int().positive().nullish(),\n});\nexport type BuildSettlementRequest = z.infer<\n typeof buildSettlementRequestSchema\n>;\n\nexport const buildSettlementResponseSchema = z.object({\n requestId: z.string(),\n subOrgId: z.string(),\n walletId: z.string(),\n ephemeralWalletAddress: hexStringSchema,\n completionInstructions: z.array(buildInstructionResponseSchema),\n instructions: z.array(buildInstructionResponseSchema),\n});\nexport type BuildSettlementResponse = z.infer<\n typeof buildSettlementResponseSchema\n>;\n","import { z } from \"zod\";\n\nimport {\n hexStringSchema,\n sortValues,\n transactionSchema,\n} from \"@otim/utils/schemas\";\n\nexport const transactionGetListRequestSchema = z.object({\n address: hexStringSchema,\n chainId: z.number(),\n instructionIds: z.array(z.string()).optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n page: z.number().optional(),\n perPage: z.number().optional(),\n sort: z.enum(sortValues).optional(),\n});\nexport type TransactionGetListRequest = z.infer<\n typeof transactionGetListRequestSchema\n>;\n\nexport const transactionGetListResponseSchema = z.array(transactionSchema);\nexport type TransactionGetListResponse = z.infer<\n typeof transactionGetListResponseSchema\n>;\n","export interface BackoffOptions {\n /* Initial interval in milliseconds. Default: 5000 */\n initialInterval?: number;\n /* Maximum interval in milliseconds. Default: 30000 */\n maxInterval?: number;\n /* Multiplier for exponential backoff. Default: 1.5 */\n multiplier?: number;\n}\n\nconst DEFAULT_INITIAL_INTERVAL = 5_000;\nconst DEFAULT_MAX_INTERVAL = 30_000;\nconst DEFAULT_MULTIPLIER = 1.5;\n\n/**\n * Calculates an exponential backoff interval based on the failure count.\n *\n * @param failureCount - Number of consecutive failures\n * @param options - Configuration options for the backoff calculation\n * @returns The calculated interval in milliseconds, capped at maxInterval\n */\nexport const calculateBackoffInterval = (\n failureCount: number,\n options: BackoffOptions = {},\n): number => {\n const {\n initialInterval = DEFAULT_INITIAL_INTERVAL,\n maxInterval = DEFAULT_MAX_INTERVAL,\n multiplier = DEFAULT_MULTIPLIER,\n } = options;\n\n return Math.min(\n initialInterval * Math.pow(multiplier, failureCount),\n maxInterval,\n );\n};\n","import type { PaginatedRequest } from \"../core\";\n\n/**\n * Determine if additional pages are likely available based on the number of\n * items received and the requested page size.\n *\n * Returns true when the current page contains at least `requestedPageSize`\n * items, implying there may be more data to fetch.\n *\n * @param items Array of items returned for the current page.\n * @param requestedPageSize The `perPage` value requested for this fetch.\n * @returns Whether another page may be available.\n */\nexport function calculateHasMore<T>(\n items: T[],\n requestedPageSize: number,\n): boolean {\n return items.length >= requestedPageSize;\n}\n\n/**\n * Extract pagination-related fields from a request object and return them\n * separately from the remaining parameters.\n *\n * @param request Request object containing `page`, `perPage`, and other fields.\n * @returns Object with `paginationParams` and `restParams` split for\n * convenience.\n */\nexport function extractPaginationParams<T extends PaginatedRequest>(\n request: T,\n): {\n paginationParams: PaginatedRequest;\n restParams: Omit<T, keyof PaginatedRequest>;\n} {\n const { page, perPage, ...restParams } = request;\n return {\n paginationParams: { page, perPage },\n restParams: restParams as Omit<T, keyof PaginatedRequest>,\n };\n}\n\n/**\n * Provide a standard default for pagination parameters.\n *\n * @returns Default pagination with `page: 0` and `perPage: 100`.\n */\nexport function getDefaultPagination(): Required<PaginatedRequest> {\n return {\n page: 0,\n perPage: 100,\n };\n}\n","import type {\n PaginatedRequest,\n PaginatedServiceResponse,\n ServiceRequestConfig,\n ServiceResponse,\n} from \"../core\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { AxiosError, AxiosInstance } from \"axios\";\nimport type { z, ZodType } from \"zod\";\n\nimport { parseSchema } from \"@otim/utils/helpers\";\n\nimport { HttpMethod, ServiceError } from \"../core\";\nimport {\n calculateHasMore,\n extractPaginationParams,\n getDefaultPagination,\n} from \"../utils\";\n\ninterface ErrorResponseData {\n [key: string]: unknown;\n errorCode?: string;\n errorMessage?: string;\n message?: string;\n}\n\nexport class BaseService {\n constructor(protected readonly instance: AxiosInstance) {}\n\n protected async makeRequest<\n TRequest,\n TResponse,\n Schema extends ZodType = z.ZodType,\n >({\n url,\n method = HttpMethod.Get,\n data,\n schema,\n validateResponse,\n ...config\n }: ServiceRequestConfig<TRequest, Schema>): Promise<\n ServiceResponse<TResponse>\n > {\n try {\n const res = await this.instance.request({ url, method, data, ...config });\n\n if (validateResponse && !validateResponse(res.data)) {\n throw new ServiceError(\"Invalid response format\", \"INVALID_RESPONSE\");\n }\n\n const parsedData = schema\n ? (parseSchema(res.data, schema) as unknown as TResponse)\n : (res.data as TResponse);\n\n return { data: parsedData };\n } catch (error) {\n if (error instanceof ServiceError) {\n throw error;\n }\n\n let errorMessage = \"Unknown error\";\n let errorCode: Optional<string>;\n\n if (error && typeof error === \"object\" && \"response\" in error) {\n const axiosError = error as AxiosError;\n const responseData = axiosError.response?.data as ErrorResponseData;\n\n errorMessage =\n responseData?.errorMessage || responseData?.message || errorMessage;\n errorCode = responseData?.errorCode;\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n throw new ServiceError(errorMessage, errorCode || \"REQUEST_FAILED\");\n }\n }\n\n protected async makePaginatedRequest<\n TRequest extends PaginatedRequest,\n TResponse,\n Schema extends ZodType = z.ZodType,\n >({\n url,\n method = HttpMethod.Get,\n data,\n schema,\n validateResponse,\n ...config\n }: ServiceRequestConfig<TRequest, Schema>): Promise<\n PaginatedServiceResponse<TResponse>\n > {\n const { paginationParams, restParams } = extractPaginationParams(\n data || ({} as TRequest),\n );\n\n const { page, perPage } = {\n ...getDefaultPagination(),\n ...paginationParams,\n };\n\n const requestData = { ...restParams, page, perPage };\n\n const response = await this.makeRequest<\n typeof requestData,\n TResponse,\n Schema\n >({\n url,\n method,\n data: requestData,\n schema,\n validateResponse,\n ...config,\n });\n\n // Calculate hasMore based on the response.\n const hasMore = Array.isArray(response.data)\n ? calculateHasMore(response.data, perPage)\n : false;\n\n return {\n data: response.data,\n hasMore,\n };\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n DelegationCreateRequest,\n DelegationCreateResponse,\n DelegationStatusRequest,\n DelegationStatusResponse,\n} from \"../schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport { delegationStatusResponseSchema } from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class AccountService extends BaseService {\n public async getDelegationStatus(\n requestBody: DelegationStatusRequest,\n ): Promise<ServiceResponse<DelegationStatusResponse>> {\n const res = await this.makeRequest<\n DelegationStatusRequest,\n DelegationStatusResponse\n >({\n url: \"/delegation/status\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: delegationStatusResponseSchema,\n });\n\n return res;\n }\n\n public async createDelegation(\n requestBody: DelegationCreateRequest,\n ): Promise<ServiceResponse<DelegationCreateResponse>> {\n await this.makeRequest<DelegationCreateRequest, unknown>({\n url: \"/delegation/new\",\n method: HttpMethod.Post,\n data: requestBody,\n });\n\n return {\n data: { success: true, message: \"Delegation created\" },\n };\n }\n}\n","import type { PaginatedServiceResponse } from \"../core\";\nimport type {\n GetInstructionActivityRequest,\n GetInstructionActivityResponse,\n} from \"../schemas\";\n\nimport { z } from \"zod\";\n\nimport { HttpMethod } from \"../core\";\nimport { activityRecordSchema } from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nconst safeParseActivityArray = (\n data: unknown,\n): GetInstructionActivityResponse => {\n if (!Array.isArray(data)) {\n return [];\n }\n\n const validRecords: GetInstructionActivityResponse = [];\n\n data.forEach((record) => {\n const result = activityRecordSchema.safeParse(record);\n\n if (result.success) {\n validRecords.push(result.data);\n }\n });\n\n return validRecords;\n};\n\nconst safeActivityArraySchema = z.unknown().transform(safeParseActivityArray);\n\nexport class ActivityService extends BaseService {\n public async getInstructionActivity(\n requestBody: GetInstructionActivityRequest,\n ): Promise<PaginatedServiceResponse<GetInstructionActivityResponse>> {\n return this.makePaginatedRequest<\n GetInstructionActivityRequest,\n GetInstructionActivityResponse\n >({\n url: \"/instructions/activity\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: safeActivityArraySchema,\n });\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n AuthLoginRequest,\n AuthLoginResponse,\n TurnkeyLoginRequest,\n TurnkeyLoginResponse,\n TurnkeyVerificationRequest,\n TurnkeyVerificationResponse,\n} from \"../schemas\";\nimport type { User, UserPreferences } from \"@otim/utils/schemas\";\n\nimport { userSchema } from \"@otim/utils/schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n authLoginResponseSchema,\n turnkeyLoginResponseSchema,\n turnkeyVerificationResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class AuthService extends BaseService {\n public async login(\n requestBody: AuthLoginRequest,\n ): Promise<ServiceResponse<AuthLoginResponse>> {\n const res = await this.makeRequest<AuthLoginRequest, AuthLoginResponse>({\n url: \"/auth/login\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: authLoginResponseSchema,\n });\n\n return res;\n }\n\n public async turnkeyVerification(\n requestBody: TurnkeyVerificationRequest,\n ): Promise<ServiceResponse<TurnkeyVerificationResponse>> {\n const res = await this.makeRequest<\n TurnkeyVerificationRequest,\n TurnkeyVerificationResponse\n >({\n url: \"/turnkey/verification\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: turnkeyVerificationResponseSchema,\n });\n\n return res;\n }\n\n public async turnkeyLogin(\n requestBody: TurnkeyLoginRequest,\n ): Promise<ServiceResponse<TurnkeyLoginResponse>> {\n const res = await this.makeRequest<\n TurnkeyLoginRequest,\n TurnkeyLoginResponse\n >({\n url: \"/turnkey/login\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: turnkeyLoginResponseSchema,\n });\n\n return res;\n }\n\n public async me(): Promise<ServiceResponse<User>> {\n const res = await this.makeRequest<undefined, User>({\n url: \"/auth/me\",\n method: HttpMethod.Get,\n schema: userSchema,\n });\n return res;\n }\n\n public async updatePreferences(\n preferences: UserPreferences,\n ): Promise<ServiceResponse<unknown>> {\n const res = await this.makeRequest<\n { preferences: UserPreferences },\n unknown\n >({\n url: \"/user/preferences\",\n method: HttpMethod.Put,\n data: { preferences },\n });\n\n return res;\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n GetConfigChainsResponse,\n GetConfigTokensRequestParameters,\n GetConfigTokensResponse,\n GetDelegateAddressRequest,\n GetDelegateAddressResponse,\n GetMaxPriorityFeePerGasEstimateRequest,\n GetMaxPriorityFeePerGasEstimateResponse,\n} from \"../schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n getConfigChainsResponseSchema,\n getConfigTokensResponseSchema,\n getDelegateAddressResponseSchema,\n getMaxPriorityFeePerGasEstimateResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class ConfigService extends BaseService {\n public async getDelegateAddress(\n requestBody: GetDelegateAddressRequest,\n ): Promise<ServiceResponse<GetDelegateAddressResponse>> {\n const res = await this.makeRequest<\n GetDelegateAddressRequest,\n GetDelegateAddressResponse\n >({\n url: `/config/delegate/address/${requestBody.chainId}`,\n method: HttpMethod.Get,\n schema: getDelegateAddressResponseSchema,\n });\n\n return res;\n }\n\n public async getConfigTokens({\n chainId,\n }: GetConfigTokensRequestParameters): Promise<\n ServiceResponse<GetConfigTokensResponse>\n > {\n const res = await this.makeRequest<\n GetConfigTokensRequestParameters,\n GetConfigTokensResponse\n >({\n url: `/config/tokens/${chainId}`,\n method: HttpMethod.Get,\n schema: getConfigTokensResponseSchema,\n });\n\n return res;\n }\n\n public async getConfigChains(): Promise<\n ServiceResponse<GetConfigChainsResponse>\n > {\n const res = await this.makeRequest<unknown, GetConfigChainsResponse>({\n url: `/config/chains`,\n method: HttpMethod.Get,\n schema: getConfigChainsResponseSchema,\n });\n\n return res;\n }\n\n public async getMaxPriorityFeePerGasEstimate(\n requestBody: GetMaxPriorityFeePerGasEstimateRequest,\n ): Promise<ServiceResponse<GetMaxPriorityFeePerGasEstimateResponse>> {\n const res = await this.makeRequest<\n GetMaxPriorityFeePerGasEstimateRequest,\n GetMaxPriorityFeePerGasEstimateResponse\n >({\n url: `/instruction/estimate/max_priority_fee_per_gas/${requestBody.chainId}`,\n method: HttpMethod.Get,\n schema: getMaxPriorityFeePerGasEstimateResponseSchema,\n });\n\n return res;\n }\n}\n","import type { PaginatedServiceResponse, ServiceResponse } from \"../core\";\nimport type {\n GetContactsRequest,\n GetContactsResponse,\n NewContactRequest,\n} from \"../schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n getContactsRequestSchema,\n getContactsResponseSchema,\n newContactRequestSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class ContactsService extends BaseService {\n public async create(\n request: NewContactRequest,\n ): Promise<ServiceResponse<unknown>> {\n const validated = newContactRequestSchema.parse(request);\n\n return this.makeRequest<NewContactRequest, unknown>({\n url: \"/contacts\",\n method: HttpMethod.Put,\n data: validated,\n });\n }\n\n public async list(\n request: GetContactsRequest,\n ): Promise<PaginatedServiceResponse<GetContactsResponse>> {\n const validated = getContactsRequestSchema.parse(request);\n\n return this.makePaginatedRequest<GetContactsRequest, GetContactsResponse>({\n url: \"/contacts\",\n method: HttpMethod.Get,\n data: validated,\n schema: getContactsResponseSchema,\n });\n }\n}\n","import { BaseService } from \"./base\";\nimport { HttpMethod } from \"../core\";\n\nexport class DeveloperService extends BaseService {\n async updatePublicKey(developerPublicKey: string) {\n return this.makeRequest({\n url: \"/developer/public_key\",\n method: HttpMethod.Put,\n data: { developerPublicKey },\n });\n }\n\n async generateApiKey() {\n return this.makeRequest({\n url: \"/developer/api_key\",\n method: HttpMethod.Post,\n });\n }\n}\n","import type { PaginatedServiceResponse, ServiceResponse } from \"../core\";\nimport type {\n InstructionActivateRequest,\n InstructionActivateResponse,\n InstructionBuild,\n InstructionBuildRequest,\n InstructionDeactivateRequest,\n InstructionDeactivateResponse,\n InstructionDetailsRequest,\n InstructionDetailsResponse,\n InstructionGetAllRequest,\n InstructionGetAllResponse,\n InstructionGetRulesRequest,\n InstructionGetRulesResponse,\n} from \"../schemas\";\n\nimport { instructionsSchema } from \"@otim/utils/schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n instructionActivateResponseSchema,\n instructionBuildSchema,\n instructionDeactivateResponseSchema,\n instructionDetailsResponseSchema,\n instructionGetRulesResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class InstructionService extends BaseService {\n public async all(\n requestBody: InstructionGetAllRequest,\n ): Promise<PaginatedServiceResponse<InstructionGetAllResponse>> {\n return this.makePaginatedRequest<\n InstructionGetAllRequest,\n InstructionGetAllResponse\n >({\n url: \"/instructions/all\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: instructionsSchema,\n });\n }\n\n public async build(\n requestBody: InstructionBuildRequest,\n ): Promise<ServiceResponse<InstructionBuild>> {\n const res = await this.makeRequest<\n InstructionBuildRequest,\n InstructionBuild\n >({\n url: \"/instruction/build\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: instructionBuildSchema,\n });\n\n return res;\n }\n\n public async activate(\n requestBody: InstructionActivateRequest,\n ): Promise<ServiceResponse<InstructionActivateResponse>> {\n const res = await this.makeRequest<\n InstructionActivateRequest,\n InstructionActivateResponse\n >({\n url: \"/instruction/new\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: instructionActivateResponseSchema,\n });\n\n return res;\n }\n\n public async deactivate(\n requestBody: InstructionDeactivateRequest,\n ): Promise<ServiceResponse<InstructionDeactivateResponse>> {\n const res = await this.makeRequest<InstructionDeactivateRequest, unknown>({\n url: \"/instruction/deactivate\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: instructionDeactivateResponseSchema,\n });\n\n return res;\n }\n\n public async details(\n requestBody: InstructionDetailsRequest,\n ): Promise<ServiceResponse<InstructionDetailsResponse>> {\n const res = await this.makeRequest<\n InstructionDetailsRequest,\n InstructionDetailsResponse\n >({\n url: \"/instruction/details\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: instructionDetailsResponseSchema,\n });\n\n return res;\n }\n\n public async rules(\n requestBody: InstructionGetRulesRequest,\n ): Promise<PaginatedServiceResponse<InstructionGetRulesResponse>> {\n return this.makePaginatedRequest<\n InstructionGetRulesRequest,\n InstructionGetRulesResponse\n >({\n url: \"/instructions/rules\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: instructionGetRulesResponseSchema,\n });\n }\n}\n","import type { PaginatedServiceResponse } from \"../core\";\nimport type {\n TransactionGetListRequest,\n TransactionGetListResponse,\n} from \"../schemas\";\nimport type { Transactions } from \"@otim/utils/schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport { transactionGetListResponseSchema } from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class TransactionService extends BaseService {\n public async list(\n requestBody: TransactionGetListRequest,\n ): Promise<PaginatedServiceResponse<Transactions>> {\n return this.makePaginatedRequest<\n TransactionGetListRequest,\n TransactionGetListResponse\n >({\n url: \"/transactions\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: transactionGetListResponseSchema,\n });\n }\n}\n","import type { PaginatedServiceResponse, ServiceResponse } from \"../core\";\nimport type {\n BuildSettlementRequest,\n BuildSettlementResponse,\n GetPaymentRequestsRequest,\n GetPaymentRequestsResponse,\n PaymentRequestBuildRequest,\n PaymentRequestBuildResponse,\n PaymentRequestDetailsRequest,\n PaymentRequestDetailsResponse,\n PaymentRequestNewRequest,\n PaymentsListRequest,\n} from \"../schemas\";\nimport type { Payments } from \"@otim/utils/schemas\";\n\nimport { PaymentsSchema } from \"@otim/utils/schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n buildSettlementResponseSchema,\n getPaymentRequestsResponseSchema,\n paymentRequestBuildResponseSchema,\n paymentRequestDetailsResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class PaymentsService extends BaseService {\n public async getOutgoingPaymentsList(\n request: PaymentsListRequest,\n ): Promise<PaginatedServiceResponse<Payments>> {\n return this.makePaginatedRequest<PaymentsListRequest, Payments>({\n url: \"/api/payments/outgoing\",\n method: HttpMethod.Get,\n data: request,\n schema: PaymentsSchema,\n });\n }\n\n public async getIncomingPaymentsList(\n request: PaymentsListRequest,\n ): Promise<PaginatedServiceResponse<Payments>> {\n return this.makePaginatedRequest<PaymentsListRequest, Payments>({\n url: \"/api/payments/incoming\",\n method: HttpMethod.Get,\n data: request,\n schema: PaymentsSchema,\n });\n }\n\n public async buildPaymentRequest(\n requestBody: PaymentRequestBuildRequest,\n ): Promise<ServiceResponse<PaymentRequestBuildResponse>> {\n return this.makeRequest<\n PaymentRequestBuildRequest,\n PaymentRequestBuildResponse\n >({\n url: \"/orchestration/build\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: paymentRequestBuildResponseSchema,\n });\n }\n\n public async newPaymentRequest(\n requestBody: PaymentRequestNewRequest,\n ): Promise<ServiceResponse<unknown>> {\n return this.makeRequest<PaymentRequestNewRequest, unknown>({\n url: \"/orchestration/new\",\n method: HttpMethod.Post,\n data: requestBody,\n validateResponse: () => true,\n });\n }\n\n public async getPaymentRequestDetails(\n requestBody: PaymentRequestDetailsRequest,\n ): Promise<ServiceResponse<PaymentRequestDetailsResponse>> {\n return this.makeRequest<\n PaymentRequestDetailsRequest,\n PaymentRequestDetailsResponse\n >({\n url: \"/orchestration/details\",\n method: HttpMethod.Get,\n data: requestBody,\n schema: paymentRequestDetailsResponseSchema,\n });\n }\n\n public async getPaymentRequests(\n request: GetPaymentRequestsRequest,\n ): Promise<PaginatedServiceResponse<GetPaymentRequestsResponse>> {\n return this.makePaginatedRequest<\n GetPaymentRequestsRequest,\n GetPaymentRequestsResponse\n >({\n url: \"/orchestrations\",\n method: HttpMethod.Get,\n data: request,\n schema: getPaymentRequestsResponseSchema,\n });\n }\n\n public async buildSettlementOrchestration(\n requestBody: BuildSettlementRequest,\n ): Promise<ServiceResponse<BuildSettlementResponse>> {\n return this.makeRequest<BuildSettlementRequest, BuildSettlementResponse>({\n url: \"/orchestration/build/settlement\",\n method: HttpMethod.Post,\n data: requestBody,\n schema: buildSettlementResponseSchema,\n });\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n GetIntegrationRequest,\n IntegrationResponse,\n UpdateIntegrationRequest,\n} from \"../schemas\";\n\nimport axios from \"axios\";\n\nimport { HttpMethod } from \"../core\";\nimport { integrationResponseSchema, IntegrationType } from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nfunction createEmptyIntegrationResponse(\n integrationType: string,\n): IntegrationResponse {\n switch (integrationType) {\n case IntegrationType.QuickBooks:\n return { integrationType: IntegrationType.QuickBooks, details: {} };\n case IntegrationType.Bank:\n return { integrationType: IntegrationType.Bank, details: {} };\n case IntegrationType.Clio:\n return { integrationType: IntegrationType.Clio, details: {} };\n case IntegrationType.Stripe:\n return { integrationType: IntegrationType.Stripe, details: {} };\n case IntegrationType.Bill:\n return { integrationType: IntegrationType.Bill, details: {} };\n case IntegrationType.Zoho:\n return { integrationType: IntegrationType.Zoho, details: {} };\n default:\n return { integrationType: IntegrationType.Bank, details: {} };\n }\n}\n\nexport class IntegrationService extends BaseService {\n public async upsert(\n request: UpdateIntegrationRequest,\n ): Promise<ServiceResponse<IntegrationResponse>> {\n return this.makeRequest<UpdateIntegrationRequest, IntegrationResponse>({\n url: \"/integration\",\n method: HttpMethod.Put,\n data: request,\n schema: integrationResponseSchema,\n });\n }\n\n public async get(\n request: GetIntegrationRequest,\n ): Promise<ServiceResponse<IntegrationResponse>> {\n try {\n return await this.makeRequest<GetIntegrationRequest, IntegrationResponse>(\n {\n url: \"/integration/get\",\n method: HttpMethod.Post,\n data: request,\n schema: integrationResponseSchema,\n },\n );\n } catch (error) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const defaultResponse = createEmptyIntegrationResponse(\n request.integrationType,\n );\n return { data: defaultResponse };\n }\n\n throw error;\n }\n }\n}\n","import type { ServiceResponse } from \"../core\";\nimport type {\n GetOperatingAccountSubOrgResponse,\n NewOperatingAccountSubOrgResponse,\n} from \"../schemas\";\n\nimport { HttpMethod } from \"../core\";\nimport {\n getOperatingAccountSubOrgResponseSchema,\n newOperatingAccountSubOrgResponseSchema,\n} from \"../schemas\";\nimport { BaseService } from \"./base\";\n\nexport class OperatingAccountService extends BaseService {\n public async createSubOrganization(): Promise<\n ServiceResponse<NewOperatingAccountSubOrgResponse>\n > {\n const res = await this.makeRequest<\n undefined,\n NewOperatingAccountSubOrgResponse\n >({\n url: \"/operating_accounts/sub_organization/new\",\n method: HttpMethod.Post,\n schema: newOperatingAccountSubOrgResponseSchema,\n });\n\n return res;\n }\n\n public async getSubOrganization(): Promise<\n ServiceResponse<GetOperatingAccountSubOrgResponse>\n > {\n const res = await this.makeRequest<\n undefined,\n GetOperatingAccountSubOrgResponse\n >({\n url: \"/operating_accounts/sub_organization\",\n method: HttpMethod.Get,\n schema: getOperatingAccountSubOrgResponseSchema,\n });\n\n return res;\n }\n}\n","import type { CreateInstanceParameters } from \"./core\";\nimport type { OtimEnvironment } from \"@otim/utils/server\";\nimport type { AxiosInstance } from \"axios\";\n\nimport { createInstance, isInstanceInit } from \"./core\";\nimport {\n AccountService,\n ActivityService,\n AuthService,\n ConfigService,\n ContactsService,\n DeveloperService,\n InstructionService,\n IntegrationService,\n OperatingAccountService,\n PaymentsService,\n TransactionService,\n} from \"./services\";\nimport { getOffchainApiUrl } from \"../config/api-urls\";\n\nexport type APIClientInitWithEnvironment =\n | (CreateInstanceParameters & { environment?: OtimEnvironment })\n | ({ instance: AxiosInstance } & { environment?: OtimEnvironment });\n\nexport class APIClient {\n public account: AccountService;\n public readonly activity: ActivityService;\n public readonly auth: AuthService;\n public readonly operatingAccount: OperatingAccountService;\n public readonly config: ConfigService;\n public readonly contacts: ContactsService;\n public readonly developer: DeveloperService;\n public readonly instruction: InstructionService;\n public readonly transaction: TransactionService;\n public readonly payments: PaymentsService;\n public readonly integration: IntegrationService;\n\n constructor(init?: APIClientInitWithEnvironment) {\n const instance = isInstanceInit(init)\n ? init.instance\n : createInstance({\n ...init,\n baseURL: init?.environment\n ? getOffchainApiUrl(init.environment)\n : init?.baseURL,\n });\n\n this.account = new AccountService(instance);\n this.activity = new ActivityService(instance);\n this.auth = new AuthService(instance);\n this.config = new ConfigService(instance);\n this.contacts = new ContactsService(instance);\n this.developer = new DeveloperService(instance);\n this.instruction = new InstructionService(instance);\n this.integration = new IntegrationService(instance);\n this.transaction = new TransactionService(instance);\n this.operatingAccount = new OperatingAccountService(instance);\n this.payments = new PaymentsService(instance);\n }\n}\n\nexport const createAPIClient = (\n ...params: ConstructorParameters<typeof APIClient>\n): APIClient => {\n return new APIClient(...params);\n};\n","/* Success result with data. */\nexport interface Success<T> {\n success: true;\n data: T;\n}\n\n/* Failure result with error message. */\nexport interface Failure {\n success: false;\n error: string;\n /* Optional error code for programmatic handling */\n code?: string;\n}\n\n/* Generic Result type - either Success or Failure. */\nexport type Result<T> = Success<T> | Failure;\n\n/* Helper to create a success result. */\nexport function success<T>(data: T): Success<T> {\n return { success: true, data };\n}\n\n/* Helper to create a failure result. */\nexport function failure(error: string, code?: string): Failure {\n return { success: false, error, code };\n}\n\n/* Type guard to check if result is successful. */\nexport function isSuccess<T>(result: Result<T>): result is Success<T> {\n return result.success === true;\n}\n\n/* Type guard to check if result is a failure. */\nexport function isFailure<T>(result: Result<T>): result is Failure {\n return result.success === false;\n}\n\n/* Common error codes for standardization. */\nexport const ErrorCode = {\n /* Network or API request failed */\n NetworkError: \"NETWORK_ERROR\",\n /* User is not authenticated */\n Unauthorized: \"UNAUTHORIZED\",\n /* Authentication failed (wrong credentials) */\n AuthenticationFailed: \"AUTH_FAILED\",\n /* Required parameter is missing */\n MissingParameter: \"MISSING_PARAMETER\",\n /* Operation not allowed */\n Forbidden: \"FORBIDDEN\",\n /* Session has expired */\n SessionExpired: \"SESSION_EXPIRED\",\n /* Invalid input data */\n InvalidInput: \"INVALID_INPUT\",\n /* Unknown/unexpected error */\n UnknownError: \"UNKNOWN_ERROR\",\n} as const;\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"api-urls-B-GTEiT3.d.mts","names":[],"sources":["../src/config/api-urls.ts"],"sourcesContent":[],"mappings":";;AAIA;AAKA;AAgFA;AAegB,cApGH,eAoGoB,EAAc;EAe/B,SAAA,KAAS,EAAA,OAAA;EAeT,SAAA,OAAQ,EAAA,SAAc;EAetB,SAAA,UAAA,EAAA,YAAyB;;KA5I7B,eAAA,WACF,8BAA8B;;;;;;;iBA+ExB,iBAAA,cAA+B;;;;;;;iBAe/B,iBAAA,cAA+B;;;;;;;iBAe/B,SAAA,cAAuB;;;;;;;iBAevB,QAAA,cAAsB;;;;;;;iBAetB,yBAAA,cACD"}
1
+ {"version":3,"file":"api-urls-B-GTEiT3.d.mts","names":[],"sources":["../src/config/api-urls.ts"],"sourcesContent":[],"mappings":";;AAIA;AAKA;AAgFA;AAegB,cApGH,eAoGkC,EAAA;EAe/B,SAAA,KAAS,EAAA,OAAA;EAeT,SAAA,OAAQ,EAAA,SAAc;EAetB,SAAA,UAAA,EAAA,YAAyB;;KA5I7B,eAAA,WACF,8BAA8B;;;;;;;iBA+ExB,iBAAA,cAA+B;;;;;;;iBAe/B,iBAAA,cAA+B;;;;;;;iBAe/B,SAAA,cAAuB;;;;;;;iBAevB,QAAA,cAAsB;;;;;;;iBAetB,yBAAA,cACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"api-urls-SKeIQMoZ.d.ts","names":[],"sources":["../src/config/api-urls.ts"],"sourcesContent":[],"mappings":";;AAIA;AAKA;AAgFA;AAegB,cApGH,eAoGkC,EAAA;EAe/B,SAAA,KAAS,EAAA,OAAA;EAeT,SAAA,OAAQ,EAAA,SAAc;EAetB,SAAA,UAAA,EAAA,YAAyB;;KA5I7B,eAAA,WACF,8BAA8B;;;;;;;iBA+ExB,iBAAA,cAA+B;;;;;;;iBAe/B,iBAAA,cAA+B;;;;;;;iBAe/B,SAAA,cAAuB;;;;;;;iBAevB,QAAA,cAAsB;;;;;;;iBAetB,yBAAA,cACD"}
1
+ {"version":3,"file":"api-urls-SKeIQMoZ.d.ts","names":[],"sources":["../src/config/api-urls.ts"],"sourcesContent":[],"mappings":";;AAIA;AAKA;AAgFA;AAegB,cApGH,eAoGoB,EAAc;EAe/B,SAAA,KAAS,EAAA,OAAA;EAeT,SAAA,OAAQ,EAAA,SAAc;EAetB,SAAA,UAAA,EAAA,YAAyB;;KA5I7B,eAAA,WACF,8BAA8B;;;;;;;iBA+ExB,iBAAA,cAA+B;;;;;;;iBAe/B,iBAAA,cAA+B;;;;;;;iBAe/B,SAAA,cAAuB;;;;;;;iBAevB,QAAA,cAAsB;;;;;;;iBAetB,yBAAA,cACD"}