@otim/utils 0.0.2 → 0.0.4

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.
Files changed (42) hide show
  1. package/dist/api/index.js +41 -7
  2. package/dist/api/index.js.map +2 -2
  3. package/dist/api/index.mjs +41 -7
  4. package/dist/api/index.mjs.map +2 -2
  5. package/dist/api/schemas/payments.d.mts +38 -0
  6. package/dist/api/schemas/payments.d.ts +38 -0
  7. package/dist/api/schemas/payments.d.ts.map +1 -1
  8. package/dist/api/services/payments.d.mts +2 -1
  9. package/dist/api/services/payments.d.ts +2 -1
  10. package/dist/api/services/payments.d.ts.map +1 -1
  11. package/dist/chains/index.js +1 -1
  12. package/dist/chains/index.mjs +1 -1
  13. package/dist/helpers/index.js +23 -1
  14. package/dist/helpers/index.js.map +2 -2
  15. package/dist/helpers/index.mjs +23 -1
  16. package/dist/helpers/index.mjs.map +2 -2
  17. package/dist/helpers/zod.d.mts +21 -0
  18. package/dist/helpers/zod.d.ts +21 -0
  19. package/dist/helpers/zod.d.ts.map +1 -1
  20. package/dist/payments/build.d.mts +1 -0
  21. package/dist/payments/build.d.ts +1 -0
  22. package/dist/payments/build.d.ts.map +1 -1
  23. package/dist/payments/comprehensive-payment-request.d.mts +1 -0
  24. package/dist/payments/comprehensive-payment-request.d.ts +1 -0
  25. package/dist/payments/comprehensive-payment-request.d.ts.map +1 -1
  26. package/dist/payments/index.js +16 -12
  27. package/dist/payments/index.js.map +2 -2
  28. package/dist/payments/index.mjs +16 -12
  29. package/dist/payments/index.mjs.map +2 -2
  30. package/dist/server/index.js +36 -4
  31. package/dist/server/index.js.map +2 -2
  32. package/dist/server/index.mjs +36 -4
  33. package/dist/server/index.mjs.map +2 -2
  34. package/dist/server/routes/bridge.d.mts +62 -0
  35. package/dist/server/routes/bridge.d.ts +62 -0
  36. package/dist/server/routes/bridge.d.ts.map +1 -1
  37. package/dist/server/routes/payments.d.mts +2 -1
  38. package/dist/server/routes/payments.d.ts +2 -1
  39. package/dist/server/routes/payments.d.ts.map +1 -1
  40. package/dist/wallet/wagmi/index.js +1 -1
  41. package/dist/wallet/wagmi/index.mjs +1 -1
  42. package/package.json +9 -5
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/api/index.ts", "../../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/schemas/instruction.ts", "../../src/schemas/misc.ts", "../../src/schemas/payment.ts", "../../src/schemas/transaction.ts", "../../src/schemas/user.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/env.ts", "../../src/helpers/logger.ts", "../../src/helpers/zod.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/services/uniswap-token-list-service.ts", "../../src/api/api.ts"],
4
- "sourcesContent": ["export * from \"./api\";\nexport * from \"./core\";\nexport * from \"./services\";\nexport * from \"./schemas\";\nexport * from \"./utils\";\n\n// Re-export commonly used error handling functions\nexport {\n getUserFriendlyErrorMessage,\n isTechnicalError,\n isUserRejectionError,\n getErrorMessage,\n getErrorMessageWithCode,\n isUserAddressableError,\n} from \"./core/error\";\n", "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\u2011Facing 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\u2011intended 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\u2011Flow.\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\u2011Addressable.\n * Why: 1000\u20131999 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\u2011Level.\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/**\n * Wraps a successful service response payload.\n */\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/**\n * Standard pagination parameters accepted by list endpoints.\n */\nexport interface PaginatedRequest {\n page?: number;\n perPage?: number;\n}\n\n/**\n * Error thrown when a request fails or a response is invalid.\n */\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/**\n * Allowed HTTP methods for requests.\n */\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<TRequest, 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 { hexStringSchema, numberSchema } from \"@otim/utils/schemas\";\n\nexport const actionNameSchema = z.enum([\n \"refuel\",\n \"transfer\",\n \"refuelERC20\",\n \"transferERC20\",\n \"uniswapV3ExactInput\",\n \"deactivateInstruction\",\n \"sweepCCTP\",\n \"transferCCTP\",\n \"sweep\",\n \"sweepERC20\",\n \"sweepUniswapV3\",\n \"depositERC4626\",\n \"sweepDepositERC4626\",\n \"withdrawERC4626\",\n \"sweepWithdrawERC4626\",\n \"callOnce\",\n]);\nexport type ActionName = z.infer<typeof actionNameSchema>;\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 { dateStandardSchema, hexStringSchema, numberSchema } from \"./misc\";\n\nexport const instructionIdSchema = hexStringSchema;\nexport type InstructionId = z.infer<typeof instructionIdSchema>;\n\nexport const InstructionState = {\n PendingActivation: \"PendingActivation\",\n Active: \"Active\",\n PendingDeactivation: \"PendingDeactivation\",\n Deactivated: \"Deactivated\",\n Errored: \"Errored\",\n Completed: \"Completed\",\n UserNotDelegated: \"UserNotDelegated\",\n InFlight: \"InFlight\",\n NotifyUser: \"NotifyUser\",\n} as const;\nexport type InstructionState =\n (typeof InstructionState)[keyof typeof InstructionState];\nexport const instructionStateValues = Object.values(InstructionState) as [\n InstructionState,\n ...InstructionState[],\n];\nexport const instructionStateSchema = z.enum(instructionStateValues);\n\nexport const InstructionAction = {\n RefuelERC20: \"refuelERC20\",\n Refuel: \"refuel\",\n Transfer: \"transfer\",\n TransferERC20: \"transferERC20\",\n UniswapV3ExactInput: \"uniswapV3ExactInput\",\n Sweep: \"sweep\",\n SweepERC20: \"sweepERC20\",\n SweepCCTP: \"sweepCCTP\",\n SweepUniswapV3: \"sweepUniswapV3\",\n SweepDepositAccount: \"sweepDepositAccount\",\n SweepDepositAccountERC20: \"sweepDepositAccountERC20\",\n DeactivateInstruction: \"deactivateInstruction\",\n SweepSkipCCTPDepositAccount: \"sweepSkipCCTPDepositAccount\",\n} as const;\nexport type InstructionAction =\n (typeof InstructionAction)[keyof typeof InstructionAction];\nexport const instructionActionValues = Object.values(InstructionAction) as [\n InstructionAction,\n ...InstructionAction[],\n];\nexport const instructionActionSchema = z.enum(instructionActionValues);\n\nexport const InstructionScheduleStartType = {\n Now: \"now\",\n DateTime: \"datetime\",\n} as const;\nexport type InstructionScheduleStartType =\n (typeof InstructionScheduleStartType)[keyof typeof InstructionScheduleStartType];\nexport const instructionScheduleStartValues = Object.values(\n InstructionScheduleStartType,\n) as [InstructionScheduleStartType, ...InstructionScheduleStartType[]];\nconst baseStartSchema = z.object({\n type: z.enum(instructionScheduleStartValues),\n});\nconst nowStartSchema = baseStartSchema.extend({\n type: z.literal(InstructionScheduleStartType.Now),\n});\nconst dateTimeStartSchema = baseStartSchema.extend({\n type: z.literal(InstructionScheduleStartType.DateTime),\n startDate: dateStandardSchema,\n startTime: z.string(),\n});\nexport const instructionScheduleStartSchema = z.discriminatedUnion(\"type\", [\n nowStartSchema,\n dateTimeStartSchema,\n]);\nexport type InstructionScheduleStart = z.infer<\n typeof instructionScheduleStartSchema\n>;\n\nexport const InstructionScheduleRepeatType = {\n UntilDeactivated: \"until-deactivated\",\n MaxExecutions: \"max-executions\",\n} as const;\nexport type InstructionScheduleRepeatType =\n (typeof InstructionScheduleRepeatType)[keyof typeof InstructionScheduleRepeatType];\nexport const instructionScheduleRepeatValues = Object.values(\n InstructionScheduleRepeatType,\n) as [InstructionScheduleRepeatType, ...InstructionScheduleRepeatType[]];\nconst baseRepeatSchema = z.object({});\nconst untilDeactivatedRepeatSchema = baseRepeatSchema.extend({\n type: z.literal(InstructionScheduleRepeatType.UntilDeactivated),\n});\nconst maxExecutionsRepeatSchema = baseRepeatSchema.extend({\n type: z.literal(InstructionScheduleRepeatType.MaxExecutions),\n maxExecutions: numberSchema,\n});\nexport const instructionScheduleRepeatSchema = z.discriminatedUnion(\"type\", [\n untilDeactivatedRepeatSchema,\n maxExecutionsRepeatSchema,\n]);\nexport type InstructionScheduleRepeat = z.infer<\n typeof instructionScheduleRepeatSchema\n>;\n\nexport const InstructionScheduleRetryType = {\n UntilDeactivated: \"until-deactivated\",\n TimeLimited: \"time-limited\",\n} as const;\nexport type InstructionScheduleRetryType =\n (typeof InstructionScheduleRetryType)[keyof typeof InstructionScheduleRetryType];\nexport const instructionScheduleRetryValues = Object.values(\n InstructionScheduleRetryType,\n) as [InstructionScheduleRetryType, ...InstructionScheduleRetryType[]];\nconst baseRetrySchema = z.object({});\nconst untilDeactivatedRetrySchema = baseRetrySchema.extend({\n type: z.literal(InstructionScheduleRetryType.UntilDeactivated),\n});\nconst timeLimitedRetrySchema = baseRetrySchema.extend({\n type: z.literal(InstructionScheduleRetryType.TimeLimited),\n retryCount: numberSchema,\n});\nexport const instructionScheduleRetrySchema = z.discriminatedUnion(\"type\", [\n untilDeactivatedRetrySchema,\n timeLimitedRetrySchema,\n]);\nexport type InstructionScheduleRetry = z.infer<\n typeof instructionScheduleRetrySchema\n>;\n\nexport const TimeUnit = {\n None: \"none\",\n Second: \"second\",\n Minute: \"minute\",\n Hour: \"hour\",\n Day: \"day\",\n Week: \"week\",\n Month: \"month\",\n} as const;\nexport type TimeUnit = (typeof TimeUnit)[keyof typeof TimeUnit];\nexport const timeUnitValues = Object.values(TimeUnit) as [\n TimeUnit,\n ...TimeUnit[],\n];\nexport const timeUnitSchema = z.enum(timeUnitValues);\n\nexport const instructionExecutionStateSchema = z.object({\n executionStatus: instructionStateSchema.optional(),\n executionCounter: z.number().int().optional(),\n lastExecuted: z.number().int().optional(),\n});\n\nexport const instructionSchema = z.object({\n instructionId: hexStringSchema,\n createdAt: z.number().optional(),\n startAt: z.string().nullish(),\n interval: z.number().nullish(),\n timeout: z.number().nullish(),\n maxExecutions: z.number().nullish(),\n executionState: instructionExecutionStateSchema.optional(),\n actionName: z.string().optional(),\n arguments: z.any(),\n nickname: z.string().nullish(),\n lastInstructedValue: z.string().optional(),\n lastErrorCode: z.number().nullish(),\n lastErrorMessage: z.string().nullish(),\n totalInstructedValue: z.string().optional(),\n instructedTokenAddress: hexStringSchema.nullish(),\n chainId: z.number().nullish(),\n chain: z.string().optional(),\n});\nexport type Instruction = z.infer<typeof instructionSchema>;\n\nexport const instructionsSchema = z.array(instructionSchema);\nexport type Instructions = z.infer<typeof instructionsSchema>;\n\nexport const instructionSummarySchema = z.object({\n instructionId: hexStringSchema,\n chainId: z.number().int(),\n executionCount: z.number().int(),\n onTimeCount: z.number().int(),\n lateCount: z.number().int(),\n wasActivatedDuring: z.boolean(),\n amount: z.number().default(0),\n instructedValue: z.string().nullish().default(\"0\"),\n instructedTokenAddress: z.string().nullish().default(null),\n});\nexport type InstructionSummary = z.infer<typeof instructionSummarySchema>;\n\nexport const instructionSummariesSchema = z.array(instructionSummarySchema);\nexport type InstructionSummaries = z.infer<typeof instructionSummariesSchema>;\n\nexport const instructionSummariesByDateSchema = z.record(\n z.string(),\n instructionSummariesSchema,\n);\nexport type InstructionSummariesByDate = z.infer<\n typeof instructionSummariesByDateSchema\n>;\n\nexport const InstructionViewTimescale = {\n Days: \"days\",\n Hours: \"hours\",\n Minutes: \"minutes\",\n Seconds: \"seconds\",\n} as const;\nexport type InstructionViewTimescale =\n (typeof InstructionViewTimescale)[keyof typeof InstructionViewTimescale];\nexport const instructionViewTimescaleValues = Object.values(\n InstructionViewTimescale,\n) as [InstructionViewTimescale, ...InstructionViewTimescale[]];\n\nexport function assertInstructionAction(\n action: unknown,\n): asserts action is InstructionAction {\n if (!instructionActionValues.includes(action as InstructionAction)) {\n throw new Error(`Invalid instruction action: ${action}`);\n }\n}\n", "import { z } from \"zod\";\n\nexport const DATE_REGEX =\n /^(19|20)\\d{2}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$/;\nexport const DATE_ISO_8601_REGEX =\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$/;\nexport const DATE_STANDARD_REGEX =\n /^(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])\\/(19|20)\\d{2}$/;\nexport const TIME_REGEX = /^(0[1-9]|1[0-2]):[0-5][0-9]:[0-5][0-9] (AM|PM)$/;\n\nexport const regexSchema = (regex: RegExp, message?: string) =>\n z.string().regex(regex, message);\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const numberSchema = z.union([\n z.number().finite(),\n z\n .string()\n .regex(/^-?\\d*\\.?\\d+(?:[eE][-+]?\\d+)?$/)\n .transform(Number),\n]);\n\nexport const decimalStringSchema = z\n .string()\n .regex(/^-?\\d*\\.?\\d+$/)\n .refine((val) => !isNaN(parseFloat(val)), {\n message: \"Must be a valid decimal number\",\n });\n\nexport const bigintSchema = z.union([\n z.bigint(),\n z\n .string()\n .regex(/^-?\\d+$/)\n .transform(BigInt),\n]);\n\nexport const hexStringSchema = z\n .string()\n .startsWith(\"0x\")\n .transform((val): `0x${string}` => val as `0x${string}`);\n\nexport const dateSchema = regexSchema(DATE_REGEX);\nexport const dateISO8601Schema = regexSchema(DATE_ISO_8601_REGEX);\nexport const dateStandardSchema = regexSchema(DATE_STANDARD_REGEX);\n\nexport const timeSchema = regexSchema(TIME_REGEX);\n\nexport const Sort = {\n Asc: \"asc\",\n Desc: \"desc\",\n} as const;\nexport type Sort = (typeof Sort)[keyof typeof Sort];\nexport const sortValues = Object.values(Sort) as [Sort, ...Sort[]];\n\nexport const vrsSchema = z.object({\n v: z.number(),\n r: z.string(),\n s: z.string(),\n});\n\nexport const eip2098SignatureSchema = z.object({\n yParity: z.number(),\n r: z.string(),\n s: z.string(),\n});\n\nexport type HexString = z.infer<typeof hexStringSchema>;\nexport type Address = z.infer<typeof hexStringSchema>;\nexport type VRS = z.infer<typeof vrsSchema>;\nexport type EIP2098Signature = z.infer<typeof eip2098SignatureSchema>;\n", "import { z } from \"zod\";\n\nexport const PaymentStatus = {\n Due: \"due\",\n NotDue: \"not-due\",\n Paid: \"paid\",\n} as const;\nexport type PaymentStatus = (typeof PaymentStatus)[keyof typeof PaymentStatus];\n\nexport const PaymentSource = {\n Bill: \"Bill\",\n Stripe: \"Stripe\",\n Clio: \"Clio\",\n QuickBooks: \"QuickBooks\",\n} as const;\nexport type PaymentSource = (typeof PaymentSource)[keyof typeof PaymentSource];\n\nexport const paymentRequestSourceValues = [\n PaymentSource.Bill,\n PaymentSource.Stripe,\n PaymentSource.Clio,\n PaymentSource.QuickBooks,\n] satisfies ReadonlyArray<PaymentSource>;\n\nexport const paymentSchema = z.object({\n id: z.string(),\n fromUserId: z.string().nullable().optional(),\n toUserId: z.string().nullable().optional(),\n payerAddress: z.string().nullable().optional(),\n ephemeralWalletAddress: z.string(),\n ephemeralWalletId: z.string().optional(),\n instructions: z\n .object({\n ids: z.array(z.string()),\n completionIds: z.array(z.string()),\n })\n .optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n // UI-derived fields\n status: z.union([\n z.literal(PaymentStatus.Due),\n z.literal(PaymentStatus.NotDue),\n z.literal(PaymentStatus.Paid),\n ]),\n dueDate: z.string(),\n amountDue: z.number(),\n note: z.string().nullable().optional(),\n address: z.string().nullable().optional(),\n addedOn: z.string(),\n source: z\n .union([\n z.literal(PaymentSource.Bill),\n z.literal(PaymentSource.Stripe),\n z.literal(PaymentSource.Clio),\n z.literal(PaymentSource.QuickBooks),\n ])\n .nullish(),\n attachmentUrl: z.string().url().nullable().optional(),\n attachmentName: z.string().nullable().optional(),\n fromAccountAddress: z.string().nullable().optional(),\n});\n\nexport type Payment = z.infer<typeof paymentSchema>;\n\nexport const PaymentsSchema = z.array(paymentSchema);\nexport type Payments = z.infer<typeof PaymentsSchema>;\n", "import { z } from \"zod\";\n\nimport { instructionIdSchema } from \"./instruction\";\nimport { hexStringSchema } from \"./misc\";\n\nexport type Transaction = z.infer<typeof transactionSchema>;\nexport type TransactionWithValidAmount = z.infer<\n typeof transactionWithValidAmountSchema\n>;\nexport type Transactions = z.infer<typeof transactionsSchema>;\n\nexport const transactionSchema = z.object({\n instructionId: instructionIdSchema,\n transactionHash: hexStringSchema.optional(),\n blockHash: z.string().nullable(),\n transactionStatus: z.string(),\n error: z.string().nullish(),\n startedAt: z.string(),\n startedAtBlock: z.number(),\n finishedAt: z.string().nullable(),\n finishedAtBlock: z.number().nullable(),\n amount: z.object({ value: z.number(), token: z.string() }).nullish(),\n instructedValue: z.string(),\n instructedTokenAddress: z.string().nullable(),\n executionNum: z.number(),\n chainId: z.number().nullish(),\n chain: z.string().optional(),\n});\nexport const transactionWithValidAmountSchema = transactionSchema.extend({\n amount: z.object({\n value: z.number(),\n token: z.string(),\n }),\n});\nexport const transactionsSchema = z.array(transactionSchema);\n", "import { z } from \"zod\";\n\nexport const entityIdSchema = z.string().uuid();\n\nexport const addressSchema = z\n .string()\n .regex(/^0x[a-fA-F0-9]{40}$/)\n .transform((v) => v.toLowerCase());\n\nexport const userPreferencesSchema = z.object({\n chainId: z.number().optional(),\n tokenSymbol: z.string().optional(),\n localCurrency: z.string().optional(),\n});\n\nexport const userSchema = z.object({\n id: entityIdSchema,\n address: addressSchema,\n createdAt: z.string(),\n updatedAt: z.string(),\n preferences: userPreferencesSchema.optional(),\n isDeveloper: z.boolean(),\n developerPublicKey: z.string().nullable().optional(),\n});\n\nexport type UserPreferences = z.infer<typeof userPreferencesSchema>;\nexport type User = z.infer<typeof userSchema>;\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});\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});\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\nexport const getCurrentUserResponseSchema = z.object({\n data: userSchema,\n});\nexport type GetCurrentUserResponse = z.infer<\n typeof getCurrentUserResponseSchema\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 sweepDepositAccountActionArgumentsSchema =\n baseActionArgumentsSchema.extend({\n threshold: numberSchema,\n recipient: hexStringSchema,\n depositorAddress: hexStringSchema,\n });\n\nconst sweepDepositAccountERC20ActionArgumentsSchema =\n baseActionArgumentsSchema.extend({\n threshold: numberSchema,\n recipient: hexStringSchema,\n depositorAddress: hexStringSchema,\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\nexport const actionArgumentsSchema = z.union([\n refuelActionArgumentsSchema,\n refuelERC20ActionArgumentsSchema,\n transferActionArgumentsSchema,\n transferERC20ActionArgumentsSchema,\n sweepDepositAccountActionArgumentsSchema,\n sweepDepositAccountERC20ActionArgumentsSchema,\n uniswapV3ExactInputActionArgumentsSchema,\n deactivateInstructionActionArgumentsSchema,\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 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 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});\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});\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 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 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});\nexport type PaymentRequestDetailsResponse = z.infer<\n typeof paymentRequestDetailsResponseSchema\n>;\n\nexport interface PaymentsListRequest extends PaginatedRequest {\n tab: \"active\" | \"completed\";\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", "/**\n * Environment configuration for @otim/utils\n *\n * These values are injected at build time via esbuild's define option.\n * See scripts/build.js for the injection logic.\n */\n\n/**\n * Build mode - determines production vs development behavior\n * Values: \"production\" | \"development\"\n */\nexport const BUILD_MODE = process.env.BUILD_MODE || \"development\";\n\n/**\n * App API URL - base URL for API requests\n * Defaults to production URL if not specified\n */\nexport const APP_API_URL =\n process.env.NEXT_PUBLIC_APP_API_URL || \"https://app.otim.com/api\";\n", "import { BUILD_MODE } from \"../env\";\n\ntype LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\ninterface LoggerOptions {\n context?: string;\n data?: unknown;\n}\n\ninterface ErrorLogOptions {\n context?: string;\n operation?: string;\n metadata?: Record<string, unknown>;\n}\n\nclass Logger {\n private isDevelopment = BUILD_MODE === \"development\";\n\n debug(message: string, options?: LoggerOptions): void {\n if (this.isDevelopment) {\n this.log(\"debug\", message, options);\n }\n }\n\n info(message: string, options?: LoggerOptions): void {\n this.log(\"info\", message, options);\n }\n\n warn(message: string, options?: LoggerOptions): void {\n this.log(\"warn\", message, options);\n }\n\n error(message: string, options?: LoggerOptions): void {\n this.log(\"error\", message, options);\n }\n\n /**\n * Log errors with context - useful for non-API errors\n * For API errors, use the existing getErrorMessage from @otim/utils/api\n */\n logError(error: unknown, options: ErrorLogOptions = {}): void {\n const { context, operation, metadata } = options;\n const prefix = this.buildPrefix(context, operation);\n\n // Extract basic error message\n let message = \"Unknown error\";\n if (error instanceof Error) {\n message = error.message;\n } else if (typeof error === \"string\") {\n message = error;\n } else if (error && typeof error === \"object\" && \"message\" in error) {\n message = String((error as { message: unknown }).message);\n }\n\n console.error(prefix ? `${prefix} ${message}` : message);\n\n // Log metadata if provided\n if (metadata && Object.keys(metadata).length > 0) {\n console.error(\"Context:\", metadata);\n }\n\n // Log the full error object for debugging\n if (error instanceof Error && error.stack) {\n console.error(\"Stack:\", error.stack);\n } else {\n console.error(\"Error details:\", error);\n }\n }\n\n private buildPrefix(context?: string, operation?: string): string {\n const parts: string[] = [];\n if (context) parts.push(`[${context}]`);\n if (operation) parts.push(`[${operation}]`);\n return parts.join(\" \");\n }\n\n private log(level: LogLevel, message: string, options?: LoggerOptions): void {\n const prefix = options?.context ? `[${options.context}]` : \"\";\n const fullMessage = `${prefix} ${message}`.trim();\n\n switch (level) {\n case \"debug\":\n case \"info\":\n console.log(fullMessage);\n break;\n case \"warn\":\n console.warn(fullMessage);\n break;\n case \"error\":\n console.error(fullMessage);\n break;\n }\n\n if (options?.data) {\n console.dir(options.data, { depth: null });\n }\n }\n}\n\nexport const logger = new Logger();\n", "import type { ZodObject, ZodTypeAny } from \"zod\";\n\nimport { z } from \"zod\";\n\nimport { getSecondsFromTimeUnitValue, parseTimeUnitValue } from \"./datetime\";\n\nexport type Validator<T> = (data: T, ctx: z.RefinementCtx) => void;\n\nexport const composeValidators = <T>(validators: Validator<T>[]) => {\n return (data: T, ctx: z.RefinementCtx) => {\n for (const validator of validators) {\n validator(data, ctx);\n }\n };\n};\n\n// convert seconds to human-readable format.\nconst secondsToHumanReadable = (seconds: number): string => {\n if (seconds >= 3600) {\n const hours = seconds / 3600;\n const roundedHours = Math.round(hours * 10) / 10;\n return roundedHours === 1 ? \"1 hour\" : `${roundedHours} hours`;\n } else if (seconds >= 60) {\n const minutes = seconds / 60;\n const roundedMinutes = Math.round(minutes * 10) / 10;\n return roundedMinutes === 1 ? \"1 minute\" : `${roundedMinutes} minutes`;\n } else {\n return seconds === 1 ? \"1 second\" : `${seconds} seconds`;\n }\n};\n\n/**\n * creates a time unit validator for fields stored as JSON strings.\n * validates both the JSON format and the minimum seconds requirement.\n *\n * @param fieldName \u2013 the name of the field for error messages\n * @param options \u2013 configuration options\n * @param options.minSeconds \u2013 minimum seconds required (default: 60)\n * @param options.allowZero \u2013 whether to allow 0 seconds for \"None\" option (default: false)\n * @param options.useHumanReadable \u2013 whether to use human-readable time in error messages (default: true)\n */\nexport const createTimeUnitValidator = (\n fieldName: string,\n options: {\n minSeconds?: number;\n allowZero?: boolean;\n useHumanReadable?: boolean;\n } = {},\n) => {\n const {\n minSeconds = 60,\n allowZero = false,\n useHumanReadable = true,\n } = options;\n\n return z\n .string()\n .optional()\n .refine(\n (value) => {\n if (!value) return true;\n\n // try to parse the value.\n const parsed = parseTimeUnitValue(value);\n if (!parsed) return false;\n\n // validate minimum seconds, allowing 0 for \"none\" option if specified\n const seconds = getSecondsFromTimeUnitValue(parsed);\n return allowZero ? seconds >= 0 : seconds >= minSeconds;\n },\n {\n message: useHumanReadable\n ? `${fieldName} must be at least ${secondsToHumanReadable(minSeconds)}`\n : `${fieldName} must be at least ${minSeconds} seconds`,\n },\n );\n};\n\n/**\n * Parse the input values using the provided schema. If the input values are\n * invalid, throw a ResolverError.\n * @param values - The input values to parse.\n * @param schema - The schema to use to parse the input values.\n * @param error - The error code to use if the input values are invalid.\n * @returns The parsed input values.\n * @throws ResolverError if the input values are invalid.\n */\nexport const parseSchema = <\n Values,\n Schema extends ZodTypeAny = ZodObject<{\n [P in keyof Values]: z.ZodType<Values[P]>;\n }>,\n>(\n values: Values,\n schema: Schema,\n): z.infer<Schema> => {\n const inputValues = schema.safeParse(values);\n if (!inputValues.success) {\n throw new Error(\n `parseSchema: invalid input values ${JSON.stringify(inputValues.error)}`,\n );\n }\n\n return inputValues.data as z.infer<Schema>;\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 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\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 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 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: \"/payment/request/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: \"/payment/request/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: \"/payment/request/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: \"/payment/requests\",\n method: HttpMethod.Get,\n data: request,\n schema: getPaymentRequestsResponseSchema,\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 { ServiceResponse } from \"../core\";\n\nimport { logger } from \"@otim/utils/helpers\";\n\nimport { BaseService } from \"./base\";\n\nexport interface UniswapToken {\n chainId: number;\n address: string;\n name: string;\n symbol: string;\n decimals: number;\n logoURI?: string;\n extensions?: {\n bridgeInfo?: Record<string, { tokenAddress: string }>;\n };\n}\n\nexport interface UniswapTokenList {\n name: string;\n timestamp: string;\n version: {\n major: number;\n minor: number;\n patch: number;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tags: Record<string, any>;\n logoURI: string;\n keywords: string[];\n tokens: UniswapToken[];\n}\n\nexport interface TokenListRequest {\n chainId: number;\n limit?: number;\n}\n\nexport interface TokenListResponse {\n tokens: UniswapToken[];\n source: \"uniswap\";\n timestamp: string;\n}\n\nexport class UniswapTokenListService extends BaseService {\n private readonly UNISWAP_TOKEN_LIST_URL =\n \"https://ipfs.io/ipns/tokens.uniswap.org\";\n private readonly FALLBACK_URL = \"https://tokens.uniswap.org/\";\n private readonly CACHE_DURATION = 30 * 60 * 1000; // 30 minutes\n private readonly SUPPORTED_CHAIN_IDS = [1, 10, 42161, 8453]; // mainnet, optimism, arbitrum, base\n\n private tokenListCache: UniswapTokenList | null = null;\n private lastFetch: number = 0;\n\n /**\n * Get tokens for a specific chain\n */\n public async getTokensForChain({\n chainId,\n limit = 50,\n }: TokenListRequest): Promise<ServiceResponse<TokenListResponse>> {\n try {\n const tokenList = await this.fetchTokenList();\n\n // Only fetch tokens for supported chains\n if (!this.SUPPORTED_CHAIN_IDS.includes(chainId)) {\n return {\n data: {\n tokens: [],\n source: \"uniswap\",\n timestamp: tokenList.timestamp,\n },\n };\n }\n\n // Filter tokens by chain ID\n const chainTokens = tokenList.tokens.filter(\n (token) => token.chainId === chainId,\n );\n\n // Filter out low-quality tokens\n const filteredTokens = chainTokens.filter((token) => {\n // Filter out tokens with suspicious names or symbols\n const suspiciousPatterns = [\n /test/i,\n /fake/i,\n /scam/i,\n /shit/i,\n /moon/i,\n /doge/i,\n /inu/i,\n /baby/i,\n /mini/i,\n /micro/i,\n /nano/i,\n /pico/i,\n /mega/i,\n /ultra/i,\n /super/i,\n /hyper/i,\n /meta/i,\n /safe/i,\n /new/i,\n /old/i,\n /v2/i,\n /v3/i,\n /v4/i,\n /v5/i,\n /2\\.0/i,\n /3\\.0/i,\n /4\\.0/i,\n /5\\.0/i,\n ];\n\n const name = token.name?.toLowerCase() || \"\";\n const symbol = token.symbol?.toLowerCase() || \"\";\n\n // Skip tokens with suspicious patterns\n if (\n suspiciousPatterns.some(\n (pattern) => pattern.test(name) || pattern.test(symbol),\n )\n ) {\n return false;\n }\n\n // Skip tokens with very short or very long names\n if (name.length < 2 || name.length > 50) return false;\n if (symbol.length < 2 || symbol.length > 20) return false;\n\n // Skip tokens without proper metadata\n if (!token.name || !token.symbol || !token.address) return false;\n\n return true;\n });\n\n // Sort by popularity (you could implement custom sorting logic here)\n // For now, we'll just limit the results\n const limitedTokens = filteredTokens.slice(0, limit);\n\n return {\n data: {\n tokens: limitedTokens,\n source: \"uniswap\",\n timestamp: tokenList.timestamp,\n },\n };\n } catch (error) {\n throw new Error(error instanceof Error ? error.message : \"Unknown error\");\n }\n }\n\n /**\n * Get all supported chains from the token list\n */\n public async getSupportedChains(): Promise<ServiceResponse<number[]>> {\n try {\n const tokenList = await this.fetchTokenList();\n\n const chainIds = Array.from(\n new Set(tokenList.tokens.map((token) => token.chainId)),\n ).sort((a, b) => a - b);\n\n return {\n data: chainIds,\n };\n } catch (error) {\n throw new Error(error instanceof Error ? error.message : \"Unknown error\");\n }\n }\n\n /**\n * Search for a specific token by address or symbol\n */\n public async findToken(\n chainId: number,\n query: string,\n ): Promise<ServiceResponse<UniswapToken | null>> {\n try {\n const tokenList = await this.fetchTokenList();\n\n const token = tokenList.tokens.find(\n (t) =>\n t.chainId === chainId &&\n (t.address.toLowerCase() === query.toLowerCase() ||\n t.symbol.toLowerCase() === query.toLowerCase() ||\n t.name.toLowerCase().includes(query.toLowerCase())),\n );\n\n return {\n data: token || null,\n };\n } catch (error) {\n throw new Error(error instanceof Error ? error.message : \"Unknown error\");\n }\n }\n\n /**\n * Get bridge information for a token\n */\n public async getBridgeInfo(\n chainId: number,\n tokenAddress: string,\n ): Promise<ServiceResponse<Record<string, string>>> {\n try {\n const tokenList = await this.fetchTokenList();\n\n const token = tokenList.tokens.find(\n (t) =>\n t.chainId === chainId &&\n t.address.toLowerCase() === tokenAddress.toLowerCase(),\n );\n\n if (!token || !token.extensions?.bridgeInfo) {\n return {\n data: {},\n };\n }\n\n const bridgeInfo: Record<string, string> = {};\n for (const [targetChainId, info] of Object.entries(\n token.extensions.bridgeInfo,\n )) {\n bridgeInfo[targetChainId] = info.tokenAddress;\n }\n\n return {\n data: bridgeInfo,\n };\n } catch (error) {\n throw new Error(error instanceof Error ? error.message : \"Unknown error\");\n }\n }\n\n /**\n * Fetch the Uniswap token list\n */\n private async fetchTokenList(): Promise<UniswapTokenList> {\n const now = Date.now();\n\n // Return cached data if still valid\n if (this.tokenListCache && now - this.lastFetch < this.CACHE_DURATION) {\n return this.tokenListCache;\n }\n\n try {\n // Try IPFS first\n const response = await fetch(this.UNISWAP_TOKEN_LIST_URL, {\n headers: {\n Accept: \"application/json\",\n },\n });\n\n if (!response.ok) {\n throw new Error(`IPFS fetch failed: ${response.status}`);\n }\n\n const data = await response.json();\n this.tokenListCache = data;\n this.lastFetch = now;\n return data;\n } catch (error) {\n logger.logError(error, {\n context: this.fetchTokenList.name,\n });\n\n try {\n // Fallback to direct URL\n const response = await fetch(this.FALLBACK_URL, {\n headers: {\n Accept: \"application/json\",\n },\n });\n\n if (!response.ok) {\n throw new Error(`Fallback fetch failed: ${response.status}`);\n }\n\n const data = await response.json();\n this.tokenListCache = data;\n this.lastFetch = now;\n return data;\n } catch (fallbackError) {\n logger.logError(fallbackError, {\n context: this.fetchTokenList.name,\n });\n throw new Error(\"Unable to fetch Uniswap token list\");\n }\n }\n }\n}\n", "import type { APIClientInit } from \"./core\";\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\";\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?: APIClientInit) {\n const instance = isInstanceInit(init)\n ? init.instance\n : createInstance(init);\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"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,iBAAkB;AAEX,IAAM,iBAAiB,aAAE,OAAO;AAAA,EACrC,MAAM,aAAE,OAAO,EAAE,QAAQ;AAAA,EACzB,SAAS,aAAE,OAAO,EAAE,QAAQ;AAAA,EAC5B,WAAW,aAAE,OAAO,EAAE,QAAQ;AAAA,EAC9B,cAAc,aAAE,OAAO,EAAE,QAAQ;AAAA,EACjC,QAAQ,aAAE,OAAO,EAAE,QAAQ;AAAA,EAC3B,SAAS,aACN,OAAO;AAAA,IACN,cAAc,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,OAAO,CAAC,EAAE,QAAQ;AAAA,EACzD,CAAC,EACA,QAAQ;AACb,CAAC;AAEM,IAAM,sBAAsB,aAAE,OAAO;AAAA,EAC1C,SAAS,aAAE,OAAO,EAAE,QAAQ;AAAA,EAC5B,cAAc,aAAE,OAAO,EAAE,QAAQ;AAAA,EACjC,WAAW,aAAE,OAAO,EAAE,QAAQ;AAAA,EAC9B,QAAQ,aAAE,MAAM,cAAc,EAAE,QAAQ;AAC1C,CAAC;AAMD,IAAM,mBAAmB;AACzB,IAAM,sBAAsB;AAO5B,SAAS,iBAAiB,YAA0B;AAClD,MAAI,YAAY,YAAY;AAE5B,MAAI,CAAC,aAAa,YAAY,UAAU,MAAM;AAC5C,gBAAY,WAAW,SAAS;AAAA,EAClC;AAEA,MACE,CAAC,cACA,YAAY,gBAAgB,YAAY,WAAW,YAAY,YAChE;AACA,gBAAY;AAAA,EACd;AAEA,SAAO;AACT;AAUO,SAAS,gBAEd,YACA,iBACQ;AACR,QAAM,eAAe,mBAAmB;AAExC,QAAM,YAAY,iBAAiB,UAAU;AAE7C,QAAM,SAAS,oBAAoB,UAAU,SAAS;AACtD,MAAI,CAAC,OAAO,SAAS;AACnB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,SAAS,cAAc,iBAAiB,OAAO,IAAI,OAAO;AAMlE,SACE,mBACA,WACA,SAAS,CAAC,GAAG,gBACb,SAAS,CAAC,GAAG,WACb;AAEJ;AAeO,SAAS,wBAEd,YACA,iBACsB;AACtB,QAAM,eAAe,mBAAmB;AAExC,QAAM,YAAY,iBAAiB,UAAU;AAE7C,QAAM,SAAS,oBAAoB,UAAU,SAAS;AACtD,MACE,CAAC,OAAO,WACP,CAAC,OAAO,KAAK,SAAS,CAAC,KACtB,CAAC,OAAO,KAAK,gBACb,CAAC,OAAO,KAAK,SACf;AACA,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AAEA,QAAM;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA;AAAA,EACF,IAAI,OAAO;AAEX,SAAO;AAAA,IACL,SACE,mBACA,WACA,SAAS,CAAC,GAAG,gBACb,SAAS,CAAC,GAAG,WACb;AAAA,IACF,MACE,aACA,SAAS,CAAC,GAAG,aACb,SAAS,CAAC,GAAG,QACb;AAAA,EACJ;AACF;AASO,SAAS,qBAEd,OACS;AACT,MAAI,CAAC,MAAO,QAAO;AAMnB,MAAI,eAAe;AACnB,MAAI,OAAO,UAAU,UAAU;AAC7B,mBAAe;AAAA,EACjB,WAAW,OAAO,UAAU,UAAU;AACpC,mBAAe,MAAM,WAAW,MAAM,gBAAgB,MAAM,WAAW;AAAA,EACzE;AAEA,MAAI,CAAC,cAAc;AACjB,mBAAe,OAAO,KAAK;AAAA,EAC7B;AAEA,iBAAe,aAAa,YAAY;AAOxC,QAAM,oBAAoB;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO,kBAAkB,KAAK,CAAC,YAAY,aAAa,SAAS,OAAO,CAAC;AAC3E;AASO,IAAM,yBAAyB,CACpC,WACA,iBACY;AACZ,QAAM,qBAAqB,aAAa,OAAQ,YAAY;AAC5D,QAAM,kBAAkB,QAAQ,YAAY;AAE5C,SAAO,sBAAsB;AAC/B;AAMO,SAAS,iBAEd,OACS;AACT,MAAI,CAAC,MAAO,QAAO;AAOnB,MAAI,eAAe;AACnB,MAAI,OAAO,UAAU,UAAU;AAC7B,mBAAe;AAAA,EACjB,WAAW,OAAO,UAAU,UAAU;AACpC,mBAAe,MAAM,WAAW,MAAM,gBAAgB,MAAM,WAAW;AAAA,EACzE;AAEA,MAAI,CAAC,cAAc;AACjB,mBAAe,OAAO,KAAK;AAAA,EAC7B;AAEA,iBAAe,aAAa,YAAY;AAOxC,QAAM,yBAAyB;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO,uBAAuB;AAAA,IAAK,CAAC,YAClC,aAAa,SAAS,OAAO;AAAA,EAC/B;AACF;AAEO,SAAS,4BAEd,OACA,iBACQ;AACR,MAAI,iBAAiB,KAAK,GAAG;AAC3B,WAAO;AAAA,EACT;AAEA,SAAO,gBAAgB,OAAO,eAAe;AAC/C;;;ACtRA,mBAAkB;AAElB,IAAM,+BAA+B;AAI9B,IAAM,iBAAiB,CAAC,WAAiC;AAC9D,QAAM,WAAW,aAAAC,QAAM,OAAO;AAAA,IAC5B,SAAS;AAAA,IACT,GAAG;AAAA,EACL,CAAC;AAED,SAAO;AACT;AAEO,IAAM,wBAAwB,MAAM;AACzC,SAAO,IAAI,gBAAgB;AAC7B;AAMO,IAAM,iBAAiB,CAC5B,SACwC;AACxC,SAAO,CAAC,CAAC,QAAQ,OAAO,SAAS,YAAY,cAAc;AAC7D;;;ACDO,IAAM,eAAN,cAA2B,MAAM;AAAA,EACtC,YACE,SACgB,MAChB;AACA,UAAM,OAAO;AAFG;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAKO,IAAM,aAAa;AAAA,EACxB,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,QAAQ;AACV;;;AC/CA,IAAAC,cAAkB;AAEX,IAAM,mBAAmB;AAAA,EAC9B,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AACX;AAGO,IAAM,yBAAyB,OAAO,OAAO,gBAAgB;AAK7D,IAAM,yBAAyB,cAAE,KAAK,sBAAsB;AAE5D,IAAM,gCAAgC,cAAE,OAAO;AAAA,EACpD,SAAS,cAAE,OAAO;AAAA,EAClB,SAAS,cAAE,OAAO;AACpB,CAAC;AAKM,IAAM,iCAAiC,cAAE,OAAO;AAAA,EACrD,kBAAkB;AACpB,CAAC;AAKM,IAAM,gCAAgC,cAAE,OAAO;AAAA,EACpD,qBAAqB,cAAE,OAAO;AAAA,EAC9B,eAAe,cAAE,OAAO;AAC1B,CAAC;AAKM,IAAM,iCAAiC,cAAE,OAAO;AAAA,EACrD,SAAS,cAAE,QAAQ;AAAA,EACnB,iBAAiB,cAAE,OAAO,EAAE,SAAS;AAAA,EACrC,SAAS,cAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;;;AC3CD,IAAAC,cAAkB;;;ACFlB,IAAAC,cAAkB;;;ACAlB,IAAAC,cAAkB;AAEX,IAAM,aACX;AACK,IAAM,sBACX;AACK,IAAM,sBACX;AACK,IAAM,aAAa;AAEnB,IAAM,cAAc,CAAC,OAAe,YACzC,cAAE,OAAO,EAAE,MAAM,OAAO,OAAO;AAE1B,IAAM,uBAAuB,cAAE,OAAO,EAAE,IAAI,CAAC;AAE7C,IAAM,eAAe,cAAE,MAAM;AAAA,EAClC,cAAE,OAAO,EAAE,OAAO;AAAA,EAClB,cACG,OAAO,EACP,MAAM,gCAAgC,EACtC,UAAU,MAAM;AACrB,CAAC;AAEM,IAAM,sBAAsB,cAChC,OAAO,EACP,MAAM,eAAe,EACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG;AAAA,EACxC,SAAS;AACX,CAAC;AAEI,IAAM,eAAe,cAAE,MAAM;AAAA,EAClC,cAAE,OAAO;AAAA,EACT,cACG,OAAO,EACP,MAAM,SAAS,EACf,UAAU,MAAM;AACrB,CAAC;AAEM,IAAM,kBAAkB,cAC5B,OAAO,EACP,WAAW,IAAI,EACf,UAAU,CAAC,QAAuB,GAAoB;AAElD,IAAM,aAAa,YAAY,UAAU;AACzC,IAAM,oBAAoB,YAAY,mBAAmB;AACzD,IAAM,qBAAqB,YAAY,mBAAmB;AAE1D,IAAM,aAAa,YAAY,UAAU;AAEzC,IAAM,OAAO;AAAA,EAClB,KAAK;AAAA,EACL,MAAM;AACR;AAEO,IAAM,aAAa,OAAO,OAAO,IAAI;AAErC,IAAM,YAAY,cAAE,OAAO;AAAA,EAChC,GAAG,cAAE,OAAO;AAAA,EACZ,GAAG,cAAE,OAAO;AAAA,EACZ,GAAG,cAAE,OAAO;AACd,CAAC;AAEM,IAAM,yBAAyB,cAAE,OAAO;AAAA,EAC7C,SAAS,cAAE,OAAO;AAAA,EAClB,GAAG,cAAE,OAAO;AAAA,EACZ,GAAG,cAAE,OAAO;AACd,CAAC;;;AD9DM,IAAM,sBAAsB;AAG5B,IAAM,mBAAmB;AAAA,EAC9B,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,YAAY;AACd;AAGO,IAAM,yBAAyB,OAAO,OAAO,gBAAgB;AAI7D,IAAM,yBAAyB,cAAE,KAAK,sBAAsB;AAE5D,IAAM,oBAAoB;AAAA,EAC/B,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,0BAA0B;AAAA,EAC1B,uBAAuB;AAAA,EACvB,6BAA6B;AAC/B;AAGO,IAAM,0BAA0B,OAAO,OAAO,iBAAiB;AAI/D,IAAM,0BAA0B,cAAE,KAAK,uBAAuB;AAE9D,IAAM,+BAA+B;AAAA,EAC1C,KAAK;AAAA,EACL,UAAU;AACZ;AAGO,IAAM,iCAAiC,OAAO;AAAA,EACnD;AACF;AACA,IAAM,kBAAkB,cAAE,OAAO;AAAA,EAC/B,MAAM,cAAE,KAAK,8BAA8B;AAC7C,CAAC;AACD,IAAM,iBAAiB,gBAAgB,OAAO;AAAA,EAC5C,MAAM,cAAE,QAAQ,6BAA6B,GAAG;AAClD,CAAC;AACD,IAAM,sBAAsB,gBAAgB,OAAO;AAAA,EACjD,MAAM,cAAE,QAAQ,6BAA6B,QAAQ;AAAA,EACrD,WAAW;AAAA,EACX,WAAW,cAAE,OAAO;AACtB,CAAC;AACM,IAAM,iCAAiC,cAAE,mBAAmB,QAAQ;AAAA,EACzE;AAAA,EACA;AACF,CAAC;AAKM,IAAM,gCAAgC;AAAA,EAC3C,kBAAkB;AAAA,EAClB,eAAe;AACjB;AAGO,IAAM,kCAAkC,OAAO;AAAA,EACpD;AACF;AACA,IAAM,mBAAmB,cAAE,OAAO,CAAC,CAAC;AACpC,IAAM,+BAA+B,iBAAiB,OAAO;AAAA,EAC3D,MAAM,cAAE,QAAQ,8BAA8B,gBAAgB;AAChE,CAAC;AACD,IAAM,4BAA4B,iBAAiB,OAAO;AAAA,EACxD,MAAM,cAAE,QAAQ,8BAA8B,aAAa;AAAA,EAC3D,eAAe;AACjB,CAAC;AACM,IAAM,kCAAkC,cAAE,mBAAmB,QAAQ;AAAA,EAC1E;AAAA,EACA;AACF,CAAC;AAKM,IAAM,+BAA+B;AAAA,EAC1C,kBAAkB;AAAA,EAClB,aAAa;AACf;AAGO,IAAM,iCAAiC,OAAO;AAAA,EACnD;AACF;AACA,IAAM,kBAAkB,cAAE,OAAO,CAAC,CAAC;AACnC,IAAM,8BAA8B,gBAAgB,OAAO;AAAA,EACzD,MAAM,cAAE,QAAQ,6BAA6B,gBAAgB;AAC/D,CAAC;AACD,IAAM,yBAAyB,gBAAgB,OAAO;AAAA,EACpD,MAAM,cAAE,QAAQ,6BAA6B,WAAW;AAAA,EACxD,YAAY;AACd,CAAC;AACM,IAAM,iCAAiC,cAAE,mBAAmB,QAAQ;AAAA,EACzE;AAAA,EACA;AACF,CAAC;AAKM,IAAM,WAAW;AAAA,EACtB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AACT;AAEO,IAAM,iBAAiB,OAAO,OAAO,QAAQ;AAI7C,IAAM,iBAAiB,cAAE,KAAK,cAAc;AAE5C,IAAM,kCAAkC,cAAE,OAAO;AAAA,EACtD,iBAAiB,uBAAuB,SAAS;AAAA,EACjD,kBAAkB,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC5C,cAAc,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAC1C,CAAC;AAEM,IAAM,oBAAoB,cAAE,OAAO;AAAA,EACxC,eAAe;AAAA,EACf,WAAW,cAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,SAAS,cAAE,OAAO,EAAE,QAAQ;AAAA,EAC5B,UAAU,cAAE,OAAO,EAAE,QAAQ;AAAA,EAC7B,SAAS,cAAE,OAAO,EAAE,QAAQ;AAAA,EAC5B,eAAe,cAAE,OAAO,EAAE,QAAQ;AAAA,EAClC,gBAAgB,gCAAgC,SAAS;AAAA,EACzD,YAAY,cAAE,OAAO,EAAE,SAAS;AAAA,EAChC,WAAW,cAAE,IAAI;AAAA,EACjB,UAAU,cAAE,OAAO,EAAE,QAAQ;AAAA,EAC7B,qBAAqB,cAAE,OAAO,EAAE,SAAS;AAAA,EACzC,eAAe,cAAE,OAAO,EAAE,QAAQ;AAAA,EAClC,kBAAkB,cAAE,OAAO,EAAE,QAAQ;AAAA,EACrC,sBAAsB,cAAE,OAAO,EAAE,SAAS;AAAA,EAC1C,wBAAwB,gBAAgB,QAAQ;AAAA,EAChD,SAAS,cAAE,OAAO,EAAE,QAAQ;AAAA,EAC5B,OAAO,cAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAGM,IAAM,qBAAqB,cAAE,MAAM,iBAAiB;AAGpD,IAAM,2BAA2B,cAAE,OAAO;AAAA,EAC/C,eAAe;AAAA,EACf,SAAS,cAAE,OAAO,EAAE,IAAI;AAAA,EACxB,gBAAgB,cAAE,OAAO,EAAE,IAAI;AAAA,EAC/B,aAAa,cAAE,OAAO,EAAE,IAAI;AAAA,EAC5B,WAAW,cAAE,OAAO,EAAE,IAAI;AAAA,EAC1B,oBAAoB,cAAE,QAAQ;AAAA,EAC9B,QAAQ,cAAE,OAAO,EAAE,QAAQ,CAAC;AAAA,EAC5B,iBAAiB,cAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG;AAAA,EACjD,wBAAwB,cAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI;AAC3D,CAAC;AAGM,IAAM,6BAA6B,cAAE,MAAM,wBAAwB;AAGnE,IAAM,mCAAmC,cAAE;AAAA,EAChD,cAAE,OAAO;AAAA,EACT;AACF;AAKO,IAAM,2BAA2B;AAAA,EACtC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AAGO,IAAM,iCAAiC,OAAO;AAAA,EACnD;AACF;;;AE/MA,IAAAC,cAAkB;AAEX,IAAM,gBAAgB;AAAA,EAC3B,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AACR;AAGO,IAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AACd;AAGO,IAAM,6BAA6B;AAAA,EACxC,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAChB;AAEO,IAAM,gBAAgB,cAAE,OAAO;AAAA,EACpC,IAAI,cAAE,OAAO;AAAA,EACb,YAAY,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC3C,UAAU,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACzC,cAAc,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC7C,wBAAwB,cAAE,OAAO;AAAA,EACjC,mBAAmB,cAAE,OAAO,EAAE,SAAS;AAAA,EACvC,cAAc,cACX,OAAO;AAAA,IACN,KAAK,cAAE,MAAM,cAAE,OAAO,CAAC;AAAA,IACvB,eAAe,cAAE,MAAM,cAAE,OAAO,CAAC;AAAA,EACnC,CAAC,EACA,SAAS;AAAA,EACZ,UAAU,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC,EAAE,SAAS;AAAA;AAAA,EAErD,QAAQ,cAAE,MAAM;AAAA,IACd,cAAE,QAAQ,cAAc,GAAG;AAAA,IAC3B,cAAE,QAAQ,cAAc,MAAM;AAAA,IAC9B,cAAE,QAAQ,cAAc,IAAI;AAAA,EAC9B,CAAC;AAAA,EACD,SAAS,cAAE,OAAO;AAAA,EAClB,WAAW,cAAE,OAAO;AAAA,EACpB,MAAM,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACrC,SAAS,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACxC,SAAS,cAAE,OAAO;AAAA,EAClB,QAAQ,cACL,MAAM;AAAA,IACL,cAAE,QAAQ,cAAc,IAAI;AAAA,IAC5B,cAAE,QAAQ,cAAc,MAAM;AAAA,IAC9B,cAAE,QAAQ,cAAc,IAAI;AAAA,IAC5B,cAAE,QAAQ,cAAc,UAAU;AAAA,EACpC,CAAC,EACA,QAAQ;AAAA,EACX,eAAe,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACpD,gBAAgB,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC/C,oBAAoB,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AACrD,CAAC;AAIM,IAAM,iBAAiB,cAAE,MAAM,aAAa;;;AChEnD,IAAAC,cAAkB;AAWX,IAAM,oBAAoB,cAAE,OAAO;AAAA,EACxC,eAAe;AAAA,EACf,iBAAiB,gBAAgB,SAAS;AAAA,EAC1C,WAAW,cAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,mBAAmB,cAAE,OAAO;AAAA,EAC5B,OAAO,cAAE,OAAO,EAAE,QAAQ;AAAA,EAC1B,WAAW,cAAE,OAAO;AAAA,EACpB,gBAAgB,cAAE,OAAO;AAAA,EACzB,YAAY,cAAE,OAAO,EAAE,SAAS;AAAA,EAChC,iBAAiB,cAAE,OAAO,EAAE,SAAS;AAAA,EACrC,QAAQ,cAAE,OAAO,EAAE,OAAO,cAAE,OAAO,GAAG,OAAO,cAAE,OAAO,EAAE,CAAC,EAAE,QAAQ;AAAA,EACnE,iBAAiB,cAAE,OAAO;AAAA,EAC1B,wBAAwB,cAAE,OAAO,EAAE,SAAS;AAAA,EAC5C,cAAc,cAAE,OAAO;AAAA,EACvB,SAAS,cAAE,OAAO,EAAE,QAAQ;AAAA,EAC5B,OAAO,cAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AACM,IAAM,mCAAmC,kBAAkB,OAAO;AAAA,EACvE,QAAQ,cAAE,OAAO;AAAA,IACf,OAAO,cAAE,OAAO;AAAA,IAChB,OAAO,cAAE,OAAO;AAAA,EAClB,CAAC;AACH,CAAC;AACM,IAAM,qBAAqB,cAAE,MAAM,iBAAiB;;;AClC3D,IAAAC,cAAkB;AAEX,IAAM,iBAAiB,cAAE,OAAO,EAAE,KAAK;AAEvC,IAAM,gBAAgB,cAC1B,OAAO,EACP,MAAM,qBAAqB,EAC3B,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;AAE5B,IAAM,wBAAwB,cAAE,OAAO;AAAA,EAC5C,SAAS,cAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,aAAa,cAAE,OAAO,EAAE,SAAS;AAAA,EACjC,eAAe,cAAE,OAAO,EAAE,SAAS;AACrC,CAAC;AAEM,IAAM,aAAa,cAAE,OAAO;AAAA,EACjC,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,WAAW,cAAE,OAAO;AAAA,EACpB,WAAW,cAAE,OAAO;AAAA,EACpB,aAAa,sBAAsB,SAAS;AAAA,EAC5C,aAAa,cAAE,QAAQ;AAAA,EACvB,oBAAoB,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AACrD,CAAC;;;ALjBM,IAAM,mBAAmB,cAAE,KAAK;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,IAAM,uBAAuB,cAAE,OAAO;AAAA,EACpC,OAAO;AAAA,EACP,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,OAAO;AACT,CAAC;AAED,IAAM,mBAAmB,cAAE,OAAO;AAAA,EAChC,aAAa;AAAA,EACb,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,UAAU;AACZ,CAAC;AAED,IAAM,uBAAuB,cAAE,OAAO;AAAA,EACpC,OAAO;AAAA,EACP,MAAM;AAAA,EACN,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,OAAO;AACT,CAAC;AAED,IAAM,6BAA6B,cAAE,OAAO;AAAA,EAC1C,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AACV,CAAC;AAED,IAAM,8BAA8B,cAAE,OAAO;AAAA,EAC3C,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AACV,CAAC;AAEM,IAAM,qBAAqB,cAAE,MAAM;AAAA,EACxC,cAAE,OAAO,EAAE,UAAU,qBAAqB,CAAC;AAAA,EAC3C,cAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAAA,EACnC,cAAE,OAAO,EAAE,UAAU,qBAAqB,CAAC;AAAA,EAC3C,cAAE,OAAO,EAAE,gBAAgB,2BAA2B,CAAC;AAAA,EACvD,cAAE,OAAO,EAAE,iBAAiB,4BAA4B,CAAC;AAC3D,CAAC;AAaM,IAAM,uBAAuB,cAAE,OAAO;AAAA,EAC3C,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,eAAe,gBAAgB,SAAS;AAAA,EACxC,gBAAgB,cAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAGM,IAAM,sCAAsC,cAAE,OAAO;AAAA,EAC1D,SAAS,cAAE,OAAO;AAAA,EAClB,aAAa,cAAE,MAAM,gBAAgB;AAAA,EACrC,MAAM,aAAa,SAAS;AAAA,EAC5B,SAAS,aAAa,SAAS;AACjC,CAAC;AAKM,IAAM,uCACX,cAAE,MAAM,oBAAoB;;;AM7G9B,IAAAC,cAAkB;AAIX,IAAM,yBAAyB,cAAE,OAAO;AAAA,EAC7C,MAAM,cAAE,OAAO;AAAA,EACf,WAAW;AACb,CAAC;AAGM,IAAM,0BAA0B,cAAE,OAAO;AAAA,EAC9C,eAAe,cAAE,OAAO;AAAA,EACxB,MAAM;AACR,CAAC;AAGM,IAAM,mCAAmC,cAAE,OAAO;AAAA,EACvD,OAAO,cAAE,OAAO,EAAE,MAAM;AAC1B,CAAC;AAKM,IAAM,oCAAoC,cAAE,OAAO;AAAA,EACxD,SAAS,cAAE,QAAQ;AACrB,CAAC;AAKM,IAAM,oBAAoB,cAAE,OAAO;AAAA,EACxC,cAAc,cAAE,OAAO;AAAA,EACvB,gBAAgB,cAAE,OAAO;AAAA,EACzB,mBAAmB,cAAE,OAAO;AAAA,EAC5B,YAAY,cAAE,MAAM,cAAE,OAAO,CAAC,EAAE,SAAS;AAC3C,CAAC;AAGM,IAAM,4BAA4B,cAAE,OAAO;AAAA,EAChD,OAAO,cAAE,MAAM;AAAA,EACf,kBAAkB,cAAE,OAAO,OAAO,EAAE,IAAI,EAAE,IAAI,GAAM,EAAE,IAAI,MAAM;AAAA,EAChE,kBAAkB,cAAE,OAAO,EAAE,SAAS;AAAA,EACtC,aAAa,kBAAkB,SAAS;AAC1C,CAAC;AAGM,IAAM,6BAA6B,cAAE,OAAO;AAAA,EACjD,OAAO,cAAE,OAAO;AAAA,EAChB,UAAU,cAAE,OAAO;AAAA,EACnB,eAAe,cAAE,OAAO;AAAA,EACxB,SAAS,cAAE,QAAQ,EAAE,SAAS;AAChC,CAAC;AAGM,IAAM,mBAAmB;AAGzB,IAAM,4BAA4B,cAAE,OAAO;AAAA,EAChD,cAAc,cAAE,OAAO;AACzB,CAAC;AAGM,IAAM,6BAA6B,cAAE,OAAO;AAAA,EACjD,SAAS,cAAE,QAAQ;AACrB,CAAC;AAGM,IAAM,8BAA8B,cAAE,OAAO;AAAA,EAClD,eAAe,cAAE,QAAQ;AAAA,EACzB,iBAAiB,cAAE,QAAQ;AAC7B,CAAC;AAQM,IAAM,8BAA8B,cAAE,OAAO;AAAA,EAClD,OAAO,cAAE,OAAO,EAAE,MAAM;AAC1B,CAAC;AAGM,IAAM,+BAA+B,cAAE,OAAO;AAAA,EACnD,WAAW,cAAE,QAAQ;AAAA,EACrB,SAAS,cAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAKM,IAAM,qCAAqC,cAAE,OAAO;AAAA,EACzD,SAAS,cAAE,OAAO;AACpB,CAAC;AAKM,IAAM,sCAAsC,cAAE,OAAO;AAAA,EAC1D,WAAW,cAAE,QAAQ;AAAA,EACrB,SAAS,cAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAKM,IAAM,+BAA+B,cAAE,OAAO;AAAA,EACnD,MAAM;AACR,CAAC;;;AC5GD,IAAAC,eAAkB;AAEX,IAAM,gBAAgB,eAAE,OAAO;AAAA,EACpC,SAAS,eAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAIM,IAAM,mBAAmB,eAAE,OAAO;AAAA,EACvC,SAAS,eAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAGM,IAAM,6BAA6B,eAAE,OAAO;AAAA,EACjD,SAAS,eAAE,QAAQ;AAAA,EACnB,SAAS,eAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;;;AChBD,IAAAC,eAAkB;AAIX,IAAM,2BAA2B,eAAE,OAAO;AAAA,EAC/C,SAAS,eAAE,OAAO;AACpB,CAAC;AAKM,IAAM,mCAAmC,eAAE,OAAO;AAAA,EACvD,qBAAqB,eAAE,OAAO;AAChC,CAAC;AAKM,IAAM,yCAAyC,eAAE,OAAO;AAAA,EAC7D,SAAS,eAAE,OAAO;AACpB,CAAC;AAKM,IAAM,gCAAgC,eAAE,OAAO;AAAA,EACpD,QAAQ,eAAE;AAAA,IACR,eAAE,OAAO;AAAA,MACP,QAAQ,eAAE,IAAI;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAKM,IAAM,gCAAgC,eAAE,QAAQ;AAKhD,IAAM,wCAAwC,eAAE,OAAO;AAAA,EAC5D,SAAS,eAAE,OAAO;AACpB,CAAC;AAKM,IAAM,gDAAgD,eAAE,OAAO;AAAA,EACpE,4BAA4B,eAAE,OAAO;AAAA,EACrC,8BAA8B,eAAE,OAAO;AAAA,EACvC,4BAA4B,eAAE,OAAO;AACvC,CAAC;;;ACrDD,IAAAC,eAAkB;AAIX,IAAM,0BAA0B,eAAE,OAAO;AAAA,EAC9C,SAAS;AAAA,EACT,MAAM,eAAE,OAAO;AACjB,CAAC;AAGM,IAAM,2BAA2B,eAAE,OAAO;AAAA,EAC/C,SAAS,aAAa,SAAS;AAAA,EAC/B,MAAM,aAAa,SAAS;AAC9B,CAAC;AAGM,IAAM,gBAAgB,eAAE,OAAO;AAAA,EACpC,QAAQ,eAAE,OAAO;AAAA,EACjB,SAAS;AAAA,EACT,MAAM,eAAE,OAAO;AAAA,EACf,WAAW,eAAE,OAAO;AAAA,EACpB,WAAW,eAAE,OAAO;AACtB,CAAC;AAEM,IAAM,4BAA4B,eAAE,MAAM,aAAa;;;ACxB9D,IAAAC,eAAkB;AAUlB,IAAM,YAAY,eAAE,OAAO;AAAA,EACzB,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,OAAO;AACT,CAAC;AAED,IAAM,iBAAiB,eAAE,OAAO;AAAA,EAC9B,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AACX,CAAC;AAED,IAAM,4BAA4B,eAAE,OAAO;AAAA,EACzC,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AACT,CAAC;AAED,IAAM,8BAA8B,0BAA0B,OAAO;AAAA,EACnE,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AACZ,CAAC;AAED,IAAM,mCAAmC,0BAA0B,OAAO;AAAA,EACxE,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AACZ,CAAC;AAED,IAAM,gCAAgC,0BAA0B,OAAO;AAAA,EACrE,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AACZ,CAAC;AAED,IAAM,qCAAqC,0BAA0B,OAAO;AAAA,EAC1E,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AACZ,CAAC;AAED,IAAM,2CACJ,0BAA0B,OAAO;AAAA,EAC/B,WAAW;AAAA,EACX,WAAW;AAAA,EACX,kBAAkB;AACpB,CAAC;AAEH,IAAM,gDACJ,0BAA0B,OAAO;AAAA,EAC/B,WAAW;AAAA,EACX,WAAW;AAAA,EACX,kBAAkB;AACpB,CAAC;AAEH,IAAM,2CAA2C,eAAE,OAAO;AAAA,EACxD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,SAAS,eAAE,OAAO;AAAA,EAClB,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,KAAK;AAAA,EACL,UAAU;AACZ,CAAC;AAED,IAAM,6CAA6C,eAAE,OAAO;AAAA,EAC1D,eAAe;AAAA,EACf,KAAK;AACP,CAAC;AAEM,IAAM,wBAAwB,eAAE,MAAM;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAKD,IAAM,oBAAoB,eAAE,OAAO;AAAA,EACjC,OAAO;AAAA,EACP,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,sBAAsB;AACxB,CAAC;AAGD,IAAM,yBAAyB,eAAE,OAAO;AAAA,EACtC,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AACX,CAAC;AAGD,IAAM,6BAA6B,eAAE,OAAO;AAAA,EAC1C,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,KAAK;AACP,CAAC;AAED,IAAM,+BAA+B,eAAE,OAAO;AAAA,EAC5C,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,KAAK;AACP,CAAC;AAED,IAAM,kCAAkC,eAAE,OAAO;AAAA,EAC/C,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,KAAK;AACP,CAAC;AAED,IAAM,oCAAoC,eAAE,OAAO;AAAA,EACjD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,KAAK;AACP,CAAC;AAEM,IAAM,gCAAgC,eAAE,MAAM;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAOM,IAAM,yBAAyB,eAAE,OAAO;AAAA,EAC7C,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,eAAe;AAAA,EACf,MAAM;AAAA,EACN,UAAU,eAAE,OAAO,EAAE,QAAQ;AAC/B,CAAC;AAIM,IAAM,iCAAiC,eAAE,OAAO;AAAA,EACrD,SAAS;AAAA,EACT,SAAS,eAAE,OAAO;AAAA,EAClB,MAAM,eAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,SAAS,eAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAKM,IAAM,kCAAkC,eAAE,MAAM,iBAAuB;AAKvE,IAAM,gCAAgC,eAAE,OAAO;AAAA,EACpD,SAAS;AAAA,EACT,SAAS,eAAE,OAAO;AAAA,EAClB,MAAM,eAAE,OAAO;AAAA,EACf,eAAe,eAAE,OAAO;AAAA,EACxB,iBAAiB,eAAE,OAAO,eAAE,OAAO,GAAG,qBAAqB,EAAE;AAAA,IAC3D,CAAC,SAAS;AACR,YAAM,OAAO,OAAO,KAAK,IAAI;AAC7B,aACE,KAAK,WAAW,KAChB,wBAAwB;AAAA,QACtB,KAAK,CAAC;AAAA,MACR;AAAA,IAEJ;AAAA,IACA;AAAA,MACE,SACE;AAAA,IACJ;AAAA,EACF;AACF,CAAC;AAKM,IAAM,mCAAmC,eAAE,OAAO;AAAA,EACvD,UAAU,eAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,SAAS;AAAA,EACT,SAAS,eAAE,OAAO;AAAA,EAClB,MAAM;AAAA,EACN,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,qBAAqB;AACvB,CAAC;AAKM,IAAM,oCAAoC,eAAE,OAAO;AAAA,EACxD,eAAe;AACjB,CAAC;AAKM,IAAM,qCAAqC,eAAE,OAAO;AAAA,EACzD,SAAS;AAAA,EACT,SAAS,eAAE,OAAO;AAAA,EAClB,cAAc,eAAE,OAAO;AAAA,IACrB,eAAe;AAAA,EACjB,CAAC;AAAA,EACD,uBAAuB;AACzB,CAAC;AAKM,IAAM,sCAAsC,eAAE,QAAQ;AAKtD,IAAM,kCAAkC,eAAE,OAAO;AAAA,EACtD,SAAS;AAAA,EACT,eAAe;AAAA,EACf,SAAS,eAAE,OAAO;AACpB,CAAC;AAKM,IAAM,mCAAmC,eAAE,OAAO;AAAA,EACvD,QAAQ;AAAA,EACR,iBAAiB,eAAE,IAAI;AAAA,EACvB,YAAY,eAAE,OAAO,EAAE,QAAQ;AAAA,EAC/B,MAAM;AAAA,EACN,eAAe;AAAA,EACf,UAAU,eAAE,OAAO,EAAE,QAAQ;AAAA,EAC7B,eAAe,eAAE,OAAO,EAAE,IAAI;AAAA,EAC9B,kBAAkB,eAAE,OAAO,EAAE,QAAQ;AACvC,CAAC;AAKM,IAAM,mCAAmC,eAAE,OAAO;AAAA,EACvD,SAAS,eAAE,OAAO;AAAA,EAClB,MAAM,eAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,SAAS,eAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAKM,IAAM,oCAAoC,eAAE;AAAA,EACjD;AACF;;;AC1RA,IAAAC,eAAkB;AAEX,IAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,MAAM;AACR;AAGO,IAAM,wBAAwB;AAAA,EACnC,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAClB;AAEA,IAAM,0BAA0B,eAAE,OAAO;AAAA,EACvC,aAAa,eAAE,OAAO,EAAE,SAAS;AAAA,EACjC,cAAc,eAAE,OAAO,EAAE,SAAS;AAAA,EAClC,SAAS,eAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,WAAW,eAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,eAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,wBAAwB,eAAE,OAAO,EAAE,SAAS;AAC9C,CAAC;AAED,IAAM,qBAAqB,eAAE,OAAO;AAAA,EAClC,aAAa,eAAE,OAAO;AAAA,EACtB,cAAc,eAAE,OAAO,EAAE,SAAS;AACpC,CAAC;AAED,IAAM,sBAAsB,eAAE,OAAO;AAAA,EACnC,UAAU,eAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,cAAc,eAAE,OAAO,EAAE,SAAS;AAAA,EAClC,QAAQ,mBAAmB,SAAS;AACtC,CAAC;AAED,IAAM,uBAAuB,eAAE,OAAO;AAAA,EACpC,QAAQ,eAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,WAAW,eAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,OAAO,eAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,cAAc,eAAE,OAAO,EAAE,SAAS;AACpC,CAAC;AAED,IAAM,2BAA2B,eAAE,OAAO;AAAA,EACxC,sBAAsB,eAAE,OAAO;AAAA,EAC/B,SAAS,eAAE,OAAO;AAAA,EAClB,OAAO,eAAE,OAAO;AAAA,EAChB,UAAU,eAAE,OAAO;AAAA,EACnB,gBAAgB,eAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAED,IAAM,qBAAqB,eAAE,OAAO;AAAA,EAClC,WAAW,eAAE,OAAO;AAAA,EACpB,MAAM,eAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAM,eAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,SAAS,eAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,mBAAmB,eAAE,OAAO,EAAE,SAAS;AAAA,EACvC,oBAAoB,yBAAyB,SAAS;AACxD,CAAC;AAED,IAAM,wBAAwB,eAAE,OAAO;AAAA,EACrC,aAAa,eAAE,OAAO;AAAA,EACtB,QAAQ,eAAE,OAAO;AAAA,EACjB,eAAe,eAAE,OAAO,EAAE,SAAS;AAAA,EACnC,iBAAiB,eAAE,OAAO,EAAE,SAAS;AAAA,EACrC,UAAU,eAAE,MAAM,kBAAkB;AACtC,CAAC;AAED,IAAM,yBAAyB,eAAE,OAAO;AAAA,EACtC,YAAY,eAAE,OAAO;AAAA,EACrB,WAAW,eAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,SAAS,eAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,SAAS,eAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,gBAAgB,eAAE,MAAM,eAAE,OAAO,CAAC,EAAE,SAAS;AAC/C,CAAC;AAED,IAAM,oBAAoB,eAAE,OAAO;AAAA,EACjC,OAAO,eAAE,MAAM,qBAAqB,EAAE,SAAS;AAAA,EAC/C,QAAQ,eAAE,MAAM,sBAAsB,EAAE,SAAS;AACnD,CAAC;AAEM,IAAM,wBAAwB,eAAE,KAAK,qBAAqB;AAG1D,IAAM,iCAAiC,eAAE;AAAA,EAC9C;AAAA,EACA;AAAA,IACE,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,UAAU;AAAA,MACrD,SAAS;AAAA,IACX,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,IAAI;AAAA,MAC/C,SAAS;AAAA,IACX,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,IAAI;AAAA,MAC/C,SAAS,eAAE,QAAQ;AAAA,IACrB,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,MAAM;AAAA,MACjD,SAAS;AAAA,IACX,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,IAAI;AAAA,MAC/C,SAAS;AAAA,IACX,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,IAAI;AAAA,MAC/C,SAAS,eAAE,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACF;AAKO,IAAM,8BAA8B,eAAE,OAAO;AAAA,EAClD,iBAAiB;AACnB,CAAC;AAGM,IAAM,4BAA4B,eAAE;AAAA,EACzC;AAAA,EACA;AAAA,IACE,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,UAAU;AAAA,MACrD,SAAS;AAAA,IACX,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,IAAI;AAAA,MAC/C,SAAS;AAAA,IACX,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,IAAI;AAAA,MAC/C,SAAS,eAAE,QAAQ;AAAA,IACrB,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,MAAM;AAAA,MACjD,SAAS;AAAA,IACX,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,IAAI;AAAA,MAC/C,SAAS;AAAA,IACX,CAAC;AAAA,IACD,eAAE,OAAO;AAAA,MACP,iBAAiB,eAAE,QAAQ,gBAAgB,IAAI;AAAA,MAC/C,SAAS,eAAE,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACF;;;AC3JA,IAAAC,eAAkB;AAEX,IAAM,0CAA0C,eAAE,OAAO;AAAA,EAC9D,mBAAmB,eAAE,OAAO;AAAA,EAC5B,WAAW,eAAE,OAAO;AACtB,CAAC;AAKM,IAAM,0CAA0C,eAAE,OAAO;AAAA,EAC9D,mBAAmB,eAAE,OAAO;AAC9B,CAAC;;;ACVD,IAAAC,eAAkB;AAQX,IAAM,iCAAiC,eAAE,KAAK,CAAC,QAAQ,IAAI,CAAC;AAE5D,IAAM,kCAAkC,eAAE,OAAO;AAAA,EACtD,WAAW;AAAA,EACX,UAAU,eACP,MAAM,eAAE,KAAK,CAAC,WAAW,cAAc,QAAQ,aAAa,OAAO,CAAC,CAAC,EACrE,SAAS;AAAA,EACZ,SAAS,aAAa,SAAS;AAAA,EAC/B,MAAM,aAAa,SAAS;AAC9B,CAAC;AAKM,IAAM,6BAA6B,eAAE,KAAK;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,uBAAuB,eAAE,OAAO;AAAA,EAC3C,IAAI,eAAE,OAAO;AAAA,EACb,YAAY,eAAE,OAAO;AAAA,EACrB,UAAU,eAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,cAAc,gBAAgB,SAAS;AAAA,EACvC,wBAAwB;AAAA,EACxB,cAAc,eAAE,OAAO;AAAA,IACrB,KAAK,eAAE,MAAM,eAAE,OAAO,CAAC;AAAA,IACvB,eAAe,eAAE,MAAM,eAAE,OAAO,CAAC;AAAA,EACnC,CAAC;AAAA,EACD,UAAU,eAAE,OAAO,eAAE,OAAO,GAAG,eAAE,QAAQ,CAAC;AAAA,EAC1C,QAAQ;AAAA,EACR,WAAW,eAAE,OAAO;AAAA,EACpB,WAAW,eAAE,OAAO;AACtB,CAAC;AAEM,IAAM,mCAAmC,eAAE,MAAM,oBAAoB;AAKrE,IAAM,kCAAkC,eAAE,OAAO;AAAA,EACtD,SAAS,eAAE,OAAO;AAAA,EAClB,MAAM;AAAA,EACN,eAAe;AAAA,EACf,iBAAiB,eAAE,OAAO,eAAE,OAAO,GAAG,eAAE,QAAQ,CAAC;AAAA,EACjD,oBAAoB,eAAE,QAAQ,EAAE,SAAS;AAC3C,CAAC;AAEM,IAAM,mCAAmC,eAAE,OAAO;AAAA,EACvD,cAAc,gBAAgB,QAAQ;AAAA,EACtC,wBAAwB,eAAE,MAAM,+BAA+B;AAAA,EAC/D,cAAc,eAAE,MAAM,+BAA+B;AAAA,EACrD,UAAU,eAAE,OAAO,eAAE,OAAO,GAAG,eAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC;AAKM,IAAMC,qBAAoB,eAAE,OAAO;AAAA,EACxC,OAAO;AAAA,EACP,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,sBAAsB;AACxB,CAAC;AAED,IAAM,iCAAiC,eAAE,OAAO;AAAA,EAC9C,SAAS;AAAA,EACT,SAAS,eAAE,OAAO;AAAA,EAClB,MAAM;AAAA,EACN,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,WAAW;AACb,CAAC;AAEM,IAAM,oCAAoC,eAAE,OAAO;AAAA,EACxD,WAAW,eAAE,OAAO;AAAA,EACpB,UAAU,eAAE,OAAO;AAAA,EACnB,UAAU,eAAE,OAAO;AAAA,EACnB,wBAAwB;AAAA,EACxB,wBAAwB,eAAE,MAAM,8BAA8B;AAAA,EAC9D,cAAc,eAAE,MAAM,8BAA8B;AACtD,CAAC;AAKM,IAAM,8BAA8B,eAAE,OAAO;AAAA,EAClD,UAAU,eAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,SAAS;AAAA,EACT,SAAS,eAAE,OAAO;AAAA,EAClB,MAAM;AAAA,EACN,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,qBAAqB;AACvB,CAAC;AAEM,IAAM,iCAAiC,eAAE,OAAO;AAAA,EACrD,WAAW,eAAE,OAAO;AAAA,EACpB,qBAAqB,eAAE,OAAO;AAAA,EAC9B,wBAAwB,eAAE,MAAM,2BAA2B;AAAA,EAC3D,cAAc,eAAE,MAAM,2BAA2B;AACnD,CAAC;AAKM,IAAM,qCAAqC,eAAE,OAAO;AAAA,EACzD,WAAW,eAAE,OAAO;AACtB,CAAC;AAKM,IAAM,sCAAsC,eAAE,OAAO;AAAA,EAC1D,WAAW,eAAE,OAAO;AAAA,EACpB,wBAAwB;AAAA,EACxB,mBAAmB,eAAE,OAAO,EAAE,SAAS;AAAA,EACvC,QAAQ,eAAE,KAAK,CAAC,WAAW,cAAc,QAAQ,aAAa,OAAO,CAAC;AAAA,EACtE,UAAU,eAAE,OAAO,eAAE,OAAO,GAAG,eAAE,QAAQ,CAAC;AAC5C,CAAC;;;ACrID,IAAAC,eAAkB;AAQX,IAAM,kCAAkC,eAAE,OAAO;AAAA,EACtD,SAAS;AAAA,EACT,SAAS,eAAE,OAAO;AAAA,EAClB,gBAAgB,eAAE,MAAM,eAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC7C,MAAM,eAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,IAAI,eAAE,OAAO,EAAE,SAAS;AAAA,EACxB,MAAM,eAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,SAAS,eAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,MAAM,eAAE,KAAK,UAAU,EAAE,SAAS;AACpC,CAAC;AAKM,IAAM,mCAAmC,eAAE,MAAM,iBAAiB;;;ACXlE,IAAM,aAAa;;;ACI1B,IAAM,SAAN,MAAa;AAAA,EAAb;AACE,wBAAQ,iBAAgB,eAAe;AAAA;AAAA,EAEvC,MAAM,SAAiB,SAA+B;AACpD,QAAI,KAAK,eAAe;AACtB,WAAK,IAAI,SAAS,SAAS,OAAO;AAAA,IACpC;AAAA,EACF;AAAA,EAEA,KAAK,SAAiB,SAA+B;AACnD,SAAK,IAAI,QAAQ,SAAS,OAAO;AAAA,EACnC;AAAA,EAEA,KAAK,SAAiB,SAA+B;AACnD,SAAK,IAAI,QAAQ,SAAS,OAAO;AAAA,EACnC;AAAA,EAEA,MAAM,SAAiB,SAA+B;AACpD,SAAK,IAAI,SAAS,SAAS,OAAO;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,OAAgB,UAA2B,CAAC,GAAS;AAC5D,UAAM,EAAE,SAAS,WAAW,SAAS,IAAI;AACzC,UAAM,SAAS,KAAK,YAAY,SAAS,SAAS;AAGlD,QAAI,UAAU;AACd,QAAI,iBAAiB,OAAO;AAC1B,gBAAU,MAAM;AAAA,IAClB,WAAW,OAAO,UAAU,UAAU;AACpC,gBAAU;AAAA,IACZ,WAAW,SAAS,OAAO,UAAU,YAAY,aAAa,OAAO;AACnE,gBAAU,OAAQ,MAA+B,OAAO;AAAA,IAC1D;AAEA,YAAQ,MAAM,SAAS,GAAG,MAAM,IAAI,OAAO,KAAK,OAAO;AAGvD,QAAI,YAAY,OAAO,KAAK,QAAQ,EAAE,SAAS,GAAG;AAChD,cAAQ,MAAM,YAAY,QAAQ;AAAA,IACpC;AAGA,QAAI,iBAAiB,SAAS,MAAM,OAAO;AACzC,cAAQ,MAAM,UAAU,MAAM,KAAK;AAAA,IACrC,OAAO;AACL,cAAQ,MAAM,kBAAkB,KAAK;AAAA,IACvC;AAAA,EACF;AAAA,EAEQ,YAAY,SAAkB,WAA4B;AAChE,UAAM,QAAkB,CAAC;AACzB,QAAI,QAAS,OAAM,KAAK,IAAI,OAAO,GAAG;AACtC,QAAI,UAAW,OAAM,KAAK,IAAI,SAAS,GAAG;AAC1C,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;AAAA,EAEQ,IAAI,OAAiB,SAAiB,SAA+B;AAC3E,UAAM,SAAS,SAAS,UAAU,IAAI,QAAQ,OAAO,MAAM;AAC3D,UAAM,cAAc,GAAG,MAAM,IAAI,OAAO,GAAG,KAAK;AAEhD,YAAQ,OAAO;AAAA,MACb,KAAK;AAAA,MACL,KAAK;AACH,gBAAQ,IAAI,WAAW;AACvB;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,WAAW;AACxB;AAAA,MACF,KAAK;AACH,gBAAQ,MAAM,WAAW;AACzB;AAAA,IACJ;AAEA,QAAI,SAAS,MAAM;AACjB,cAAQ,IAAI,QAAQ,MAAM,EAAE,OAAO,KAAK,CAAC;AAAA,IAC3C;AAAA,EACF;AACF;AAEO,IAAM,SAAS,IAAI,OAAO;;;ACjGjC,IAAAC,eAAkB;AAqFX,IAAM,cAAc,CAMzB,QACA,WACoB;AACpB,QAAM,cAAc,OAAO,UAAU,MAAM;AAC3C,MAAI,CAAC,YAAY,SAAS;AACxB,UAAM,IAAI;AAAA,MACR,qCAAqC,KAAK,UAAU,YAAY,KAAK,CAAC;AAAA,IACxE;AAAA,EACF;AAEA,SAAO,YAAY;AACrB;;;AC3FO,SAAS,iBACd,OACA,mBACS;AACT,SAAO,MAAM,UAAU;AACzB;AAUO,SAAS,wBACd,SAIA;AACA,QAAM,EAAE,MAAM,SAAS,GAAG,WAAW,IAAI;AACzC,SAAO;AAAA,IACL,kBAAkB,EAAE,MAAM,QAAQ;AAAA,IAClC;AAAA,EACF;AACF;AAOO,SAAS,uBAAmD;AACjE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF;;;ACzBO,IAAM,cAAN,MAAkB;AAAA,EACvB,YAA+B,UAAyB;AAAzB;AAAA,EAA0B;AAAA,EAEzD,MAAgB,YAId;AAAA,IACA;AAAA,IACA,SAAS,WAAW;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GAEE;AACA,QAAI;AACF,YAAM,MAAM,MAAM,KAAK,SAAS,QAAQ,EAAE,KAAK,QAAQ,MAAM,GAAG,OAAO,CAAC;AAExE,UAAI,oBAAoB,CAAC,iBAAiB,IAAI,IAAI,GAAG;AACnD,cAAM,IAAI,aAAa,2BAA2B,kBAAkB;AAAA,MACtE;AAEA,YAAM,aAAa,SACd,YAAY,IAAI,MAAM,MAAM,IAC5B,IAAI;AAET,aAAO,EAAE,MAAM,WAAW;AAAA,IAC5B,SAAS,OAAO;AACd,UAAI,iBAAiB,cAAc;AACjC,cAAM;AAAA,MACR;AAEA,UAAI,eAAe;AACnB,UAAI;AAEJ,UAAI,SAAS,OAAO,UAAU,YAAY,cAAc,OAAO;AAC7D,cAAM,aAAa;AACnB,cAAM,eAAe,WAAW,UAAU;AAE1C,uBACE,cAAc,gBAAgB,cAAc,WAAW;AACzD,oBAAY,cAAc;AAAA,MAC5B,WAAW,iBAAiB,OAAO;AACjC,uBAAe,MAAM;AAAA,MACvB;AAEA,YAAM,IAAI,aAAa,cAAc,aAAa,gBAAgB;AAAA,IACpE;AAAA,EACF;AAAA,EAEA,MAAgB,qBAId;AAAA,IACA;AAAA,IACA,SAAS,WAAW;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GAEE;AACA,UAAM,EAAE,kBAAkB,WAAW,IAAI;AAAA,MACvC,QAAS,CAAC;AAAA,IACZ;AAEA,UAAM,EAAE,MAAM,QAAQ,IAAI;AAAA,MACxB,GAAG,qBAAqB;AAAA,MACxB,GAAG;AAAA,IACL;AAEA,UAAM,cAAc,EAAE,GAAG,YAAY,MAAM,QAAQ;AAEnD,UAAM,WAAW,MAAM,KAAK,YAI1B;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,CAAC;AAGD,UAAM,UAAU,MAAM,QAAQ,SAAS,IAAI,IACvC,iBAAiB,SAAS,MAAM,OAAO,IACvC;AAEJ,WAAO;AAAA,MACL,MAAM,SAAS;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF;;;AClHO,IAAM,iBAAN,cAA6B,YAAY;AAAA,EAC9C,MAAa,oBACX,aACoD;AACpD,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,iBACX,aACoD;AACpD,UAAM,KAAK,YAA8C;AAAA,MACvD,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,IACR,CAAC;AAED,WAAO;AAAA,MACL,MAAM,EAAE,SAAS,MAAM,SAAS,qBAAqB;AAAA,IACvD;AAAA,EACF;AACF;;;ACpCA,IAAAC,eAAkB;AAMlB,IAAM,yBAAyB,CAC7B,SACmC;AACnC,MAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AACxB,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,eAA+C,CAAC;AAEtD,OAAK,QAAQ,CAAC,WAAW;AACvB,UAAM,SAAS,qBAAqB,UAAU,MAAM;AAEpD,QAAI,OAAO,SAAS;AAClB,mBAAa,KAAK,OAAO,IAAI;AAAA,IAC/B;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,IAAM,0BAA0B,eAAE,QAAQ,EAAE,UAAU,sBAAsB;AAErE,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,MAAa,uBACX,aACmE;AACnE,WAAO,KAAK,qBAGV;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACF;;;AC3BO,IAAM,cAAN,cAA0B,YAAY;AAAA,EAC3C,MAAa,MACX,aAC6C;AAC7C,UAAM,MAAM,MAAM,KAAK,YAAiD;AAAA,MACtE,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,oBACX,aACuD;AACvD,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,aACX,aACgD;AAChD,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,KAAqC;AAChD,UAAM,MAAM,MAAM,KAAK,YAA6B;AAAA,MAClD,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,QAAQ;AAAA,IACV,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,kBACX,aACmC;AACnC,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM,EAAE,YAAY;AAAA,IACtB,CAAC;AACD,WAAO;AAAA,EACT;AACF;;;ACrEO,IAAM,gBAAN,cAA4B,YAAY;AAAA,EAC7C,MAAa,mBACX,aACsD;AACtD,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK,4BAA4B,YAAY,OAAO;AAAA,MACpD,QAAQ,WAAW;AAAA,MACnB,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,gBAAgB;AAAA,IAC3B;AAAA,EACF,GAEE;AACA,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK,kBAAkB,OAAO;AAAA,MAC9B,QAAQ,WAAW;AAAA,MACnB,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,kBAEX;AACA,UAAM,MAAM,MAAM,KAAK,YAA8C;AAAA,MACnE,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,gCACX,aACmE;AACnE,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK,kDAAkD,YAAY,OAAO;AAAA,MAC1E,QAAQ,WAAW;AAAA,MACnB,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AACF;;;AChEO,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,MAAa,OACX,SACmC;AACnC,UAAM,YAAY,wBAAwB,MAAM,OAAO;AAEvD,WAAO,KAAK,YAAwC;AAAA,MAClD,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,KACX,SACwD;AACxD,UAAM,YAAY,yBAAyB,MAAM,OAAO;AAExD,WAAO,KAAK,qBAA8D;AAAA,MACxE,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACF;;;ACrCO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,MAAM,gBAAgB,oBAA4B;AAChD,WAAO,KAAK,YAAY;AAAA,MACtB,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM,EAAE,mBAAmB;AAAA,IAC7B,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,iBAAiB;AACrB,WAAO,KAAK,YAAY;AAAA,MACtB,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,IACrB,CAAC;AAAA,EACH;AACF;;;ACUO,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAClD,MAAa,IACX,aAC8D;AAC9D,WAAO,KAAK,qBAGV;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AAAA,EAGA,MAAa,MACX,aAC4C;AAC5C,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,SACX,aACuD;AACvD,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,WACX,aACyD;AACzD,UAAM,MAAM,MAAM,KAAK,YAAmD;AAAA,MACxE,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,QACX,aACsD;AACtD,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,MACX,aACgE;AAChE,WAAO,KAAK,qBAGV;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACF;;;AC3GO,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAClD,MAAa,KACX,aACiD;AACjD,WAAO,KAAK,qBAGV;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACF;;;ACFO,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,MAAa,wBACX,SAC6C;AAC7C,WAAO,KAAK,qBAAoD;AAAA,MAC9D,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,wBACX,SAC6C;AAC7C,WAAO,KAAK,qBAAoD;AAAA,MAC9D,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,oBACX,aACuD;AACvD,WAAO,KAAK,YAGV;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,kBACX,aACmC;AACnC,WAAO,KAAK,YAA+C;AAAA,MACzD,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,kBAAkB,MAAM;AAAA,IAC1B,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,yBACX,aACyD;AACzD,WAAO,KAAK,YAGV;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,mBACX,SAC+D;AAC/D,WAAO,KAAK,qBAGV;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACF;;;AC3FA,IAAAC,gBAAkB;AAMlB,SAAS,+BACP,iBACqB;AACrB,UAAQ,iBAAiB;AAAA,IACvB,KAAK,gBAAgB;AACnB,aAAO,EAAE,iBAAiB,gBAAgB,YAAY,SAAS,CAAC,EAAE;AAAA,IACpE,KAAK,gBAAgB;AACnB,aAAO,EAAE,iBAAiB,gBAAgB,MAAM,SAAS,CAAC,EAAE;AAAA,IAC9D,KAAK,gBAAgB;AACnB,aAAO,EAAE,iBAAiB,gBAAgB,MAAM,SAAS,CAAC,EAAE;AAAA,IAC9D,KAAK,gBAAgB;AACnB,aAAO,EAAE,iBAAiB,gBAAgB,QAAQ,SAAS,CAAC,EAAE;AAAA,IAChE,KAAK,gBAAgB;AACnB,aAAO,EAAE,iBAAiB,gBAAgB,MAAM,SAAS,CAAC,EAAE;AAAA,IAC9D,KAAK,gBAAgB;AACnB,aAAO,EAAE,iBAAiB,gBAAgB,MAAM,SAAS,CAAC,EAAE;AAAA,IAC9D;AACE,aAAO,EAAE,iBAAiB,gBAAgB,MAAM,SAAS,CAAC,EAAE;AAAA,EAChE;AACF;AAEO,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAClD,MAAa,OACX,SAC+C;AAC/C,WAAO,KAAK,YAA2D;AAAA,MACrE,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,IACX,SAC+C;AAC/C,QAAI;AACF,aAAO,MAAM,KAAK;AAAA,QAChB;AAAA,UACE,KAAK;AAAA,UACL,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,UAAI,cAAAC,QAAM,aAAa,KAAK,KAAK,MAAM,UAAU,WAAW,KAAK;AAC/D,cAAM,kBAAkB;AAAA,UACtB,QAAQ;AAAA,QACV;AACA,eAAO,EAAE,MAAM,gBAAgB;AAAA,MACjC;AAEA,YAAM;AAAA,IACR;AAAA,EACF;AACF;;;ACxDO,IAAM,0BAAN,cAAsC,YAAY;AAAA,EACvD,MAAa,wBAEX;AACA,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,qBAEX;AACA,UAAM,MAAM,MAAM,KAAK,YAGrB;AAAA,MACA,KAAK;AAAA,MACL,QAAQ,WAAW;AAAA,MACnB,QAAQ;AAAA,IACV,CAAC;AAED,WAAO;AAAA,EACT;AACF;;;ACCO,IAAM,0BAAN,cAAsC,YAAY;AAAA,EAAlD;AAAA;AACL,wBAAiB,0BACf;AACF,wBAAiB,gBAAe;AAChC,wBAAiB,kBAAiB,KAAK,KAAK;AAC5C;AAAA,wBAAiB,uBAAsB,CAAC,GAAG,IAAI,OAAO,IAAI;AAE1D;AAAA,wBAAQ,kBAA0C;AAClD,wBAAQ,aAAoB;AAAA;AAAA;AAAA;AAAA;AAAA,EAK5B,MAAa,kBAAkB;AAAA,IAC7B;AAAA,IACA,QAAQ;AAAA,EACV,GAAkE;AAChE,QAAI;AACF,YAAM,YAAY,MAAM,KAAK,eAAe;AAG5C,UAAI,CAAC,KAAK,oBAAoB,SAAS,OAAO,GAAG;AAC/C,eAAO;AAAA,UACL,MAAM;AAAA,YACJ,QAAQ,CAAC;AAAA,YACT,QAAQ;AAAA,YACR,WAAW,UAAU;AAAA,UACvB;AAAA,QACF;AAAA,MACF;AAGA,YAAM,cAAc,UAAU,OAAO;AAAA,QACnC,CAAC,UAAU,MAAM,YAAY;AAAA,MAC/B;AAGA,YAAM,iBAAiB,YAAY,OAAO,CAAC,UAAU;AAEnD,cAAM,qBAAqB;AAAA,UACzB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAEA,cAAM,OAAO,MAAM,MAAM,YAAY,KAAK;AAC1C,cAAM,SAAS,MAAM,QAAQ,YAAY,KAAK;AAG9C,YACE,mBAAmB;AAAA,UACjB,CAAC,YAAY,QAAQ,KAAK,IAAI,KAAK,QAAQ,KAAK,MAAM;AAAA,QACxD,GACA;AACA,iBAAO;AAAA,QACT;AAGA,YAAI,KAAK,SAAS,KAAK,KAAK,SAAS,GAAI,QAAO;AAChD,YAAI,OAAO,SAAS,KAAK,OAAO,SAAS,GAAI,QAAO;AAGpD,YAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,UAAU,CAAC,MAAM,QAAS,QAAO;AAE3D,eAAO;AAAA,MACT,CAAC;AAID,YAAM,gBAAgB,eAAe,MAAM,GAAG,KAAK;AAEnD,aAAO;AAAA,QACL,MAAM;AAAA,UACJ,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,WAAW,UAAU;AAAA,QACvB;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,YAAM,IAAI,MAAM,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,IAC1E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,qBAAyD;AACpE,QAAI;AACF,YAAM,YAAY,MAAM,KAAK,eAAe;AAE5C,YAAM,WAAW,MAAM;AAAA,QACrB,IAAI,IAAI,UAAU,OAAO,IAAI,CAAC,UAAU,MAAM,OAAO,CAAC;AAAA,MACxD,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAEtB,aAAO;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF,SAAS,OAAO;AACd,YAAM,IAAI,MAAM,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,IAC1E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,UACX,SACA,OAC+C;AAC/C,QAAI;AACF,YAAM,YAAY,MAAM,KAAK,eAAe;AAE5C,YAAM,QAAQ,UAAU,OAAO;AAAA,QAC7B,CAAC,MACC,EAAE,YAAY,YACb,EAAE,QAAQ,YAAY,MAAM,MAAM,YAAY,KAC7C,EAAE,OAAO,YAAY,MAAM,MAAM,YAAY,KAC7C,EAAE,KAAK,YAAY,EAAE,SAAS,MAAM,YAAY,CAAC;AAAA,MACvD;AAEA,aAAO;AAAA,QACL,MAAM,SAAS;AAAA,MACjB;AAAA,IACF,SAAS,OAAO;AACd,YAAM,IAAI,MAAM,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,IAC1E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,cACX,SACA,cACkD;AAClD,QAAI;AACF,YAAM,YAAY,MAAM,KAAK,eAAe;AAE5C,YAAM,QAAQ,UAAU,OAAO;AAAA,QAC7B,CAAC,MACC,EAAE,YAAY,WACd,EAAE,QAAQ,YAAY,MAAM,aAAa,YAAY;AAAA,MACzD;AAEA,UAAI,CAAC,SAAS,CAAC,MAAM,YAAY,YAAY;AAC3C,eAAO;AAAA,UACL,MAAM,CAAC;AAAA,QACT;AAAA,MACF;AAEA,YAAM,aAAqC,CAAC;AAC5C,iBAAW,CAAC,eAAe,IAAI,KAAK,OAAO;AAAA,QACzC,MAAM,WAAW;AAAA,MACnB,GAAG;AACD,mBAAW,aAAa,IAAI,KAAK;AAAA,MACnC;AAEA,aAAO;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF,SAAS,OAAO;AACd,YAAM,IAAI,MAAM,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,IAC1E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,iBAA4C;AACxD,UAAM,MAAM,KAAK,IAAI;AAGrB,QAAI,KAAK,kBAAkB,MAAM,KAAK,YAAY,KAAK,gBAAgB;AACrE,aAAO,KAAK;AAAA,IACd;AAEA,QAAI;AAEF,YAAM,WAAW,MAAM,MAAM,KAAK,wBAAwB;AAAA,QACxD,SAAS;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,MACF,CAAC;AAED,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,sBAAsB,SAAS,MAAM,EAAE;AAAA,MACzD;AAEA,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,WAAK,iBAAiB;AACtB,WAAK,YAAY;AACjB,aAAO;AAAA,IACT,SAAS,OAAO;AACd,aAAO,SAAS,OAAO;AAAA,QACrB,SAAS,KAAK,eAAe;AAAA,MAC/B,CAAC;AAED,UAAI;AAEF,cAAM,WAAW,MAAM,MAAM,KAAK,cAAc;AAAA,UAC9C,SAAS;AAAA,YACP,QAAQ;AAAA,UACV;AAAA,QACF,CAAC;AAED,YAAI,CAAC,SAAS,IAAI;AAChB,gBAAM,IAAI,MAAM,0BAA0B,SAAS,MAAM,EAAE;AAAA,QAC7D;AAEA,cAAM,OAAO,MAAM,SAAS,KAAK;AACjC,aAAK,iBAAiB;AACtB,aAAK,YAAY;AACjB,eAAO;AAAA,MACT,SAAS,eAAe;AACtB,eAAO,SAAS,eAAe;AAAA,UAC7B,SAAS,KAAK,eAAe;AAAA,QAC/B,CAAC;AACD,cAAM,IAAI,MAAM,oCAAoC;AAAA,MACtD;AAAA,IACF;AAAA,EACF;AACF;;;ACjRO,IAAM,YAAN,MAAgB;AAAA,EAarB,YAAY,MAAsB;AAZlC,wBAAO;AACP,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAGd,UAAM,WAAW,eAAe,IAAI,IAChC,KAAK,WACL,eAAe,IAAI;AAEvB,SAAK,UAAU,IAAI,eAAe,QAAQ;AAC1C,SAAK,WAAW,IAAI,gBAAgB,QAAQ;AAC5C,SAAK,OAAO,IAAI,YAAY,QAAQ;AACpC,SAAK,SAAS,IAAI,cAAc,QAAQ;AACxC,SAAK,WAAW,IAAI,gBAAgB,QAAQ;AAC5C,SAAK,YAAY,IAAI,iBAAiB,QAAQ;AAC9C,SAAK,cAAc,IAAI,mBAAmB,QAAQ;AAClD,SAAK,cAAc,IAAI,mBAAmB,QAAQ;AAClD,SAAK,cAAc,IAAI,mBAAmB,QAAQ;AAClD,SAAK,mBAAmB,IAAI,wBAAwB,QAAQ;AAC5D,SAAK,WAAW,IAAI,gBAAgB,QAAQ;AAAA,EAC9C;AACF;AAEO,IAAM,kBAAkB,IAC1B,WACW;AACd,SAAO,IAAI,UAAU,GAAG,MAAM;AAChC;",
4
+ "sourcesContent": ["export * from \"./api\";\nexport * from \"./core\";\nexport * from \"./services\";\nexport * from \"./schemas\";\nexport * from \"./utils\";\n\n// Re-export commonly used error handling functions\nexport {\n getUserFriendlyErrorMessage,\n isTechnicalError,\n isUserRejectionError,\n getErrorMessage,\n getErrorMessageWithCode,\n isUserAddressableError,\n} from \"./core/error\";\n", "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\u2011Facing 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\u2011intended 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\u2011Flow.\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\u2011Addressable.\n * Why: 1000\u20131999 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\u2011Level.\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/**\n * Wraps a successful service response payload.\n */\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/**\n * Standard pagination parameters accepted by list endpoints.\n */\nexport interface PaginatedRequest {\n page?: number;\n perPage?: number;\n}\n\n/**\n * Error thrown when a request fails or a response is invalid.\n */\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/**\n * Allowed HTTP methods for requests.\n */\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<TRequest, 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 { hexStringSchema, numberSchema } from \"@otim/utils/schemas\";\n\nexport const actionNameSchema = z.enum([\n \"refuel\",\n \"transfer\",\n \"refuelERC20\",\n \"transferERC20\",\n \"uniswapV3ExactInput\",\n \"deactivateInstruction\",\n \"sweepCCTP\",\n \"transferCCTP\",\n \"sweep\",\n \"sweepERC20\",\n \"sweepUniswapV3\",\n \"depositERC4626\",\n \"sweepDepositERC4626\",\n \"withdrawERC4626\",\n \"sweepWithdrawERC4626\",\n \"callOnce\",\n]);\nexport type ActionName = z.infer<typeof actionNameSchema>;\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 { dateStandardSchema, hexStringSchema, numberSchema } from \"./misc\";\n\nexport const instructionIdSchema = hexStringSchema;\nexport type InstructionId = z.infer<typeof instructionIdSchema>;\n\nexport const InstructionState = {\n PendingActivation: \"PendingActivation\",\n Active: \"Active\",\n PendingDeactivation: \"PendingDeactivation\",\n Deactivated: \"Deactivated\",\n Errored: \"Errored\",\n Completed: \"Completed\",\n UserNotDelegated: \"UserNotDelegated\",\n InFlight: \"InFlight\",\n NotifyUser: \"NotifyUser\",\n} as const;\nexport type InstructionState =\n (typeof InstructionState)[keyof typeof InstructionState];\nexport const instructionStateValues = Object.values(InstructionState) as [\n InstructionState,\n ...InstructionState[],\n];\nexport const instructionStateSchema = z.enum(instructionStateValues);\n\nexport const InstructionAction = {\n RefuelERC20: \"refuelERC20\",\n Refuel: \"refuel\",\n Transfer: \"transfer\",\n TransferERC20: \"transferERC20\",\n UniswapV3ExactInput: \"uniswapV3ExactInput\",\n Sweep: \"sweep\",\n SweepERC20: \"sweepERC20\",\n SweepCCTP: \"sweepCCTP\",\n SweepUniswapV3: \"sweepUniswapV3\",\n SweepDepositAccount: \"sweepDepositAccount\",\n SweepDepositAccountERC20: \"sweepDepositAccountERC20\",\n DeactivateInstruction: \"deactivateInstruction\",\n SweepSkipCCTPDepositAccount: \"sweepSkipCCTPDepositAccount\",\n} as const;\nexport type InstructionAction =\n (typeof InstructionAction)[keyof typeof InstructionAction];\nexport const instructionActionValues = Object.values(InstructionAction) as [\n InstructionAction,\n ...InstructionAction[],\n];\nexport const instructionActionSchema = z.enum(instructionActionValues);\n\nexport const InstructionScheduleStartType = {\n Now: \"now\",\n DateTime: \"datetime\",\n} as const;\nexport type InstructionScheduleStartType =\n (typeof InstructionScheduleStartType)[keyof typeof InstructionScheduleStartType];\nexport const instructionScheduleStartValues = Object.values(\n InstructionScheduleStartType,\n) as [InstructionScheduleStartType, ...InstructionScheduleStartType[]];\nconst baseStartSchema = z.object({\n type: z.enum(instructionScheduleStartValues),\n});\nconst nowStartSchema = baseStartSchema.extend({\n type: z.literal(InstructionScheduleStartType.Now),\n});\nconst dateTimeStartSchema = baseStartSchema.extend({\n type: z.literal(InstructionScheduleStartType.DateTime),\n startDate: dateStandardSchema,\n startTime: z.string(),\n});\nexport const instructionScheduleStartSchema = z.discriminatedUnion(\"type\", [\n nowStartSchema,\n dateTimeStartSchema,\n]);\nexport type InstructionScheduleStart = z.infer<\n typeof instructionScheduleStartSchema\n>;\n\nexport const InstructionScheduleRepeatType = {\n UntilDeactivated: \"until-deactivated\",\n MaxExecutions: \"max-executions\",\n} as const;\nexport type InstructionScheduleRepeatType =\n (typeof InstructionScheduleRepeatType)[keyof typeof InstructionScheduleRepeatType];\nexport const instructionScheduleRepeatValues = Object.values(\n InstructionScheduleRepeatType,\n) as [InstructionScheduleRepeatType, ...InstructionScheduleRepeatType[]];\nconst baseRepeatSchema = z.object({});\nconst untilDeactivatedRepeatSchema = baseRepeatSchema.extend({\n type: z.literal(InstructionScheduleRepeatType.UntilDeactivated),\n});\nconst maxExecutionsRepeatSchema = baseRepeatSchema.extend({\n type: z.literal(InstructionScheduleRepeatType.MaxExecutions),\n maxExecutions: numberSchema,\n});\nexport const instructionScheduleRepeatSchema = z.discriminatedUnion(\"type\", [\n untilDeactivatedRepeatSchema,\n maxExecutionsRepeatSchema,\n]);\nexport type InstructionScheduleRepeat = z.infer<\n typeof instructionScheduleRepeatSchema\n>;\n\nexport const InstructionScheduleRetryType = {\n UntilDeactivated: \"until-deactivated\",\n TimeLimited: \"time-limited\",\n} as const;\nexport type InstructionScheduleRetryType =\n (typeof InstructionScheduleRetryType)[keyof typeof InstructionScheduleRetryType];\nexport const instructionScheduleRetryValues = Object.values(\n InstructionScheduleRetryType,\n) as [InstructionScheduleRetryType, ...InstructionScheduleRetryType[]];\nconst baseRetrySchema = z.object({});\nconst untilDeactivatedRetrySchema = baseRetrySchema.extend({\n type: z.literal(InstructionScheduleRetryType.UntilDeactivated),\n});\nconst timeLimitedRetrySchema = baseRetrySchema.extend({\n type: z.literal(InstructionScheduleRetryType.TimeLimited),\n retryCount: numberSchema,\n});\nexport const instructionScheduleRetrySchema = z.discriminatedUnion(\"type\", [\n untilDeactivatedRetrySchema,\n timeLimitedRetrySchema,\n]);\nexport type InstructionScheduleRetry = z.infer<\n typeof instructionScheduleRetrySchema\n>;\n\nexport const TimeUnit = {\n None: \"none\",\n Second: \"second\",\n Minute: \"minute\",\n Hour: \"hour\",\n Day: \"day\",\n Week: \"week\",\n Month: \"month\",\n} as const;\nexport type TimeUnit = (typeof TimeUnit)[keyof typeof TimeUnit];\nexport const timeUnitValues = Object.values(TimeUnit) as [\n TimeUnit,\n ...TimeUnit[],\n];\nexport const timeUnitSchema = z.enum(timeUnitValues);\n\nexport const instructionExecutionStateSchema = z.object({\n executionStatus: instructionStateSchema.optional(),\n executionCounter: z.number().int().optional(),\n lastExecuted: z.number().int().optional(),\n});\n\nexport const instructionSchema = z.object({\n instructionId: hexStringSchema,\n createdAt: z.number().optional(),\n startAt: z.string().nullish(),\n interval: z.number().nullish(),\n timeout: z.number().nullish(),\n maxExecutions: z.number().nullish(),\n executionState: instructionExecutionStateSchema.optional(),\n actionName: z.string().optional(),\n arguments: z.any(),\n nickname: z.string().nullish(),\n lastInstructedValue: z.string().optional(),\n lastErrorCode: z.number().nullish(),\n lastErrorMessage: z.string().nullish(),\n totalInstructedValue: z.string().optional(),\n instructedTokenAddress: hexStringSchema.nullish(),\n chainId: z.number().nullish(),\n chain: z.string().optional(),\n});\nexport type Instruction = z.infer<typeof instructionSchema>;\n\nexport const instructionsSchema = z.array(instructionSchema);\nexport type Instructions = z.infer<typeof instructionsSchema>;\n\nexport const instructionSummarySchema = z.object({\n instructionId: hexStringSchema,\n chainId: z.number().int(),\n executionCount: z.number().int(),\n onTimeCount: z.number().int(),\n lateCount: z.number().int(),\n wasActivatedDuring: z.boolean(),\n amount: z.number().default(0),\n instructedValue: z.string().nullish().default(\"0\"),\n instructedTokenAddress: z.string().nullish().default(null),\n});\nexport type InstructionSummary = z.infer<typeof instructionSummarySchema>;\n\nexport const instructionSummariesSchema = z.array(instructionSummarySchema);\nexport type InstructionSummaries = z.infer<typeof instructionSummariesSchema>;\n\nexport const instructionSummariesByDateSchema = z.record(\n z.string(),\n instructionSummariesSchema,\n);\nexport type InstructionSummariesByDate = z.infer<\n typeof instructionSummariesByDateSchema\n>;\n\nexport const InstructionViewTimescale = {\n Days: \"days\",\n Hours: \"hours\",\n Minutes: \"minutes\",\n Seconds: \"seconds\",\n} as const;\nexport type InstructionViewTimescale =\n (typeof InstructionViewTimescale)[keyof typeof InstructionViewTimescale];\nexport const instructionViewTimescaleValues = Object.values(\n InstructionViewTimescale,\n) as [InstructionViewTimescale, ...InstructionViewTimescale[]];\n\nexport function assertInstructionAction(\n action: unknown,\n): asserts action is InstructionAction {\n if (!instructionActionValues.includes(action as InstructionAction)) {\n throw new Error(`Invalid instruction action: ${action}`);\n }\n}\n", "import { z } from \"zod\";\n\nexport const DATE_REGEX =\n /^(19|20)\\d{2}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$/;\nexport const DATE_ISO_8601_REGEX =\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$/;\nexport const DATE_STANDARD_REGEX =\n /^(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])\\/(19|20)\\d{2}$/;\nexport const TIME_REGEX = /^(0[1-9]|1[0-2]):[0-5][0-9]:[0-5][0-9] (AM|PM)$/;\n\nexport const regexSchema = (regex: RegExp, message?: string) =>\n z.string().regex(regex, message);\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const numberSchema = z.union([\n z.number().finite(),\n z\n .string()\n .regex(/^-?\\d*\\.?\\d+(?:[eE][-+]?\\d+)?$/)\n .transform(Number),\n]);\n\nexport const decimalStringSchema = z\n .string()\n .regex(/^-?\\d*\\.?\\d+$/)\n .refine((val) => !isNaN(parseFloat(val)), {\n message: \"Must be a valid decimal number\",\n });\n\nexport const bigintSchema = z.union([\n z.bigint(),\n z\n .string()\n .regex(/^-?\\d+$/)\n .transform(BigInt),\n]);\n\nexport const hexStringSchema = z\n .string()\n .startsWith(\"0x\")\n .transform((val): `0x${string}` => val as `0x${string}`);\n\nexport const dateSchema = regexSchema(DATE_REGEX);\nexport const dateISO8601Schema = regexSchema(DATE_ISO_8601_REGEX);\nexport const dateStandardSchema = regexSchema(DATE_STANDARD_REGEX);\n\nexport const timeSchema = regexSchema(TIME_REGEX);\n\nexport const Sort = {\n Asc: \"asc\",\n Desc: \"desc\",\n} as const;\nexport type Sort = (typeof Sort)[keyof typeof Sort];\nexport const sortValues = Object.values(Sort) as [Sort, ...Sort[]];\n\nexport const vrsSchema = z.object({\n v: z.number(),\n r: z.string(),\n s: z.string(),\n});\n\nexport const eip2098SignatureSchema = z.object({\n yParity: z.number(),\n r: z.string(),\n s: z.string(),\n});\n\nexport type HexString = z.infer<typeof hexStringSchema>;\nexport type Address = z.infer<typeof hexStringSchema>;\nexport type VRS = z.infer<typeof vrsSchema>;\nexport type EIP2098Signature = z.infer<typeof eip2098SignatureSchema>;\n", "import { z } from \"zod\";\n\nexport const PaymentStatus = {\n Due: \"due\",\n NotDue: \"not-due\",\n Paid: \"paid\",\n} as const;\nexport type PaymentStatus = (typeof PaymentStatus)[keyof typeof PaymentStatus];\n\nexport const PaymentSource = {\n Bill: \"Bill\",\n Stripe: \"Stripe\",\n Clio: \"Clio\",\n QuickBooks: \"QuickBooks\",\n} as const;\nexport type PaymentSource = (typeof PaymentSource)[keyof typeof PaymentSource];\n\nexport const paymentRequestSourceValues = [\n PaymentSource.Bill,\n PaymentSource.Stripe,\n PaymentSource.Clio,\n PaymentSource.QuickBooks,\n] satisfies ReadonlyArray<PaymentSource>;\n\nexport const paymentSchema = z.object({\n id: z.string(),\n fromUserId: z.string().nullable().optional(),\n toUserId: z.string().nullable().optional(),\n payerAddress: z.string().nullable().optional(),\n ephemeralWalletAddress: z.string(),\n ephemeralWalletId: z.string().optional(),\n instructions: z\n .object({\n ids: z.array(z.string()),\n completionIds: z.array(z.string()),\n })\n .optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n // UI-derived fields\n status: z.union([\n z.literal(PaymentStatus.Due),\n z.literal(PaymentStatus.NotDue),\n z.literal(PaymentStatus.Paid),\n ]),\n dueDate: z.string(),\n amountDue: z.number(),\n note: z.string().nullable().optional(),\n address: z.string().nullable().optional(),\n addedOn: z.string(),\n source: z\n .union([\n z.literal(PaymentSource.Bill),\n z.literal(PaymentSource.Stripe),\n z.literal(PaymentSource.Clio),\n z.literal(PaymentSource.QuickBooks),\n ])\n .nullish(),\n attachmentUrl: z.string().url().nullable().optional(),\n attachmentName: z.string().nullable().optional(),\n fromAccountAddress: z.string().nullable().optional(),\n});\n\nexport type Payment = z.infer<typeof paymentSchema>;\n\nexport const PaymentsSchema = z.array(paymentSchema);\nexport type Payments = z.infer<typeof PaymentsSchema>;\n", "import { z } from \"zod\";\n\nimport { instructionIdSchema } from \"./instruction\";\nimport { hexStringSchema } from \"./misc\";\n\nexport type Transaction = z.infer<typeof transactionSchema>;\nexport type TransactionWithValidAmount = z.infer<\n typeof transactionWithValidAmountSchema\n>;\nexport type Transactions = z.infer<typeof transactionsSchema>;\n\nexport const transactionSchema = z.object({\n instructionId: instructionIdSchema,\n transactionHash: hexStringSchema.optional(),\n blockHash: z.string().nullable(),\n transactionStatus: z.string(),\n error: z.string().nullish(),\n startedAt: z.string(),\n startedAtBlock: z.number(),\n finishedAt: z.string().nullable(),\n finishedAtBlock: z.number().nullable(),\n amount: z.object({ value: z.number(), token: z.string() }).nullish(),\n instructedValue: z.string(),\n instructedTokenAddress: z.string().nullable(),\n executionNum: z.number(),\n chainId: z.number().nullish(),\n chain: z.string().optional(),\n});\nexport const transactionWithValidAmountSchema = transactionSchema.extend({\n amount: z.object({\n value: z.number(),\n token: z.string(),\n }),\n});\nexport const transactionsSchema = z.array(transactionSchema);\n", "import { z } from \"zod\";\n\nexport const entityIdSchema = z.string().uuid();\n\nexport const addressSchema = z\n .string()\n .regex(/^0x[a-fA-F0-9]{40}$/)\n .transform((v) => v.toLowerCase());\n\nexport const userPreferencesSchema = z.object({\n chainId: z.number().optional(),\n tokenSymbol: z.string().optional(),\n localCurrency: z.string().optional(),\n});\n\nexport const userSchema = z.object({\n id: entityIdSchema,\n address: addressSchema,\n createdAt: z.string(),\n updatedAt: z.string(),\n preferences: userPreferencesSchema.optional(),\n isDeveloper: z.boolean(),\n developerPublicKey: z.string().nullable().optional(),\n});\n\nexport type UserPreferences = z.infer<typeof userPreferencesSchema>;\nexport type User = z.infer<typeof userSchema>;\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});\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});\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\nexport const getCurrentUserResponseSchema = z.object({\n data: userSchema,\n});\nexport type GetCurrentUserResponse = z.infer<\n typeof getCurrentUserResponseSchema\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 sweepDepositAccountActionArgumentsSchema =\n baseActionArgumentsSchema.extend({\n threshold: numberSchema,\n recipient: hexStringSchema,\n depositorAddress: hexStringSchema,\n });\n\nconst sweepDepositAccountERC20ActionArgumentsSchema =\n baseActionArgumentsSchema.extend({\n threshold: numberSchema,\n recipient: hexStringSchema,\n depositorAddress: hexStringSchema,\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\nexport const actionArgumentsSchema = z.union([\n refuelActionArgumentsSchema,\n refuelERC20ActionArgumentsSchema,\n transferActionArgumentsSchema,\n transferERC20ActionArgumentsSchema,\n sweepDepositAccountActionArgumentsSchema,\n sweepDepositAccountERC20ActionArgumentsSchema,\n uniswapV3ExactInputActionArgumentsSchema,\n deactivateInstructionActionArgumentsSchema,\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 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 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});\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 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 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", "/**\n * Environment configuration for @otim/utils\n *\n * These values are injected at build time via esbuild's define option.\n * See scripts/build.js for the injection logic.\n */\n\n/**\n * Build mode - determines production vs development behavior\n * Values: \"production\" | \"development\"\n */\nexport const BUILD_MODE = process.env.BUILD_MODE || \"development\";\n\n/**\n * App API URL - base URL for API requests\n * Defaults to production URL if not specified\n */\nexport const APP_API_URL =\n process.env.NEXT_PUBLIC_APP_API_URL || \"https://app.otim.com/api\";\n", "import { BUILD_MODE } from \"../env\";\n\ntype LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\ninterface LoggerOptions {\n context?: string;\n data?: unknown;\n}\n\ninterface ErrorLogOptions {\n context?: string;\n operation?: string;\n metadata?: Record<string, unknown>;\n}\n\nclass Logger {\n private isDevelopment = BUILD_MODE === \"development\";\n\n debug(message: string, options?: LoggerOptions): void {\n if (this.isDevelopment) {\n this.log(\"debug\", message, options);\n }\n }\n\n info(message: string, options?: LoggerOptions): void {\n this.log(\"info\", message, options);\n }\n\n warn(message: string, options?: LoggerOptions): void {\n this.log(\"warn\", message, options);\n }\n\n error(message: string, options?: LoggerOptions): void {\n this.log(\"error\", message, options);\n }\n\n /**\n * Log errors with context - useful for non-API errors\n * For API errors, use the existing getErrorMessage from @otim/utils/api\n */\n logError(error: unknown, options: ErrorLogOptions = {}): void {\n const { context, operation, metadata } = options;\n const prefix = this.buildPrefix(context, operation);\n\n // Extract basic error message\n let message = \"Unknown error\";\n if (error instanceof Error) {\n message = error.message;\n } else if (typeof error === \"string\") {\n message = error;\n } else if (error && typeof error === \"object\" && \"message\" in error) {\n message = String((error as { message: unknown }).message);\n }\n\n console.error(prefix ? `${prefix} ${message}` : message);\n\n // Log metadata if provided\n if (metadata && Object.keys(metadata).length > 0) {\n console.error(\"Context:\", metadata);\n }\n\n // Log the full error object for debugging\n if (error instanceof Error && error.stack) {\n console.error(\"Stack:\", error.stack);\n } else {\n console.error(\"Error details:\", error);\n }\n }\n\n private buildPrefix(context?: string, operation?: string): string {\n const parts: string[] = [];\n if (context) parts.push(`[${context}]`);\n if (operation) parts.push(`[${operation}]`);\n return parts.join(\" \");\n }\n\n private log(level: LogLevel, message: string, options?: LoggerOptions): void {\n const prefix = options?.context ? `[${options.context}]` : \"\";\n const fullMessage = `${prefix} ${message}`.trim();\n\n switch (level) {\n case \"debug\":\n case \"info\":\n console.log(fullMessage);\n break;\n case \"warn\":\n console.warn(fullMessage);\n break;\n case \"error\":\n console.error(fullMessage);\n break;\n }\n\n if (options?.data) {\n console.dir(options.data, { depth: null });\n }\n }\n}\n\nexport const logger = new Logger();\n", "import type { ZodObject, ZodTypeAny } from \"zod\";\n\nimport { z } from \"zod\";\n\nimport { hexStringSchema } from \"../schemas/misc\";\nimport { getSecondsFromTimeUnitValue, parseTimeUnitValue } from \"./datetime\";\nimport { DEFAULT_ADDRESS } from \"./blockchain\";\n\nexport type Validator<T> = (data: T, ctx: z.RefinementCtx) => void;\n\nexport const composeValidators = <T>(validators: Validator<T>[]) => {\n return (data: T, ctx: z.RefinementCtx) => {\n for (const validator of validators) {\n validator(data, ctx);\n }\n };\n};\n\n// convert seconds to human-readable format.\nconst secondsToHumanReadable = (seconds: number): string => {\n if (seconds >= 3600) {\n const hours = seconds / 3600;\n const roundedHours = Math.round(hours * 10) / 10;\n return roundedHours === 1 ? \"1 hour\" : `${roundedHours} hours`;\n } else if (seconds >= 60) {\n const minutes = seconds / 60;\n const roundedMinutes = Math.round(minutes * 10) / 10;\n return roundedMinutes === 1 ? \"1 minute\" : `${roundedMinutes} minutes`;\n } else {\n return seconds === 1 ? \"1 second\" : `${seconds} seconds`;\n }\n};\n\n/**\n * creates a time unit validator for fields stored as JSON strings.\n * validates both the JSON format and the minimum seconds requirement.\n *\n * @param fieldName \u2013 the name of the field for error messages\n * @param options \u2013 configuration options\n * @param options.minSeconds \u2013 minimum seconds required (default: 60)\n * @param options.allowZero \u2013 whether to allow 0 seconds for \"None\" option (default: false)\n * @param options.useHumanReadable \u2013 whether to use human-readable time in error messages (default: true)\n */\nexport const createTimeUnitValidator = (\n fieldName: string,\n options: {\n minSeconds?: number;\n allowZero?: boolean;\n useHumanReadable?: boolean;\n } = {},\n) => {\n const {\n minSeconds = 60,\n allowZero = false,\n useHumanReadable = true,\n } = options;\n\n return z\n .string()\n .optional()\n .refine(\n (value) => {\n if (!value) return true;\n\n // try to parse the value.\n const parsed = parseTimeUnitValue(value);\n if (!parsed) return false;\n\n // validate minimum seconds, allowing 0 for \"none\" option if specified\n const seconds = getSecondsFromTimeUnitValue(parsed);\n return allowZero ? seconds >= 0 : seconds >= minSeconds;\n },\n {\n message: useHumanReadable\n ? `${fieldName} must be at least ${secondsToHumanReadable(minSeconds)}`\n : `${fieldName} must be at least ${minSeconds} seconds`,\n },\n );\n};\n\n/**\n * Parse the input values using the provided schema. If the input values are\n * invalid, throw a ResolverError.\n * @param values - The input values to parse.\n * @param schema - The schema to use to parse the input values.\n * @param error - The error code to use if the input values are invalid.\n * @returns The parsed input values.\n * @throws ResolverError if the input values are invalid.\n */\nexport const parseSchema = <\n Values,\n Schema extends ZodTypeAny = ZodObject<{\n [P in keyof Values]: z.ZodType<Values[P]>;\n }>,\n>(\n values: Values,\n schema: Schema,\n): z.infer<Schema> => {\n const inputValues = schema.safeParse(values);\n if (!inputValues.success) {\n throw new Error(\n `parseSchema: invalid input values ${JSON.stringify(inputValues.error)}`,\n );\n }\n\n return inputValues.data as z.infer<Schema>;\n};\n\n/**\n * Creates a permissive decimal string schema that allows empty strings.\n * Converts undefined/null values to empty strings, preventing \"expected string, received undefined\" errors.\n * Useful for form fields where validation happens in a refine step.\n */\nexport const formDecimalStringSchema = () =>\n z.preprocess(\n (val) => (val === undefined || val === null ? \"\" : String(val)),\n z.string(),\n );\n\n/**\n * Creates a hex string schema with preprocessing that defaults to DEFAULT_ADDRESS.\n * Converts undefined/null/empty values to DEFAULT_ADDRESS before validation.\n * Useful for form fields that expect hex addresses.\n */\nexport const formHexStringSchema = () =>\n z.preprocess(\n (val) =>\n val === undefined || val === null || val === \"\" ? DEFAULT_ADDRESS : val,\n hexStringSchema,\n );\n\n/**\n * Checks if an error message is an internal Zod error that shouldn't be shown to users.\n */\nconst isInternalZodError = (error: string): boolean => {\n return (\n error.includes(\"expected string, received\") ||\n error.includes(\"Invalid input\") ||\n error.includes(\"Expected string\")\n );\n};\n\n/**\n * Filters out Zod internal errors that shouldn't be shown to users.\n * Only returns user-friendly validation messages.\n *\n * @param errors - Array of error messages from Zod validation, or a single error string\n * @param fieldValue - The field value being validated\n * @returns User-friendly error message or undefined\n */\nexport const getDisplayableZodError = (\n errors: string[] | string | undefined,\n fieldValue: unknown,\n): string | undefined => {\n if (!errors || (Array.isArray(errors) && errors.length === 0)) return undefined;\n\n // Don't show errors for empty fields (better UX)\n const stringValue = typeof fieldValue === \"string\" ? fieldValue.trim() : \"\";\n if (!stringValue) return undefined;\n\n // Normalize to array\n const errorArray = Array.isArray(errors) ? errors : [errors];\n\n // Filter out internal Zod errors\n const filteredErrors = errorArray.filter((error) => !isInternalZodError(error));\n\n return filteredErrors.length > 0 ? filteredErrors.join(\", \") : undefined;\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 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\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 { ServiceResponse } from \"../core\";\n\nimport { logger } from \"@otim/utils/helpers\";\n\nimport { BaseService } from \"./base\";\n\nexport interface UniswapToken {\n chainId: number;\n address: string;\n name: string;\n symbol: string;\n decimals: number;\n logoURI?: string;\n extensions?: {\n bridgeInfo?: Record<string, { tokenAddress: string }>;\n };\n}\n\nexport interface UniswapTokenList {\n name: string;\n timestamp: string;\n version: {\n major: number;\n minor: number;\n patch: number;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tags: Record<string, any>;\n logoURI: string;\n keywords: string[];\n tokens: UniswapToken[];\n}\n\nexport interface TokenListRequest {\n chainId: number;\n limit?: number;\n}\n\nexport interface TokenListResponse {\n tokens: UniswapToken[];\n source: \"uniswap\";\n timestamp: string;\n}\n\nexport class UniswapTokenListService extends BaseService {\n private readonly UNISWAP_TOKEN_LIST_URL =\n \"https://ipfs.io/ipns/tokens.uniswap.org\";\n private readonly FALLBACK_URL = \"https://tokens.uniswap.org/\";\n private readonly CACHE_DURATION = 30 * 60 * 1000; // 30 minutes\n private readonly SUPPORTED_CHAIN_IDS = [1, 10, 42161, 8453]; // mainnet, optimism, arbitrum, base\n\n private tokenListCache: UniswapTokenList | null = null;\n private lastFetch: number = 0;\n\n /**\n * Get tokens for a specific chain\n */\n public async getTokensForChain({\n chainId,\n limit = 50,\n }: TokenListRequest): Promise<ServiceResponse<TokenListResponse>> {\n try {\n const tokenList = await this.fetchTokenList();\n\n // Only fetch tokens for supported chains\n if (!this.SUPPORTED_CHAIN_IDS.includes(chainId)) {\n return {\n data: {\n tokens: [],\n source: \"uniswap\",\n timestamp: tokenList.timestamp,\n },\n };\n }\n\n // Filter tokens by chain ID\n const chainTokens = tokenList.tokens.filter(\n (token) => token.chainId === chainId,\n );\n\n // Filter out low-quality tokens\n const filteredTokens = chainTokens.filter((token) => {\n // Filter out tokens with suspicious names or symbols\n const suspiciousPatterns = [\n /test/i,\n /fake/i,\n /scam/i,\n /shit/i,\n /moon/i,\n /doge/i,\n /inu/i,\n /baby/i,\n /mini/i,\n /micro/i,\n /nano/i,\n /pico/i,\n /mega/i,\n /ultra/i,\n /super/i,\n /hyper/i,\n /meta/i,\n /safe/i,\n /new/i,\n /old/i,\n /v2/i,\n /v3/i,\n /v4/i,\n /v5/i,\n /2\\.0/i,\n /3\\.0/i,\n /4\\.0/i,\n /5\\.0/i,\n ];\n\n const name = token.name?.toLowerCase() || \"\";\n const symbol = token.symbol?.toLowerCase() || \"\";\n\n // Skip tokens with suspicious patterns\n if (\n suspiciousPatterns.some(\n (pattern) => pattern.test(name) || pattern.test(symbol),\n )\n ) {\n return false;\n }\n\n // Skip tokens with very short or very long names\n if (name.length < 2 || name.length > 50) return false;\n if (symbol.length < 2 || symbol.length > 20) return false;\n\n // Skip tokens without proper metadata\n if (!token.name || !token.symbol || !token.address) return false;\n\n return true;\n });\n\n // Sort by popularity (you could implement custom sorting logic here)\n // For now, we'll just limit the results\n const limitedTokens = filteredTokens.slice(0, limit);\n\n return {\n data: {\n tokens: limitedTokens,\n source: \"uniswap\",\n timestamp: tokenList.timestamp,\n },\n };\n } catch (error) {\n throw new Error(error instanceof Error ? error.message : \"Unknown error\");\n }\n }\n\n /**\n * Get all supported chains from the token list\n */\n public async getSupportedChains(): Promise<ServiceResponse<number[]>> {\n try {\n const tokenList = await this.fetchTokenList();\n\n const chainIds = Array.from(\n new Set(tokenList.tokens.map((token) => token.chainId)),\n ).sort((a, b) => a - b);\n\n return {\n data: chainIds,\n };\n } catch (error) {\n throw new Error(error instanceof Error ? error.message : \"Unknown error\");\n }\n }\n\n /**\n * Search for a specific token by address or symbol\n */\n public async findToken(\n chainId: number,\n query: string,\n ): Promise<ServiceResponse<UniswapToken | null>> {\n try {\n const tokenList = await this.fetchTokenList();\n\n const token = tokenList.tokens.find(\n (t) =>\n t.chainId === chainId &&\n (t.address.toLowerCase() === query.toLowerCase() ||\n t.symbol.toLowerCase() === query.toLowerCase() ||\n t.name.toLowerCase().includes(query.toLowerCase())),\n );\n\n return {\n data: token || null,\n };\n } catch (error) {\n throw new Error(error instanceof Error ? error.message : \"Unknown error\");\n }\n }\n\n /**\n * Get bridge information for a token\n */\n public async getBridgeInfo(\n chainId: number,\n tokenAddress: string,\n ): Promise<ServiceResponse<Record<string, string>>> {\n try {\n const tokenList = await this.fetchTokenList();\n\n const token = tokenList.tokens.find(\n (t) =>\n t.chainId === chainId &&\n t.address.toLowerCase() === tokenAddress.toLowerCase(),\n );\n\n if (!token || !token.extensions?.bridgeInfo) {\n return {\n data: {},\n };\n }\n\n const bridgeInfo: Record<string, string> = {};\n for (const [targetChainId, info] of Object.entries(\n token.extensions.bridgeInfo,\n )) {\n bridgeInfo[targetChainId] = info.tokenAddress;\n }\n\n return {\n data: bridgeInfo,\n };\n } catch (error) {\n throw new Error(error instanceof Error ? error.message : \"Unknown error\");\n }\n }\n\n /**\n * Fetch the Uniswap token list\n */\n private async fetchTokenList(): Promise<UniswapTokenList> {\n const now = Date.now();\n\n // Return cached data if still valid\n if (this.tokenListCache && now - this.lastFetch < this.CACHE_DURATION) {\n return this.tokenListCache;\n }\n\n try {\n // Try IPFS first\n const response = await fetch(this.UNISWAP_TOKEN_LIST_URL, {\n headers: {\n Accept: \"application/json\",\n },\n });\n\n if (!response.ok) {\n throw new Error(`IPFS fetch failed: ${response.status}`);\n }\n\n const data = await response.json();\n this.tokenListCache = data;\n this.lastFetch = now;\n return data;\n } catch (error) {\n logger.logError(error, {\n context: this.fetchTokenList.name,\n });\n\n try {\n // Fallback to direct URL\n const response = await fetch(this.FALLBACK_URL, {\n headers: {\n Accept: \"application/json\",\n },\n });\n\n if (!response.ok) {\n throw new Error(`Fallback fetch failed: ${response.status}`);\n }\n\n const data = await response.json();\n this.tokenListCache = data;\n this.lastFetch = now;\n return data;\n } catch (fallbackError) {\n logger.logError(fallbackError, {\n context: this.fetchTokenList.name,\n });\n throw new Error(\"Unable to fetch Uniswap token list\");\n }\n }\n }\n}\n", "import type { APIClientInit } from \"./core\";\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\";\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?: APIClientInit) {\n const instance = isInstanceInit(init)\n ? init.instance\n : createInstance(init);\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"],
5
+ "mappings": "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",
6
6
  "names": ["feeResponseSchema", "axios", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "import_zod", "feeResponseSchema", "import_zod", "import_zod", "import_zod", "import_axios", "axios"]
7
7
  }