@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.
- package/dist/api/index.js +41 -7
- package/dist/api/index.js.map +2 -2
- package/dist/api/index.mjs +41 -7
- package/dist/api/index.mjs.map +2 -2
- package/dist/api/schemas/payments.d.mts +38 -0
- package/dist/api/schemas/payments.d.ts +38 -0
- package/dist/api/schemas/payments.d.ts.map +1 -1
- package/dist/api/services/payments.d.mts +2 -1
- package/dist/api/services/payments.d.ts +2 -1
- package/dist/api/services/payments.d.ts.map +1 -1
- package/dist/chains/index.js +1 -1
- package/dist/chains/index.mjs +1 -1
- package/dist/helpers/index.js +23 -1
- package/dist/helpers/index.js.map +2 -2
- package/dist/helpers/index.mjs +23 -1
- package/dist/helpers/index.mjs.map +2 -2
- package/dist/helpers/zod.d.mts +21 -0
- package/dist/helpers/zod.d.ts +21 -0
- package/dist/helpers/zod.d.ts.map +1 -1
- package/dist/payments/build.d.mts +1 -0
- package/dist/payments/build.d.ts +1 -0
- package/dist/payments/build.d.ts.map +1 -1
- package/dist/payments/comprehensive-payment-request.d.mts +1 -0
- package/dist/payments/comprehensive-payment-request.d.ts +1 -0
- package/dist/payments/comprehensive-payment-request.d.ts.map +1 -1
- package/dist/payments/index.js +16 -12
- package/dist/payments/index.js.map +2 -2
- package/dist/payments/index.mjs +16 -12
- package/dist/payments/index.mjs.map +2 -2
- package/dist/server/index.js +36 -4
- package/dist/server/index.js.map +2 -2
- package/dist/server/index.mjs +36 -4
- package/dist/server/index.mjs.map +2 -2
- package/dist/server/routes/bridge.d.mts +62 -0
- package/dist/server/routes/bridge.d.ts +62 -0
- package/dist/server/routes/bridge.d.ts.map +1 -1
- package/dist/server/routes/payments.d.mts +2 -1
- package/dist/server/routes/payments.d.ts +2 -1
- package/dist/server/routes/payments.d.ts.map +1 -1
- package/dist/wallet/wagmi/index.js +1 -1
- package/dist/wallet/wagmi/index.mjs +1 -1
- package/package.json +9 -5
package/dist/server/index.js
CHANGED
|
@@ -37,12 +37,16 @@ __export(server_exports, {
|
|
|
37
37
|
bridgeExchangePlaidPublicToken: () => bridgeExchangePlaidPublicToken,
|
|
38
38
|
buildInstruction: () => buildInstruction,
|
|
39
39
|
buildPaymentRequest: () => buildPaymentRequest,
|
|
40
|
+
buildSettlementOrchestration: () => buildSettlementOrchestration,
|
|
41
|
+
createBridgeIbanExternalAccount: () => createBridgeIbanExternalAccount,
|
|
40
42
|
createBridgeLiquidationAddress: () => createBridgeLiquidationAddress,
|
|
41
43
|
createBridgePlaidLinkToken: () => createBridgePlaidLinkToken,
|
|
42
44
|
createBridgeTransfer: () => createBridgeTransfer,
|
|
43
45
|
createDelegation: () => createDelegation,
|
|
44
46
|
deleteChainId: () => deleteChainId,
|
|
45
47
|
destroySessionToken: () => destroySessionToken,
|
|
48
|
+
ensureOfframpRoute: () => ensureOfframpRoute,
|
|
49
|
+
ensureOnrampRoute: () => ensureOnrampRoute,
|
|
46
50
|
generateBridgeKycLinks: () => generateBridgeKycLinks,
|
|
47
51
|
getBridgeCustomer: () => getBridgeCustomer,
|
|
48
52
|
getBridgeExternalAccounts: () => getBridgeExternalAccounts,
|
|
@@ -75,8 +79,8 @@ module.exports = __toCommonJS(server_exports);
|
|
|
75
79
|
var import_axios = __toESM(require("axios"));
|
|
76
80
|
|
|
77
81
|
// src/env.ts
|
|
78
|
-
var BUILD_MODE = "
|
|
79
|
-
var APP_API_URL = "
|
|
82
|
+
var BUILD_MODE = "development";
|
|
83
|
+
var APP_API_URL = "http://localhost:3000/api";
|
|
80
84
|
|
|
81
85
|
// src/helpers/logger.ts
|
|
82
86
|
var Logger = class {
|
|
@@ -361,6 +365,27 @@ var updateBridgeExternalAccountAddress = async (customerId, externalAccountId, a
|
|
|
361
365
|
);
|
|
362
366
|
return response.data;
|
|
363
367
|
};
|
|
368
|
+
var createBridgeIbanExternalAccount = async (request) => {
|
|
369
|
+
const response = await appApiClient.post(
|
|
370
|
+
"/bridge/external-accounts/iban",
|
|
371
|
+
request
|
|
372
|
+
);
|
|
373
|
+
return response.data;
|
|
374
|
+
};
|
|
375
|
+
var ensureOnrampRoute = async (params) => {
|
|
376
|
+
const response = await appApiClient.post(
|
|
377
|
+
"/bridge/routes/ensure-onramp",
|
|
378
|
+
params
|
|
379
|
+
);
|
|
380
|
+
return response.data;
|
|
381
|
+
};
|
|
382
|
+
var ensureOfframpRoute = async (params) => {
|
|
383
|
+
const response = await appApiClient.post(
|
|
384
|
+
"/bridge/routes/ensure-offramp",
|
|
385
|
+
params
|
|
386
|
+
);
|
|
387
|
+
return response.data;
|
|
388
|
+
};
|
|
364
389
|
|
|
365
390
|
// src/server/routes/config.ts
|
|
366
391
|
var getDelegateAddress = async (request) => {
|
|
@@ -405,14 +430,21 @@ var upsertIntegration = async (request) => {
|
|
|
405
430
|
// src/server/routes/payments.ts
|
|
406
431
|
var buildPaymentRequest = async (request) => {
|
|
407
432
|
const response = await appApiClient.post(
|
|
408
|
-
"/
|
|
433
|
+
"/orchestration/build",
|
|
409
434
|
request
|
|
410
435
|
);
|
|
411
436
|
return response.data;
|
|
412
437
|
};
|
|
413
438
|
var newPaymentRequest = async (request) => {
|
|
414
439
|
const response = await appApiClient.post(
|
|
415
|
-
"/
|
|
440
|
+
"/orchestration/new",
|
|
441
|
+
request
|
|
442
|
+
);
|
|
443
|
+
return response.data;
|
|
444
|
+
};
|
|
445
|
+
var buildSettlementOrchestration = async (request) => {
|
|
446
|
+
const response = await appApiClient.post(
|
|
447
|
+
"/orchestration/build/settlement",
|
|
416
448
|
request
|
|
417
449
|
);
|
|
418
450
|
return response.data;
|
package/dist/server/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/server/index.ts", "../../src/server/client.ts", "../../src/env.ts", "../../src/helpers/logger.ts", "../../src/helpers/types.ts", "../../src/server/routes/account.ts", "../../src/server/routes/auth.ts", "../../src/server/routes/bridge.ts", "../../src/server/routes/config.ts", "../../src/server/routes/instruction.ts", "../../src/server/routes/integration.ts", "../../src/server/routes/payments.ts"],
|
|
4
|
-
"sourcesContent": ["export * from \"./client\";\nexport * from \"./routes\";\n", "import axios from \"axios\";\n\nimport { isString, logger } from \"@otim/utils/helpers\";\n\nimport { APP_API_URL } from \"../env\";\n\nconst getApiUrl = (): string => {\n const appApiUrl = APP_API_URL;\n\n if (!isString(appApiUrl) || appApiUrl.trim() === \"\") {\n const errorMessage = \"APP API Client URL must be defined\";\n logger.error(errorMessage, { context: \"App Server Client\" });\n throw new Error(errorMessage);\n }\n\n return appApiUrl;\n};\n\nlet authTokenGetter: (() => Promise<string | undefined>) | null = null;\n\nexport const setAuthTokenGetter = (\n getter: () => Promise<string | undefined>,\n) => {\n authTokenGetter = getter;\n};\n\nexport const appApiClient = axios.create({\n baseURL: getApiUrl(),\n timeout: 30000,\n});\n\nappApiClient.interceptors.request.use(async (config) => {\n if (authTokenGetter) {\n const token = await authTokenGetter();\n if (token) {\n config.headers = config.headers ?? {};\n config.headers.Authorization = `Bearer ${token}`;\n }\n }\n return config;\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 { z, ZodObject } from \"zod\";\n\nexport type Nullable<T> = T | null;\nexport type Nullish<T> = T | null | undefined;\nexport type Optional<T> = T | undefined;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- any is ok\nexport type Any = any;\n\nexport type NumberOrString = number | string;\n\nexport type OverrideProps<T, TOverridden> = Omit<T, keyof TOverridden> &\n TOverridden;\n\nexport type NonEmptyArray<T> = [T, ...T[]];\n\nexport interface DataRecord {\n [value: string]: Nullish<DataRecord | string | number | boolean>;\n}\n\nexport interface Input<T> {\n input: T;\n}\n\nexport type ZodCustom<Values extends object> = ZodObject<{\n [P in keyof Values]: z.ZodType<Values[P]>;\n}>;\n\nexport const isError = (value: unknown): value is Error =>\n value instanceof Error;\n\nexport const isFunction = (\n value: unknown,\n): value is (...args: unknown[]) => unknown => typeof value === \"function\";\n\nexport const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\nexport const isNumber = (value: unknown): value is number =>\n typeof value === \"number\";\n\nexport const isString = (value: unknown): value is string =>\n typeof value === \"string\";\n\nexport const isUndefined = (value: unknown): value is undefined =>\n typeof value === \"undefined\";\n\nexport const isBoolean = (value: unknown): value is boolean =>\n typeof value === \"boolean\";\n\n/**\n * Safely extracts a string from an unknown value.\n * @param value - The value to extract from\n * @param fallback - Optional fallback value if extraction fails\n * @returns The extracted string or fallback/undefined\n */\nexport const extractString = (\n value: unknown,\n fallback?: string,\n): Optional<string> => {\n return isString(value) ? value : fallback;\n};\n\n/**\n * Safely extracts a number from an unknown value.\n * Handles both number and string representations.\n * @param value - The value to extract from\n * @returns The extracted number or undefined\n */\nexport const extractNumber = (value: unknown): Optional<number> => {\n if (isNumber(value)) {\n return value;\n }\n\n if (isString(value)) {\n const parsed = Number.parseFloat(value);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n\n return undefined;\n};\n", "import type {\n DelegationCreateRequest,\n DelegationCreateResponse,\n DelegationStatusRequest,\n DelegationStatusResponse,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\n/* Delegation Routes */\n\nexport const createDelegation = async (\n request: DelegationCreateRequest,\n): Promise<DelegationCreateResponse> => {\n const response = await appApiClient.post<DelegationCreateResponse>(\n \"/account/delegation\",\n request,\n );\n\n return response.data;\n};\n\nexport const getDelegationStatus = async (\n request: DelegationStatusRequest,\n): Promise<DelegationStatusResponse> => {\n const response = await appApiClient.get<DelegationStatusResponse>(\n \"/account/delegation/status\",\n { params: request },\n );\n\n return response.data;\n};\n", "import type {\n AddressWhitelistCheckRequest,\n AddressWhitelistCheckResponse,\n AuthLoginRequest,\n AuthLoginResponse,\n ChainIdResponse,\n ChainSuccessResponse,\n GetCurrentUserResponse,\n SessionTokenRequest,\n SessionTokenResponse,\n SessionVerifyResponse,\n SetChainIdRequest,\n TurnkeyLoginRequest,\n TurnkeyLoginResponse,\n TurnkeyVerificationRequest,\n TurnkeyVerificationResponse,\n WhitelistCheckRequest,\n WhitelistCheckResponse,\n} from \"@otim/utils/api\";\nimport type { User } from \"@otim/utils/schemas\";\n\nimport { appApiClient } from \"../client\";\n\n/* Login Routes */\n\nexport const postLogin = async (\n request: AuthLoginRequest,\n): Promise<AuthLoginResponse> => {\n const response = await appApiClient.post<AuthLoginResponse>(\n \"/auth/login\",\n request,\n );\n\n return response.data;\n};\n\n/* Turnkey Routes */\n\nexport const turnkeyVerification = async (\n request: TurnkeyVerificationRequest,\n): Promise<TurnkeyVerificationResponse> => {\n const response = await appApiClient.post<TurnkeyVerificationResponse>(\n \"/auth/turnkey-verification\",\n request,\n );\n\n return response.data;\n};\n\nexport const turnkeyLogin = async (\n request: TurnkeyLoginRequest,\n): Promise<TurnkeyLoginResponse> => {\n const response = await appApiClient.post<TurnkeyLoginResponse>(\n \"/auth/turnkey-login\",\n request,\n );\n\n return response.data;\n};\n\n/* Client API Routes */\n\nexport async function getNonce(): Promise<string> {\n const response = await appApiClient.get<{ nonce: string }>(\"/auth/nonce\");\n\n return response.data.nonce;\n}\n\nexport async function verifyAuthentication(params: {\n message: string;\n signature: string;\n}): Promise<{\n authorization: string;\n user: User;\n}> {\n const response = await appApiClient.post<{\n authorization: string;\n user: User;\n }>(\"/auth/authenticate\", params);\n\n return response.data;\n}\n\nexport async function setSessionToken(\n sessionToken: string,\n): Promise<{ success: boolean }> {\n const response = await appApiClient.post<{ success: boolean }>(\n \"/auth/session\",\n { sessionToken },\n );\n\n return response.data;\n}\n\nexport async function destroySessionToken(): Promise<{ success: boolean }> {\n const response = await appApiClient.delete<{ success: boolean }>(\n \"/auth/session\",\n );\n\n return response.data;\n}\n\n/* Chain Routes */\n\nexport const getChainId = async (): Promise<ChainIdResponse> => {\n const response = await appApiClient.get<ChainIdResponse>(\"/auth/chain\");\n\n return response.data;\n};\n\nexport const postChainId = async (\n request: SetChainIdRequest,\n): Promise<ChainSuccessResponse> => {\n const response = await appApiClient.post<ChainSuccessResponse>(\n \"/auth/chain\",\n request,\n );\n\n return response.data;\n};\n\nexport const deleteChainId = async (): Promise<ChainSuccessResponse> => {\n const response =\n await appApiClient.delete<ChainSuccessResponse>(\"/auth/chain\");\n\n return response.data;\n};\n\n/* Session Routes */\n\nexport const postSessionToken = async (\n request: SessionTokenRequest,\n): Promise<SessionTokenResponse> => {\n const response = await appApiClient.post<SessionTokenResponse>(\n \"/auth/session\",\n request,\n );\n\n return response.data;\n};\n\n/* Verify Routes */\n\nexport const getSessionVerify = async (): Promise<SessionVerifyResponse> => {\n const response =\n await appApiClient.get<SessionVerifyResponse>(\"/auth/verify\");\n\n return response.data;\n};\n\n/* User Routes */\n\nexport const getCurrentUser = async (): Promise<User> => {\n const response = await appApiClient.get<GetCurrentUserResponse>(\"/auth/me\");\n\n return response.data.data;\n};\n\n/* Whitelist Routes */\n\nexport const postCheckEmailInWhitelist = async (\n request: WhitelistCheckRequest,\n): Promise<WhitelistCheckResponse> => {\n const response = await appApiClient.post<WhitelistCheckResponse>(\n \"/auth/whitelist/email\",\n request,\n );\n\n return response.data;\n};\n\nexport const postCheckAddressInWhitelist = async (\n request: AddressWhitelistCheckRequest,\n): Promise<AddressWhitelistCheckResponse> => {\n const response = await appApiClient.post<AddressWhitelistCheckResponse>(\n \"/auth/whitelist/wallet-address\",\n request,\n );\n\n return response.data;\n};\n", "import { appApiClient } from \"../client\";\n\ntype BridgeCustomerType = \"individual\" | \"business\";\n\nexport interface GetBridgeCustomerResult {\n id: string;\n email?: string;\n status?: string;\n type?: BridgeCustomerType;\n hasAcceptedTermsOfService?: boolean;\n kycStatus?:\n | \"pending\"\n | \"approved\"\n | \"rejected\"\n | \"unknown\"\n | \"incomplete\"\n | \"awaiting_ubo\"\n | \"under_review\";\n endorsements?: Array<{\n name: string;\n status: string;\n requirements?: {\n complete: Array<string>;\n };\n }>;\n externalAccounts?: Array<{\n id: string;\n accountName: string;\n accountType: string;\n currency: string;\n bankName?: string;\n last_4?: string;\n active: boolean;\n }>;\n}\n\nexport interface GenerateBridgeKycLinksParams {\n email: string;\n type: BridgeCustomerType;\n fullName?: string;\n businessName?: string;\n}\n\nexport interface BridgeKycLink {\n kycLinkId: string;\n kycLink: string;\n kycStatus?:\n | \"pending\"\n | \"approved\"\n | \"rejected\"\n | \"unknown\"\n | \"incomplete\"\n | \"awaiting_ubo\"\n | \"under_review\";\n tosLink: string;\n tosStatus?: string;\n customerId: string;\n}\n\nexport interface CreateBridgePlaidLinkTokenParams {\n customerId: string;\n products?: string[];\n redirectUri?: string;\n}\n\nexport interface CreateBridgePlaidLinkTokenResult {\n linkToken: string;\n linkTokenExpiresAt?: string;\n callbackUrl?: string;\n}\n\nexport interface BridgeExchangePlaidPublicTokenParams {\n publicToken: string;\n linkToken: string;\n}\n\nexport interface BridgeExchangePlaidPublicTokenResult {\n success: boolean;\n message: string;\n}\n\nexport interface GetBridgeExternalAccountsResult {\n externalAccounts: Array<{\n id: string;\n accountName: string;\n accountType: string;\n currency: string;\n bankName?: string;\n last_4?: string;\n status: string;\n address?: {\n streetLine1?: string;\n streetLine2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n }>;\n}\n\nexport interface GetBridgeLiquidationAddressesResult {\n liquidationAddresses: Array<{\n id: string;\n address: string;\n externalAccountId?: string;\n chain?: string;\n currency?: string;\n blockchainMemo?: string;\n }>;\n}\n\nexport interface CreateBridgeLiquidationAddressParams {\n customerId: string;\n chain: string;\n currency: string;\n externalAccountId?: string;\n externalAccountAddress?: {\n streetLine1?: string;\n streetLine2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n destinationPaymentRail?: string;\n destinationCurrency?: string;\n destinationWireMessage?: string;\n destinationAddress?: string;\n customDeveloperFeePercent?: string;\n}\n\nexport interface CreateBridgeLiquidationAddressResult {\n id: string;\n address: string;\n chain?: string;\n currency?: string;\n blockchainMemo?: string;\n}\n\nexport interface CreateBridgeTransferParams {\n customerId: string;\n amount: string;\n sourceExternalAccountId: string;\n destinationWalletAddress: string;\n chainId: number;\n developerFee?: string;\n}\n\nexport interface CreateBridgeTransferResult {\n id: string;\n state: string;\n amount: string | null;\n source: {\n payment_rail: string;\n currency: string;\n external_account_id?: string;\n description?: string;\n };\n destination: {\n payment_rail: string;\n currency: string;\n to_address?: string;\n };\n source_deposit_instructions?: {\n payment_rail: string;\n amount: string;\n currency: string;\n deposit_message: string;\n bank_name: string;\n bank_address: string;\n bank_routing_number: string;\n bank_account_number: string;\n bank_beneficiary_name: string;\n bank_beneficiary_address: string;\n };\n receipt: {\n initial_amount: string;\n developer_fee: string;\n exchange_fee: string;\n subtotal_amount: string;\n gas_fee: string;\n final_amount: string;\n url: string;\n };\n created_at: string;\n updated_at: string;\n}\n\nexport const getBridgeCustomer = async (\n customerId: string,\n): Promise<GetBridgeCustomerResult> => {\n const response = await appApiClient.get<GetBridgeCustomerResult>(\n \"/bridge/customer\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const generateBridgeKycLinks = async (\n request: GenerateBridgeKycLinksParams,\n): Promise<BridgeKycLink> => {\n const response = await appApiClient.post<BridgeKycLink>(\n \"/bridge/kyc-links\",\n request,\n );\n\n return response.data;\n};\n\nexport const getBridgeKycLinkStatus = async (\n kycLinkId: string,\n): Promise<BridgeKycLink> => {\n const response = await appApiClient.get<BridgeKycLink>(\n \"/bridge/kyc-links/status\",\n { params: { kycLinkId } },\n );\n\n return response.data;\n};\n\nexport const createBridgePlaidLinkToken = async (\n request: CreateBridgePlaidLinkTokenParams,\n): Promise<CreateBridgePlaidLinkTokenResult> => {\n const response = await appApiClient.post<CreateBridgePlaidLinkTokenResult>(\n \"/bridge/plaid/link-token\",\n request,\n );\n\n return response.data;\n};\n\nexport const bridgeExchangePlaidPublicToken = async (\n request: BridgeExchangePlaidPublicTokenParams,\n): Promise<BridgeExchangePlaidPublicTokenResult> => {\n const response =\n await appApiClient.post<BridgeExchangePlaidPublicTokenResult>(\n \"/bridge/plaid/exchange-token\",\n request,\n );\n\n return response.data;\n};\n\nexport const getBridgeExternalAccounts = async (\n customerId: string,\n): Promise<GetBridgeExternalAccountsResult> => {\n const response = await appApiClient.get<GetBridgeExternalAccountsResult>(\n \"/bridge/external-accounts\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const getBridgeLiquidationAddresses = async (\n customerId: string,\n): Promise<GetBridgeLiquidationAddressesResult> => {\n const response = await appApiClient.get<GetBridgeLiquidationAddressesResult>(\n \"/bridge/liquidation-addresses\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const createBridgeLiquidationAddress = async (\n request: CreateBridgeLiquidationAddressParams,\n): Promise<CreateBridgeLiquidationAddressResult> => {\n const response =\n await appApiClient.post<CreateBridgeLiquidationAddressResult>(\n \"/bridge/liquidation-addresses\",\n request,\n );\n\n return response.data;\n};\n\nexport const createBridgeTransfer = async (\n request: CreateBridgeTransferParams,\n): Promise<CreateBridgeTransferResult> => {\n const response = await appApiClient.post<CreateBridgeTransferResult>(\n \"/bridge/transfer\",\n request,\n );\n\n return response.data;\n};\n\nexport interface UpdateBridgeExternalAccountAddressParams {\n customerId: string;\n externalAccountId: string;\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n };\n}\n\nexport const updateBridgeExternalAccountAddress = async (\n customerId: string,\n externalAccountId: string,\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n },\n): Promise<{ success: boolean }> => {\n const response = await appApiClient.put<{ success: boolean }>(\n \"/bridge/external-accounts/update-address\",\n {\n customerId,\n externalAccountId,\n address,\n },\n );\n\n return response.data;\n};\n", "import type {\n GetDelegateAddressRequest,\n GetDelegateAddressResponse,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const getDelegateAddress = async (\n request: GetDelegateAddressRequest,\n): Promise<GetDelegateAddressResponse> => {\n const response = await appApiClient.get<GetDelegateAddressResponse>(\n `/config/delegate-address/${request.chainId}`,\n );\n\n return response.data;\n};\n", "import type {\n InstructionActivateRequest,\n InstructionActivateResponse,\n InstructionBuild,\n InstructionBuildRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const buildInstruction = async (\n request: InstructionBuildRequest,\n): Promise<InstructionBuild> => {\n const response = await appApiClient.post<InstructionBuild>(\n \"/instruction/build\",\n request,\n );\n\n return response.data;\n};\n\nexport const activateInstruction = async (\n request: InstructionActivateRequest,\n): Promise<InstructionActivateResponse> => {\n const response = await appApiClient.post<InstructionActivateResponse>(\n \"/instruction/activate\",\n request,\n );\n\n return response.data;\n};\n", "import type {\n GetIntegrationRequest,\n IntegrationResponse,\n UpdateIntegrationRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const getIntegration = async (\n request: GetIntegrationRequest,\n): Promise<IntegrationResponse> => {\n const response = await appApiClient.post<IntegrationResponse>(\n \"/integration/get\",\n request,\n );\n\n return response.data;\n};\n\nexport const upsertIntegration = async (\n request: UpdateIntegrationRequest,\n): Promise<IntegrationResponse> => {\n const response = await appApiClient.put<IntegrationResponse>(\n \"/integration\",\n request,\n );\n\n return response.data;\n};\n", "import type {\n PaymentRequestBuildRequest,\n PaymentRequestBuildResponse,\n PaymentRequestNewRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const buildPaymentRequest = async (\n request: PaymentRequestBuildRequest,\n): Promise<PaymentRequestBuildResponse> => {\n const response = await appApiClient.post<PaymentRequestBuildResponse>(\n \"/payment/request/build\",\n request,\n );\n\n return response.data;\n};\n\nexport const newPaymentRequest = async (\n request: PaymentRequestNewRequest,\n): Promise<unknown> => {\n const response = await appApiClient.post<unknown>(\n \"/payment/request/new\",\n request,\n );\n\n return response.data;\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["export * from \"./client\";\nexport * from \"./routes\";\n", "import axios from \"axios\";\n\nimport { isString, logger } from \"@otim/utils/helpers\";\n\nimport { APP_API_URL } from \"../env\";\n\nconst getApiUrl = (): string => {\n const appApiUrl = APP_API_URL;\n\n if (!isString(appApiUrl) || appApiUrl.trim() === \"\") {\n const errorMessage = \"APP API Client URL must be defined\";\n logger.error(errorMessage, { context: \"App Server Client\" });\n throw new Error(errorMessage);\n }\n\n return appApiUrl;\n};\n\nlet authTokenGetter: (() => Promise<string | undefined>) | null = null;\n\nexport const setAuthTokenGetter = (\n getter: () => Promise<string | undefined>,\n) => {\n authTokenGetter = getter;\n};\n\nexport const appApiClient = axios.create({\n baseURL: getApiUrl(),\n timeout: 30000,\n});\n\nappApiClient.interceptors.request.use(async (config) => {\n if (authTokenGetter) {\n const token = await authTokenGetter();\n if (token) {\n config.headers = config.headers ?? {};\n config.headers.Authorization = `Bearer ${token}`;\n }\n }\n return config;\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 { z, ZodObject } from \"zod\";\n\nexport type Nullable<T> = T | null;\nexport type Nullish<T> = T | null | undefined;\nexport type Optional<T> = T | undefined;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- any is ok\nexport type Any = any;\n\nexport type NumberOrString = number | string;\n\nexport type OverrideProps<T, TOverridden> = Omit<T, keyof TOverridden> &\n TOverridden;\n\nexport type NonEmptyArray<T> = [T, ...T[]];\n\nexport interface DataRecord {\n [value: string]: Nullish<DataRecord | string | number | boolean>;\n}\n\nexport interface Input<T> {\n input: T;\n}\n\nexport type ZodCustom<Values extends object> = ZodObject<{\n [P in keyof Values]: z.ZodType<Values[P]>;\n}>;\n\nexport const isError = (value: unknown): value is Error =>\n value instanceof Error;\n\nexport const isFunction = (\n value: unknown,\n): value is (...args: unknown[]) => unknown => typeof value === \"function\";\n\nexport const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\nexport const isNumber = (value: unknown): value is number =>\n typeof value === \"number\";\n\nexport const isString = (value: unknown): value is string =>\n typeof value === \"string\";\n\nexport const isUndefined = (value: unknown): value is undefined =>\n typeof value === \"undefined\";\n\nexport const isBoolean = (value: unknown): value is boolean =>\n typeof value === \"boolean\";\n\n/**\n * Safely extracts a string from an unknown value.\n * @param value - The value to extract from\n * @param fallback - Optional fallback value if extraction fails\n * @returns The extracted string or fallback/undefined\n */\nexport const extractString = (\n value: unknown,\n fallback?: string,\n): Optional<string> => {\n return isString(value) ? value : fallback;\n};\n\n/**\n * Safely extracts a number from an unknown value.\n * Handles both number and string representations.\n * @param value - The value to extract from\n * @returns The extracted number or undefined\n */\nexport const extractNumber = (value: unknown): Optional<number> => {\n if (isNumber(value)) {\n return value;\n }\n\n if (isString(value)) {\n const parsed = Number.parseFloat(value);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n\n return undefined;\n};\n", "import type {\n DelegationCreateRequest,\n DelegationCreateResponse,\n DelegationStatusRequest,\n DelegationStatusResponse,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\n/* Delegation Routes */\n\nexport const createDelegation = async (\n request: DelegationCreateRequest,\n): Promise<DelegationCreateResponse> => {\n const response = await appApiClient.post<DelegationCreateResponse>(\n \"/account/delegation\",\n request,\n );\n\n return response.data;\n};\n\nexport const getDelegationStatus = async (\n request: DelegationStatusRequest,\n): Promise<DelegationStatusResponse> => {\n const response = await appApiClient.get<DelegationStatusResponse>(\n \"/account/delegation/status\",\n { params: request },\n );\n\n return response.data;\n};\n", "import type {\n AddressWhitelistCheckRequest,\n AddressWhitelistCheckResponse,\n AuthLoginRequest,\n AuthLoginResponse,\n ChainIdResponse,\n ChainSuccessResponse,\n GetCurrentUserResponse,\n SessionTokenRequest,\n SessionTokenResponse,\n SessionVerifyResponse,\n SetChainIdRequest,\n TurnkeyLoginRequest,\n TurnkeyLoginResponse,\n TurnkeyVerificationRequest,\n TurnkeyVerificationResponse,\n WhitelistCheckRequest,\n WhitelistCheckResponse,\n} from \"@otim/utils/api\";\nimport type { User } from \"@otim/utils/schemas\";\n\nimport { appApiClient } from \"../client\";\n\n/* Login Routes */\n\nexport const postLogin = async (\n request: AuthLoginRequest,\n): Promise<AuthLoginResponse> => {\n const response = await appApiClient.post<AuthLoginResponse>(\n \"/auth/login\",\n request,\n );\n\n return response.data;\n};\n\n/* Turnkey Routes */\n\nexport const turnkeyVerification = async (\n request: TurnkeyVerificationRequest,\n): Promise<TurnkeyVerificationResponse> => {\n const response = await appApiClient.post<TurnkeyVerificationResponse>(\n \"/auth/turnkey-verification\",\n request,\n );\n\n return response.data;\n};\n\nexport const turnkeyLogin = async (\n request: TurnkeyLoginRequest,\n): Promise<TurnkeyLoginResponse> => {\n const response = await appApiClient.post<TurnkeyLoginResponse>(\n \"/auth/turnkey-login\",\n request,\n );\n\n return response.data;\n};\n\n/* Client API Routes */\n\nexport async function getNonce(): Promise<string> {\n const response = await appApiClient.get<{ nonce: string }>(\"/auth/nonce\");\n\n return response.data.nonce;\n}\n\nexport async function verifyAuthentication(params: {\n message: string;\n signature: string;\n}): Promise<{\n authorization: string;\n user: User;\n}> {\n const response = await appApiClient.post<{\n authorization: string;\n user: User;\n }>(\"/auth/authenticate\", params);\n\n return response.data;\n}\n\nexport async function setSessionToken(\n sessionToken: string,\n): Promise<{ success: boolean }> {\n const response = await appApiClient.post<{ success: boolean }>(\n \"/auth/session\",\n { sessionToken },\n );\n\n return response.data;\n}\n\nexport async function destroySessionToken(): Promise<{ success: boolean }> {\n const response = await appApiClient.delete<{ success: boolean }>(\n \"/auth/session\",\n );\n\n return response.data;\n}\n\n/* Chain Routes */\n\nexport const getChainId = async (): Promise<ChainIdResponse> => {\n const response = await appApiClient.get<ChainIdResponse>(\"/auth/chain\");\n\n return response.data;\n};\n\nexport const postChainId = async (\n request: SetChainIdRequest,\n): Promise<ChainSuccessResponse> => {\n const response = await appApiClient.post<ChainSuccessResponse>(\n \"/auth/chain\",\n request,\n );\n\n return response.data;\n};\n\nexport const deleteChainId = async (): Promise<ChainSuccessResponse> => {\n const response =\n await appApiClient.delete<ChainSuccessResponse>(\"/auth/chain\");\n\n return response.data;\n};\n\n/* Session Routes */\n\nexport const postSessionToken = async (\n request: SessionTokenRequest,\n): Promise<SessionTokenResponse> => {\n const response = await appApiClient.post<SessionTokenResponse>(\n \"/auth/session\",\n request,\n );\n\n return response.data;\n};\n\n/* Verify Routes */\n\nexport const getSessionVerify = async (): Promise<SessionVerifyResponse> => {\n const response =\n await appApiClient.get<SessionVerifyResponse>(\"/auth/verify\");\n\n return response.data;\n};\n\n/* User Routes */\n\nexport const getCurrentUser = async (): Promise<User> => {\n const response = await appApiClient.get<GetCurrentUserResponse>(\"/auth/me\");\n\n return response.data.data;\n};\n\n/* Whitelist Routes */\n\nexport const postCheckEmailInWhitelist = async (\n request: WhitelistCheckRequest,\n): Promise<WhitelistCheckResponse> => {\n const response = await appApiClient.post<WhitelistCheckResponse>(\n \"/auth/whitelist/email\",\n request,\n );\n\n return response.data;\n};\n\nexport const postCheckAddressInWhitelist = async (\n request: AddressWhitelistCheckRequest,\n): Promise<AddressWhitelistCheckResponse> => {\n const response = await appApiClient.post<AddressWhitelistCheckResponse>(\n \"/auth/whitelist/wallet-address\",\n request,\n );\n\n return response.data;\n};\n", "import { appApiClient } from \"../client\";\n\ntype BridgeCustomerType = \"individual\" | \"business\";\n\nexport interface GetBridgeCustomerResult {\n id: string;\n email?: string;\n status?: string;\n type?: BridgeCustomerType;\n hasAcceptedTermsOfService?: boolean;\n kycStatus?:\n | \"pending\"\n | \"approved\"\n | \"rejected\"\n | \"unknown\"\n | \"incomplete\"\n | \"awaiting_ubo\"\n | \"under_review\";\n endorsements?: Array<{\n name: string;\n status: string;\n requirements?: {\n complete: Array<string>;\n };\n }>;\n externalAccounts?: Array<{\n id: string;\n accountName: string;\n accountType: string;\n currency: string;\n bankName?: string;\n last_4?: string;\n active: boolean;\n }>;\n}\n\nexport interface GenerateBridgeKycLinksParams {\n email: string;\n type: BridgeCustomerType;\n fullName?: string;\n businessName?: string;\n}\n\nexport interface BridgeKycLink {\n kycLinkId: string;\n kycLink: string;\n kycStatus?:\n | \"pending\"\n | \"approved\"\n | \"rejected\"\n | \"unknown\"\n | \"incomplete\"\n | \"awaiting_ubo\"\n | \"under_review\";\n tosLink: string;\n tosStatus?: string;\n customerId: string;\n}\n\nexport interface CreateBridgePlaidLinkTokenParams {\n customerId: string;\n products?: string[];\n redirectUri?: string;\n}\n\nexport interface CreateBridgePlaidLinkTokenResult {\n linkToken: string;\n linkTokenExpiresAt?: string;\n callbackUrl?: string;\n}\n\nexport interface BridgeExchangePlaidPublicTokenParams {\n publicToken: string;\n linkToken: string;\n}\n\nexport interface BridgeExchangePlaidPublicTokenResult {\n success: boolean;\n message: string;\n}\n\nexport interface GetBridgeExternalAccountsResult {\n externalAccounts: Array<{\n id: string;\n accountName: string;\n accountType: string;\n currency: string;\n bankName?: string;\n last_4?: string;\n status: string;\n address?: {\n streetLine1?: string;\n streetLine2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n }>;\n}\n\nexport interface GetBridgeLiquidationAddressesResult {\n liquidationAddresses: Array<{\n id: string;\n address: string;\n externalAccountId?: string;\n chain?: string;\n currency?: string;\n blockchainMemo?: string;\n }>;\n}\n\nexport interface CreateBridgeLiquidationAddressParams {\n customerId: string;\n chain: string;\n currency: string;\n externalAccountId?: string;\n externalAccountAddress?: {\n streetLine1?: string;\n streetLine2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n destinationPaymentRail?: string;\n destinationCurrency?: string;\n destinationWireMessage?: string;\n destinationAddress?: string;\n customDeveloperFeePercent?: string;\n}\n\nexport interface CreateBridgeLiquidationAddressResult {\n id: string;\n address: string;\n chain?: string;\n currency?: string;\n blockchainMemo?: string;\n}\n\nexport interface CreateBridgeTransferParams {\n customerId: string;\n amount: string;\n sourceExternalAccountId: string;\n destinationWalletAddress: string;\n chainId: number;\n developerFee?: string;\n}\n\nexport interface CreateBridgeTransferResult {\n id: string;\n state: string;\n amount: string | null;\n source: {\n payment_rail: string;\n currency: string;\n external_account_id?: string;\n description?: string;\n };\n destination: {\n payment_rail: string;\n currency: string;\n to_address?: string;\n };\n source_deposit_instructions?: {\n payment_rail: string;\n amount: string;\n currency: string;\n deposit_message: string;\n bank_name: string;\n bank_address: string;\n bank_routing_number: string;\n bank_account_number: string;\n bank_beneficiary_name: string;\n bank_beneficiary_address: string;\n };\n receipt: {\n initial_amount: string;\n developer_fee: string;\n exchange_fee: string;\n subtotal_amount: string;\n gas_fee: string;\n final_amount: string;\n url: string;\n };\n created_at: string;\n updated_at: string;\n}\n\nexport const getBridgeCustomer = async (\n customerId: string,\n): Promise<GetBridgeCustomerResult> => {\n const response = await appApiClient.get<GetBridgeCustomerResult>(\n \"/bridge/customer\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const generateBridgeKycLinks = async (\n request: GenerateBridgeKycLinksParams,\n): Promise<BridgeKycLink> => {\n const response = await appApiClient.post<BridgeKycLink>(\n \"/bridge/kyc-links\",\n request,\n );\n\n return response.data;\n};\n\nexport const getBridgeKycLinkStatus = async (\n kycLinkId: string,\n): Promise<BridgeKycLink> => {\n const response = await appApiClient.get<BridgeKycLink>(\n \"/bridge/kyc-links/status\",\n { params: { kycLinkId } },\n );\n\n return response.data;\n};\n\nexport const createBridgePlaidLinkToken = async (\n request: CreateBridgePlaidLinkTokenParams,\n): Promise<CreateBridgePlaidLinkTokenResult> => {\n const response = await appApiClient.post<CreateBridgePlaidLinkTokenResult>(\n \"/bridge/plaid/link-token\",\n request,\n );\n\n return response.data;\n};\n\nexport const bridgeExchangePlaidPublicToken = async (\n request: BridgeExchangePlaidPublicTokenParams,\n): Promise<BridgeExchangePlaidPublicTokenResult> => {\n const response =\n await appApiClient.post<BridgeExchangePlaidPublicTokenResult>(\n \"/bridge/plaid/exchange-token\",\n request,\n );\n\n return response.data;\n};\n\nexport const getBridgeExternalAccounts = async (\n customerId: string,\n): Promise<GetBridgeExternalAccountsResult> => {\n const response = await appApiClient.get<GetBridgeExternalAccountsResult>(\n \"/bridge/external-accounts\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const getBridgeLiquidationAddresses = async (\n customerId: string,\n): Promise<GetBridgeLiquidationAddressesResult> => {\n const response = await appApiClient.get<GetBridgeLiquidationAddressesResult>(\n \"/bridge/liquidation-addresses\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const createBridgeLiquidationAddress = async (\n request: CreateBridgeLiquidationAddressParams,\n): Promise<CreateBridgeLiquidationAddressResult> => {\n const response =\n await appApiClient.post<CreateBridgeLiquidationAddressResult>(\n \"/bridge/liquidation-addresses\",\n request,\n );\n\n return response.data;\n};\n\nexport const createBridgeTransfer = async (\n request: CreateBridgeTransferParams,\n): Promise<CreateBridgeTransferResult> => {\n const response = await appApiClient.post<CreateBridgeTransferResult>(\n \"/bridge/transfer\",\n request,\n );\n\n return response.data;\n};\n\nexport interface UpdateBridgeExternalAccountAddressParams {\n customerId: string;\n externalAccountId: string;\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n };\n}\n\nexport const updateBridgeExternalAccountAddress = async (\n customerId: string,\n externalAccountId: string,\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n },\n): Promise<{ success: boolean }> => {\n const response = await appApiClient.put<{ success: boolean }>(\n \"/bridge/external-accounts/update-address\",\n {\n customerId,\n externalAccountId,\n address,\n },\n );\n\n return response.data;\n};\n\nexport interface CreateBridgeIbanExternalAccountParams {\n customerId: string;\n currency: \"eur\";\n accountOwnerName: string;\n bankName?: string;\n accountOwnerType: \"individual\" | \"business\";\n iban: {\n accountNumber: string;\n bic: string;\n country: string;\n };\n firstName?: string;\n lastName?: string;\n businessName?: string;\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n postalCode: string;\n country: string;\n };\n}\n\nexport interface CreateBridgeIbanExternalAccountResult {\n id: string;\n customerId: string;\n accountType: \"iban\";\n currency: \"eur\";\n accountOwnerName: string;\n bankName?: string;\n active: boolean;\n iban: {\n last4: string;\n bic: string;\n country: string;\n };\n accountOwnerType: \"individual\" | \"business\";\n firstName?: string;\n lastName?: string;\n businessName?: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport const createBridgeIbanExternalAccount = async (\n request: CreateBridgeIbanExternalAccountParams,\n): Promise<CreateBridgeIbanExternalAccountResult> => {\n const response =\n await appApiClient.post<CreateBridgeIbanExternalAccountResult>(\n \"/bridge/external-accounts/iban\",\n request,\n );\n\n return response.data;\n};\n\nexport interface EnsureOnrampRouteParams {\n customerId: string;\n externalAccountId: string;\n chainId: number;\n walletAddress: string;\n destinationCurrency?: string;\n}\n\nexport interface EnsureOfframpRouteParams {\n customerId: string;\n externalAccountId: string;\n chainId: number;\n currency?: string;\n}\n\nexport const ensureOnrampRoute = async (\n params: EnsureOnrampRouteParams,\n): Promise<{ success: boolean }> => {\n const response = await appApiClient.post<{ success: boolean }>(\n \"/bridge/routes/ensure-onramp\",\n params,\n );\n\n return response.data;\n};\n\nexport const ensureOfframpRoute = async (\n params: EnsureOfframpRouteParams,\n): Promise<{ success: boolean }> => {\n const response = await appApiClient.post<{ success: boolean }>(\n \"/bridge/routes/ensure-offramp\",\n params,\n );\n\n return response.data;\n};\n", "import type {\n GetDelegateAddressRequest,\n GetDelegateAddressResponse,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const getDelegateAddress = async (\n request: GetDelegateAddressRequest,\n): Promise<GetDelegateAddressResponse> => {\n const response = await appApiClient.get<GetDelegateAddressResponse>(\n `/config/delegate-address/${request.chainId}`,\n );\n\n return response.data;\n};\n", "import type {\n InstructionActivateRequest,\n InstructionActivateResponse,\n InstructionBuild,\n InstructionBuildRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const buildInstruction = async (\n request: InstructionBuildRequest,\n): Promise<InstructionBuild> => {\n const response = await appApiClient.post<InstructionBuild>(\n \"/instruction/build\",\n request,\n );\n\n return response.data;\n};\n\nexport const activateInstruction = async (\n request: InstructionActivateRequest,\n): Promise<InstructionActivateResponse> => {\n const response = await appApiClient.post<InstructionActivateResponse>(\n \"/instruction/activate\",\n request,\n );\n\n return response.data;\n};\n", "import type {\n GetIntegrationRequest,\n IntegrationResponse,\n UpdateIntegrationRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const getIntegration = async (\n request: GetIntegrationRequest,\n): Promise<IntegrationResponse> => {\n const response = await appApiClient.post<IntegrationResponse>(\n \"/integration/get\",\n request,\n );\n\n return response.data;\n};\n\nexport const upsertIntegration = async (\n request: UpdateIntegrationRequest,\n): Promise<IntegrationResponse> => {\n const response = await appApiClient.put<IntegrationResponse>(\n \"/integration\",\n request,\n );\n\n return response.data;\n};\n", "import type {\n BuildSettlementRequest,\n BuildSettlementResponse,\n PaymentRequestBuildRequest,\n PaymentRequestBuildResponse,\n PaymentRequestNewRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const buildPaymentRequest = async (\n request: PaymentRequestBuildRequest,\n): Promise<PaymentRequestBuildResponse> => {\n const response = await appApiClient.post<PaymentRequestBuildResponse>(\n \"/orchestration/build\",\n request,\n );\n\n return response.data;\n};\n\nexport const newPaymentRequest = async (\n request: PaymentRequestNewRequest,\n): Promise<unknown> => {\n const response = await appApiClient.post<unknown>(\n \"/orchestration/new\",\n request,\n );\n\n return response.data;\n};\n\nexport const buildSettlementOrchestration = async (\n request: BuildSettlementRequest,\n): Promise<BuildSettlementResponse> => {\n const response = await appApiClient.post<BuildSettlementResponse>(\n \"/orchestration/build/settlement\",\n request,\n );\n\n return response.data;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["axios"]
|
|
7
7
|
}
|
package/dist/server/index.mjs
CHANGED
|
@@ -6,8 +6,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
6
6
|
import axios from "axios";
|
|
7
7
|
|
|
8
8
|
// src/env.ts
|
|
9
|
-
var BUILD_MODE = "
|
|
10
|
-
var APP_API_URL = "
|
|
9
|
+
var BUILD_MODE = "development";
|
|
10
|
+
var APP_API_URL = "http://localhost:3000/api";
|
|
11
11
|
|
|
12
12
|
// src/helpers/logger.ts
|
|
13
13
|
var Logger = class {
|
|
@@ -292,6 +292,27 @@ var updateBridgeExternalAccountAddress = async (customerId, externalAccountId, a
|
|
|
292
292
|
);
|
|
293
293
|
return response.data;
|
|
294
294
|
};
|
|
295
|
+
var createBridgeIbanExternalAccount = async (request) => {
|
|
296
|
+
const response = await appApiClient.post(
|
|
297
|
+
"/bridge/external-accounts/iban",
|
|
298
|
+
request
|
|
299
|
+
);
|
|
300
|
+
return response.data;
|
|
301
|
+
};
|
|
302
|
+
var ensureOnrampRoute = async (params) => {
|
|
303
|
+
const response = await appApiClient.post(
|
|
304
|
+
"/bridge/routes/ensure-onramp",
|
|
305
|
+
params
|
|
306
|
+
);
|
|
307
|
+
return response.data;
|
|
308
|
+
};
|
|
309
|
+
var ensureOfframpRoute = async (params) => {
|
|
310
|
+
const response = await appApiClient.post(
|
|
311
|
+
"/bridge/routes/ensure-offramp",
|
|
312
|
+
params
|
|
313
|
+
);
|
|
314
|
+
return response.data;
|
|
315
|
+
};
|
|
295
316
|
|
|
296
317
|
// src/server/routes/config.ts
|
|
297
318
|
var getDelegateAddress = async (request) => {
|
|
@@ -336,14 +357,21 @@ var upsertIntegration = async (request) => {
|
|
|
336
357
|
// src/server/routes/payments.ts
|
|
337
358
|
var buildPaymentRequest = async (request) => {
|
|
338
359
|
const response = await appApiClient.post(
|
|
339
|
-
"/
|
|
360
|
+
"/orchestration/build",
|
|
340
361
|
request
|
|
341
362
|
);
|
|
342
363
|
return response.data;
|
|
343
364
|
};
|
|
344
365
|
var newPaymentRequest = async (request) => {
|
|
345
366
|
const response = await appApiClient.post(
|
|
346
|
-
"/
|
|
367
|
+
"/orchestration/new",
|
|
368
|
+
request
|
|
369
|
+
);
|
|
370
|
+
return response.data;
|
|
371
|
+
};
|
|
372
|
+
var buildSettlementOrchestration = async (request) => {
|
|
373
|
+
const response = await appApiClient.post(
|
|
374
|
+
"/orchestration/build/settlement",
|
|
347
375
|
request
|
|
348
376
|
);
|
|
349
377
|
return response.data;
|
|
@@ -354,12 +382,16 @@ export {
|
|
|
354
382
|
bridgeExchangePlaidPublicToken,
|
|
355
383
|
buildInstruction,
|
|
356
384
|
buildPaymentRequest,
|
|
385
|
+
buildSettlementOrchestration,
|
|
386
|
+
createBridgeIbanExternalAccount,
|
|
357
387
|
createBridgeLiquidationAddress,
|
|
358
388
|
createBridgePlaidLinkToken,
|
|
359
389
|
createBridgeTransfer,
|
|
360
390
|
createDelegation,
|
|
361
391
|
deleteChainId,
|
|
362
392
|
destroySessionToken,
|
|
393
|
+
ensureOfframpRoute,
|
|
394
|
+
ensureOnrampRoute,
|
|
363
395
|
generateBridgeKycLinks,
|
|
364
396
|
getBridgeCustomer,
|
|
365
397
|
getBridgeExternalAccounts,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/server/client.ts", "../../src/env.ts", "../../src/helpers/logger.ts", "../../src/helpers/types.ts", "../../src/server/routes/account.ts", "../../src/server/routes/auth.ts", "../../src/server/routes/bridge.ts", "../../src/server/routes/config.ts", "../../src/server/routes/instruction.ts", "../../src/server/routes/integration.ts", "../../src/server/routes/payments.ts"],
|
|
4
|
-
"sourcesContent": ["import axios from \"axios\";\n\nimport { isString, logger } from \"@otim/utils/helpers\";\n\nimport { APP_API_URL } from \"../env\";\n\nconst getApiUrl = (): string => {\n const appApiUrl = APP_API_URL;\n\n if (!isString(appApiUrl) || appApiUrl.trim() === \"\") {\n const errorMessage = \"APP API Client URL must be defined\";\n logger.error(errorMessage, { context: \"App Server Client\" });\n throw new Error(errorMessage);\n }\n\n return appApiUrl;\n};\n\nlet authTokenGetter: (() => Promise<string | undefined>) | null = null;\n\nexport const setAuthTokenGetter = (\n getter: () => Promise<string | undefined>,\n) => {\n authTokenGetter = getter;\n};\n\nexport const appApiClient = axios.create({\n baseURL: getApiUrl(),\n timeout: 30000,\n});\n\nappApiClient.interceptors.request.use(async (config) => {\n if (authTokenGetter) {\n const token = await authTokenGetter();\n if (token) {\n config.headers = config.headers ?? {};\n config.headers.Authorization = `Bearer ${token}`;\n }\n }\n return config;\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 { z, ZodObject } from \"zod\";\n\nexport type Nullable<T> = T | null;\nexport type Nullish<T> = T | null | undefined;\nexport type Optional<T> = T | undefined;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- any is ok\nexport type Any = any;\n\nexport type NumberOrString = number | string;\n\nexport type OverrideProps<T, TOverridden> = Omit<T, keyof TOverridden> &\n TOverridden;\n\nexport type NonEmptyArray<T> = [T, ...T[]];\n\nexport interface DataRecord {\n [value: string]: Nullish<DataRecord | string | number | boolean>;\n}\n\nexport interface Input<T> {\n input: T;\n}\n\nexport type ZodCustom<Values extends object> = ZodObject<{\n [P in keyof Values]: z.ZodType<Values[P]>;\n}>;\n\nexport const isError = (value: unknown): value is Error =>\n value instanceof Error;\n\nexport const isFunction = (\n value: unknown,\n): value is (...args: unknown[]) => unknown => typeof value === \"function\";\n\nexport const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\nexport const isNumber = (value: unknown): value is number =>\n typeof value === \"number\";\n\nexport const isString = (value: unknown): value is string =>\n typeof value === \"string\";\n\nexport const isUndefined = (value: unknown): value is undefined =>\n typeof value === \"undefined\";\n\nexport const isBoolean = (value: unknown): value is boolean =>\n typeof value === \"boolean\";\n\n/**\n * Safely extracts a string from an unknown value.\n * @param value - The value to extract from\n * @param fallback - Optional fallback value if extraction fails\n * @returns The extracted string or fallback/undefined\n */\nexport const extractString = (\n value: unknown,\n fallback?: string,\n): Optional<string> => {\n return isString(value) ? value : fallback;\n};\n\n/**\n * Safely extracts a number from an unknown value.\n * Handles both number and string representations.\n * @param value - The value to extract from\n * @returns The extracted number or undefined\n */\nexport const extractNumber = (value: unknown): Optional<number> => {\n if (isNumber(value)) {\n return value;\n }\n\n if (isString(value)) {\n const parsed = Number.parseFloat(value);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n\n return undefined;\n};\n", "import type {\n DelegationCreateRequest,\n DelegationCreateResponse,\n DelegationStatusRequest,\n DelegationStatusResponse,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\n/* Delegation Routes */\n\nexport const createDelegation = async (\n request: DelegationCreateRequest,\n): Promise<DelegationCreateResponse> => {\n const response = await appApiClient.post<DelegationCreateResponse>(\n \"/account/delegation\",\n request,\n );\n\n return response.data;\n};\n\nexport const getDelegationStatus = async (\n request: DelegationStatusRequest,\n): Promise<DelegationStatusResponse> => {\n const response = await appApiClient.get<DelegationStatusResponse>(\n \"/account/delegation/status\",\n { params: request },\n );\n\n return response.data;\n};\n", "import type {\n AddressWhitelistCheckRequest,\n AddressWhitelistCheckResponse,\n AuthLoginRequest,\n AuthLoginResponse,\n ChainIdResponse,\n ChainSuccessResponse,\n GetCurrentUserResponse,\n SessionTokenRequest,\n SessionTokenResponse,\n SessionVerifyResponse,\n SetChainIdRequest,\n TurnkeyLoginRequest,\n TurnkeyLoginResponse,\n TurnkeyVerificationRequest,\n TurnkeyVerificationResponse,\n WhitelistCheckRequest,\n WhitelistCheckResponse,\n} from \"@otim/utils/api\";\nimport type { User } from \"@otim/utils/schemas\";\n\nimport { appApiClient } from \"../client\";\n\n/* Login Routes */\n\nexport const postLogin = async (\n request: AuthLoginRequest,\n): Promise<AuthLoginResponse> => {\n const response = await appApiClient.post<AuthLoginResponse>(\n \"/auth/login\",\n request,\n );\n\n return response.data;\n};\n\n/* Turnkey Routes */\n\nexport const turnkeyVerification = async (\n request: TurnkeyVerificationRequest,\n): Promise<TurnkeyVerificationResponse> => {\n const response = await appApiClient.post<TurnkeyVerificationResponse>(\n \"/auth/turnkey-verification\",\n request,\n );\n\n return response.data;\n};\n\nexport const turnkeyLogin = async (\n request: TurnkeyLoginRequest,\n): Promise<TurnkeyLoginResponse> => {\n const response = await appApiClient.post<TurnkeyLoginResponse>(\n \"/auth/turnkey-login\",\n request,\n );\n\n return response.data;\n};\n\n/* Client API Routes */\n\nexport async function getNonce(): Promise<string> {\n const response = await appApiClient.get<{ nonce: string }>(\"/auth/nonce\");\n\n return response.data.nonce;\n}\n\nexport async function verifyAuthentication(params: {\n message: string;\n signature: string;\n}): Promise<{\n authorization: string;\n user: User;\n}> {\n const response = await appApiClient.post<{\n authorization: string;\n user: User;\n }>(\"/auth/authenticate\", params);\n\n return response.data;\n}\n\nexport async function setSessionToken(\n sessionToken: string,\n): Promise<{ success: boolean }> {\n const response = await appApiClient.post<{ success: boolean }>(\n \"/auth/session\",\n { sessionToken },\n );\n\n return response.data;\n}\n\nexport async function destroySessionToken(): Promise<{ success: boolean }> {\n const response = await appApiClient.delete<{ success: boolean }>(\n \"/auth/session\",\n );\n\n return response.data;\n}\n\n/* Chain Routes */\n\nexport const getChainId = async (): Promise<ChainIdResponse> => {\n const response = await appApiClient.get<ChainIdResponse>(\"/auth/chain\");\n\n return response.data;\n};\n\nexport const postChainId = async (\n request: SetChainIdRequest,\n): Promise<ChainSuccessResponse> => {\n const response = await appApiClient.post<ChainSuccessResponse>(\n \"/auth/chain\",\n request,\n );\n\n return response.data;\n};\n\nexport const deleteChainId = async (): Promise<ChainSuccessResponse> => {\n const response =\n await appApiClient.delete<ChainSuccessResponse>(\"/auth/chain\");\n\n return response.data;\n};\n\n/* Session Routes */\n\nexport const postSessionToken = async (\n request: SessionTokenRequest,\n): Promise<SessionTokenResponse> => {\n const response = await appApiClient.post<SessionTokenResponse>(\n \"/auth/session\",\n request,\n );\n\n return response.data;\n};\n\n/* Verify Routes */\n\nexport const getSessionVerify = async (): Promise<SessionVerifyResponse> => {\n const response =\n await appApiClient.get<SessionVerifyResponse>(\"/auth/verify\");\n\n return response.data;\n};\n\n/* User Routes */\n\nexport const getCurrentUser = async (): Promise<User> => {\n const response = await appApiClient.get<GetCurrentUserResponse>(\"/auth/me\");\n\n return response.data.data;\n};\n\n/* Whitelist Routes */\n\nexport const postCheckEmailInWhitelist = async (\n request: WhitelistCheckRequest,\n): Promise<WhitelistCheckResponse> => {\n const response = await appApiClient.post<WhitelistCheckResponse>(\n \"/auth/whitelist/email\",\n request,\n );\n\n return response.data;\n};\n\nexport const postCheckAddressInWhitelist = async (\n request: AddressWhitelistCheckRequest,\n): Promise<AddressWhitelistCheckResponse> => {\n const response = await appApiClient.post<AddressWhitelistCheckResponse>(\n \"/auth/whitelist/wallet-address\",\n request,\n );\n\n return response.data;\n};\n", "import { appApiClient } from \"../client\";\n\ntype BridgeCustomerType = \"individual\" | \"business\";\n\nexport interface GetBridgeCustomerResult {\n id: string;\n email?: string;\n status?: string;\n type?: BridgeCustomerType;\n hasAcceptedTermsOfService?: boolean;\n kycStatus?:\n | \"pending\"\n | \"approved\"\n | \"rejected\"\n | \"unknown\"\n | \"incomplete\"\n | \"awaiting_ubo\"\n | \"under_review\";\n endorsements?: Array<{\n name: string;\n status: string;\n requirements?: {\n complete: Array<string>;\n };\n }>;\n externalAccounts?: Array<{\n id: string;\n accountName: string;\n accountType: string;\n currency: string;\n bankName?: string;\n last_4?: string;\n active: boolean;\n }>;\n}\n\nexport interface GenerateBridgeKycLinksParams {\n email: string;\n type: BridgeCustomerType;\n fullName?: string;\n businessName?: string;\n}\n\nexport interface BridgeKycLink {\n kycLinkId: string;\n kycLink: string;\n kycStatus?:\n | \"pending\"\n | \"approved\"\n | \"rejected\"\n | \"unknown\"\n | \"incomplete\"\n | \"awaiting_ubo\"\n | \"under_review\";\n tosLink: string;\n tosStatus?: string;\n customerId: string;\n}\n\nexport interface CreateBridgePlaidLinkTokenParams {\n customerId: string;\n products?: string[];\n redirectUri?: string;\n}\n\nexport interface CreateBridgePlaidLinkTokenResult {\n linkToken: string;\n linkTokenExpiresAt?: string;\n callbackUrl?: string;\n}\n\nexport interface BridgeExchangePlaidPublicTokenParams {\n publicToken: string;\n linkToken: string;\n}\n\nexport interface BridgeExchangePlaidPublicTokenResult {\n success: boolean;\n message: string;\n}\n\nexport interface GetBridgeExternalAccountsResult {\n externalAccounts: Array<{\n id: string;\n accountName: string;\n accountType: string;\n currency: string;\n bankName?: string;\n last_4?: string;\n status: string;\n address?: {\n streetLine1?: string;\n streetLine2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n }>;\n}\n\nexport interface GetBridgeLiquidationAddressesResult {\n liquidationAddresses: Array<{\n id: string;\n address: string;\n externalAccountId?: string;\n chain?: string;\n currency?: string;\n blockchainMemo?: string;\n }>;\n}\n\nexport interface CreateBridgeLiquidationAddressParams {\n customerId: string;\n chain: string;\n currency: string;\n externalAccountId?: string;\n externalAccountAddress?: {\n streetLine1?: string;\n streetLine2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n destinationPaymentRail?: string;\n destinationCurrency?: string;\n destinationWireMessage?: string;\n destinationAddress?: string;\n customDeveloperFeePercent?: string;\n}\n\nexport interface CreateBridgeLiquidationAddressResult {\n id: string;\n address: string;\n chain?: string;\n currency?: string;\n blockchainMemo?: string;\n}\n\nexport interface CreateBridgeTransferParams {\n customerId: string;\n amount: string;\n sourceExternalAccountId: string;\n destinationWalletAddress: string;\n chainId: number;\n developerFee?: string;\n}\n\nexport interface CreateBridgeTransferResult {\n id: string;\n state: string;\n amount: string | null;\n source: {\n payment_rail: string;\n currency: string;\n external_account_id?: string;\n description?: string;\n };\n destination: {\n payment_rail: string;\n currency: string;\n to_address?: string;\n };\n source_deposit_instructions?: {\n payment_rail: string;\n amount: string;\n currency: string;\n deposit_message: string;\n bank_name: string;\n bank_address: string;\n bank_routing_number: string;\n bank_account_number: string;\n bank_beneficiary_name: string;\n bank_beneficiary_address: string;\n };\n receipt: {\n initial_amount: string;\n developer_fee: string;\n exchange_fee: string;\n subtotal_amount: string;\n gas_fee: string;\n final_amount: string;\n url: string;\n };\n created_at: string;\n updated_at: string;\n}\n\nexport const getBridgeCustomer = async (\n customerId: string,\n): Promise<GetBridgeCustomerResult> => {\n const response = await appApiClient.get<GetBridgeCustomerResult>(\n \"/bridge/customer\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const generateBridgeKycLinks = async (\n request: GenerateBridgeKycLinksParams,\n): Promise<BridgeKycLink> => {\n const response = await appApiClient.post<BridgeKycLink>(\n \"/bridge/kyc-links\",\n request,\n );\n\n return response.data;\n};\n\nexport const getBridgeKycLinkStatus = async (\n kycLinkId: string,\n): Promise<BridgeKycLink> => {\n const response = await appApiClient.get<BridgeKycLink>(\n \"/bridge/kyc-links/status\",\n { params: { kycLinkId } },\n );\n\n return response.data;\n};\n\nexport const createBridgePlaidLinkToken = async (\n request: CreateBridgePlaidLinkTokenParams,\n): Promise<CreateBridgePlaidLinkTokenResult> => {\n const response = await appApiClient.post<CreateBridgePlaidLinkTokenResult>(\n \"/bridge/plaid/link-token\",\n request,\n );\n\n return response.data;\n};\n\nexport const bridgeExchangePlaidPublicToken = async (\n request: BridgeExchangePlaidPublicTokenParams,\n): Promise<BridgeExchangePlaidPublicTokenResult> => {\n const response =\n await appApiClient.post<BridgeExchangePlaidPublicTokenResult>(\n \"/bridge/plaid/exchange-token\",\n request,\n );\n\n return response.data;\n};\n\nexport const getBridgeExternalAccounts = async (\n customerId: string,\n): Promise<GetBridgeExternalAccountsResult> => {\n const response = await appApiClient.get<GetBridgeExternalAccountsResult>(\n \"/bridge/external-accounts\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const getBridgeLiquidationAddresses = async (\n customerId: string,\n): Promise<GetBridgeLiquidationAddressesResult> => {\n const response = await appApiClient.get<GetBridgeLiquidationAddressesResult>(\n \"/bridge/liquidation-addresses\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const createBridgeLiquidationAddress = async (\n request: CreateBridgeLiquidationAddressParams,\n): Promise<CreateBridgeLiquidationAddressResult> => {\n const response =\n await appApiClient.post<CreateBridgeLiquidationAddressResult>(\n \"/bridge/liquidation-addresses\",\n request,\n );\n\n return response.data;\n};\n\nexport const createBridgeTransfer = async (\n request: CreateBridgeTransferParams,\n): Promise<CreateBridgeTransferResult> => {\n const response = await appApiClient.post<CreateBridgeTransferResult>(\n \"/bridge/transfer\",\n request,\n );\n\n return response.data;\n};\n\nexport interface UpdateBridgeExternalAccountAddressParams {\n customerId: string;\n externalAccountId: string;\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n };\n}\n\nexport const updateBridgeExternalAccountAddress = async (\n customerId: string,\n externalAccountId: string,\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n },\n): Promise<{ success: boolean }> => {\n const response = await appApiClient.put<{ success: boolean }>(\n \"/bridge/external-accounts/update-address\",\n {\n customerId,\n externalAccountId,\n address,\n },\n );\n\n return response.data;\n};\n", "import type {\n GetDelegateAddressRequest,\n GetDelegateAddressResponse,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const getDelegateAddress = async (\n request: GetDelegateAddressRequest,\n): Promise<GetDelegateAddressResponse> => {\n const response = await appApiClient.get<GetDelegateAddressResponse>(\n `/config/delegate-address/${request.chainId}`,\n );\n\n return response.data;\n};\n", "import type {\n InstructionActivateRequest,\n InstructionActivateResponse,\n InstructionBuild,\n InstructionBuildRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const buildInstruction = async (\n request: InstructionBuildRequest,\n): Promise<InstructionBuild> => {\n const response = await appApiClient.post<InstructionBuild>(\n \"/instruction/build\",\n request,\n );\n\n return response.data;\n};\n\nexport const activateInstruction = async (\n request: InstructionActivateRequest,\n): Promise<InstructionActivateResponse> => {\n const response = await appApiClient.post<InstructionActivateResponse>(\n \"/instruction/activate\",\n request,\n );\n\n return response.data;\n};\n", "import type {\n GetIntegrationRequest,\n IntegrationResponse,\n UpdateIntegrationRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const getIntegration = async (\n request: GetIntegrationRequest,\n): Promise<IntegrationResponse> => {\n const response = await appApiClient.post<IntegrationResponse>(\n \"/integration/get\",\n request,\n );\n\n return response.data;\n};\n\nexport const upsertIntegration = async (\n request: UpdateIntegrationRequest,\n): Promise<IntegrationResponse> => {\n const response = await appApiClient.put<IntegrationResponse>(\n \"/integration\",\n request,\n );\n\n return response.data;\n};\n", "import type {\n PaymentRequestBuildRequest,\n PaymentRequestBuildResponse,\n PaymentRequestNewRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const buildPaymentRequest = async (\n request: PaymentRequestBuildRequest,\n): Promise<PaymentRequestBuildResponse> => {\n const response = await appApiClient.post<PaymentRequestBuildResponse>(\n \"/payment/request/build\",\n request,\n );\n\n return response.data;\n};\n\nexport const newPaymentRequest = async (\n request: PaymentRequestNewRequest,\n): Promise<unknown> => {\n const response = await appApiClient.post<unknown>(\n \"/payment/request/new\",\n request,\n );\n\n return response.data;\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import axios from \"axios\";\n\nimport { isString, logger } from \"@otim/utils/helpers\";\n\nimport { APP_API_URL } from \"../env\";\n\nconst getApiUrl = (): string => {\n const appApiUrl = APP_API_URL;\n\n if (!isString(appApiUrl) || appApiUrl.trim() === \"\") {\n const errorMessage = \"APP API Client URL must be defined\";\n logger.error(errorMessage, { context: \"App Server Client\" });\n throw new Error(errorMessage);\n }\n\n return appApiUrl;\n};\n\nlet authTokenGetter: (() => Promise<string | undefined>) | null = null;\n\nexport const setAuthTokenGetter = (\n getter: () => Promise<string | undefined>,\n) => {\n authTokenGetter = getter;\n};\n\nexport const appApiClient = axios.create({\n baseURL: getApiUrl(),\n timeout: 30000,\n});\n\nappApiClient.interceptors.request.use(async (config) => {\n if (authTokenGetter) {\n const token = await authTokenGetter();\n if (token) {\n config.headers = config.headers ?? {};\n config.headers.Authorization = `Bearer ${token}`;\n }\n }\n return config;\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 { z, ZodObject } from \"zod\";\n\nexport type Nullable<T> = T | null;\nexport type Nullish<T> = T | null | undefined;\nexport type Optional<T> = T | undefined;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- any is ok\nexport type Any = any;\n\nexport type NumberOrString = number | string;\n\nexport type OverrideProps<T, TOverridden> = Omit<T, keyof TOverridden> &\n TOverridden;\n\nexport type NonEmptyArray<T> = [T, ...T[]];\n\nexport interface DataRecord {\n [value: string]: Nullish<DataRecord | string | number | boolean>;\n}\n\nexport interface Input<T> {\n input: T;\n}\n\nexport type ZodCustom<Values extends object> = ZodObject<{\n [P in keyof Values]: z.ZodType<Values[P]>;\n}>;\n\nexport const isError = (value: unknown): value is Error =>\n value instanceof Error;\n\nexport const isFunction = (\n value: unknown,\n): value is (...args: unknown[]) => unknown => typeof value === \"function\";\n\nexport const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\nexport const isNumber = (value: unknown): value is number =>\n typeof value === \"number\";\n\nexport const isString = (value: unknown): value is string =>\n typeof value === \"string\";\n\nexport const isUndefined = (value: unknown): value is undefined =>\n typeof value === \"undefined\";\n\nexport const isBoolean = (value: unknown): value is boolean =>\n typeof value === \"boolean\";\n\n/**\n * Safely extracts a string from an unknown value.\n * @param value - The value to extract from\n * @param fallback - Optional fallback value if extraction fails\n * @returns The extracted string or fallback/undefined\n */\nexport const extractString = (\n value: unknown,\n fallback?: string,\n): Optional<string> => {\n return isString(value) ? value : fallback;\n};\n\n/**\n * Safely extracts a number from an unknown value.\n * Handles both number and string representations.\n * @param value - The value to extract from\n * @returns The extracted number or undefined\n */\nexport const extractNumber = (value: unknown): Optional<number> => {\n if (isNumber(value)) {\n return value;\n }\n\n if (isString(value)) {\n const parsed = Number.parseFloat(value);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n\n return undefined;\n};\n", "import type {\n DelegationCreateRequest,\n DelegationCreateResponse,\n DelegationStatusRequest,\n DelegationStatusResponse,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\n/* Delegation Routes */\n\nexport const createDelegation = async (\n request: DelegationCreateRequest,\n): Promise<DelegationCreateResponse> => {\n const response = await appApiClient.post<DelegationCreateResponse>(\n \"/account/delegation\",\n request,\n );\n\n return response.data;\n};\n\nexport const getDelegationStatus = async (\n request: DelegationStatusRequest,\n): Promise<DelegationStatusResponse> => {\n const response = await appApiClient.get<DelegationStatusResponse>(\n \"/account/delegation/status\",\n { params: request },\n );\n\n return response.data;\n};\n", "import type {\n AddressWhitelistCheckRequest,\n AddressWhitelistCheckResponse,\n AuthLoginRequest,\n AuthLoginResponse,\n ChainIdResponse,\n ChainSuccessResponse,\n GetCurrentUserResponse,\n SessionTokenRequest,\n SessionTokenResponse,\n SessionVerifyResponse,\n SetChainIdRequest,\n TurnkeyLoginRequest,\n TurnkeyLoginResponse,\n TurnkeyVerificationRequest,\n TurnkeyVerificationResponse,\n WhitelistCheckRequest,\n WhitelistCheckResponse,\n} from \"@otim/utils/api\";\nimport type { User } from \"@otim/utils/schemas\";\n\nimport { appApiClient } from \"../client\";\n\n/* Login Routes */\n\nexport const postLogin = async (\n request: AuthLoginRequest,\n): Promise<AuthLoginResponse> => {\n const response = await appApiClient.post<AuthLoginResponse>(\n \"/auth/login\",\n request,\n );\n\n return response.data;\n};\n\n/* Turnkey Routes */\n\nexport const turnkeyVerification = async (\n request: TurnkeyVerificationRequest,\n): Promise<TurnkeyVerificationResponse> => {\n const response = await appApiClient.post<TurnkeyVerificationResponse>(\n \"/auth/turnkey-verification\",\n request,\n );\n\n return response.data;\n};\n\nexport const turnkeyLogin = async (\n request: TurnkeyLoginRequest,\n): Promise<TurnkeyLoginResponse> => {\n const response = await appApiClient.post<TurnkeyLoginResponse>(\n \"/auth/turnkey-login\",\n request,\n );\n\n return response.data;\n};\n\n/* Client API Routes */\n\nexport async function getNonce(): Promise<string> {\n const response = await appApiClient.get<{ nonce: string }>(\"/auth/nonce\");\n\n return response.data.nonce;\n}\n\nexport async function verifyAuthentication(params: {\n message: string;\n signature: string;\n}): Promise<{\n authorization: string;\n user: User;\n}> {\n const response = await appApiClient.post<{\n authorization: string;\n user: User;\n }>(\"/auth/authenticate\", params);\n\n return response.data;\n}\n\nexport async function setSessionToken(\n sessionToken: string,\n): Promise<{ success: boolean }> {\n const response = await appApiClient.post<{ success: boolean }>(\n \"/auth/session\",\n { sessionToken },\n );\n\n return response.data;\n}\n\nexport async function destroySessionToken(): Promise<{ success: boolean }> {\n const response = await appApiClient.delete<{ success: boolean }>(\n \"/auth/session\",\n );\n\n return response.data;\n}\n\n/* Chain Routes */\n\nexport const getChainId = async (): Promise<ChainIdResponse> => {\n const response = await appApiClient.get<ChainIdResponse>(\"/auth/chain\");\n\n return response.data;\n};\n\nexport const postChainId = async (\n request: SetChainIdRequest,\n): Promise<ChainSuccessResponse> => {\n const response = await appApiClient.post<ChainSuccessResponse>(\n \"/auth/chain\",\n request,\n );\n\n return response.data;\n};\n\nexport const deleteChainId = async (): Promise<ChainSuccessResponse> => {\n const response =\n await appApiClient.delete<ChainSuccessResponse>(\"/auth/chain\");\n\n return response.data;\n};\n\n/* Session Routes */\n\nexport const postSessionToken = async (\n request: SessionTokenRequest,\n): Promise<SessionTokenResponse> => {\n const response = await appApiClient.post<SessionTokenResponse>(\n \"/auth/session\",\n request,\n );\n\n return response.data;\n};\n\n/* Verify Routes */\n\nexport const getSessionVerify = async (): Promise<SessionVerifyResponse> => {\n const response =\n await appApiClient.get<SessionVerifyResponse>(\"/auth/verify\");\n\n return response.data;\n};\n\n/* User Routes */\n\nexport const getCurrentUser = async (): Promise<User> => {\n const response = await appApiClient.get<GetCurrentUserResponse>(\"/auth/me\");\n\n return response.data.data;\n};\n\n/* Whitelist Routes */\n\nexport const postCheckEmailInWhitelist = async (\n request: WhitelistCheckRequest,\n): Promise<WhitelistCheckResponse> => {\n const response = await appApiClient.post<WhitelistCheckResponse>(\n \"/auth/whitelist/email\",\n request,\n );\n\n return response.data;\n};\n\nexport const postCheckAddressInWhitelist = async (\n request: AddressWhitelistCheckRequest,\n): Promise<AddressWhitelistCheckResponse> => {\n const response = await appApiClient.post<AddressWhitelistCheckResponse>(\n \"/auth/whitelist/wallet-address\",\n request,\n );\n\n return response.data;\n};\n", "import { appApiClient } from \"../client\";\n\ntype BridgeCustomerType = \"individual\" | \"business\";\n\nexport interface GetBridgeCustomerResult {\n id: string;\n email?: string;\n status?: string;\n type?: BridgeCustomerType;\n hasAcceptedTermsOfService?: boolean;\n kycStatus?:\n | \"pending\"\n | \"approved\"\n | \"rejected\"\n | \"unknown\"\n | \"incomplete\"\n | \"awaiting_ubo\"\n | \"under_review\";\n endorsements?: Array<{\n name: string;\n status: string;\n requirements?: {\n complete: Array<string>;\n };\n }>;\n externalAccounts?: Array<{\n id: string;\n accountName: string;\n accountType: string;\n currency: string;\n bankName?: string;\n last_4?: string;\n active: boolean;\n }>;\n}\n\nexport interface GenerateBridgeKycLinksParams {\n email: string;\n type: BridgeCustomerType;\n fullName?: string;\n businessName?: string;\n}\n\nexport interface BridgeKycLink {\n kycLinkId: string;\n kycLink: string;\n kycStatus?:\n | \"pending\"\n | \"approved\"\n | \"rejected\"\n | \"unknown\"\n | \"incomplete\"\n | \"awaiting_ubo\"\n | \"under_review\";\n tosLink: string;\n tosStatus?: string;\n customerId: string;\n}\n\nexport interface CreateBridgePlaidLinkTokenParams {\n customerId: string;\n products?: string[];\n redirectUri?: string;\n}\n\nexport interface CreateBridgePlaidLinkTokenResult {\n linkToken: string;\n linkTokenExpiresAt?: string;\n callbackUrl?: string;\n}\n\nexport interface BridgeExchangePlaidPublicTokenParams {\n publicToken: string;\n linkToken: string;\n}\n\nexport interface BridgeExchangePlaidPublicTokenResult {\n success: boolean;\n message: string;\n}\n\nexport interface GetBridgeExternalAccountsResult {\n externalAccounts: Array<{\n id: string;\n accountName: string;\n accountType: string;\n currency: string;\n bankName?: string;\n last_4?: string;\n status: string;\n address?: {\n streetLine1?: string;\n streetLine2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n }>;\n}\n\nexport interface GetBridgeLiquidationAddressesResult {\n liquidationAddresses: Array<{\n id: string;\n address: string;\n externalAccountId?: string;\n chain?: string;\n currency?: string;\n blockchainMemo?: string;\n }>;\n}\n\nexport interface CreateBridgeLiquidationAddressParams {\n customerId: string;\n chain: string;\n currency: string;\n externalAccountId?: string;\n externalAccountAddress?: {\n streetLine1?: string;\n streetLine2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n destinationPaymentRail?: string;\n destinationCurrency?: string;\n destinationWireMessage?: string;\n destinationAddress?: string;\n customDeveloperFeePercent?: string;\n}\n\nexport interface CreateBridgeLiquidationAddressResult {\n id: string;\n address: string;\n chain?: string;\n currency?: string;\n blockchainMemo?: string;\n}\n\nexport interface CreateBridgeTransferParams {\n customerId: string;\n amount: string;\n sourceExternalAccountId: string;\n destinationWalletAddress: string;\n chainId: number;\n developerFee?: string;\n}\n\nexport interface CreateBridgeTransferResult {\n id: string;\n state: string;\n amount: string | null;\n source: {\n payment_rail: string;\n currency: string;\n external_account_id?: string;\n description?: string;\n };\n destination: {\n payment_rail: string;\n currency: string;\n to_address?: string;\n };\n source_deposit_instructions?: {\n payment_rail: string;\n amount: string;\n currency: string;\n deposit_message: string;\n bank_name: string;\n bank_address: string;\n bank_routing_number: string;\n bank_account_number: string;\n bank_beneficiary_name: string;\n bank_beneficiary_address: string;\n };\n receipt: {\n initial_amount: string;\n developer_fee: string;\n exchange_fee: string;\n subtotal_amount: string;\n gas_fee: string;\n final_amount: string;\n url: string;\n };\n created_at: string;\n updated_at: string;\n}\n\nexport const getBridgeCustomer = async (\n customerId: string,\n): Promise<GetBridgeCustomerResult> => {\n const response = await appApiClient.get<GetBridgeCustomerResult>(\n \"/bridge/customer\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const generateBridgeKycLinks = async (\n request: GenerateBridgeKycLinksParams,\n): Promise<BridgeKycLink> => {\n const response = await appApiClient.post<BridgeKycLink>(\n \"/bridge/kyc-links\",\n request,\n );\n\n return response.data;\n};\n\nexport const getBridgeKycLinkStatus = async (\n kycLinkId: string,\n): Promise<BridgeKycLink> => {\n const response = await appApiClient.get<BridgeKycLink>(\n \"/bridge/kyc-links/status\",\n { params: { kycLinkId } },\n );\n\n return response.data;\n};\n\nexport const createBridgePlaidLinkToken = async (\n request: CreateBridgePlaidLinkTokenParams,\n): Promise<CreateBridgePlaidLinkTokenResult> => {\n const response = await appApiClient.post<CreateBridgePlaidLinkTokenResult>(\n \"/bridge/plaid/link-token\",\n request,\n );\n\n return response.data;\n};\n\nexport const bridgeExchangePlaidPublicToken = async (\n request: BridgeExchangePlaidPublicTokenParams,\n): Promise<BridgeExchangePlaidPublicTokenResult> => {\n const response =\n await appApiClient.post<BridgeExchangePlaidPublicTokenResult>(\n \"/bridge/plaid/exchange-token\",\n request,\n );\n\n return response.data;\n};\n\nexport const getBridgeExternalAccounts = async (\n customerId: string,\n): Promise<GetBridgeExternalAccountsResult> => {\n const response = await appApiClient.get<GetBridgeExternalAccountsResult>(\n \"/bridge/external-accounts\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const getBridgeLiquidationAddresses = async (\n customerId: string,\n): Promise<GetBridgeLiquidationAddressesResult> => {\n const response = await appApiClient.get<GetBridgeLiquidationAddressesResult>(\n \"/bridge/liquidation-addresses\",\n { params: { customerId } },\n );\n\n return response.data;\n};\n\nexport const createBridgeLiquidationAddress = async (\n request: CreateBridgeLiquidationAddressParams,\n): Promise<CreateBridgeLiquidationAddressResult> => {\n const response =\n await appApiClient.post<CreateBridgeLiquidationAddressResult>(\n \"/bridge/liquidation-addresses\",\n request,\n );\n\n return response.data;\n};\n\nexport const createBridgeTransfer = async (\n request: CreateBridgeTransferParams,\n): Promise<CreateBridgeTransferResult> => {\n const response = await appApiClient.post<CreateBridgeTransferResult>(\n \"/bridge/transfer\",\n request,\n );\n\n return response.data;\n};\n\nexport interface UpdateBridgeExternalAccountAddressParams {\n customerId: string;\n externalAccountId: string;\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n };\n}\n\nexport const updateBridgeExternalAccountAddress = async (\n customerId: string,\n externalAccountId: string,\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n },\n): Promise<{ success: boolean }> => {\n const response = await appApiClient.put<{ success: boolean }>(\n \"/bridge/external-accounts/update-address\",\n {\n customerId,\n externalAccountId,\n address,\n },\n );\n\n return response.data;\n};\n\nexport interface CreateBridgeIbanExternalAccountParams {\n customerId: string;\n currency: \"eur\";\n accountOwnerName: string;\n bankName?: string;\n accountOwnerType: \"individual\" | \"business\";\n iban: {\n accountNumber: string;\n bic: string;\n country: string;\n };\n firstName?: string;\n lastName?: string;\n businessName?: string;\n address: {\n streetLine1: string;\n streetLine2?: string;\n city: string;\n postalCode: string;\n country: string;\n };\n}\n\nexport interface CreateBridgeIbanExternalAccountResult {\n id: string;\n customerId: string;\n accountType: \"iban\";\n currency: \"eur\";\n accountOwnerName: string;\n bankName?: string;\n active: boolean;\n iban: {\n last4: string;\n bic: string;\n country: string;\n };\n accountOwnerType: \"individual\" | \"business\";\n firstName?: string;\n lastName?: string;\n businessName?: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport const createBridgeIbanExternalAccount = async (\n request: CreateBridgeIbanExternalAccountParams,\n): Promise<CreateBridgeIbanExternalAccountResult> => {\n const response =\n await appApiClient.post<CreateBridgeIbanExternalAccountResult>(\n \"/bridge/external-accounts/iban\",\n request,\n );\n\n return response.data;\n};\n\nexport interface EnsureOnrampRouteParams {\n customerId: string;\n externalAccountId: string;\n chainId: number;\n walletAddress: string;\n destinationCurrency?: string;\n}\n\nexport interface EnsureOfframpRouteParams {\n customerId: string;\n externalAccountId: string;\n chainId: number;\n currency?: string;\n}\n\nexport const ensureOnrampRoute = async (\n params: EnsureOnrampRouteParams,\n): Promise<{ success: boolean }> => {\n const response = await appApiClient.post<{ success: boolean }>(\n \"/bridge/routes/ensure-onramp\",\n params,\n );\n\n return response.data;\n};\n\nexport const ensureOfframpRoute = async (\n params: EnsureOfframpRouteParams,\n): Promise<{ success: boolean }> => {\n const response = await appApiClient.post<{ success: boolean }>(\n \"/bridge/routes/ensure-offramp\",\n params,\n );\n\n return response.data;\n};\n", "import type {\n GetDelegateAddressRequest,\n GetDelegateAddressResponse,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const getDelegateAddress = async (\n request: GetDelegateAddressRequest,\n): Promise<GetDelegateAddressResponse> => {\n const response = await appApiClient.get<GetDelegateAddressResponse>(\n `/config/delegate-address/${request.chainId}`,\n );\n\n return response.data;\n};\n", "import type {\n InstructionActivateRequest,\n InstructionActivateResponse,\n InstructionBuild,\n InstructionBuildRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const buildInstruction = async (\n request: InstructionBuildRequest,\n): Promise<InstructionBuild> => {\n const response = await appApiClient.post<InstructionBuild>(\n \"/instruction/build\",\n request,\n );\n\n return response.data;\n};\n\nexport const activateInstruction = async (\n request: InstructionActivateRequest,\n): Promise<InstructionActivateResponse> => {\n const response = await appApiClient.post<InstructionActivateResponse>(\n \"/instruction/activate\",\n request,\n );\n\n return response.data;\n};\n", "import type {\n GetIntegrationRequest,\n IntegrationResponse,\n UpdateIntegrationRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const getIntegration = async (\n request: GetIntegrationRequest,\n): Promise<IntegrationResponse> => {\n const response = await appApiClient.post<IntegrationResponse>(\n \"/integration/get\",\n request,\n );\n\n return response.data;\n};\n\nexport const upsertIntegration = async (\n request: UpdateIntegrationRequest,\n): Promise<IntegrationResponse> => {\n const response = await appApiClient.put<IntegrationResponse>(\n \"/integration\",\n request,\n );\n\n return response.data;\n};\n", "import type {\n BuildSettlementRequest,\n BuildSettlementResponse,\n PaymentRequestBuildRequest,\n PaymentRequestBuildResponse,\n PaymentRequestNewRequest,\n} from \"@otim/utils/api\";\n\nimport { appApiClient } from \"../client\";\n\nexport const buildPaymentRequest = async (\n request: PaymentRequestBuildRequest,\n): Promise<PaymentRequestBuildResponse> => {\n const response = await appApiClient.post<PaymentRequestBuildResponse>(\n \"/orchestration/build\",\n request,\n );\n\n return response.data;\n};\n\nexport const newPaymentRequest = async (\n request: PaymentRequestNewRequest,\n): Promise<unknown> => {\n const response = await appApiClient.post<unknown>(\n \"/orchestration/new\",\n request,\n );\n\n return response.data;\n};\n\nexport const buildSettlementOrchestration = async (\n request: BuildSettlementRequest,\n): Promise<BuildSettlementResponse> => {\n const response = await appApiClient.post<BuildSettlementResponse>(\n \"/orchestration/build/settlement\",\n request,\n );\n\n return response.data;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -188,5 +188,67 @@ export declare const updateBridgeExternalAccountAddress: (customerId: string, ex
|
|
|
188
188
|
}) => Promise<{
|
|
189
189
|
success: boolean;
|
|
190
190
|
}>;
|
|
191
|
+
export interface CreateBridgeIbanExternalAccountParams {
|
|
192
|
+
customerId: string;
|
|
193
|
+
currency: "eur";
|
|
194
|
+
accountOwnerName: string;
|
|
195
|
+
bankName?: string;
|
|
196
|
+
accountOwnerType: "individual" | "business";
|
|
197
|
+
iban: {
|
|
198
|
+
accountNumber: string;
|
|
199
|
+
bic: string;
|
|
200
|
+
country: string;
|
|
201
|
+
};
|
|
202
|
+
firstName?: string;
|
|
203
|
+
lastName?: string;
|
|
204
|
+
businessName?: string;
|
|
205
|
+
address: {
|
|
206
|
+
streetLine1: string;
|
|
207
|
+
streetLine2?: string;
|
|
208
|
+
city: string;
|
|
209
|
+
postalCode: string;
|
|
210
|
+
country: string;
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
export interface CreateBridgeIbanExternalAccountResult {
|
|
214
|
+
id: string;
|
|
215
|
+
customerId: string;
|
|
216
|
+
accountType: "iban";
|
|
217
|
+
currency: "eur";
|
|
218
|
+
accountOwnerName: string;
|
|
219
|
+
bankName?: string;
|
|
220
|
+
active: boolean;
|
|
221
|
+
iban: {
|
|
222
|
+
last4: string;
|
|
223
|
+
bic: string;
|
|
224
|
+
country: string;
|
|
225
|
+
};
|
|
226
|
+
accountOwnerType: "individual" | "business";
|
|
227
|
+
firstName?: string;
|
|
228
|
+
lastName?: string;
|
|
229
|
+
businessName?: string;
|
|
230
|
+
createdAt: string;
|
|
231
|
+
updatedAt: string;
|
|
232
|
+
}
|
|
233
|
+
export declare const createBridgeIbanExternalAccount: (request: CreateBridgeIbanExternalAccountParams) => Promise<CreateBridgeIbanExternalAccountResult>;
|
|
234
|
+
export interface EnsureOnrampRouteParams {
|
|
235
|
+
customerId: string;
|
|
236
|
+
externalAccountId: string;
|
|
237
|
+
chainId: number;
|
|
238
|
+
walletAddress: string;
|
|
239
|
+
destinationCurrency?: string;
|
|
240
|
+
}
|
|
241
|
+
export interface EnsureOfframpRouteParams {
|
|
242
|
+
customerId: string;
|
|
243
|
+
externalAccountId: string;
|
|
244
|
+
chainId: number;
|
|
245
|
+
currency?: string;
|
|
246
|
+
}
|
|
247
|
+
export declare const ensureOnrampRoute: (params: EnsureOnrampRouteParams) => Promise<{
|
|
248
|
+
success: boolean;
|
|
249
|
+
}>;
|
|
250
|
+
export declare const ensureOfframpRoute: (params: EnsureOfframpRouteParams) => Promise<{
|
|
251
|
+
success: boolean;
|
|
252
|
+
}>;
|
|
191
253
|
export {};
|
|
192
254
|
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -188,5 +188,67 @@ export declare const updateBridgeExternalAccountAddress: (customerId: string, ex
|
|
|
188
188
|
}) => Promise<{
|
|
189
189
|
success: boolean;
|
|
190
190
|
}>;
|
|
191
|
+
export interface CreateBridgeIbanExternalAccountParams {
|
|
192
|
+
customerId: string;
|
|
193
|
+
currency: "eur";
|
|
194
|
+
accountOwnerName: string;
|
|
195
|
+
bankName?: string;
|
|
196
|
+
accountOwnerType: "individual" | "business";
|
|
197
|
+
iban: {
|
|
198
|
+
accountNumber: string;
|
|
199
|
+
bic: string;
|
|
200
|
+
country: string;
|
|
201
|
+
};
|
|
202
|
+
firstName?: string;
|
|
203
|
+
lastName?: string;
|
|
204
|
+
businessName?: string;
|
|
205
|
+
address: {
|
|
206
|
+
streetLine1: string;
|
|
207
|
+
streetLine2?: string;
|
|
208
|
+
city: string;
|
|
209
|
+
postalCode: string;
|
|
210
|
+
country: string;
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
export interface CreateBridgeIbanExternalAccountResult {
|
|
214
|
+
id: string;
|
|
215
|
+
customerId: string;
|
|
216
|
+
accountType: "iban";
|
|
217
|
+
currency: "eur";
|
|
218
|
+
accountOwnerName: string;
|
|
219
|
+
bankName?: string;
|
|
220
|
+
active: boolean;
|
|
221
|
+
iban: {
|
|
222
|
+
last4: string;
|
|
223
|
+
bic: string;
|
|
224
|
+
country: string;
|
|
225
|
+
};
|
|
226
|
+
accountOwnerType: "individual" | "business";
|
|
227
|
+
firstName?: string;
|
|
228
|
+
lastName?: string;
|
|
229
|
+
businessName?: string;
|
|
230
|
+
createdAt: string;
|
|
231
|
+
updatedAt: string;
|
|
232
|
+
}
|
|
233
|
+
export declare const createBridgeIbanExternalAccount: (request: CreateBridgeIbanExternalAccountParams) => Promise<CreateBridgeIbanExternalAccountResult>;
|
|
234
|
+
export interface EnsureOnrampRouteParams {
|
|
235
|
+
customerId: string;
|
|
236
|
+
externalAccountId: string;
|
|
237
|
+
chainId: number;
|
|
238
|
+
walletAddress: string;
|
|
239
|
+
destinationCurrency?: string;
|
|
240
|
+
}
|
|
241
|
+
export interface EnsureOfframpRouteParams {
|
|
242
|
+
customerId: string;
|
|
243
|
+
externalAccountId: string;
|
|
244
|
+
chainId: number;
|
|
245
|
+
currency?: string;
|
|
246
|
+
}
|
|
247
|
+
export declare const ensureOnrampRoute: (params: EnsureOnrampRouteParams) => Promise<{
|
|
248
|
+
success: boolean;
|
|
249
|
+
}>;
|
|
250
|
+
export declare const ensureOfframpRoute: (params: EnsureOfframpRouteParams) => Promise<{
|
|
251
|
+
success: boolean;
|
|
252
|
+
}>;
|
|
191
253
|
export {};
|
|
192
254
|
//# sourceMappingURL=bridge.d.ts.map
|