@delopay/sdk 0.117.0 → 0.118.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/internal/resources/admin.ts","../src/internal/resources/adminPortal.ts","../src/internal/resources/auditLogs.ts","../src/internal/resources/cache.ts","../src/internal/resources/cardIssuers.ts","../src/internal/resources/configs.ts","../src/internal/resources/connectorRestrictionRules.ts","../src/internal/resources/connectorRestrictions.ts","../src/internal/resources/gsm.ts","../src/internal/resources/platformBilling.ts","../src/internal/resources/platformFees.ts","../src/internal/client.ts"],"sourcesContent":["import type { AuthResponse, SignUpWithMerchantIdRequest } from '../../types';\nimport type {\n AdminSignInRequest,\n AuthorizeResponse,\n CreateInternalUserRequest,\n CreateTenantUserRequest,\n OnboardMerchantRequest,\n OnboardMerchantResponse,\n SignupToggleRequest,\n SignupToggleResponse,\n} from '../types';\nimport type { RequestFn } from '../../client';\n\nexport class Admin {\n constructor(private readonly request: RequestFn) {}\n\n async signIn(params: AdminSignInRequest): Promise<AuthResponse> {\n return this.request('POST', '/admin/signin', { body: params });\n }\n\n async createInternalUser(params: CreateInternalUserRequest): Promise<AuthorizeResponse> {\n return this.request('POST', '/admin/internal-signup', { body: params });\n }\n\n async createTenant(params: CreateTenantUserRequest): Promise<AuthorizeResponse> {\n return this.request('POST', '/admin/tenant-signup', { body: params });\n }\n\n /**\n * Create a new merchant admin user and merchant account atomically.\n *\n * This is the correct endpoint for bootstrapping the first admin user in a\n * fresh deployment — `internal-signup`/`tenant-signup` both require\n * pre-existing merchant records that don't exist on a clean database.\n *\n * `POST /admin/signup-with-merchant-id`\n */\n async signupWithMerchantId(params: SignUpWithMerchantIdRequest): Promise<AuthorizeResponse> {\n return this.request('POST', '/admin/signup-with-merchant-id', { body: params });\n }\n\n /** Toggle public signup on/off. `POST /admin/settings/signup` */\n async setSignupSettings(params: SignupToggleRequest): Promise<SignupToggleResponse> {\n return this.request('POST', '/admin/settings/signup', { body: params });\n }\n\n /** Read current public-signup status. `GET /admin/settings/signup` */\n async getSignupSettings(): Promise<SignupToggleResponse> {\n return this.request('GET', '/admin/settings/signup');\n }\n\n /** Full merchant bootstrap — user + merchant + project + profile + keys. `POST /admin/onboard-merchant` */\n async onboardMerchant(params: OnboardMerchantRequest): Promise<OnboardMerchantResponse> {\n return this.request('POST', '/admin/onboard-merchant', { body: params });\n }\n}\n","import type {\n FeeStatementDetail,\n MerchantAccountResponse,\n MerchantAccountUpdateRequest,\n PaymentAttemptsListResponse,\n PaymentClientContextListResponse,\n PaymentResponse,\n PaymentsDeleteResponse,\n PaymentStatusHistoryResponse,\n ProfileResponse,\n RefundListResponse,\n SettlementCurrentParams,\n SettlementCurrentResponse,\n SettlementOverviewParams,\n SettlementOverviewResponse,\n SettlementStatementListParams,\n SettlementStatementListResponse,\n StatementPdfParams,\n SubscriptionAnalyticsRequest,\n SubscriptionAnalyticsResponse,\n SubscriptionDrillRequest,\n ScopeDrillRequest,\n} from '../../types';\nimport type {\n AdminAttachVaultRequest,\n AdminAttachVaultResponse,\n AdminVaultStateResponse,\n AdminCustomerListParams,\n AdminCustomerListResponse,\n AdminCustomerDetail,\n AdminTransactionListParams,\n AdminTransactionListResponse,\n AdminAnalyticsRequest,\n PlatformAnalyticsResponse,\n OverviewStatsResponse,\n PaymentAnalyticsRequest,\n PaymentAnalyticsResponse,\n AnalyticsScopeRequest,\n ClientAnalyticsRequest,\n DeviceDrillRequest,\n GeoDrillRequest,\n DrillResponse,\n DevicesAnalyticsResponse,\n GeoAnalyticsResponse,\n AnalyticsScopeResponse,\n AdminLedgerAnalyticsRequest,\n AdminLedgerAnalyticsResponse,\n AdminCreateUserForMerchantRequest,\n AdminUpdateUserRequest,\n AdminUserResponse,\n PaymentAutoCloseConfigResponse,\n PaymentAutoCloseOverrideResponse,\n PromoConfigResponse,\n TransactionDeleteConfigResponse,\n TransactionDeleteOverrideResponse,\n UpdatePaymentAutoCloseConfigRequest,\n UpdatePaymentAutoCloseOverrideRequest,\n UpdatePromoConfigRequest,\n UpdateTransactionDeleteConfigRequest,\n UpdateTransactionDeleteOverrideRequest,\n} from '../types';\nimport type { RequestFn } from '../../client';\n\nexport class AdminPortal {\n constructor(private readonly request: RequestFn) {}\n\n async listCustomers(params?: AdminCustomerListParams): Promise<AdminCustomerListResponse> {\n return this.request('GET', '/admin-portal/customers', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n async getCustomer(customerId: string): Promise<AdminCustomerDetail> {\n return this.request('GET', `/admin-portal/customers/${encodeURIComponent(customerId)}`);\n }\n\n async listTransactions(\n params?: AdminTransactionListParams,\n ): Promise<AdminTransactionListResponse> {\n return this.request('GET', '/admin-portal/transactions', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Full detail for a single transaction of ANY merchant — the same\n * `PaymentResponse` the merchant `payments.retrieve` returns. Admin-scoped:\n * the JWT (or admin API key) does not need to belong to the payment's\n * merchant; the backend resolves the owning merchant and reads it read-only\n * (no connector sync).\n */\n async getTransaction(paymentId: string): Promise<PaymentResponse> {\n return this.request('GET', `/admin-portal/transactions/${encodeURIComponent(paymentId)}`);\n }\n\n /**\n * Per-attempt history (retries across connectors, decline reasons) for a\n * single transaction of ANY merchant.\n */\n async getTransactionAttempts(paymentId: string): Promise<PaymentAttemptsListResponse> {\n return this.request(\n 'GET',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/attempts`,\n );\n }\n\n /**\n * Status timeline (intent / attempt / refund / dispute transitions) for a\n * single transaction of ANY merchant. `complete: false` marks timelines\n * partially reconstructed from current records.\n */\n async getTransactionStatusHistory(paymentId: string): Promise<PaymentStatusHistoryResponse> {\n return this.request(\n 'GET',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/status-history`,\n );\n }\n\n /**\n * Refunds for a single transaction of ANY merchant.\n */\n async getTransactionRefunds(paymentId: string): Promise<RefundListResponse> {\n return this.request(\n 'GET',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/refunds`,\n );\n }\n\n async analytics(params: AdminAnalyticsRequest): Promise<PlatformAnalyticsResponse> {\n return this.request('GET', '/admin-portal/analytics', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n async overviewStats(): Promise<OverviewStatsResponse> {\n return this.request('GET', '/admin-portal/overview-stats');\n }\n\n async paymentAnalytics(params: PaymentAnalyticsRequest): Promise<PaymentAnalyticsResponse> {\n return this.request('GET', '/admin-portal/payment-analytics', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * One drill level of the analytics dashboard: the scope's daily series +\n * processor mix and its direct children's series. Range / metric / donut\n * toggles apply client-side; only a drill (passing merchant_id / project_id\n * / shop_id) fetches the next level.\n */\n async analyticsScope(params?: AnalyticsScopeRequest): Promise<AnalyticsScopeResponse> {\n return this.request('GET', '/admin-portal/analytics/scope', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Device analytics over the canonical client-context observation per\n * payment, rooted at all merchants and drillable via `merchant_id` /\n * `project_id` / `shop_id` like `analyticsScope`. Answers 200 with\n * `enabled: false` when the client-context optimisation-use switch is off.\n */\n async analyticsDevices(params?: ClientAnalyticsRequest): Promise<DevicesAnalyticsResponse> {\n return this.request('GET', '/admin-portal/analytics/devices', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Geo analytics over the canonical client-context observation per payment,\n * rooted at all merchants. `mode` selects the location claim (`ip` default,\n * `billing`).\n */\n async analyticsGeo(params?: ClientAnalyticsRequest): Promise<GeoAnalyticsResponse> {\n return this.request('GET', '/admin-portal/analytics/geo', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * The recent payments behind one clicked geo target (map country/city or\n * local-hours heatmap cell), rooted at all merchants. Capped at 50 rows,\n * newest first, with the full match count alongside.\n */\n async analyticsGeoTransactions(params: GeoDrillRequest): Promise<DrillResponse> {\n return this.request('GET', '/admin-portal/analytics/geo/transactions', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * The recent payments behind one clicked device target (browser/platform\n * family, device-model label or device class), rooted at all merchants.\n * 50 rows per page (`offset` for the next page), newest first.\n */\n async analyticsDeviceTransactions(params: DeviceDrillRequest): Promise<DrillResponse> {\n return this.request('GET', '/admin-portal/analytics/devices/transactions', {\n // A discriminated union carries no index signature, so the widening\n // goes via `unknown` — the union is the point.\n query: params as unknown as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * The payments behind one clicked element of the admin payments dashboard\n * (processor / method slice, outcome segment, series bucket or breakdown\n * row), rooted at all merchants. Same contract as the merchant surface's\n * `analytics.scopeTransactions`. `GET /admin-portal/analytics/scope/transactions`\n */\n async analyticsScopeTransactions(params: ScopeDrillRequest): Promise<DrillResponse> {\n return this.request('GET', '/admin-portal/analytics/scope/transactions', {\n query: params as unknown as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Subscription analytics over `subscription` and `invoice`, rooted at all\n * merchants and drillable via `merchant_id` / `project_id` / `shop_id` like\n * `analyticsScope`. The `children` block at the root is the merchant\n * breakdown — there is no separate endpoint for it.\n *\n * Half the figures are **stocks** (a snapshot at the window's end, not a sum\n * over it), so `est_monthly_volume_usd` and `active` can match across a\n * 7-day and a 30-day window while `billed_volume_usd` does not. Day\n * granularity only.\n */\n async analyticsSubscriptions(\n params?: SubscriptionAnalyticsRequest,\n ): Promise<SubscriptionAnalyticsResponse> {\n return this.request('GET', '/admin-portal/analytics/subscriptions', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * The billing cycles behind one clicked element of the admin subscription\n * dashboard: an invoice outcome, a processor slice on either axis, a plan\n * row, a subscription status, a movement component, a series bucket or a\n * breakdown row. 50 rows per page (`offset` for the next), newest first,\n * with the full match count alongside.\n *\n * A cycle that never reached a payment is listed too — that is what \"still\n * unpaid\" means — and carries its invoice id as `payment_id` with\n * `invoice_id` set to the same value.\n */\n async analyticsSubscriptionsList(params: SubscriptionDrillRequest): Promise<DrillResponse> {\n return this.request('GET', '/admin-portal/analytics/subscriptions/list', {\n // A discriminated union carries no index signature, so the widening\n // goes via `unknown` — the union is the point, and the query builder\n // only ever reads own enumerable keys.\n query: params as unknown as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Platform billing dashboard: total balance across all ledger accounts (+\n * the net change), top-ups, fees collected, and the day-by-day ledger flow.\n * All amounts are in USD minor units.\n */\n async ledgerAnalytics(\n params?: AdminLedgerAnalyticsRequest,\n ): Promise<AdminLedgerAnalyticsResponse> {\n return this.request('GET', '/admin-portal/ledger-analytics', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Retrieve a merchant account via the admin portal. Unlike\n * `merchantAccounts.retrieve`, this route accepts an admin JWT (or admin API\n * key) and does not require the JWT to be scoped to the target merchant.\n */\n async retrieveAccount(merchantId: string): Promise<MerchantAccountResponse> {\n return this.request('GET', `/admin-portal/accounts/${encodeURIComponent(merchantId)}`);\n }\n\n /**\n * Update a merchant account via the admin portal. Authenticated via admin JWT\n * or admin API key.\n */\n async updateAccount(\n merchantId: string,\n params: MerchantAccountUpdateRequest,\n ): Promise<MerchantAccountResponse> {\n return this.request('POST', `/admin-portal/accounts/${encodeURIComponent(merchantId)}`, {\n body: params,\n });\n }\n\n /**\n * Delete a merchant account via the admin portal. Authenticated via admin JWT\n * or admin API key.\n */\n async deleteAccount(merchantId: string): Promise<MerchantAccountResponse> {\n return this.request('DELETE', `/admin-portal/accounts/${encodeURIComponent(merchantId)}`);\n }\n\n /**\n * Create a brand-new user attached to the given merchant. The user is\n * marked `is_verified = true` so the admin can hand off credentials\n * immediately — no email round-trip is sent.\n */\n async createUserForMerchant(\n customerId: string,\n body: AdminCreateUserForMerchantRequest,\n ): Promise<AdminUserResponse> {\n return this.request('POST', `/admin-portal/customers/${encodeURIComponent(customerId)}/users`, {\n body,\n });\n }\n\n /**\n * Edit a user record. Any subset of fields may be supplied. `role_id`\n * requires `merchant_id`. `password` triggers a password reset (validated\n * against signup policy + JWT blacklist). `reset_2fa` clears TOTP state\n * so the user re-enrolls on next login. `is_active` supports both\n * directions: false soft-disables, true reactivates a soft-disabled user.\n *\n * Throws a `400` with `code === 'UR_66'` when the change would leave a\n * merchant with no administrator — `is_active: false` or `is_verified:\n * false` on, or a `role_id` demoting, the only active user whose role can\n * manage that merchant's users. Nothing is written. `error.data` carries a\n * {@link LastAdministratorRefusal} naming the merchant and which change was\n * refused; render that rather than the generic message.\n */\n async updateUser(userId: string, body: AdminUpdateUserRequest): Promise<AdminUserResponse> {\n return this.request('PATCH', `/admin-portal/users/${encodeURIComponent(userId)}`, { body });\n }\n\n /**\n * Soft-delete a user globally: deactivates the row, blacklists existing\n * JWTs, and wipes credentials. Distinct from `deleteUserRole`, which\n * removes a single role binding while leaving the user signed-in elsewhere.\n *\n * Throws the same `UR_66` as {@link updateUser} when the user is the last\n * administrator of any merchant they belong to, with `route: 'delete'`.\n */\n async deleteUser(userId: string): Promise<void> {\n return this.request('DELETE', `/admin-portal/users/${encodeURIComponent(userId)}`);\n }\n\n /**\n * Set a target merchant's shop iframe-allowed origins. Internal-admin\n * route — accepts an admin JWT or admin API key without requiring the\n * caller to be scoped to the target merchant. Pass `null` (or an empty\n * array) to clear the allowlist back to same-origin only.\n *\n * Server validates each origin: full origin (scheme + host[:port]),\n * no path/query/fragment, no wildcards.\n */\n async updateShopIframeOrigins(\n merchantId: string,\n profileId: string,\n origins: string[] | null,\n ): Promise<ProfileResponse> {\n return this.request(\n 'POST',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/business_profile/${encodeURIComponent(profileId)}/iframe-origins`,\n { body: { iframe_allowed_origins: origins } },\n );\n }\n\n /**\n * Set (or clear) a target merchant shop's home country — the geo\n * dashboard's cross-border baseline. Internal-admin route. Pass `null` to\n * clear back to \"international / no home country\" (the default).\n *\n * `POST /admin-portal/accounts/{merchantId}/business-profile/{profileId}/home-country`\n */\n async updateShopHomeCountry(\n merchantId: string,\n profileId: string,\n homeCountry: string | null,\n ): Promise<ProfileResponse> {\n return this.request(\n 'POST',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/business-profile/${encodeURIComponent(profileId)}/home-country`,\n { body: { home_country: homeCountry } },\n );\n }\n\n /**\n * Soft-delete a transaction of ANY merchant. Only payments whose status\n * is in the admin delete policy can be deleted; the action is audited.\n *\n * `DELETE /admin-portal/transactions/{paymentId}`\n */\n async deleteTransaction(paymentId: string): Promise<PaymentsDeleteResponse> {\n return this.request('DELETE', `/admin-portal/transactions/${encodeURIComponent(paymentId)}`);\n }\n\n /**\n * Recover (undelete) a soft-deleted transaction. Audited.\n *\n * `POST /admin-portal/transactions/{paymentId}/recover`\n */\n async recoverTransaction(paymentId: string): Promise<PaymentsDeleteResponse> {\n return this.request(\n 'POST',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/recover`,\n );\n }\n\n /**\n * Client/device observations captured while the buyer interacted with a\n * transaction of ANY merchant, oldest first.\n *\n * `GET /admin-portal/transactions/{paymentId}/client-context`\n */\n async getTransactionClientContext(paymentId: string): Promise<PaymentClientContextListResponse> {\n return this.request(\n 'GET',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/client-context`,\n );\n }\n\n /**\n * The global payment auto-close policy.\n * `GET /admin-portal/auto-close-config`\n */\n async getAutoCloseConfig(): Promise<PaymentAutoCloseConfigResponse> {\n return this.request('GET', '/admin-portal/auto-close-config');\n }\n\n /**\n * Update the global payment auto-close policy. PATCH semantics — omitted\n * fields are left unchanged.\n *\n * `PUT /admin-portal/auto-close-config`\n */\n async updateAutoCloseConfig(\n params: UpdatePaymentAutoCloseConfigRequest,\n ): Promise<PaymentAutoCloseConfigResponse> {\n return this.request('PUT', '/admin-portal/auto-close-config', { body: params });\n }\n\n /**\n * One merchant's auto-close override plus the effective values.\n * `GET /admin-portal/accounts/{merchantId}/auto-close-config`\n */\n async getMerchantAutoCloseConfig(merchantId: string): Promise<PaymentAutoCloseOverrideResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/auto-close-config`,\n );\n }\n\n /**\n * Replace one merchant's auto-close override. REPLACE semantics — sending\n * both fields as `null` removes the override entirely.\n *\n * `PUT /admin-portal/accounts/{merchantId}/auto-close-config`\n */\n async updateMerchantAutoCloseConfig(\n merchantId: string,\n params: UpdatePaymentAutoCloseOverrideRequest,\n ): Promise<PaymentAutoCloseOverrideResponse> {\n return this.request(\n 'PUT',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/auto-close-config`,\n { body: params },\n );\n }\n\n /**\n * The global transaction soft-delete policy (statuses admins may delete,\n * plus the deploy-time env ceiling).\n *\n * `GET /admin-portal/transaction-delete-config`\n */\n async getTransactionDeleteConfig(): Promise<TransactionDeleteConfigResponse> {\n return this.request('GET', '/admin-portal/transaction-delete-config');\n }\n\n /**\n * Replace the global deletable-status set. Must be a subset of the env\n * ceiling.\n *\n * `PUT /admin-portal/transaction-delete-config`\n */\n async updateTransactionDeleteConfig(\n params: UpdateTransactionDeleteConfigRequest,\n ): Promise<TransactionDeleteConfigResponse> {\n return this.request('PUT', '/admin-portal/transaction-delete-config', { body: params });\n }\n\n /**\n * One merchant's deletable-status override plus the effective set.\n * `GET /admin-portal/accounts/{merchantId}/transaction-delete-config`\n */\n async getMerchantTransactionDeleteConfig(\n merchantId: string,\n ): Promise<TransactionDeleteOverrideResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/transaction-delete-config`,\n );\n }\n\n /**\n * Replace one merchant's deletable-status override. `statuses: null`\n * removes the override; an empty list forbids deletion entirely.\n *\n * `PUT /admin-portal/accounts/{merchantId}/transaction-delete-config`\n */\n async updateMerchantTransactionDeleteConfig(\n merchantId: string,\n params: UpdateTransactionDeleteOverrideRequest,\n ): Promise<TransactionDeleteOverrideResponse> {\n return this.request(\n 'PUT',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/transaction-delete-config`,\n { body: params },\n );\n }\n\n /**\n * A merchant's settlement statements. Same shapes as the merchant-facing\n * `settlement` resource, admin-authenticated.\n *\n * `GET /admin-portal/accounts/{merchantId}/settlement/statements`\n */\n async listSettlementStatements(\n merchantId: string,\n params: SettlementStatementListParams,\n ): Promise<SettlementStatementListResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/statements`,\n {\n query: {\n test_mode: params.test_mode,\n profile_id: params.profile_id,\n limit: params.limit,\n offset: params.offset,\n },\n },\n );\n }\n\n /**\n * One settlement statement with its breakdown.\n * `GET /admin-portal/accounts/{merchantId}/settlement/statements/{statementId}`\n */\n async getSettlementStatement(\n merchantId: string,\n statementId: string,\n ): Promise<FeeStatementDetail> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/statements/${encodeURIComponent(statementId)}`,\n );\n }\n\n /**\n * Export a settlement statement as PDF. Returns the raw bytes as a `Blob`\n * with the same auth and error handling as every other call.\n *\n * `GET /admin-portal/accounts/{merchantId}/settlement/statements/{statementId}/pdf`\n */\n async downloadSettlementStatementPdf(\n merchantId: string,\n statementId: string,\n params?: StatementPdfParams,\n ): Promise<Blob> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/statements/${encodeURIComponent(statementId)}/pdf`,\n {\n query: {\n currency: params?.currency,\n include_transactions: params?.include_transactions,\n },\n responseType: 'blob',\n },\n );\n }\n\n /**\n * A merchant's per-shop settlement overview.\n * `GET /admin-portal/accounts/{merchantId}/settlement/overview`\n */\n async settlementOverview(\n merchantId: string,\n params: SettlementOverviewParams,\n ): Promise<SettlementOverviewResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/overview`,\n { query: { test_mode: params.test_mode } },\n );\n }\n\n /**\n * A merchant's live current-period settlement rollup.\n * `GET /admin-portal/accounts/{merchantId}/settlement/current`\n */\n async settlementCurrent(\n merchantId: string,\n params: SettlementCurrentParams,\n ): Promise<SettlementCurrentResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/current`,\n { query: { test_mode: params.test_mode, profile_id: params.profile_id } },\n );\n }\n\n /**\n * A merchant's vault state: the attach entitlement, and the vault\n * configuration of every shop.\n *\n * `GET /admin-portal/accounts/{merchantId}/vault`\n */\n async getVaultState(merchantId: string): Promise<AdminVaultStateResponse> {\n return this.request('GET', `/admin-portal/accounts/${encodeURIComponent(merchantId)}/vault`);\n }\n\n /**\n * Attach a vault to one of a merchant's shops — creates the vault\n * connector account and points the profile at it in one request. The\n * Collect credentials are verified write-only before anything is stored.\n *\n * `POST /admin-portal/accounts/{merchantId}/vault/attach`\n */\n async attachVault(\n merchantId: string,\n params: AdminAttachVaultRequest,\n ): Promise<AdminAttachVaultResponse> {\n return this.request(\n 'POST',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/vault/attach`,\n { body: params },\n );\n }\n\n /**\n * Fetch the global welcome promotional-credit config (amount + message)\n * granted to newly created billing profiles. Internal-admin route.\n */\n async getPromoConfig(): Promise<PromoConfigResponse> {\n return this.request('GET', '/admin-portal/promo-config');\n }\n\n /**\n * Update the global welcome promotional-credit config. Any subset of\n * `amount` (minor units) / `message` may be supplied; omitted fields are\n * left unchanged. Returns the resulting config. Internal-admin route.\n */\n async updatePromoConfig(params: UpdatePromoConfigRequest): Promise<PromoConfigResponse> {\n return this.request('PUT', '/admin-portal/promo-config', { body: params });\n }\n}\n","import type { AuditLogListParams, AuditLogListResponse, AuditLogResponse } from '../types';\nimport type { RequestFn } from '../../client';\n\nexport class AuditLogs {\n constructor(private readonly request: RequestFn) {}\n\n async list(params?: AuditLogListParams): Promise<AuditLogListResponse> {\n return this.request('GET', '/admin-portal/audit', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n async retrieve(logId: string): Promise<AuditLogResponse> {\n return this.request('GET', `/admin-portal/audit/${encodeURIComponent(logId)}`);\n }\n}\n","import type { RequestFn } from '../../client';\n\nexport class Cache {\n constructor(private readonly request: RequestFn) {}\n\n /** Invalidate a cache entry by key. `POST /cache/invalidate/{key}` */\n async invalidate(key: string): Promise<Record<string, unknown>> {\n return this.request('POST', `/cache/invalidate/${encodeURIComponent(key)}`);\n }\n}\n","import type {\n CardIssuerCreateRequest,\n CardIssuerResponse,\n CardIssuerUpdateRequest,\n CardIssuerListResponse,\n} from '../types';\nimport type { RequestFn } from '../../client';\n\nexport class CardIssuers {\n constructor(private readonly request: RequestFn) {}\n\n async create(params: CardIssuerCreateRequest): Promise<CardIssuerResponse> {\n return this.request('POST', '/card-issuers', { body: params });\n }\n\n async update(issuerId: string, params: CardIssuerUpdateRequest): Promise<CardIssuerResponse> {\n return this.request('PUT', `/card-issuers/${encodeURIComponent(issuerId)}`, { body: params });\n }\n\n async list(): Promise<CardIssuerListResponse> {\n return this.request('GET', '/card-issuers');\n }\n}\n","import type { RequestFn } from '../../client';\n\nexport class Configs {\n constructor(private readonly request: RequestFn) {}\n\n /** Create a config. `POST /configs` */\n async create(params: Record<string, unknown>): Promise<Record<string, unknown>> {\n return this.request('POST', '/configs', { body: params });\n }\n\n /** Retrieve a config by key. `GET /configs/{key}` */\n async retrieve(key: string): Promise<Record<string, unknown>> {\n return this.request('GET', `/configs/${encodeURIComponent(key)}`);\n }\n\n /** Update a config. `PUT /configs/{key}` */\n async update(key: string, params: Record<string, unknown>): Promise<Record<string, unknown>> {\n return this.request('PUT', `/configs/${encodeURIComponent(key)}`, { body: params });\n }\n\n /** Delete a config. `DELETE /configs/{key}` */\n async delete(key: string): Promise<Record<string, unknown>> {\n return this.request('DELETE', `/configs/${encodeURIComponent(key)}`);\n }\n}\n","import type {\n ConnectorRestrictionRuleResponse,\n CreateConnectorRestrictionRuleRequest,\n ListConnectorRestrictionRulesQuery,\n UpdateConnectorRestrictionRuleRequest,\n} from '../types';\nimport type { RequestFn } from '../../client';\n\nconst BASE = '/admin/connector-restriction-rules';\n\n/**\n * Per-shop / per-project connector restriction rules.\n *\n * Distinct from `connectorRestrictions` (the merchant-tier attach gate):\n * these rules allow/deny a connector for one shop (`scope: 'profile'`) or\n * project (`scope: 'project'`) at routing time. A `deny` is never routed even\n * when the connector is attached and enabled; once a scope has any `allow` it\n * becomes a whitelist, and the project scope takes precedence over the shop\n * scope. Admin-only, under `/admin/connector-restriction-rules`; exposed only\n * via `'@delopay/sdk/internal'`.\n */\nexport class ConnectorRestrictionRules {\n constructor(private readonly request: RequestFn) {}\n\n /**\n * Create one allow/deny rule. A duplicate\n * `(merchant_id, scope, scope_id, connector)` is rejected — update or delete\n * the existing rule instead.\n */\n async create(\n body: CreateConnectorRestrictionRuleRequest,\n ): Promise<ConnectorRestrictionRuleResponse> {\n return this.request('POST', BASE, { body });\n }\n\n /**\n * List rules for one scope (`scope` + `scope_id`) or a whole merchant\n * (`merchant_id`). Pass exactly one selector.\n */\n async list(\n query: ListConnectorRestrictionRulesQuery,\n ): Promise<ConnectorRestrictionRuleResponse[]> {\n // Spread into a fresh object literal so the typed query satisfies the\n // request layer's `Record<string, …>` index signature. `undefined` values\n // are dropped by `request()`.\n return this.request('GET', BASE, { query: { ...query } });\n }\n\n /** Retrieve a single rule by ID. */\n async retrieve(id: string): Promise<ConnectorRestrictionRuleResponse> {\n return this.request('GET', `${BASE}/${encodeURIComponent(id)}`);\n }\n\n /** Update a rule's action and/or reason. */\n async update(\n id: string,\n body: UpdateConnectorRestrictionRuleRequest,\n ): Promise<ConnectorRestrictionRuleResponse> {\n return this.request('PATCH', `${BASE}/${encodeURIComponent(id)}`, { body });\n }\n\n /** Delete a rule by ID. */\n async delete(id: string): Promise<{ id: string; deleted: boolean }> {\n return this.request('DELETE', `${BASE}/${encodeURIComponent(id)}`);\n }\n}\n","import type { ConnectorRestrictionResponse, UpsertConnectorRestrictionRequest } from '../types';\nimport type { RequestFn } from '../../client';\n\n/**\n * Admin-only allowlist for phased connector rollouts.\n *\n * Default-open semantics: a connector with no restriction row is\n * usable by every merchant (current behavior). A connector with a\n * row is gated — only merchants in `allowed_merchant_ids` can attach\n * a connector account. Enforced server-side at MCA-create time.\n */\nexport class ConnectorRestrictions {\n constructor(private readonly request: RequestFn) {}\n\n /**\n * Idempotent upsert. If a row exists for `connector_name`, its\n * allowlist + reason are replaced. To open the connector to\n * everyone again, call `delete()`.\n */\n async upsert(body: UpsertConnectorRestrictionRequest): Promise<ConnectorRestrictionResponse> {\n return this.request('POST', '/admin/connector-restrictions', { body });\n }\n\n async list(): Promise<ConnectorRestrictionResponse[]> {\n return this.request('GET', '/admin/connector-restrictions');\n }\n\n async retrieve(connectorName: string): Promise<ConnectorRestrictionResponse> {\n return this.request(\n 'GET',\n `/admin/connector-restrictions/${encodeURIComponent(connectorName)}`,\n );\n }\n\n /** Removing the row makes the connector public again. */\n async delete(connectorName: string): Promise<{ connector_name: string; deleted: boolean }> {\n return this.request(\n 'DELETE',\n `/admin/connector-restrictions/${encodeURIComponent(connectorName)}`,\n );\n }\n}\n","import type { GsmRuleCreateRequest, GsmRuleResponse, GsmRuleUpdateRequest } from '../types';\nimport type { RequestFn } from '../../client';\n\nexport class Gsm {\n constructor(private readonly request: RequestFn) {}\n\n async create(params: GsmRuleCreateRequest): Promise<GsmRuleResponse> {\n return this.request('POST', '/gsm', { body: params });\n }\n\n async retrieve(params: Record<string, unknown>): Promise<GsmRuleResponse> {\n return this.request('POST', '/gsm/get', { body: params });\n }\n\n async update(params: GsmRuleUpdateRequest): Promise<GsmRuleResponse> {\n return this.request('POST', '/gsm/update', { body: params });\n }\n\n async delete(params: Record<string, unknown>): Promise<GsmRuleResponse> {\n return this.request('POST', '/gsm/delete', { body: params });\n }\n}\n","import type {\n AdminAdjustmentRequest,\n AdminAdjustmentResponse,\n AdminCreateLedgerRequest,\n AdminCreateLedgerResponse,\n AdminResetLedgerRequest,\n AdminResetLedgerResponse,\n AdminSetFreeRequest,\n AdminSuspendRequest,\n AdminUnsuspendRequest,\n AdminSetTrustedRequest,\n UpdateLedgerEntryRequest,\n} from '../types';\nimport type { BillingProfileResponse } from '../../types';\nimport type { RequestFn } from '../../client';\n\n/**\n * Platform-level ledger adjustments on a merchant's balance. Admin-only\n * routes under `/billing/{merchantId}/admin/credit|debit`. Exposed only\n * via `'@delopay/sdk/internal'` so the public merchant SDK doesn't\n * advertise the admin adjustment path in autocomplete.\n */\nexport class PlatformBilling {\n constructor(private readonly request: RequestFn) {}\n\n /**\n * Manually credit a merchant's balance (e.g. promotional credit,\n * dispute reversal, manual correction).\n *\n * @param merchantId - The merchant account ID.\n * @param params - Credit amount and reason.\n */\n async credit(\n merchantId: string,\n params: AdminAdjustmentRequest,\n ): Promise<AdminAdjustmentResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/credit`, {\n body: params,\n });\n }\n\n /**\n * Manually debit a merchant's balance.\n *\n * @param merchantId - The merchant account ID.\n * @param params - Debit amount and reason.\n */\n async debit(\n merchantId: string,\n params: AdminAdjustmentRequest,\n ): Promise<AdminAdjustmentResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/debit`, {\n body: params,\n });\n }\n\n /**\n * Edit a single ledger entry (amount and/or description), keeping the\n * merchant balance consistent: when `amount` changes, the balance is\n * atomically adjusted by the difference. Returns the entry id and new\n * balance.\n *\n * @param merchantId - The merchant account ID.\n * @param ledgerId - The ledger entry id to edit.\n * @param params - New amount / description (either optional).\n */\n async editLedgerEntry(\n merchantId: string,\n ledgerId: string,\n params: UpdateLedgerEntryRequest,\n ): Promise<AdminAdjustmentResponse> {\n return this.request(\n 'PATCH',\n `/billing/${encodeURIComponent(merchantId)}/admin/ledger/${encodeURIComponent(ledgerId)}`,\n { body: params },\n );\n }\n\n /**\n * Delete a single ledger entry, reversing its amount from the merchant\n * balance. Returns the deleted entry id and the new balance.\n *\n * @param merchantId - The merchant account ID.\n * @param ledgerId - The ledger entry id to delete.\n */\n async deleteLedgerEntry(merchantId: string, ledgerId: string): Promise<AdminAdjustmentResponse> {\n return this.request(\n 'DELETE',\n `/billing/${encodeURIComponent(merchantId)}/admin/ledger/${encodeURIComponent(ledgerId)}`,\n );\n }\n\n /**\n * Manually suspend a merchant (e.g. confirmed fraud or ToS violation),\n * independent of balance. A `reason` is required for audit. Throws 412 if\n * the merchant is trusted (clear the flag first) or already suspended.\n *\n * @param merchantId - The merchant account ID.\n * @param params - Suspension reason.\n * @returns The updated billing profile.\n */\n async suspend(merchantId: string, params: AdminSuspendRequest): Promise<BillingProfileResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/suspend`, {\n body: params,\n });\n }\n\n /**\n * Lift a suspension. Restores the merchant to `active` (or `delinquent` if\n * the balance is at/below the hard floor) and resets the recharge-failure\n * counter. Throws 412 if the merchant is not suspended.\n *\n * @param merchantId - The merchant account ID.\n * @param params - Optional audit note.\n * @returns The updated billing profile.\n */\n async unsuspend(\n merchantId: string,\n params: AdminUnsuspendRequest = {},\n ): Promise<BillingProfileResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/unsuspend`, {\n body: params,\n });\n }\n\n /**\n * Set or clear the trusted (suspension-exempt) flag. Trusted merchants\n * cannot be suspended automatically or manually. Does not lift an existing\n * suspension — use {@link PlatformBilling.unsuspend} for that.\n *\n * @param merchantId - The merchant account ID.\n * @param params - The desired trusted state.\n * @returns The updated billing profile.\n */\n async setTrusted(\n merchantId: string,\n params: AdminSetTrustedRequest,\n ): Promise<BillingProfileResponse> {\n return this.request('PATCH', `/billing/${encodeURIComponent(merchantId)}/admin/trusted`, {\n body: params,\n });\n }\n\n /**\n * Mark a merchant free (not billed), or put it back on the prepaid model.\n * While free, no platform fee is deducted, the payment gate never blocks on\n * billing status, top-ups are refused and auto-recharge is inert. Marking\n * free needs a `reason` and is refused (412) while an admin suspension is in\n * force — lift that first.\n *\n * Requires a router that supports the free flag; older ones answer `404`.\n *\n * @param merchantId - The merchant account ID.\n * @param params - The desired free state and, when marking free, the reason.\n * @returns The updated billing profile.\n */\n async setFree(merchantId: string, params: AdminSetFreeRequest): Promise<BillingProfileResponse> {\n return this.request('PATCH', `/billing/${encodeURIComponent(merchantId)}/admin/free`, {\n body: params,\n });\n }\n\n /**\n * Delete a merchant's **entire** ledger. Every live entry is soft-deleted —\n * kept, so a replayed fee deduction or top-up webhook still no-ops — the\n * balance is set to zero and the status re-derived (`active` for a free\n * merchant; an active paying merchant lands in `delinquent`). Refused (412)\n * while the merchant has shop allocations. Audited.\n *\n * Requires a router that serves the ledger admin routes; older ones answer\n * `404`.\n *\n * @param merchantId - The merchant account ID.\n * @param params - The reason, required for audit.\n * @returns What was removed and the post-reset profile.\n */\n async resetLedger(\n merchantId: string,\n params: AdminResetLedgerRequest,\n ): Promise<AdminResetLedgerResponse> {\n return this.request('DELETE', `/billing/${encodeURIComponent(merchantId)}/admin/ledger`, {\n body: params,\n });\n }\n\n /**\n * (Re)create a merchant's ledger, optionally seeded with an opening\n * balance. Ensures the billing profile exists (created without the welcome\n * promo credit) and, when `opening_balance` is set, writes one\n * `opening_balance` entry through the same atomic helper an admin credit\n * uses. Refused (412) while live entries or a non-zero balance remain —\n * reset first. Does not clear the free flag. Audited.\n *\n * Requires a router that serves the ledger admin routes; older ones answer\n * `404`.\n *\n * @param merchantId - The merchant account ID.\n * @param params - Opening balance (minor units), currency for a new profile, and the reason.\n * @returns The opening entry id (if one was written) and the profile.\n */\n async createLedger(\n merchantId: string,\n params: AdminCreateLedgerRequest,\n ): Promise<AdminCreateLedgerResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/ledger`, {\n body: params,\n });\n }\n}\n","import type {\n FeeRulePreviewRequest,\n FeeRulePreviewResponse,\n FeeScheduleCreateRequest,\n FeeScheduleResponse,\n FeeScheduleUpdateRequest,\n PlatformFeeRuleInput,\n PlatformFeeRuleRecord,\n PlatformFeeRuleRequest,\n} from '../../types';\nimport type { RequestFn } from '../../client';\n\n/**\n * Platform-wide fee schedule management. Admin-only routes under\n * `/admin/fees/*`. Exposed only via `'@delopay/sdk/internal'`.\n *\n * `platformFees.rules` manages the platform-owned Euclid fee-rule program per\n * merchant, which takes precedence over the flat platform schedules. Build the\n * program with `feeProgram()`.\n */\nexport class PlatformFees {\n /** Platform-owned Euclid fee-rule program (`/admin/fees/rules`). */\n readonly rules: PlatformFeeRulesManager;\n\n constructor(private readonly request: RequestFn) {\n this.rules = new PlatformFeeRulesManager(request);\n }\n\n /** Create a platform fee schedule for a specific merchant. */\n async create(params: FeeScheduleCreateRequest, merchantId: string): Promise<FeeScheduleResponse> {\n return this.request('POST', '/admin/fees', {\n body: params,\n query: { merchant_id: merchantId },\n });\n }\n\n /** List every platform fee schedule assigned to a merchant. */\n async list(merchantId: string): Promise<FeeScheduleResponse[]> {\n return this.request('GET', '/admin/fees/list', {\n query: { merchant_id: merchantId },\n });\n }\n\n /** Retrieve a single platform fee schedule by ID. */\n async retrieve(feeId: string): Promise<FeeScheduleResponse> {\n return this.request('GET', `/admin/fees/${encodeURIComponent(feeId)}`);\n }\n\n /** Update a platform fee schedule. */\n async update(feeId: string, params: FeeScheduleUpdateRequest): Promise<FeeScheduleResponse> {\n return this.request('PUT', `/admin/fees/${encodeURIComponent(feeId)}`, { body: params });\n }\n\n /** Delete a platform fee schedule. */\n async delete(feeId: string): Promise<FeeScheduleResponse> {\n return this.request('DELETE', `/admin/fees/${encodeURIComponent(feeId)}`);\n }\n}\n\n/**\n * Manages a merchant's platform-owned Euclid fee-rule programs (admin surface),\n * merchant-wide or per-shop (one active program per scope; a shop-scoped\n * program wins for its shop, else the merchant-wide one applies). Build the\n * `algorithm` with `feeProgram()`. The SDK injects `fee_owner: 'platform'`; set\n * `profile_id` on the input to scope a program to a shop.\n */\nexport class PlatformFeeRulesManager {\n constructor(private readonly request: RequestFn) {}\n\n /** Create or replace the platform fee-rule program for a merchant. */\n async upsert(params: PlatformFeeRuleInput, merchantId: string): Promise<PlatformFeeRuleRecord> {\n const body: PlatformFeeRuleRequest = { ...params, fee_owner: 'platform' };\n return this.request('PUT', '/admin/fees/rules', {\n body,\n query: { merchant_id: merchantId },\n });\n }\n\n /**\n * Retrieve the active platform fee-rule program for a scope, or `null`.\n * `profileId` omitted = merchant-wide program; set = that shop's program.\n */\n async retrieve(merchantId: string, profileId?: string): Promise<PlatformFeeRuleRecord | null> {\n return this.request('GET', '/admin/fees/rules', {\n query: { merchant_id: merchantId, profile_id: profileId },\n });\n }\n\n /**\n * Deactivate a platform fee-rule program. Idempotent. `profileId` omitted\n * targets the merchant-wide program; set targets only that shop's program.\n */\n async delete(merchantId: string, profileId?: string): Promise<void> {\n await this.request('DELETE', '/admin/fees/rules', {\n query: { merchant_id: merchantId, profile_id: profileId },\n });\n }\n\n /**\n * Dry-run a candidate fee-rule program against a sample transaction.\n * Returns the matched rule name, whether it fell through, and the computed fee.\n * Does not persist anything.\n */\n async preview(input: FeeRulePreviewRequest, merchantId: string): Promise<FeeRulePreviewResponse> {\n return this.request('POST', '/admin/fees/rules/preview', {\n body: input,\n query: { merchant_id: merchantId },\n });\n }\n}\n","import type { RequestFn } from '../client';\nimport { Delopay } from '../client';\nimport { Admin } from './resources/admin';\nimport { AdminPortal } from './resources/adminPortal';\nimport { AuditLogs } from './resources/auditLogs';\nimport { Cache } from './resources/cache';\nimport { CardIssuers } from './resources/cardIssuers';\nimport { Configs } from './resources/configs';\nimport { ConnectorRestrictionRules } from './resources/connectorRestrictionRules';\nimport { ConnectorRestrictions } from './resources/connectorRestrictions';\nimport { Gsm } from './resources/gsm';\nimport { PlatformBilling } from './resources/platformBilling';\nimport { PlatformFees } from './resources/platformFees';\n\n/**\n * Internal-only Delopay client for DeloPay staff tooling (the admin\n * control-center, audit UIs, etc.). Extends the public `Delopay` surface\n * with admin-plane resources that must **not** be discoverable from the\n * merchant-facing package entry.\n *\n * Import path: `import { DelopayInternal } from '@delopay/sdk/internal'`.\n * The merchant-facing `import { Delopay } from '@delopay/sdk'` never\n * surfaces these.\n */\nexport class DelopayInternal extends Delopay {\n /** Bootstrap admin endpoints — signup, signin, onboarding. */\n readonly admin: Admin;\n /** Platform-wide customer, transaction, analytics, merchant-account ops. */\n readonly adminPortal: AdminPortal;\n /** Audit log reads. */\n readonly auditLogs: AuditLogs;\n /** Backend cache invalidation. */\n readonly cache: Cache;\n /** Platform card-issuer program management. */\n readonly cardIssuers: CardIssuers;\n /** Generic platform config store. */\n readonly configs: Configs;\n /** Per-merchant connector allowlist for phased rollouts. */\n readonly connectorRestrictions: ConnectorRestrictions;\n /** Per-shop / per-project connector allow-deny rules (routing-time). */\n readonly connectorRestrictionRules: ConnectorRestrictionRules;\n /** GSM (Gateway Status Mapping) routing rules. */\n readonly gsm: Gsm;\n /** Admin-only ledger credits/debits against a merchant's balance. */\n readonly platformBilling: PlatformBilling;\n /** Platform-wide fee schedules assigned to merchants. */\n readonly platformFees: PlatformFees;\n\n constructor(...args: ConstructorParameters<typeof Delopay>) {\n super(...args);\n const request = this.request.bind(this) as RequestFn;\n this.admin = new Admin(request);\n this.adminPortal = new AdminPortal(request);\n this.auditLogs = new AuditLogs(request);\n this.cache = new Cache(request);\n this.cardIssuers = new CardIssuers(request);\n this.configs = new Configs(request);\n this.connectorRestrictions = new ConnectorRestrictions(request);\n this.connectorRestrictionRules = new ConnectorRestrictionRules(request);\n this.gsm = new Gsm(request);\n this.platformBilling = new PlatformBilling(request);\n this.platformFees = new PlatformFees(request);\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/internal/resources/admin.ts","../src/internal/resources/adminPortal.ts","../src/internal/resources/auditLogs.ts","../src/internal/resources/cache.ts","../src/internal/resources/cardIssuers.ts","../src/internal/resources/configs.ts","../src/internal/resources/connectorRestrictionRules.ts","../src/internal/resources/connectorRestrictions.ts","../src/internal/resources/gsm.ts","../src/internal/resources/platformBilling.ts","../src/internal/resources/platformFees.ts","../src/internal/client.ts"],"sourcesContent":["import type { AuthResponse, SignUpWithMerchantIdRequest } from '../../types';\nimport type {\n AdminSignInRequest,\n AuthorizeResponse,\n CreateInternalUserRequest,\n CreateTenantUserRequest,\n OnboardMerchantRequest,\n OnboardMerchantResponse,\n SignupToggleRequest,\n SignupToggleResponse,\n} from '../types';\nimport type { RequestFn } from '../../client';\n\nexport class Admin {\n constructor(private readonly request: RequestFn) {}\n\n async signIn(params: AdminSignInRequest): Promise<AuthResponse> {\n return this.request('POST', '/admin/signin', { body: params });\n }\n\n async createInternalUser(params: CreateInternalUserRequest): Promise<AuthorizeResponse> {\n return this.request('POST', '/admin/internal-signup', { body: params });\n }\n\n async createTenant(params: CreateTenantUserRequest): Promise<AuthorizeResponse> {\n return this.request('POST', '/admin/tenant-signup', { body: params });\n }\n\n /**\n * Create a new merchant admin user and merchant account atomically.\n *\n * This is the correct endpoint for bootstrapping the first admin user in a\n * fresh deployment — `internal-signup`/`tenant-signup` both require\n * pre-existing merchant records that don't exist on a clean database.\n *\n * `POST /admin/signup-with-merchant-id`\n */\n async signupWithMerchantId(params: SignUpWithMerchantIdRequest): Promise<AuthorizeResponse> {\n return this.request('POST', '/admin/signup-with-merchant-id', { body: params });\n }\n\n /** Toggle public signup on/off. `POST /admin/settings/signup` */\n async setSignupSettings(params: SignupToggleRequest): Promise<SignupToggleResponse> {\n return this.request('POST', '/admin/settings/signup', { body: params });\n }\n\n /** Read current public-signup status. `GET /admin/settings/signup` */\n async getSignupSettings(): Promise<SignupToggleResponse> {\n return this.request('GET', '/admin/settings/signup');\n }\n\n /** Full merchant bootstrap — user + merchant + project + profile + keys. `POST /admin/onboard-merchant` */\n async onboardMerchant(params: OnboardMerchantRequest): Promise<OnboardMerchantResponse> {\n return this.request('POST', '/admin/onboard-merchant', { body: params });\n }\n}\n","import type {\n FeeStatementDetail,\n MerchantAccountResponse,\n MerchantAccountUpdateRequest,\n PaymentAttemptsListResponse,\n PaymentClientContextListResponse,\n PaymentResponse,\n PaymentsDeleteResponse,\n PaymentStatusHistoryResponse,\n ProfileResponse,\n RefundListResponse,\n SettlementCurrentParams,\n SettlementCurrentResponse,\n SettlementOverviewParams,\n SettlementOverviewResponse,\n SettlementStatementListParams,\n SettlementStatementListResponse,\n StatementPdfParams,\n SubscriptionAnalyticsRequest,\n SubscriptionAnalyticsResponse,\n SubscriptionDrillRequest,\n ScopeDrillRequest,\n} from '../../types';\nimport type {\n AdminAttachVaultRequest,\n AdminAttachVaultResponse,\n AdminVaultStateResponse,\n AdminCustomerListParams,\n AdminCustomerListResponse,\n AdminCustomerDetail,\n AdminTransactionListParams,\n AdminTransactionListResponse,\n AdminAnalyticsRequest,\n PlatformAnalyticsResponse,\n OverviewStatsResponse,\n PaymentAnalyticsRequest,\n PaymentAnalyticsResponse,\n AnalyticsScopeRequest,\n ClientAnalyticsRequest,\n DeviceDrillRequest,\n GeoDrillRequest,\n DrillResponse,\n DevicesAnalyticsResponse,\n GeoAnalyticsResponse,\n AnalyticsScopeResponse,\n AdminLedgerAnalyticsRequest,\n AdminLedgerAnalyticsResponse,\n AdminCreateUserForMerchantRequest,\n AdminUpdateUserRequest,\n AdminUserResponse,\n PaymentAutoCloseConfigResponse,\n PaymentAutoCloseOverrideResponse,\n PromoConfigResponse,\n TransactionDeleteConfigResponse,\n TransactionDeleteOverrideResponse,\n UpdatePaymentAutoCloseConfigRequest,\n UpdatePaymentAutoCloseOverrideRequest,\n UpdatePromoConfigRequest,\n UpdateTransactionDeleteConfigRequest,\n UpdateTransactionDeleteOverrideRequest,\n} from '../types';\nimport type { RequestFn } from '../../client';\n\nexport class AdminPortal {\n constructor(private readonly request: RequestFn) {}\n\n async listCustomers(params?: AdminCustomerListParams): Promise<AdminCustomerListResponse> {\n return this.request('GET', '/admin-portal/customers', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n async getCustomer(customerId: string): Promise<AdminCustomerDetail> {\n return this.request('GET', `/admin-portal/customers/${encodeURIComponent(customerId)}`);\n }\n\n async listTransactions(\n params?: AdminTransactionListParams,\n ): Promise<AdminTransactionListResponse> {\n return this.request('GET', '/admin-portal/transactions', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Full detail for a single transaction of ANY merchant — the same\n * `PaymentResponse` the merchant `payments.retrieve` returns. Admin-scoped:\n * the JWT (or admin API key) does not need to belong to the payment's\n * merchant; the backend resolves the owning merchant and reads it read-only\n * (no connector sync).\n */\n async getTransaction(paymentId: string): Promise<PaymentResponse> {\n return this.request('GET', `/admin-portal/transactions/${encodeURIComponent(paymentId)}`);\n }\n\n /**\n * Per-attempt history (retries across connectors, decline reasons) for a\n * single transaction of ANY merchant.\n */\n async getTransactionAttempts(paymentId: string): Promise<PaymentAttemptsListResponse> {\n return this.request(\n 'GET',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/attempts`,\n );\n }\n\n /**\n * Status timeline (intent / attempt / refund / dispute transitions) for a\n * single transaction of ANY merchant. `complete: false` marks timelines\n * partially reconstructed from current records.\n */\n async getTransactionStatusHistory(paymentId: string): Promise<PaymentStatusHistoryResponse> {\n return this.request(\n 'GET',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/status-history`,\n );\n }\n\n /**\n * Refunds for a single transaction of ANY merchant.\n */\n async getTransactionRefunds(paymentId: string): Promise<RefundListResponse> {\n return this.request(\n 'GET',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/refunds`,\n );\n }\n\n async analytics(params: AdminAnalyticsRequest): Promise<PlatformAnalyticsResponse> {\n return this.request('GET', '/admin-portal/analytics', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n async overviewStats(): Promise<OverviewStatsResponse> {\n return this.request('GET', '/admin-portal/overview-stats');\n }\n\n async paymentAnalytics(params: PaymentAnalyticsRequest): Promise<PaymentAnalyticsResponse> {\n return this.request('GET', '/admin-portal/payment-analytics', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * One drill level of the analytics dashboard: the scope's daily series +\n * processor mix and its direct children's series. Range / metric / donut\n * toggles apply client-side; only a drill (passing merchant_id / project_id\n * / shop_id) fetches the next level.\n */\n async analyticsScope(params?: AnalyticsScopeRequest): Promise<AnalyticsScopeResponse> {\n return this.request('GET', '/admin-portal/analytics/scope', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Device analytics over the canonical client-context observation per\n * payment, rooted at all merchants and drillable via `merchant_id` /\n * `project_id` / `shop_id` like `analyticsScope`. Answers 200 with\n * `enabled: false` when the client-context optimisation-use switch is off.\n */\n async analyticsDevices(params?: ClientAnalyticsRequest): Promise<DevicesAnalyticsResponse> {\n return this.request('GET', '/admin-portal/analytics/devices', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Geo analytics over the canonical client-context observation per payment,\n * rooted at all merchants. `mode` selects the location claim (`ip` default,\n * `billing`).\n */\n async analyticsGeo(params?: ClientAnalyticsRequest): Promise<GeoAnalyticsResponse> {\n return this.request('GET', '/admin-portal/analytics/geo', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * The recent payments behind one clicked geo target (map country/city or\n * local-hours heatmap cell), rooted at all merchants. Capped at 50 rows,\n * newest first, with the full match count alongside.\n */\n async analyticsGeoTransactions(params: GeoDrillRequest): Promise<DrillResponse> {\n return this.request('GET', '/admin-portal/analytics/geo/transactions', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * The recent payments behind one clicked device target (browser/platform\n * family, device-model label or device class), rooted at all merchants.\n * 50 rows per page (`offset` for the next page), newest first.\n */\n async analyticsDeviceTransactions(params: DeviceDrillRequest): Promise<DrillResponse> {\n return this.request('GET', '/admin-portal/analytics/devices/transactions', {\n // A discriminated union carries no index signature, so the widening\n // goes via `unknown` — the union is the point.\n query: params as unknown as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * The payments behind one clicked element of the admin payments dashboard\n * (processor / method slice, outcome segment, series bucket or breakdown\n * row), rooted at all merchants. Same contract as the merchant surface's\n * `analytics.scopeTransactions`. `GET /admin-portal/analytics/scope/transactions`\n */\n async analyticsScopeTransactions(params: ScopeDrillRequest): Promise<DrillResponse> {\n return this.request('GET', '/admin-portal/analytics/scope/transactions', {\n query: params as unknown as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Subscription analytics over `subscription` and `invoice`, rooted at all\n * merchants and drillable via `merchant_id` / `project_id` / `shop_id` like\n * `analyticsScope`. The `children` block at the root is the merchant\n * breakdown — there is no separate endpoint for it.\n *\n * Half the figures are **stocks** (a snapshot at the window's end, not a sum\n * over it), so `est_monthly_volume_usd` and `active` can match across a\n * 7-day and a 30-day window while `billed_volume_usd` does not. Day\n * granularity only.\n */\n async analyticsSubscriptions(\n params?: SubscriptionAnalyticsRequest,\n ): Promise<SubscriptionAnalyticsResponse> {\n return this.request('GET', '/admin-portal/analytics/subscriptions', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * The billing cycles behind one clicked element of the admin subscription\n * dashboard: an invoice outcome, a processor slice on either axis, a plan\n * row, a subscription status, a movement component, a series bucket or a\n * breakdown row. 50 rows per page (`offset` for the next), newest first,\n * with the full match count alongside.\n *\n * A cycle that never reached a payment is listed too — that is what \"still\n * unpaid\" means — and carries its invoice id as `payment_id` with\n * `invoice_id` set to the same value.\n */\n async analyticsSubscriptionsList(params: SubscriptionDrillRequest): Promise<DrillResponse> {\n return this.request('GET', '/admin-portal/analytics/subscriptions/list', {\n // A discriminated union carries no index signature, so the widening\n // goes via `unknown` — the union is the point, and the query builder\n // only ever reads own enumerable keys.\n query: params as unknown as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Platform billing dashboard: total balance across all ledger accounts (+\n * the net change), top-ups, fees collected, and the day-by-day ledger flow.\n * All amounts are in USD minor units.\n */\n async ledgerAnalytics(\n params?: AdminLedgerAnalyticsRequest,\n ): Promise<AdminLedgerAnalyticsResponse> {\n return this.request('GET', '/admin-portal/ledger-analytics', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n /**\n * Retrieve a merchant account via the admin portal. Unlike\n * `merchantAccounts.retrieve`, this route accepts an admin JWT (or admin API\n * key) and does not require the JWT to be scoped to the target merchant.\n */\n async retrieveAccount(merchantId: string): Promise<MerchantAccountResponse> {\n return this.request('GET', `/admin-portal/accounts/${encodeURIComponent(merchantId)}`);\n }\n\n /**\n * Update a merchant account via the admin portal. Authenticated via admin JWT\n * or admin API key.\n */\n async updateAccount(\n merchantId: string,\n params: MerchantAccountUpdateRequest,\n ): Promise<MerchantAccountResponse> {\n return this.request('POST', `/admin-portal/accounts/${encodeURIComponent(merchantId)}`, {\n body: params,\n });\n }\n\n /**\n * Delete a merchant account via the admin portal. Authenticated via admin JWT\n * or admin API key.\n */\n async deleteAccount(merchantId: string): Promise<MerchantAccountResponse> {\n return this.request('DELETE', `/admin-portal/accounts/${encodeURIComponent(merchantId)}`);\n }\n\n /**\n * Create a brand-new user attached to the given merchant. The user is\n * marked `is_verified = true` so the admin can hand off credentials\n * immediately — no email round-trip is sent.\n */\n async createUserForMerchant(\n customerId: string,\n body: AdminCreateUserForMerchantRequest,\n ): Promise<AdminUserResponse> {\n return this.request('POST', `/admin-portal/customers/${encodeURIComponent(customerId)}/users`, {\n body,\n });\n }\n\n /**\n * Edit a user record. Any subset of fields may be supplied. `role_id`\n * requires `merchant_id`. `password` triggers a password reset (validated\n * against signup policy + JWT blacklist). `reset_2fa` clears TOTP state\n * so the user re-enrolls on next login. `is_active` supports both\n * directions: false soft-disables, true reactivates a soft-disabled user.\n *\n * Throws a `400` with `code === 'UR_66'` when the change would leave a\n * merchant with no administrator — `is_active: false` or `is_verified:\n * false` on, or a `role_id` demoting, the only active user whose role can\n * manage that merchant's users. Nothing is written. `error.data` carries a\n * {@link LastAdministratorRefusal} naming the merchant and which change was\n * refused; render that rather than the generic message.\n */\n async updateUser(userId: string, body: AdminUpdateUserRequest): Promise<AdminUserResponse> {\n return this.request('PATCH', `/admin-portal/users/${encodeURIComponent(userId)}`, { body });\n }\n\n /**\n * Soft-delete a user globally: deactivates the row, blacklists existing\n * JWTs, and wipes credentials. Distinct from `deleteUserRole`, which\n * removes a single role binding while leaving the user signed-in elsewhere.\n *\n * Throws the same `UR_66` as {@link updateUser} when the user is the last\n * administrator of any merchant they belong to, with `route: 'delete'`.\n */\n async deleteUser(userId: string): Promise<void> {\n return this.request('DELETE', `/admin-portal/users/${encodeURIComponent(userId)}`);\n }\n\n /**\n * Set a target merchant's shop iframe-allowed origins. Internal-admin\n * route — accepts an admin JWT or admin API key without requiring the\n * caller to be scoped to the target merchant. Pass `null` (or an empty\n * array) to clear the allowlist back to same-origin only.\n *\n * Server validates each origin: full origin (scheme + host[:port]),\n * no path/query/fragment, no wildcards.\n */\n async updateShopIframeOrigins(\n merchantId: string,\n profileId: string,\n origins: string[] | null,\n ): Promise<ProfileResponse> {\n return this.request(\n 'POST',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/business_profile/${encodeURIComponent(profileId)}/iframe-origins`,\n { body: { iframe_allowed_origins: origins } },\n );\n }\n\n /**\n * Set (or clear) a target merchant shop's home country — the geo\n * dashboard's cross-border baseline. Internal-admin route. Pass `null` to\n * clear back to \"international / no home country\" (the default).\n *\n * `POST /admin-portal/accounts/{merchantId}/business-profile/{profileId}/home-country`\n */\n async updateShopHomeCountry(\n merchantId: string,\n profileId: string,\n homeCountry: string | null,\n ): Promise<ProfileResponse> {\n return this.request(\n 'POST',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/business-profile/${encodeURIComponent(profileId)}/home-country`,\n { body: { home_country: homeCountry } },\n );\n }\n\n /**\n * Soft-delete a transaction of ANY merchant. Only payments whose status\n * is in the admin delete policy can be deleted; the action is audited.\n *\n * `DELETE /admin-portal/transactions/{paymentId}`\n */\n async deleteTransaction(paymentId: string): Promise<PaymentsDeleteResponse> {\n return this.request('DELETE', `/admin-portal/transactions/${encodeURIComponent(paymentId)}`);\n }\n\n /**\n * Recover (undelete) a soft-deleted transaction. Audited.\n *\n * `POST /admin-portal/transactions/{paymentId}/recover`\n */\n async recoverTransaction(paymentId: string): Promise<PaymentsDeleteResponse> {\n return this.request(\n 'POST',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/recover`,\n );\n }\n\n /**\n * Client/device observations captured while the buyer interacted with a\n * transaction of ANY merchant, oldest first.\n *\n * `GET /admin-portal/transactions/{paymentId}/client-context`\n */\n async getTransactionClientContext(paymentId: string): Promise<PaymentClientContextListResponse> {\n return this.request(\n 'GET',\n `/admin-portal/transactions/${encodeURIComponent(paymentId)}/client-context`,\n );\n }\n\n /**\n * The global payment auto-close policy.\n * `GET /admin-portal/auto-close-config`\n */\n async getAutoCloseConfig(): Promise<PaymentAutoCloseConfigResponse> {\n return this.request('GET', '/admin-portal/auto-close-config');\n }\n\n /**\n * Update the global payment auto-close policy. PATCH semantics — omitted\n * fields are left unchanged.\n *\n * `PUT /admin-portal/auto-close-config`\n */\n async updateAutoCloseConfig(\n params: UpdatePaymentAutoCloseConfigRequest,\n ): Promise<PaymentAutoCloseConfigResponse> {\n return this.request('PUT', '/admin-portal/auto-close-config', { body: params });\n }\n\n /**\n * One merchant's auto-close override plus the effective values.\n * `GET /admin-portal/accounts/{merchantId}/auto-close-config`\n */\n async getMerchantAutoCloseConfig(merchantId: string): Promise<PaymentAutoCloseOverrideResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/auto-close-config`,\n );\n }\n\n /**\n * Replace one merchant's auto-close override. REPLACE semantics — sending\n * both fields as `null` removes the override entirely.\n *\n * `PUT /admin-portal/accounts/{merchantId}/auto-close-config`\n */\n async updateMerchantAutoCloseConfig(\n merchantId: string,\n params: UpdatePaymentAutoCloseOverrideRequest,\n ): Promise<PaymentAutoCloseOverrideResponse> {\n return this.request(\n 'PUT',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/auto-close-config`,\n { body: params },\n );\n }\n\n /**\n * The global transaction soft-delete policy (statuses admins may delete,\n * plus the deploy-time env ceiling).\n *\n * `GET /admin-portal/transaction-delete-config`\n */\n async getTransactionDeleteConfig(): Promise<TransactionDeleteConfigResponse> {\n return this.request('GET', '/admin-portal/transaction-delete-config');\n }\n\n /**\n * Replace the global deletable-status set. Must be a subset of the env\n * ceiling.\n *\n * `PUT /admin-portal/transaction-delete-config`\n */\n async updateTransactionDeleteConfig(\n params: UpdateTransactionDeleteConfigRequest,\n ): Promise<TransactionDeleteConfigResponse> {\n return this.request('PUT', '/admin-portal/transaction-delete-config', { body: params });\n }\n\n /**\n * One merchant's deletable-status override plus the effective set.\n * `GET /admin-portal/accounts/{merchantId}/transaction-delete-config`\n */\n async getMerchantTransactionDeleteConfig(\n merchantId: string,\n ): Promise<TransactionDeleteOverrideResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/transaction-delete-config`,\n );\n }\n\n /**\n * Replace one merchant's deletable-status override. `statuses: null`\n * removes the override; an empty list forbids deletion entirely.\n *\n * `PUT /admin-portal/accounts/{merchantId}/transaction-delete-config`\n */\n async updateMerchantTransactionDeleteConfig(\n merchantId: string,\n params: UpdateTransactionDeleteOverrideRequest,\n ): Promise<TransactionDeleteOverrideResponse> {\n return this.request(\n 'PUT',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/transaction-delete-config`,\n { body: params },\n );\n }\n\n /**\n * A merchant's settlement statements. Same shapes as the merchant-facing\n * `settlement` resource, admin-authenticated.\n *\n * `GET /admin-portal/accounts/{merchantId}/settlement/statements`\n */\n async listSettlementStatements(\n merchantId: string,\n params: SettlementStatementListParams,\n ): Promise<SettlementStatementListResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/statements`,\n {\n query: {\n test_mode: params.test_mode,\n profile_id: params.profile_id,\n limit: params.limit,\n offset: params.offset,\n },\n },\n );\n }\n\n /**\n * One settlement statement with its breakdown.\n * `GET /admin-portal/accounts/{merchantId}/settlement/statements/{statementId}`\n */\n async getSettlementStatement(\n merchantId: string,\n statementId: string,\n ): Promise<FeeStatementDetail> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/statements/${encodeURIComponent(statementId)}`,\n );\n }\n\n /**\n * Export a settlement statement as PDF. Returns the raw bytes as a `Blob`\n * with the same auth and error handling as every other call.\n *\n * `GET /admin-portal/accounts/{merchantId}/settlement/statements/{statementId}/pdf`\n */\n async downloadSettlementStatementPdf(\n merchantId: string,\n statementId: string,\n params?: StatementPdfParams,\n ): Promise<Blob> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/statements/${encodeURIComponent(statementId)}/pdf`,\n {\n query: {\n currency: params?.currency,\n include_transactions: params?.include_transactions,\n },\n responseType: 'blob',\n },\n );\n }\n\n /**\n * A merchant's per-shop settlement overview.\n * `GET /admin-portal/accounts/{merchantId}/settlement/overview`\n */\n async settlementOverview(\n merchantId: string,\n params: SettlementOverviewParams,\n ): Promise<SettlementOverviewResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/overview`,\n { query: { test_mode: params.test_mode } },\n );\n }\n\n /**\n * A merchant's live current-period settlement rollup.\n * `GET /admin-portal/accounts/{merchantId}/settlement/current`\n */\n async settlementCurrent(\n merchantId: string,\n params: SettlementCurrentParams,\n ): Promise<SettlementCurrentResponse> {\n return this.request(\n 'GET',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/settlement/current`,\n { query: { test_mode: params.test_mode, profile_id: params.profile_id } },\n );\n }\n\n /**\n * A merchant's vault state: the attach entitlement, and the vault\n * configuration of every shop.\n *\n * `GET /admin-portal/accounts/{merchantId}/vault`\n */\n async getVaultState(merchantId: string): Promise<AdminVaultStateResponse> {\n return this.request('GET', `/admin-portal/accounts/${encodeURIComponent(merchantId)}/vault`);\n }\n\n /**\n * Attach a vault to one of a merchant's shops — creates the vault\n * connector account and points the profile at it in one request. The\n * Collect credentials are verified write-only before anything is stored.\n *\n * `POST /admin-portal/accounts/{merchantId}/vault/attach`\n */\n async attachVault(\n merchantId: string,\n params: AdminAttachVaultRequest,\n ): Promise<AdminAttachVaultResponse> {\n return this.request(\n 'POST',\n `/admin-portal/accounts/${encodeURIComponent(merchantId)}/vault/attach`,\n { body: params },\n );\n }\n\n /**\n * Fetch the global welcome promotional-credit config (amount + message)\n * granted to newly created billing profiles. Internal-admin route.\n */\n async getPromoConfig(): Promise<PromoConfigResponse> {\n return this.request('GET', '/admin-portal/promo-config');\n }\n\n /**\n * Update the global welcome promotional-credit config. Any subset of\n * `amount` (minor units) / `message` may be supplied; omitted fields are\n * left unchanged. Returns the resulting config. Internal-admin route.\n */\n async updatePromoConfig(params: UpdatePromoConfigRequest): Promise<PromoConfigResponse> {\n return this.request('PUT', '/admin-portal/promo-config', { body: params });\n }\n}\n","import type { AuditLogListParams, AuditLogListResponse, AuditLogResponse } from '../types';\nimport type { AdminAuditLogExportRecord } from '../types';\nimport type {\n BinaryExportOptions,\n ExportEnvelope,\n ExportOptions,\n JsonExportOptions,\n} from '../../types';\nimport type { RequestFn, RequestOptions } from '../../client';\n\nexport class AuditLogs {\n constructor(private readonly request: RequestFn) {}\n\n async list(params?: AuditLogListParams): Promise<AuditLogListResponse> {\n return this.request('GET', '/admin-portal/audit', {\n query: params as Record<string, string | number | boolean | undefined>,\n });\n }\n\n async retrieve(logId: string): Promise<AuditLogResponse> {\n return this.request('GET', `/admin-portal/audit/${encodeURIComponent(logId)}`);\n }\n\n /**\n * The platform audit log as a file. `GET /admin-portal/audit/export`\n *\n * Takes the same filters as {@link AuditLogs.list}, and returns the whole\n * match set rather than a page — bounded at 10,000 rows (500 for `pdf`), and\n * refused past that rather than truncated.\n *\n * Columns answer the question an audit asks rather than mirroring the\n * dashboard table: the actor, the real actor behind an impersonation, the\n * action, its target, when, and from where. `details` is deliberately absent —\n * an unbounded per-action blob is unreadable in a spreadsheet cell.\n */\n async export(\n params?: AuditLogListParams,\n options?: JsonExportOptions,\n ): Promise<ExportEnvelope<AdminAuditLogExportRecord>>;\n async export(params: AuditLogListParams | undefined, options: BinaryExportOptions): Promise<Blob>;\n async export(\n params: AuditLogListParams | undefined,\n options: ExportOptions,\n ): Promise<ExportEnvelope<AdminAuditLogExportRecord> | Blob>;\n async export(\n params?: AuditLogListParams,\n options?: ExportOptions,\n ): Promise<ExportEnvelope<AdminAuditLogExportRecord> | Blob> {\n const format = options?.format ?? 'json';\n const accept =\n format === 'csv' ? 'text/csv' : format === 'pdf' ? 'application/pdf' : 'application/json';\n const request: RequestOptions = {\n query: params as Record<string, string | number | boolean | undefined>,\n // The format is negotiated by `Accept`, never a query field: the query\n // here is the list's own filter model, and adding a key to it would fork\n // the filter vocabulary the export exists to reuse.\n headers: { Accept: accept },\n };\n // csv and pdf are not JSON, and the client parses a body as JSON unless it\n // is told otherwise.\n if (format !== 'json') request.responseType = 'blob';\n return this.request('GET', '/admin-portal/audit/export', request) as Promise<\n ExportEnvelope<AdminAuditLogExportRecord> | Blob\n >;\n }\n}\n","import type { RequestFn } from '../../client';\n\nexport class Cache {\n constructor(private readonly request: RequestFn) {}\n\n /** Invalidate a cache entry by key. `POST /cache/invalidate/{key}` */\n async invalidate(key: string): Promise<Record<string, unknown>> {\n return this.request('POST', `/cache/invalidate/${encodeURIComponent(key)}`);\n }\n}\n","import type {\n CardIssuerCreateRequest,\n CardIssuerResponse,\n CardIssuerUpdateRequest,\n CardIssuerListResponse,\n} from '../types';\nimport type { RequestFn } from '../../client';\n\nexport class CardIssuers {\n constructor(private readonly request: RequestFn) {}\n\n async create(params: CardIssuerCreateRequest): Promise<CardIssuerResponse> {\n return this.request('POST', '/card-issuers', { body: params });\n }\n\n async update(issuerId: string, params: CardIssuerUpdateRequest): Promise<CardIssuerResponse> {\n return this.request('PUT', `/card-issuers/${encodeURIComponent(issuerId)}`, { body: params });\n }\n\n async list(): Promise<CardIssuerListResponse> {\n return this.request('GET', '/card-issuers');\n }\n}\n","import type { RequestFn } from '../../client';\n\nexport class Configs {\n constructor(private readonly request: RequestFn) {}\n\n /** Create a config. `POST /configs` */\n async create(params: Record<string, unknown>): Promise<Record<string, unknown>> {\n return this.request('POST', '/configs', { body: params });\n }\n\n /** Retrieve a config by key. `GET /configs/{key}` */\n async retrieve(key: string): Promise<Record<string, unknown>> {\n return this.request('GET', `/configs/${encodeURIComponent(key)}`);\n }\n\n /** Update a config. `PUT /configs/{key}` */\n async update(key: string, params: Record<string, unknown>): Promise<Record<string, unknown>> {\n return this.request('PUT', `/configs/${encodeURIComponent(key)}`, { body: params });\n }\n\n /** Delete a config. `DELETE /configs/{key}` */\n async delete(key: string): Promise<Record<string, unknown>> {\n return this.request('DELETE', `/configs/${encodeURIComponent(key)}`);\n }\n}\n","import type {\n ConnectorRestrictionRuleResponse,\n CreateConnectorRestrictionRuleRequest,\n ListConnectorRestrictionRulesQuery,\n UpdateConnectorRestrictionRuleRequest,\n} from '../types';\nimport type { RequestFn } from '../../client';\n\nconst BASE = '/admin/connector-restriction-rules';\n\n/**\n * Per-shop / per-project connector restriction rules.\n *\n * Distinct from `connectorRestrictions` (the merchant-tier attach gate):\n * these rules allow/deny a connector for one shop (`scope: 'profile'`) or\n * project (`scope: 'project'`) at routing time. A `deny` is never routed even\n * when the connector is attached and enabled; once a scope has any `allow` it\n * becomes a whitelist, and the project scope takes precedence over the shop\n * scope. Admin-only, under `/admin/connector-restriction-rules`; exposed only\n * via `'@delopay/sdk/internal'`.\n */\nexport class ConnectorRestrictionRules {\n constructor(private readonly request: RequestFn) {}\n\n /**\n * Create one allow/deny rule. A duplicate\n * `(merchant_id, scope, scope_id, connector)` is rejected — update or delete\n * the existing rule instead.\n */\n async create(\n body: CreateConnectorRestrictionRuleRequest,\n ): Promise<ConnectorRestrictionRuleResponse> {\n return this.request('POST', BASE, { body });\n }\n\n /**\n * List rules for one scope (`scope` + `scope_id`) or a whole merchant\n * (`merchant_id`). Pass exactly one selector.\n */\n async list(\n query: ListConnectorRestrictionRulesQuery,\n ): Promise<ConnectorRestrictionRuleResponse[]> {\n // Spread into a fresh object literal so the typed query satisfies the\n // request layer's `Record<string, …>` index signature. `undefined` values\n // are dropped by `request()`.\n return this.request('GET', BASE, { query: { ...query } });\n }\n\n /** Retrieve a single rule by ID. */\n async retrieve(id: string): Promise<ConnectorRestrictionRuleResponse> {\n return this.request('GET', `${BASE}/${encodeURIComponent(id)}`);\n }\n\n /** Update a rule's action and/or reason. */\n async update(\n id: string,\n body: UpdateConnectorRestrictionRuleRequest,\n ): Promise<ConnectorRestrictionRuleResponse> {\n return this.request('PATCH', `${BASE}/${encodeURIComponent(id)}`, { body });\n }\n\n /** Delete a rule by ID. */\n async delete(id: string): Promise<{ id: string; deleted: boolean }> {\n return this.request('DELETE', `${BASE}/${encodeURIComponent(id)}`);\n }\n}\n","import type { ConnectorRestrictionResponse, UpsertConnectorRestrictionRequest } from '../types';\nimport type { RequestFn } from '../../client';\n\n/**\n * Admin-only allowlist for phased connector rollouts.\n *\n * Default-open semantics: a connector with no restriction row is\n * usable by every merchant (current behavior). A connector with a\n * row is gated — only merchants in `allowed_merchant_ids` can attach\n * a connector account. Enforced server-side at MCA-create time.\n */\nexport class ConnectorRestrictions {\n constructor(private readonly request: RequestFn) {}\n\n /**\n * Idempotent upsert. If a row exists for `connector_name`, its\n * allowlist + reason are replaced. To open the connector to\n * everyone again, call `delete()`.\n */\n async upsert(body: UpsertConnectorRestrictionRequest): Promise<ConnectorRestrictionResponse> {\n return this.request('POST', '/admin/connector-restrictions', { body });\n }\n\n async list(): Promise<ConnectorRestrictionResponse[]> {\n return this.request('GET', '/admin/connector-restrictions');\n }\n\n async retrieve(connectorName: string): Promise<ConnectorRestrictionResponse> {\n return this.request(\n 'GET',\n `/admin/connector-restrictions/${encodeURIComponent(connectorName)}`,\n );\n }\n\n /** Removing the row makes the connector public again. */\n async delete(connectorName: string): Promise<{ connector_name: string; deleted: boolean }> {\n return this.request(\n 'DELETE',\n `/admin/connector-restrictions/${encodeURIComponent(connectorName)}`,\n );\n }\n}\n","import type { GsmRuleCreateRequest, GsmRuleResponse, GsmRuleUpdateRequest } from '../types';\nimport type { RequestFn } from '../../client';\n\nexport class Gsm {\n constructor(private readonly request: RequestFn) {}\n\n async create(params: GsmRuleCreateRequest): Promise<GsmRuleResponse> {\n return this.request('POST', '/gsm', { body: params });\n }\n\n async retrieve(params: Record<string, unknown>): Promise<GsmRuleResponse> {\n return this.request('POST', '/gsm/get', { body: params });\n }\n\n async update(params: GsmRuleUpdateRequest): Promise<GsmRuleResponse> {\n return this.request('POST', '/gsm/update', { body: params });\n }\n\n async delete(params: Record<string, unknown>): Promise<GsmRuleResponse> {\n return this.request('POST', '/gsm/delete', { body: params });\n }\n}\n","import type {\n AdminAdjustmentRequest,\n AdminAdjustmentResponse,\n AdminCreateLedgerRequest,\n AdminCreateLedgerResponse,\n AdminResetLedgerRequest,\n AdminResetLedgerResponse,\n AdminSetFreeRequest,\n AdminSuspendRequest,\n AdminUnsuspendRequest,\n AdminSetTrustedRequest,\n UpdateLedgerEntryRequest,\n} from '../types';\nimport type { BillingProfileResponse } from '../../types';\nimport type { RequestFn } from '../../client';\n\n/**\n * Platform-level ledger adjustments on a merchant's balance. Admin-only\n * routes under `/billing/{merchantId}/admin/credit|debit`. Exposed only\n * via `'@delopay/sdk/internal'` so the public merchant SDK doesn't\n * advertise the admin adjustment path in autocomplete.\n */\nexport class PlatformBilling {\n constructor(private readonly request: RequestFn) {}\n\n /**\n * Manually credit a merchant's balance (e.g. promotional credit,\n * dispute reversal, manual correction).\n *\n * @param merchantId - The merchant account ID.\n * @param params - Credit amount and reason.\n */\n async credit(\n merchantId: string,\n params: AdminAdjustmentRequest,\n ): Promise<AdminAdjustmentResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/credit`, {\n body: params,\n });\n }\n\n /**\n * Manually debit a merchant's balance.\n *\n * @param merchantId - The merchant account ID.\n * @param params - Debit amount and reason.\n */\n async debit(\n merchantId: string,\n params: AdminAdjustmentRequest,\n ): Promise<AdminAdjustmentResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/debit`, {\n body: params,\n });\n }\n\n /**\n * Edit a single ledger entry (amount and/or description), keeping the\n * merchant balance consistent: when `amount` changes, the balance is\n * atomically adjusted by the difference. Returns the entry id and new\n * balance.\n *\n * @param merchantId - The merchant account ID.\n * @param ledgerId - The ledger entry id to edit.\n * @param params - New amount / description (either optional).\n */\n async editLedgerEntry(\n merchantId: string,\n ledgerId: string,\n params: UpdateLedgerEntryRequest,\n ): Promise<AdminAdjustmentResponse> {\n return this.request(\n 'PATCH',\n `/billing/${encodeURIComponent(merchantId)}/admin/ledger/${encodeURIComponent(ledgerId)}`,\n { body: params },\n );\n }\n\n /**\n * Delete a single ledger entry, reversing its amount from the merchant\n * balance. Returns the deleted entry id and the new balance.\n *\n * @param merchantId - The merchant account ID.\n * @param ledgerId - The ledger entry id to delete.\n */\n async deleteLedgerEntry(merchantId: string, ledgerId: string): Promise<AdminAdjustmentResponse> {\n return this.request(\n 'DELETE',\n `/billing/${encodeURIComponent(merchantId)}/admin/ledger/${encodeURIComponent(ledgerId)}`,\n );\n }\n\n /**\n * Manually suspend a merchant (e.g. confirmed fraud or ToS violation),\n * independent of balance. A `reason` is required for audit. Throws 412 if\n * the merchant is trusted (clear the flag first) or already suspended.\n *\n * @param merchantId - The merchant account ID.\n * @param params - Suspension reason.\n * @returns The updated billing profile.\n */\n async suspend(merchantId: string, params: AdminSuspendRequest): Promise<BillingProfileResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/suspend`, {\n body: params,\n });\n }\n\n /**\n * Lift a suspension. Restores the merchant to `active` (or `delinquent` if\n * the balance is at/below the hard floor) and resets the recharge-failure\n * counter. Throws 412 if the merchant is not suspended.\n *\n * @param merchantId - The merchant account ID.\n * @param params - Optional audit note.\n * @returns The updated billing profile.\n */\n async unsuspend(\n merchantId: string,\n params: AdminUnsuspendRequest = {},\n ): Promise<BillingProfileResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/unsuspend`, {\n body: params,\n });\n }\n\n /**\n * Set or clear the trusted (suspension-exempt) flag. Trusted merchants\n * cannot be suspended automatically or manually. Does not lift an existing\n * suspension — use {@link PlatformBilling.unsuspend} for that.\n *\n * @param merchantId - The merchant account ID.\n * @param params - The desired trusted state.\n * @returns The updated billing profile.\n */\n async setTrusted(\n merchantId: string,\n params: AdminSetTrustedRequest,\n ): Promise<BillingProfileResponse> {\n return this.request('PATCH', `/billing/${encodeURIComponent(merchantId)}/admin/trusted`, {\n body: params,\n });\n }\n\n /**\n * Mark a merchant free (not billed), or put it back on the prepaid model.\n * While free, no platform fee is deducted, the payment gate never blocks on\n * billing status, top-ups are refused and auto-recharge is inert. Marking\n * free needs a `reason` and is refused (412) while an admin suspension is in\n * force — lift that first.\n *\n * Requires a router that supports the free flag; older ones answer `404`.\n *\n * @param merchantId - The merchant account ID.\n * @param params - The desired free state and, when marking free, the reason.\n * @returns The updated billing profile.\n */\n async setFree(merchantId: string, params: AdminSetFreeRequest): Promise<BillingProfileResponse> {\n return this.request('PATCH', `/billing/${encodeURIComponent(merchantId)}/admin/free`, {\n body: params,\n });\n }\n\n /**\n * Delete a merchant's **entire** ledger. Every live entry is soft-deleted —\n * kept, so a replayed fee deduction or top-up webhook still no-ops — the\n * balance is set to zero and the status re-derived (`active` for a free\n * merchant; an active paying merchant lands in `delinquent`). Refused (412)\n * while the merchant has shop allocations. Audited.\n *\n * Requires a router that serves the ledger admin routes; older ones answer\n * `404`.\n *\n * @param merchantId - The merchant account ID.\n * @param params - The reason, required for audit.\n * @returns What was removed and the post-reset profile.\n */\n async resetLedger(\n merchantId: string,\n params: AdminResetLedgerRequest,\n ): Promise<AdminResetLedgerResponse> {\n return this.request('DELETE', `/billing/${encodeURIComponent(merchantId)}/admin/ledger`, {\n body: params,\n });\n }\n\n /**\n * (Re)create a merchant's ledger, optionally seeded with an opening\n * balance. Ensures the billing profile exists (created without the welcome\n * promo credit) and, when `opening_balance` is set, writes one\n * `opening_balance` entry through the same atomic helper an admin credit\n * uses. Refused (412) while live entries or a non-zero balance remain —\n * reset first. Does not clear the free flag. Audited.\n *\n * Requires a router that serves the ledger admin routes; older ones answer\n * `404`.\n *\n * @param merchantId - The merchant account ID.\n * @param params - Opening balance (minor units), currency for a new profile, and the reason.\n * @returns The opening entry id (if one was written) and the profile.\n */\n async createLedger(\n merchantId: string,\n params: AdminCreateLedgerRequest,\n ): Promise<AdminCreateLedgerResponse> {\n return this.request('POST', `/billing/${encodeURIComponent(merchantId)}/admin/ledger`, {\n body: params,\n });\n }\n}\n","import type {\n FeeRulePreviewRequest,\n FeeRulePreviewResponse,\n FeeScheduleCreateRequest,\n FeeScheduleResponse,\n FeeScheduleUpdateRequest,\n PlatformFeeRuleInput,\n PlatformFeeRuleRecord,\n PlatformFeeRuleRequest,\n} from '../../types';\nimport type { RequestFn } from '../../client';\n\n/**\n * Platform-wide fee schedule management. Admin-only routes under\n * `/admin/fees/*`. Exposed only via `'@delopay/sdk/internal'`.\n *\n * `platformFees.rules` manages the platform-owned Euclid fee-rule program per\n * merchant, which takes precedence over the flat platform schedules. Build the\n * program with `feeProgram()`.\n */\nexport class PlatformFees {\n /** Platform-owned Euclid fee-rule program (`/admin/fees/rules`). */\n readonly rules: PlatformFeeRulesManager;\n\n constructor(private readonly request: RequestFn) {\n this.rules = new PlatformFeeRulesManager(request);\n }\n\n /** Create a platform fee schedule for a specific merchant. */\n async create(params: FeeScheduleCreateRequest, merchantId: string): Promise<FeeScheduleResponse> {\n return this.request('POST', '/admin/fees', {\n body: params,\n query: { merchant_id: merchantId },\n });\n }\n\n /** List every platform fee schedule assigned to a merchant. */\n async list(merchantId: string): Promise<FeeScheduleResponse[]> {\n return this.request('GET', '/admin/fees/list', {\n query: { merchant_id: merchantId },\n });\n }\n\n /** Retrieve a single platform fee schedule by ID. */\n async retrieve(feeId: string): Promise<FeeScheduleResponse> {\n return this.request('GET', `/admin/fees/${encodeURIComponent(feeId)}`);\n }\n\n /** Update a platform fee schedule. */\n async update(feeId: string, params: FeeScheduleUpdateRequest): Promise<FeeScheduleResponse> {\n return this.request('PUT', `/admin/fees/${encodeURIComponent(feeId)}`, { body: params });\n }\n\n /** Delete a platform fee schedule. */\n async delete(feeId: string): Promise<FeeScheduleResponse> {\n return this.request('DELETE', `/admin/fees/${encodeURIComponent(feeId)}`);\n }\n}\n\n/**\n * Manages a merchant's platform-owned Euclid fee-rule programs (admin surface),\n * merchant-wide or per-shop (one active program per scope; a shop-scoped\n * program wins for its shop, else the merchant-wide one applies). Build the\n * `algorithm` with `feeProgram()`. The SDK injects `fee_owner: 'platform'`; set\n * `profile_id` on the input to scope a program to a shop.\n */\nexport class PlatformFeeRulesManager {\n constructor(private readonly request: RequestFn) {}\n\n /** Create or replace the platform fee-rule program for a merchant. */\n async upsert(params: PlatformFeeRuleInput, merchantId: string): Promise<PlatformFeeRuleRecord> {\n const body: PlatformFeeRuleRequest = { ...params, fee_owner: 'platform' };\n return this.request('PUT', '/admin/fees/rules', {\n body,\n query: { merchant_id: merchantId },\n });\n }\n\n /**\n * Retrieve the active platform fee-rule program for a scope, or `null`.\n * `profileId` omitted = merchant-wide program; set = that shop's program.\n */\n async retrieve(merchantId: string, profileId?: string): Promise<PlatformFeeRuleRecord | null> {\n return this.request('GET', '/admin/fees/rules', {\n query: { merchant_id: merchantId, profile_id: profileId },\n });\n }\n\n /**\n * Deactivate a platform fee-rule program. Idempotent. `profileId` omitted\n * targets the merchant-wide program; set targets only that shop's program.\n */\n async delete(merchantId: string, profileId?: string): Promise<void> {\n await this.request('DELETE', '/admin/fees/rules', {\n query: { merchant_id: merchantId, profile_id: profileId },\n });\n }\n\n /**\n * Dry-run a candidate fee-rule program against a sample transaction.\n * Returns the matched rule name, whether it fell through, and the computed fee.\n * Does not persist anything.\n */\n async preview(input: FeeRulePreviewRequest, merchantId: string): Promise<FeeRulePreviewResponse> {\n return this.request('POST', '/admin/fees/rules/preview', {\n body: input,\n query: { merchant_id: merchantId },\n });\n }\n}\n","import type { RequestFn } from '../client';\nimport { Delopay } from '../client';\nimport { Admin } from './resources/admin';\nimport { AdminPortal } from './resources/adminPortal';\nimport { AuditLogs } from './resources/auditLogs';\nimport { Cache } from './resources/cache';\nimport { CardIssuers } from './resources/cardIssuers';\nimport { Configs } from './resources/configs';\nimport { ConnectorRestrictionRules } from './resources/connectorRestrictionRules';\nimport { ConnectorRestrictions } from './resources/connectorRestrictions';\nimport { Gsm } from './resources/gsm';\nimport { PlatformBilling } from './resources/platformBilling';\nimport { PlatformFees } from './resources/platformFees';\n\n/**\n * Internal-only Delopay client for DeloPay staff tooling (the admin\n * control-center, audit UIs, etc.). Extends the public `Delopay` surface\n * with admin-plane resources that must **not** be discoverable from the\n * merchant-facing package entry.\n *\n * Import path: `import { DelopayInternal } from '@delopay/sdk/internal'`.\n * The merchant-facing `import { Delopay } from '@delopay/sdk'` never\n * surfaces these.\n */\nexport class DelopayInternal extends Delopay {\n /** Bootstrap admin endpoints — signup, signin, onboarding. */\n readonly admin: Admin;\n /** Platform-wide customer, transaction, analytics, merchant-account ops. */\n readonly adminPortal: AdminPortal;\n /** Audit log reads. */\n readonly auditLogs: AuditLogs;\n /** Backend cache invalidation. */\n readonly cache: Cache;\n /** Platform card-issuer program management. */\n readonly cardIssuers: CardIssuers;\n /** Generic platform config store. */\n readonly configs: Configs;\n /** Per-merchant connector allowlist for phased rollouts. */\n readonly connectorRestrictions: ConnectorRestrictions;\n /** Per-shop / per-project connector allow-deny rules (routing-time). */\n readonly connectorRestrictionRules: ConnectorRestrictionRules;\n /** GSM (Gateway Status Mapping) routing rules. */\n readonly gsm: Gsm;\n /** Admin-only ledger credits/debits against a merchant's balance. */\n readonly platformBilling: PlatformBilling;\n /** Platform-wide fee schedules assigned to merchants. */\n readonly platformFees: PlatformFees;\n\n constructor(...args: ConstructorParameters<typeof Delopay>) {\n super(...args);\n const request = this.request.bind(this) as RequestFn;\n this.admin = new Admin(request);\n this.adminPortal = new AdminPortal(request);\n this.auditLogs = new AuditLogs(request);\n this.cache = new Cache(request);\n this.cardIssuers = new CardIssuers(request);\n this.configs = new Configs(request);\n this.connectorRestrictions = new ConnectorRestrictions(request);\n this.connectorRestrictionRules = new ConnectorRestrictionRules(request);\n this.gsm = new Gsm(request);\n this.platformBilling = new PlatformBilling(request);\n this.platformFees = new PlatformFees(request);\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delopay/sdk",
3
- "version": "0.117.0",
3
+ "version": "0.118.0",
4
4
  "description": "Official Delopay TypeScript SDK",
5
5
  "type": "module",
6
6
  "sideEffects": false,