@mbanq/core-sdk-js 0.2.0 → 0.3.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.
package/README.md CHANGED
@@ -20,12 +20,11 @@
20
20
  - [Metrics Middleware](#metrics-middleware)
21
21
  - [Custom Middleware](#custom-middleware)
22
22
  - [API Reference](#api-reference)
23
+ - [Client Operations](#client-operations)
24
+ - [Account Operations](#account-operations)
23
25
  - [Payment Operations](#payment-operations)
24
- - [Create Payment](#create-payment)
25
- - [Get Payment](#get-payment)
26
- - [Update Payment](#update-payment)
27
- - [List Payments](#list-payments)
28
26
  - [Multi-Tenant Support](#multi-tenant-support)
27
+ - [Documentation](#documentation)
29
28
  - [Type Safety & Validation](#type-safety--validation)
30
29
  - [Error Handling](#error-handling)
31
30
  - [Examples](#examples)
@@ -341,7 +340,7 @@ const client = createClient({
341
340
  The SDK provides two API patterns for different operations:
342
341
 
343
342
  ### Modern Fluent API (Recommended)
344
- For payment operations, use the modern fluent API with method chaining:
343
+ For payment, client, and account operations, use the modern fluent API with method chaining:
345
344
 
346
345
  ```javascript
347
346
  // Create payment
@@ -449,150 +448,209 @@ await coreSDK.request(updateTraceCommand);
449
448
 
450
449
  Available transfer commands: `GetTransfers`, `CreateTransfer`, `GetTransfer`, `MarkAsSuccess`, `MarkAsProcessing`, `MarkAsReturned`, `LogFailTransfer`, `MarkAsFail`, `UpdateTraceNumber`
451
450
 
452
- ### Payment Operations
453
-
454
- #### Create Payment
451
+ ### Client Operations
455
452
 
456
- Creates a new payment with comprehensive validation.
453
+ The SDK provides comprehensive client management capabilities with full CRUD operations and advanced filtering. For complete documentation, see [Client API Documentation](./docs/CLIENT_API.md).
457
454
 
458
455
  ```javascript
459
- const payment = await apiClient.payment.create({
460
- // Required fields
461
- amount: 1000,
462
- currency: 'USD',
463
- paymentRail: 'ACH', // ACH, WIRE, SWIFT, INTERNAL, FXPAY, CARD
464
- paymentType: 'CREDIT', // CREDIT or DEBIT
465
-
466
- // Originator (sender)
467
- debtor: {
468
- name: 'John Sender',
469
- identifier: '123456789', // Account number
470
- accountType: 'CHECKING', // Optional: CHECKING or SAVINGS
471
- agent: {
472
- name: 'First Bank',
473
- identifier: '021000021' // Routing code
474
- }
475
- },
476
-
477
- // Recipient (receiver)
478
- creditor: {
479
- name: 'Jane Receiver',
480
- identifier: '987654321',
481
- accountType: 'SAVINGS',
482
- address: { // Required for WIRE transfers
483
- streetAddress: '123 Main St',
484
- city: 'New York',
485
- state: 'NY',
486
- country: 'US',
487
- postalCode: '10001'
488
- },
489
- agent: {
490
- name: 'Second Bank',
491
- identifier: '121000248'
492
- }
493
- },
494
-
495
- // Optional fields
496
- clientId: 'client-123',
497
- reference: ['Invoice-001', 'Payment-ABC'],
498
- exchangeRate: 1.25,
499
- chargeBearer: 'OUR', // For SWIFT: OUR, BEN, SHA
500
- valueDate: '2025-01-15',
501
- paymentRailMetaData: {
502
- priority: 'high',
503
- category: 'business'
504
- }
456
+ // Create a new client
457
+ const client = await apiClient.client.create({
458
+ firstname: 'John',
459
+ lastname: 'Doe',
460
+ emailAddress: 'john.doe@example.com',
461
+ dateOfBirth: '1990-01-01',
462
+ locale: 'en'
505
463
  }).execute();
506
- ```
507
464
 
508
- #### Get Payment
465
+ // Get client details
466
+ const clientDetails = await apiClient.client.get(123).execute();
509
467
 
510
- Retrieves a specific payment by ID.
468
+ // List clients with filtering
469
+ const clients = await apiClient.client.list()
470
+ .where('status').eq('active')
471
+ .limit(10)
472
+ .execute();
511
473
 
512
- ```javascript
513
- const payment = await apiClient.payment.get('payment-456').execute();
474
+ // Update client information
475
+ const updatedClient = await apiClient.client.update(123, {
476
+ emailAddress: 'john.updated@example.com'
477
+ }).execute();
514
478
  ```
515
479
 
516
- #### Update Payment
480
+ ### Account Operations
517
481
 
518
- Updates an existing payment. All fields are optional.
482
+ Manage client accounts using the scoped account API with comprehensive CRUD operations and advanced query capabilities. For complete documentation, see [Account API Documentation](./docs/ACCOUNT_API.md).
519
483
 
520
484
  ```javascript
521
- const updatedPayment = await apiClient.payment.update('payment-456', {
522
- amount: 1500,
523
- status: 'EXECUTION_SCHEDULED',
524
- creditor: {
525
- name: 'Updated Recipient Name'
526
- },
527
- errorCode: 'E001',
528
- errorMessage: 'Insufficient funds',
529
- exchangeRate: 1.30,
530
- reference: ['Updated-Reference'],
531
- paymentRailMetaData: {
532
- updated: true
533
- }
485
+ // List all accounts for a client
486
+ const accounts = await apiClient.client.for('client-123').accounts.list().execute();
487
+
488
+ // Get specific account details
489
+ const account = await apiClient.client.for('client-123').accounts.get(789).execute();
490
+
491
+ // Filter accounts by criteria
492
+ const savingsAccounts = await apiClient.client.for('client-123').accounts.list()
493
+ .where('productName').eq('Savings Account')
494
+ .execute();
495
+
496
+ // Update account settings
497
+ const updateResult = await apiClient.client.for('client-123').accounts.update('acc_789', {
498
+ nominalAnnualInterestRate: '2.5',
499
+ allowOverdraft: true,
500
+ overdraftLimit: 1000
534
501
  }).execute();
502
+
503
+ // Delete account
504
+ const deleteResult = await apiClient.client.for('client-123').accounts.delete('acc_789').execute();
535
505
  ```
536
506
 
537
- #### List Payments
538
507
 
539
- Retrieves payments with powerful filtering capabilities.
508
+ ### Payment Operations
509
+
510
+ The SDK provides comprehensive payment operations with support for multiple payment rails, advanced filtering, and full validation. For complete documentation, see [Payment API Documentation](./docs/PAYMENT_API.md).
540
511
 
541
512
  ```javascript
542
- // Simple list
543
- const payments = await apiClient.payment.list().execute();
513
+ // Create payment
514
+ const payment = await client.for('tenant-123').payment.create({
515
+ originatorName: "John Doe",
516
+ originatorAccount: "123456789",
517
+ originatorBankRoutingCode: "021000021",
518
+ recipientName: "Jane Smith",
519
+ recipientAccount: "987654321",
520
+ recipientBankRoutingCode: "021000021",
521
+ amount: 1000.50,
522
+ currency: "USD",
523
+ paymentRail: "ACH",
524
+ paymentType: "CREDIT",
525
+ reference: "Invoice #12345"
526
+ });
544
527
 
545
- // With filters and pagination
546
- const payments = await apiClient.payment.list()
547
- .where('status').eq('DRAFT')
548
- .where('paymentRail').eq('ACH')
549
- .where('paymentType').eq('CREDIT')
550
- .where('originatorName').eq('John Doe')
551
- .limit(50)
552
- .offset(0)
553
- .execute();
528
+ // Get payment
529
+ const payment = await client.for('tenant-123').payment.get(12345);
530
+
531
+ // Update payment
532
+ const updated = await client.for('tenant-123').payment.update(12345, {
533
+ reference: "Updated reference"
534
+ });
535
+
536
+ // Delete payment
537
+ await client.for('tenant-123').payment.delete(12345);
554
538
 
555
- // Available filter fields
556
- // originatorName, originatorAccount, originatorBankRoutingCode
557
- // recipientName, recipientAccount, recipientBankRoutingCode
558
- // reference, traceNumber, externalId, clientId
559
- // dateFormat, locale, originatedBy, paymentRail, paymentType
560
- // fromValueDate, toValueDate, fromExecuteDate, toExecuteDate
561
- // status, fromReturnDate, toReturnDate, isSettlement, orderBy, sortOrder
539
+ // List payments with filtering
540
+ const payments = await client.for('tenant-123').payments.list()
541
+ .where('status', 'EXECUTION_SUCCESS')
542
+ .where('paymentRail', 'ACH')
543
+ .execute();
562
544
  ```
563
545
 
546
+ **Supported Payment Rails:** ACH, SAMEDAYACH, WIRE, SWIFT, INTERNAL, FXPAY, CARD
547
+
548
+ **Available Payment Commands:** `CreatePayment`, `GetPayment`, `UpdatePayment`, `DeletePayment`, `ListPayments`, `GetPayments`
549
+
564
550
  ### Multi-Tenant Support
565
551
 
566
- The SDK supports multi-tenant operations through tenant context.
552
+ The SDK supports multi-tenant operations through the `.for()` method, allowing you to specify tenant context for operations.
567
553
 
568
- #### Default Tenant Operations
569
- Uses the `tenantId` from client configuration:
554
+ #### Tenant-Specific Operations
555
+
556
+ All operations can be scoped to a specific tenant:
570
557
 
571
558
  ```javascript
572
- const payment = await apiClient.payment.create(paymentData).execute();
573
- const payments = await apiClient.payment.list().execute();
559
+ // Initialize client
560
+ const client = createClient({
561
+ baseURL: 'https://api.mbanq.com',
562
+ apiKey: 'your-api-key'
563
+ });
564
+
565
+ // Payment operations for specific tenant
566
+ const payment = await client.for('tenant-123').payment.create(paymentData);
567
+ const payments = await client.for('tenant-123').payments.list().execute();
568
+ const payment = await client.for('tenant-123').payment.get(12345);
569
+ const updated = await client.for('tenant-123').payment.update(12345, updateData);
570
+ await client.for('tenant-123').payment.delete(12345);
571
+
572
+ // Account operations for specific tenant
573
+ const account = await client.for('tenant-123').accounts.get(98765);
574
+ const accounts = await client.for('tenant-123').accounts.list().execute();
575
+ const updated = await client.for('tenant-123').accounts.update(98765, accountData);
576
+ await client.for('tenant-123').accounts.delete(98765);
577
+
578
+ // Query with filters for specific tenant
579
+ const filteredPayments = await client.for('tenant-123').payments.list()
580
+ .where('status', 'EXECUTION_SUCCESS')
581
+ .where('paymentRail', 'ACH')
582
+ .execute();
574
583
  ```
575
584
 
576
- #### Tenant-Specific Operations
577
- Override tenant for specific operations:
585
+ #### Default Tenant Configuration
586
+
587
+ You can also configure a default tenant in the client configuration:
578
588
 
579
589
  ```javascript
580
- // Create payment for specific tenant
581
- const payment = await apiClient.tenant('tenant-123').payment.create(paymentData).execute();
590
+ const client = createClient({
591
+ baseURL: 'https://api.mbanq.com',
592
+ apiKey: 'your-api-key',
593
+ tenantId: 'default-tenant-123' // Optional default tenant
594
+ });
582
595
 
583
- // Get payment from specific tenant
584
- const payment = await apiClient.tenant('tenant-123').payment.get('payment-456').execute();
596
+ // Operations will use default tenant if no .for() is specified
597
+ const payment = await client.payment.create(paymentData); // Uses default-tenant-123
585
598
 
586
- // Update payment in specific tenant
587
- await apiClient.tenant('tenant-123').payment.update('payment-456', updateData).execute();
599
+ // Override default tenant for specific operations
600
+ const payment = await client.for('other-tenant-456').payment.create(paymentData);
601
+ ```
588
602
 
589
- // List payments from specific tenant with filters
590
- const payments = await apiClient.tenant('tenant-123').payment.list()
591
- .where('status').eq('DRAFT')
592
- .limit(10)
593
- .execute();
603
+ #### Tenant Context Best Practices
604
+
605
+ ```javascript
606
+ // Good: Always specify tenant context
607
+ const processPayments = async (tenantId: string) => {
608
+ const payments = await client.for(tenantId).payments.list()
609
+ .where('status', 'DRAFT')
610
+ .execute();
611
+
612
+ for (const payment of payments) {
613
+ await client.for(tenantId).payment.update(payment.id, {
614
+ status: 'EXECUTION_SCHEDULED'
615
+ });
616
+ }
617
+ };
618
+
619
+ // Good: Consistent tenant usage across operations
620
+ const transferFunds = async (tenantId: string, fromAccount: number, toAccount: number, amount: number) => {
621
+ const clientContext = client.for(tenantId);
622
+
623
+ const fromAcc = await clientContext.accounts.get(fromAccount);
624
+ const toAcc = await clientContext.accounts.get(toAccount);
625
+
626
+ const payment = await clientContext.payment.create({
627
+ originatorAccount: fromAcc.accountNumber,
628
+ recipientAccount: toAcc.accountNumber,
629
+ amount: amount,
630
+ // ... other payment data
631
+ });
632
+
633
+ return payment;
634
+ };
594
635
  ```
595
636
 
637
+ ## Documentation
638
+
639
+ For detailed information about specific features and APIs, refer to the dedicated documentation:
640
+
641
+ ### API Documentation
642
+ - **[Client API Documentation](./docs/CLIENT_API.md)** - Comprehensive guide to client configuration, initialization, and usage patterns
643
+ - **[Account API Documentation](./docs/ACCOUNT_API.md)** - Complete reference for account operations, query building, and data types
644
+ - **[Payment API Documentation](./docs/PAYMENT_API.md)** - Complete reference for payment operations, filtering, and payment rails
645
+
646
+ ### Quick Links
647
+ - [Client Configuration Options](./docs/CLIENT_API.md#configuration-options) - Environment settings, authentication, and middleware
648
+ - [Account Operations](./docs/ACCOUNT_API.md#account-operations) - Get, list, update, and delete account operations
649
+ - [Payment Operations](./docs/PAYMENT_API.md#payment-operations) - Create, get, update, delete, and query payments
650
+ - [Payment Filtering](./docs/PAYMENT_API.md#payment-filter-system) - Advanced payment search and filtering
651
+ - [Error Handling Patterns](./docs/CLIENT_API.md#error-handling) - Error types and handling strategies
652
+ - [Type Definitions](./docs/ACCOUNT_API.md#data-types-and-schemas) - Complete schema and type reference
653
+
596
654
  ## Type Safety & Validation
597
655
 
598
656
  The SDK uses [Zod](https://zod.dev/) for runtime type validation and TypeScript for compile-time type safety.
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);var u=({message:e,statusCode:o,code:r,requestId:i,originalError:m})=>({name:"CommandError",message:e,statusCode:o,code:r,requestId:i,originalError:m}),Gt= exports.b =e=>typeof e=="object"&&e!==null&&"name"in e&&e.name==="CommandError",Xe=e=>{if(!e||typeof e!="object")return e;let o={...e};if(o.config&&typeof o.config=="object"){let r=o.config;if(r.httpsAgent&&typeof r.httpsAgent=="object"){let i=r.httpsAgent;delete i.sockets,delete i.freeSockets,delete i._sessionCache}}return o},p= exports.c =e=>{if(_axios2.default.isAxiosError(e)){let o=_optionalChain([e, 'access', _2 => _2.response, 'optionalAccess', _3 => _3.data, 'optionalAccess', _4 => _4.message]),r=_optionalChain([e, 'access', _5 => _5.response, 'optionalAccess', _6 => _6.status])?`Request failed with status code ${e.response.status}`:e.message||"Request failed";throw u({message:o||r,statusCode:_optionalChain([e, 'access', _7 => _7.response, 'optionalAccess', _8 => _8.status]),code:e.code,requestId:_optionalChain([e, 'access', _9 => _9.response, 'optionalAccess', _10 => _10.headers, 'optionalAccess', _11 => _11["x-request-id"]]),originalError:Xe(e)})}throw e};var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);var q=_zod.z.enum(["originatorName","originatorAccount","originatorBankRoutingCode","recipientName","recipientAccount","recipientBankRoutingCode","reference","traceNumber","externalId","clientId","dateFormat","locale","originatedBy","paymentRail","paymentType","fromValueDate","toValueDate","fromExecuteDate","toExecuteDate","status","fromReturnDate","toReturnDate","isSettlement","orderBy","sortOrder"]),S= exports.f =_zod.z.enum(["DRAFT","AML_SCREENING","AML_REJECTED","EXECUTION_SCHEDULED","EXECUTION_PROCESSING","EXECUTION_SUCCESS","EXECUTION_FAILURE","RETURNED","CANCELLED","COMPLIANCE_FAILURE","DELETED","UNKNOWN"]),R= exports.g =_zod.z.enum(["ACH","SAMEDAYACH","WIRE","SWIFT","INTERNAL","FXPAY","CARD"]),v= exports.h =_zod.z.enum(["CREDIT","DEBIT"]),N= exports.i =_zod.z.enum(["ASC","DESC"]),Ht=q.options,Yt=S.options,Jt=R.options,Xt=v.options,Qt=N.options,j=e=>q.parse(e),z=e=>S.parse(e),$=e=>R.parse(e),_=e=>v.parse(e),M=e=>N.parse(e),V=_zod.z.string().min(1),G=_zod.z.string().min(1),K=_zod.z.string().min(1),W=_zod.z.string().min(1),H=_zod.z.string().min(1),Y=_zod.z.string().min(1),J=_zod.z.string().min(1),X=_zod.z.string().min(1),Q=_zod.z.string().min(1),Z=_zod.z.union([_zod.z.string(),_zod.z.number()]),ee=_zod.z.string(),te=_zod.z.string(),ne=_zod.z.string(),T=_zod.z.string(),k=_zod.z.string(),L=_zod.z.string(),ae=_zod.z.boolean(),oe=_zod.z.string(),re=e=>V.parse(e),ie=e=>G.parse(e),se=e=>K.parse(e),ce=e=>W.parse(e),le=e=>H.parse(e),pe=e=>Y.parse(e),de=e=>J.parse(e),me=e=>X.parse(e),ue=e=>Q.parse(e),ye=e=>Z.parse(e),ge=e=>ee.parse(e),fe=e=>te.parse(e),be=e=>ne.parse(e),Ce=e=>T.parse(e),he=e=>k.parse(e),Ie=e=>L.parse(e),xe=e=>ae.parse(e),Se=e=>oe.parse(e),Qe= exports.j ={originatorName:V.optional(),originatorAccount:G.optional(),originatorBankRoutingCode:K.optional(),recipientName:W.optional(),recipientAccount:H.optional(),recipientBankRoutingCode:Y.optional(),reference:J.optional(),traceNumber:X.optional(),externalId:Q.optional(),clientId:Z.optional(),dateFormat:ee.optional(),locale:te.optional(),originatedBy:ne.optional(),paymentRail:R.optional(),paymentType:v.optional(),fromValueDate:T.optional(),toValueDate:T.optional(),fromExecuteDate:k.optional(),toExecuteDate:k.optional(),status:S.optional(),fromReturnDate:L.optional(),toReturnDate:L.optional(),isSettlement:ae.optional(),orderBy:oe.optional(),sortOrder:N.optional(),limit:_zod.z.number().min(0).optional().describe("Maximum number of records to return. Defaults to 20 if not specified. Set to 0 to return all records."),offset:_zod.z.number().min(0).optional()},Zt= exports.k =_zod.z.object(Qe).partial();var Ze={id:_zod.z.number(),clientId:_zod.z.number(),amount:_zod.z.number().positive(),correlationId:_zod.z.string(),paymentType:v,paymentRail:R,recipient:_zod.z.object({cardId:_zod.z.string().optional(),recipientType:_zod.z.string(),address:_zod.z.object({line1:_zod.z.string().optional(),line2:_zod.z.string().optional(),stateCode:_zod.z.string().optional(),countryCode:_zod.z.string(),postalCode:_zod.z.string().optional()}),name:_zod.z.string()}),originator:_zod.z.object({accountId:_zod.z.string().optional(),recipientType:_zod.z.string(),address:_zod.z.object({line1:_zod.z.string().optional(),line2:_zod.z.string().optional(),stateCode:_zod.z.string().optional(),countryCode:_zod.z.string(),postalCode:_zod.z.string().optional()}),name:_zod.z.string()}),executedAt:_zod.z.string(),createdAt:_zod.z.string(),externalId:_zod.z.string(),status:S,paymentRailMetaData:_zod.z.record(_zod.z.string(),_zod.z.any()).optional(),currencyData:_zod.z.object({code:_zod.z.string(),name:_zod.z.string(),decimalPlaces:_zod.z.number(),displaySymbol:_zod.z.string(),nameCode:_zod.z.string(),currencyCodeInDigit:_zod.z.number(),isBaseCurrency:_zod.z.boolean()}),currency:_zod.z.string().min(3).max(3)},Re=_zod.z.object(Ze).catchall(_zod.z.any()),ve=_zod.z.object({streetAddress:_zod.z.string().optional(),city:_zod.z.string().optional(),state:_zod.z.string().optional(),country:_zod.z.string().optional(),postalCode:_zod.z.string().optional()}).optional(),et=_zod.z.object({name:_zod.z.string().optional(),identifier:_zod.z.string().optional(),address:ve}).optional(),w=_zod.z.object({name:_zod.z.string(),identifier:_zod.z.string(),accountType:_zod.z.enum(["CHECKING","SAVINGS"]).optional(),address:ve,agent:et}),tt= exports.m ={amount:_zod.z.number().positive(),currency:_zod.z.string().min(3).max(3),paymentRail:R,paymentType:v,debtor:w,creditor:w,clientId:_zod.z.string().optional(),correspondent:w.optional(),exchangeRate:_zod.z.number().positive().optional(),externalId:_zod.z.string().optional(),reference:_zod.z.union([_zod.z.string(),_zod.z.array(_zod.z.string())]).optional(),paymentRailMetaData:_zod.z.record(_zod.z.string(),_zod.z.any()).optional(),chargeBearer:_zod.z.enum(["OUR","BEN","SHA"]).optional(),purposeCode:_zod.z.string().optional(),valueDate:_zod.z.string().optional(),executionDate:_zod.z.string().optional()},nt= exports.n =_zod.z.object(tt).catchall(_zod.z.any()).refine(e=>(e.paymentRail==="WIRE"||e.paymentRail==="SWIFT")&&e.creditor?e.creditor.address&&e.creditor.address.state&&e.creditor.address.country:!0,{message:"For WIRE transfers, recipient address with state and country is mandatory"}),at= exports.o ={amount:_zod.z.number().positive().optional(),correspondent:_zod.z.object({name:_zod.z.string().optional(),identifier:_zod.z.string().optional(),accountType:_zod.z.string().optional()}).optional(),creditor:_zod.z.object({name:_zod.z.string().optional(),identifier:_zod.z.string().optional(),accountType:_zod.z.string().optional(),agent:_zod.z.object({name:_zod.z.string().optional(),identifier:_zod.z.string().optional()}).optional()}).optional(),debtor:_zod.z.object({name:_zod.z.string().optional(),identifier:_zod.z.string().optional(),accountType:_zod.z.string().optional(),agent:_zod.z.object({name:_zod.z.string().optional(),identifier:_zod.z.string().optional()}).optional()}).optional(),exchangeRate:_zod.z.number().positive().optional(),externalId:_zod.z.string().optional(),errorCode:_zod.z.string().optional(),errorMessage:_zod.z.string().optional(),reference:_zod.z.union([_zod.z.string(),_zod.z.array(_zod.z.string())]).optional(),paymentRailMetaData:_zod.z.record(_zod.z.string(),_zod.z.any()).optional(),status:S.optional()},ot= exports.p =_zod.z.object(at).catchall(_zod.z.any()),en= exports.q =_zod.z.object({totalFilteredRecords:_zod.z.number(),pageItems:_zod.z.array(Re)}),P=e=>Re.parse(e),De=e=>nt.parse(e),Ae=e=>ot.parse(e);var tn=_zod.z.object({id:_zod.z.string(),clientId:_zod.z.number(),resourceId:_zod.z.number(),resourceIdentifier:_zod.z.string()});var _uuid = require('uuid');var _https = require('https'); var we = _interopRequireWildcard(_https);var _jsonwebtoken = require('jsonwebtoken'); var _jsonwebtoken2 = _interopRequireDefault(_jsonwebtoken);var Pe=(e,o)=>{if(!e)throw u({message:"Missing JWT secret",code:"missing_jwt_secret"});return _jsonwebtoken2.default.sign({signee:o},e,{algorithm:"HS512",expiresIn:"1d"})||""},Oe=async(e,o,r,i)=>{let m={method:"POST",url:`${o}/oauth/token`,headers:{"Content-Type":"application/x-www-form-urlencoded",tenantId:r},data:i},{data:{access_token:l}}=await _axios2.default.request(m);return e=l,e};var Ee={token:""},lt=e=>e&&(e.startsWith("Bearer ")?e:`Bearer ${e}`),d= exports.d =async e=>{let r=_axios2.default.create({timeout:_optionalChain([e, 'access', _12 => _12.axiosConfig, 'optionalAccess', _13 => _13.timeout])||29e3,baseURL:e.baseUrl,headers:{"Content-Type":"application/json; charset=utf-8","JWT-Token":_optionalChain([e, 'optionalAccess', _14 => _14.secret])?`${Pe(_optionalChain([e, 'optionalAccess', _15 => _15.secret]),_optionalChain([e, 'optionalAccess', _16 => _16.signee])||"")}`:void 0,Authorization:e.bearerToken!==void 0?lt(e.bearerToken):e.credential?`Bearer ${Ee.token||await Oe(Ee.token,e.baseUrl,e.tenantId,e.credential)}`:void 0,"trace-id":e.traceId||`RequestUUID=${_uuid.v4.call(void 0, )}`,tenantId:e.tenantId},httpsAgent:new we.Agent({rejectUnauthorized:!0,keepAlive:_optionalChain([e, 'access', _17 => _17.axiosConfig, 'optionalAccess', _18 => _18.keepAlive])})});return e.logger&&e.logger(r),r};var pt=e=>{try{j(e)}catch(o){throw o instanceof _zod.ZodError?u({message:`Invalid filter key: '${e}'. ${o.message}`,code:"invalid_filter_key"}):o}},dt=(e,o)=>{try{switch(e){case"status":z(o);break;case"paymentRail":$(o);break;case"paymentType":_(o);break;case"sortOrder":M(o);break;case"originatorName":re(o);break;case"originatorAccount":ie(o);break;case"originatorBankRoutingCode":se(o);break;case"recipientName":ce(o);break;case"recipientAccount":le(o);break;case"recipientBankRoutingCode":pe(o);break;case"reference":de(o);break;case"traceNumber":me(o);break;case"externalId":ue(o);break;case"clientId":ye(o);break;case"dateFormat":ge(o);break;case"locale":fe(o);break;case"originatedBy":be(o);break;case"fromValueDate":case"toValueDate":Ce(o);break;case"fromExecuteDate":case"toExecuteDate":he(o);break;case"fromReturnDate":case"toReturnDate":Ie(o);break;case"isSettlement":xe(o);break;case"orderBy":Se(o);break;default:break}}catch(r){throw r instanceof _zod.ZodError?u({message:`Invalid value for '${e}': '${o}'. ${r.message}`,code:`invalid_${e}_value`}):r}},bn= exports.r =e=>({input:e,metadata:{commandName:"CreatePayment",path:"/v1/payments",method:"POST"},execute:async o=>{try{De(e.payment)}catch(i){throw i instanceof _zod.ZodError?u({message:`Invalid payment data: ${i.message}`,code:"invalid_payment_input"}):i}e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{let i=await r.post("/v1/payments",e.payment);return P(i.data)}catch(i){p(i)}}}),Cn= exports.s =e=>({input:e,metadata:{commandName:"GetPayment",path:`/v1/payments/${e.id}`,method:"GET"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{let i=await r.get(`/v1/payments/${e.id}`);return P(i.data)}catch(i){p(i)}}}),hn= exports.t =e=>({input:e,metadata:{commandName:"UpdatePayment",path:`/v1/payments/${e.id}`,method:"PUT"},execute:async o=>{try{Ae(e.payment)}catch(i){throw i instanceof _zod.ZodError?u({message:`Invalid payment update data: ${i.message}`,code:"invalid_payment_update_input"}):i}e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{let i=await r.put(`/v1/payments/${e.id}`,e.payment);return P(i.data)}catch(i){p(i)}}}),D=(e,o,r,i)=>{if(o!==void 0&&o!==0&&o<=0)throw u({message:`Invalid limit: ${o}. Limit must be positive or 0 for fetching all records.`,code:"invalid_limit"});if(r!==void 0&&r<0)throw u({message:`Invalid offset: ${r}. Offset must be non-negative.`,code:"invalid_offset"});return{where:s=>(pt(s),{eq:c=>(dt(s,c),D({...e,[s]:c},o,r,i))}),limit:s=>D(e,s,r,i),offset:s=>D(e,o,s,i),all:()=>D(e,0,r,i),execute:()=>{let s={locale:"en",originatedBy:"us",orderBy:"id",sortOrder:"DESC"},c={...s,...e,limit:o||200,offset:r||0};return{input:{filters:e,limit:o,offset:r,tenantId:i},metadata:{commandName:"ListPayments",path:"/v1/payments",method:"GET"},execute:async y=>{i&&(y.tenantId=i);let g=await d(y);try{if(o===0){let b=[],C=r||0,h=0;do{let I={...s,...e,limit:200,offset:C},x=await g.get("/v1/payments",{params:I}),{totalFilteredRecords:E,pageItems:Ye}=x.data;b.push(...Ye),h=E,C+=200}while(C<h);return{totalFilteredRecords:h,pageItems:b}}else return(await g.get("/v1/payments",{params:c})).data}catch(b){p(b)}}}}}},In= exports.u =e=>({list:()=>D({},void 0,void 0,_optionalChain([e, 'optionalAccess', _19 => _19.tenantId]))}),xn= exports.v =(e,o)=>({input:{params:e,configuration:o},metadata:{commandName:"GetPayments",path:"/v1/payments",method:"GET"},execute:async r=>{o.tenantId&&(r.tenantId=o.tenantId);let i=await d(r),m=[],l=e.limit||20,s=e.offset||0,c=0,b={...{locale:"en",originatedBy:"us",orderBy:"id",sortOrder:"DESC"},...(f=>{let h=["fromValueDate","toValueDate","fromExecuteDate","toExecuteDate","fromReturnDate","toReturnDate"].some(x=>f[x]!==void 0),I={...f};return h&&I.dateFormat===void 0&&(I.dateFormat="yyyy-MM-dd"),I})(e),limit:l,offset:s};try{if(e.limit===0){do{let f=await i.get("/v1/payments",{params:b}),{totalFilteredRecords:C,pageItems:h}=f.data;m.push(...h),c=C,s+=l}while(s<c);return{totalFilteredRecords:c,pageItems:m}}else return(await i.get("/v1/payments",{params:b})).data}catch(f){p(f)}}}),Sn= exports.w =e=>({input:e,metadata:{commandName:"DeletePayment",path:`/v1/payments/${e.id}`,method:"DELETE"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{await r.delete(`/v1/payments/${e.id}`)}catch(i){p(i)}}});var Te=_zod2.default.object({id:_zod2.default.number(),code:_zod2.default.string(),value:_zod2.default.string()}),ke=_zod2.default.object({id:_zod2.default.number(),code:_zod2.default.string(),value:_zod2.default.string()}),Le=_zod2.default.object({active:_zod2.default.boolean(),mandatory:_zod2.default.boolean(),systemDefined:_zod2.default.boolean()}),Ne=_zod2.default.object({id:_zod2.default.number()}),Fe=_zod2.default.object({id:_zod2.default.number(),name:_zod2.default.string().optional()}),Be=_zod2.default.object({active:_zod2.default.boolean()}),Ue=_zod2.default.object({submittedOnDate:_zod2.default.array(_zod2.default.number()),submittedByUsername:_zod2.default.string().optional(),submittedByFirstname:_zod2.default.string().optional(),submittedByLastname:_zod2.default.string().optional(),activatedOnDate:_zod2.default.array(_zod2.default.number()).optional(),activatedByUsername:_zod2.default.string().optional(),activatedByFirstname:_zod2.default.string().optional(),activatedByLastname:_zod2.default.string().optional()}),mt=_zod2.default.object({}).catchall(_zod2.default.any()),ut=_zod2.default.object({}).catchall(_zod2.default.any()),yt=_zod2.default.object({}).catchall(_zod2.default.any()),qe=_zod2.default.object({constitution:mt,mainBusinessLine:ut,countryOfIncorporation:yt}).catchall(_zod2.default.any()),je=_zod2.default.object({isExternalCardDebitDisable:_zod2.default.boolean(),isExternalCardCreditDisable:_zod2.default.boolean(),isAchDebitOutgoingDisable:_zod2.default.boolean(),isAchCreditOutgoingDisable:_zod2.default.boolean(),isAchDebitIncomingDisable:_zod2.default.boolean(),isAchCreditIncomingDisable:_zod2.default.boolean(),isInternalCreditDisable:_zod2.default.boolean(),isInternalDebitDisable:_zod2.default.boolean(),isWireCreditOutgoingDisable:_zod2.default.boolean(),isWireCreditIncomingDisable:_zod2.default.boolean(),isSwiftCreditOutgoingDisable:_zod2.default.boolean(),isSwiftCreditIncomingDisable:_zod2.default.boolean(),isFxpayCreditOutgoingDisable:_zod2.default.boolean(),isAllocateToSubAccountDisable:_zod2.default.boolean(),isInternalCreditOwnDisable:_zod2.default.boolean(),type:_zod2.default.string(),resourceId:_zod2.default.number(),id:_zod2.default.number()}).catchall(_zod2.default.any()),ze=_zod2.default.object({}).catchall(_zod2.default.any()),$e=_zod2.default.object({id:_zod2.default.number(),accountNo:_zod2.default.string(),status:ke,subStatus:Le,active:_zod2.default.boolean(),activationDate:_zod2.default.array(_zod2.default.number()).optional(),firstname:_zod2.default.string(),lastname:_zod2.default.string(),displayName:_zod2.default.string(),mobileNo:_zod2.default.string(),emailAddress:_zod2.default.string(),dateOfBirth:_zod2.default.array(_zod2.default.number()),gender:Ne,clientTypes:_zod2.default.array(_zod2.default.any()),clientClassification:Fe,occupation:Be,isStaff:_zod2.default.boolean(),skipAvs:_zod2.default.boolean(),officeId:_zod2.default.number(),officeName:_zod2.default.string(),imageId:_zod2.default.string().optional(),imagePresent:_zod2.default.boolean().optional(),timeline:Ue,legalForm:Te,clientVerificationStatus:_zod2.default.string(),updatedAt:_zod2.default.string(),isBlockExternalCardsAddition:_zod2.default.boolean(),clientNonPersonDetails:qe,clientTransferOptionData:je,authorizations:_zod2.default.array(_zod2.default.number()).optional(),mobileCountryCode:_zod2.default.string(),clientKycStatus:ze,ofLoanCycle:_zod2.default.number(),ofLoanActive:_zod2.default.number(),activeDepositAccount:_zod2.default.number(),onBoardingStatus:_zod2.default.string().optional()}).catchall(_zod2.default.any()),gt=_zod2.default.object({riskScore:_zod2.default.number(),rating:_zod2.default.string()}).catchall(_zod2.default.any()),ft=_zod2.default.object({street:_zod2.default.string(),city:_zod2.default.string(),state:_zod2.default.string(),zipCode:_zod2.default.string()}).catchall(_zod2.default.any()),bt=_zod2.default.object({type:_zod2.default.string(),value:_zod2.default.string()}).catchall(_zod2.default.any()),Ct={firstname:_zod2.default.string(),middlename:_zod2.default.string().optional(),lastname:_zod2.default.string(),fullname:_zod2.default.string().optional(),dob:_zod2.default.string(),genderId:_zod2.default.number(),locale:_zod2.default.string(),officeId:_zod2.default.number(),mobileCountryCode:_zod2.default.string(),mobileNo:_zod2.default.string(),emailAddress:_zod2.default.string().email(),legalFormId:_zod2.default.number(),externalId:_zod2.default.string().optional(),isOptedForMLALStatus:_zod2.default.boolean().optional(),currentMLALStatus:_zod2.default.string().optional(),isStaff:_zod2.default.boolean().optional(),staffId:_zod2.default.number().optional(),clientClassificationId:_zod2.default.number().optional(),savingsProductId:_zod2.default.number().optional(),active:_zod2.default.boolean().optional(),dateFormat:_zod2.default.string(),activationDate:_zod2.default.string().optional(),submittedOnDate:_zod2.default.string(),dateOfBirth:_zod2.default.string()},An=_zod2.default.object(Ct).catchall(_zod2.default.any()),ht={clientId:_zod2.default.number(),status:_zod2.default.string()},Pn=_zod2.default.object(ht).catchall(_zod2.default.any()),It={firstname:_zod2.default.string().optional(),middlename:_zod2.default.string().optional(),fullname:_zod2.default.string().optional(),genderId:_zod2.default.number().optional(),lastname:_zod2.default.string().optional(),occupationId:_zod2.default.number().optional(),mobileCountryCode:_zod2.default.string().optional(),mobileNo:_zod2.default.string().optional(),emailAddress:_zod2.default.string().email().optional(),externalId:_zod2.default.string().optional(),clientClassificationId:_zod2.default.number().optional(),dateOfBirth:_zod2.default.string().optional(),dateFormat:_zod2.default.string().optional()},On=_zod2.default.object(It).catchall(_zod2.default.any()),xt={documentTypeId:_zod2.default.string(),documentKey:_zod2.default.string(),status:_zod2.default.string(),description:_zod2.default.string().optional(),issuedBy:_zod2.default.string().optional(),locale:_zod2.default.string().optional(),dateFormat:_zod2.default.string().optional(),expiryDate:_zod2.default.string().optional(),nationality:_zod2.default.number().optional(),issuedDate:_zod2.default.string().optional()},En=_zod2.default.object(xt).catchall(_zod2.default.any()),St={id:_zod2.default.number(),officeId:_zod2.default.number(),clientId:_zod2.default.number(),resourceId:_zod2.default.number(),changes:_zod2.default.record(_zod2.default.string(),_zod2.default.any()),isScheduledTransfer:_zod2.default.boolean(),isSkipNotification:_zod2.default.boolean()},wn=_zod2.default.object(St).catchall(_zod2.default.any()),Rt={developerMessage:_zod2.default.string(),defaultUserMessage:_zod2.default.string(),userMessageGlobalisationCode:_zod2.default.string(),parameterName:_zod2.default.string().optional(),value:_zod2.default.any().nullable(),args:_zod2.default.array(_zod2.default.object({value:_zod2.default.any()})).optional()},vt=_zod2.default.object(Rt),Dt={developerMessage:_zod2.default.string(),httpStatusCode:_zod2.default.string(),defaultUserMessage:_zod2.default.string(),userMessageGlobalisationCode:_zod2.default.string(),errors:_zod2.default.array(vt).optional()},Tn=_zod2.default.object(Dt).catchall(_zod2.default.any()),At={tenantId:_zod2.default.string().optional(),offset:_zod2.default.number().optional(),limit:_zod2.default.number().optional(),orderBy:_zod2.default.string().optional(),sortOrder:_zod2.default.string().optional(),officeId:_zod2.default.number().optional(),displayName:_zod2.default.string().optional(),firstname:_zod2.default.string().optional(),lastname:_zod2.default.string().optional(),externalId:_zod2.default.string().optional(),orphansOnly:_zod2.default.boolean().optional(),clientStatus:_zod2.default.string().optional(),mobileNo:_zod2.default.string().optional(),createdStartDate:_zod2.default.string().optional(),creationEndDate:_zod2.default.string().optional(),activatedStartDate:_zod2.default.string().optional(),activatedEndDate:_zod2.default.string().optional(),closedStartDate:_zod2.default.string().optional(),closedEndDate:_zod2.default.string().optional()},kn=_zod2.default.object(At),Ln={id:_zod2.default.number(),accountNo:_zod2.default.string(),status:ke,subStatus:Le,active:_zod2.default.boolean(),activationDate:_zod2.default.array(_zod2.default.number()).optional(),firstname:_zod2.default.string(),lastname:_zod2.default.string(),displayName:_zod2.default.string(),mobileNo:_zod2.default.string(),emailAddress:_zod2.default.string(),dateOfBirth:_zod2.default.array(_zod2.default.number()),gender:Ne,clientTypes:_zod2.default.array(_zod2.default.any()),clientClassification:Fe,occupation:Be,isStaff:_zod2.default.boolean(),skipAvs:_zod2.default.boolean(),officeId:_zod2.default.number(),officeName:_zod2.default.string(),imageId:_zod2.default.string().optional(),imagePresent:_zod2.default.boolean().optional(),timeline:Ue,legalForm:Te,clientVerificationStatus:_zod2.default.string(),updatedAt:_zod2.default.string(),isBlockExternalCardsAddition:_zod2.default.boolean(),clientNonPersonDetails:qe,clientTransferOptionData:je,authorizations:_zod2.default.array(_zod2.default.number()).optional(),mobileCountryCode:_zod2.default.string(),clientKycStatus:ze,ofLoanCycle:_zod2.default.number(),ofLoanActive:_zod2.default.number(),activeDepositAccount:_zod2.default.number(),onBoardingStatus:_zod2.default.string().optional()},Pt={totalFilteredRecords:_zod2.default.number(),pageItems:_zod2.default.array($e)},Nn=_zod2.default.object(Pt).catchall(_zod2.default.any()),Ot={clientData:$e.optional(),riskRatingData:gt.optional(),clientAddressData:ft.optional(),clientIdentifierData:bt.optional()},Fn=_zod2.default.object(Ot);var Et=_zod2.default.enum(["offset","limit","orderBy","sortOrder","officeId","displayName","firstname","lastname","externalId","orphansOnly","clientStatus","mobileNo","createdStartDate","creationEndDate","activatedStartDate","activatedEndDate","closedStartDate","closedEndDate"]),wt=_zod2.default.enum(["displayName","accountNo","officeId","officeName"]),Tt=_zod2.default.enum(["ASC","DESC"]),kt=_zod2.default.enum(["ACTIVE","PENDING","INACTIVE"]),F=e=>Et.parse(e),Lt=e=>wt.parse(e),Nt=e=>Tt.parse(e),Ft=e=>kt.parse(e),_e=e=>{try{for(let[o,r]of Object.entries(e))if(F(o),r!=null)switch(o){case"orderBy":Lt(r);break;case"sortOrder":Nt(r);break;case"clientStatus":Ft(r);break;case"offset":case"limit":case"officeId":_zod2.default.number().min(0).parse(r);break;case"orphansOnly":_zod2.default.boolean().parse(r);break;case"displayName":case"firstname":case"lastname":case"externalId":case"mobileNo":case"createdStartDate":case"creationEndDate":case"activatedStartDate":case"activatedEndDate":case"closedStartDate":case"closedEndDate":_zod2.default.string().min(1).parse(r);break}}catch(o){throw o instanceof _zod2.default.ZodError?u({message:`Validation error: ${o.errors.map(r=>r.message).join(", ")}`,code:"validation_error"}):o}};var Hn=e=>({input:e,metadata:{commandName:"GetClient",path:`/v1/clients/${e.clientId}`,method:"GET"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{let i={},m=new URLSearchParams;e.staffInSelectedOfficeOnly&&m.append("staffInSelectedOfficeOnly","true"),e.checkIdentitiesExpiration&&m.append("checkIdentitiesExpiration","true"),e.clientAccountAssociate&&m.append("clientAccountAssociate","true");let l=m.toString(),s=`/v1/clients/${e.clientId}${l?`?${l}`:""}`,c=await r.get(s);if(i.clientData=c,e.riskRating){let y=await r.get(`/v1/clients/${e.clientId}/riskrating`);i.riskRatingData=y}if(e.clientAddress){let y=await r.get(`/v1/client/${e.clientId}/addresses`);i.clientAddressData=y}if(e.clientIdentifier){let y=await r.get(`/v1/clients/${e.clientId}/identifiers?unmaskValue=true`);i.clientIdentifierData=y}return i}catch(i){p(i)}}}),Yn= exports.y =e=>({input:e,metadata:{commandName:"UpdateClient",path:`/v1/clients/${e.clientId}`,method:"PUT"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.put(`/v1/clients/${e.clientId}`,{...e.updates})).data}catch(i){p(i)}}}),Jn= exports.z =e=>({input:e,metadata:{commandName:"UpdateClientIdentifier",path:`/v1/clients/${e.clientId}/identifiers/${e.identifierId}`,method:"PUT"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.put(`/v1/clients/${e.clientId}/identifiers/${e.identifierId}`,{...e.updates})).data}catch(i){p(i)}}}),Xn= exports.A =e=>({input:e,metadata:{commandName:"CreateClient",path:"/v1/clients",method:"POST"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.post("/v1/clients",e.clientData)).data}catch(i){p(i)}}}),A=(e,o,r,i)=>{if(o!==void 0&&o!==0&&o<=0)throw u({message:`Invalid limit: ${o}. Limit must be positive or 0 for fetching all records.`,code:"invalid_limit"});if(r!==void 0&&r<0)throw u({message:`Invalid offset: ${r}. Offset must be non-negative.`,code:"invalid_offset"});return{where:s=>(F(s),{eq:c=>(_e({[s]:c}),A({...e,[s]:c},o,r,i))}),limit:s=>A(e,s,r,i),offset:s=>A(e,o,s,i),all:()=>A(e,0,r,i),execute:()=>{let s={...e,limit:o||200,offset:r||0};return{input:{filters:e,limit:o,offset:r,tenantId:i},metadata:{commandName:"ListClients",path:"/v1/clients",method:"GET"},execute:async c=>{i&&(c.tenantId=i);let y=await d(c);try{if(o===0){let g=[],f=r||0,C=0;do{let h={...e,limit:200,offset:f},I=await y.get("/v1/clients",{params:h}),{totalFilteredRecords:x,pageItems:E}=I.data;g.push(...E),C=x,f+=200}while(f<C);return{totalFilteredRecords:C,pageItems:g}}else return(await y.get("/v1/clients",{params:s})).data}catch(g){p(g)}}}}}},Qn= exports.B =e=>({list:()=>A({},void 0,void 0,_optionalChain([e, 'optionalAccess', _20 => _20.tenantId]))}),Zn= exports.C =(e,o)=>({input:{params:e,configuration:o},metadata:{commandName:"GetClients",path:"/v1/clients",method:"GET"},execute:async r=>{o.tenantId&&(r.tenantId=o.tenantId);let i=await d(r),m=[],l=e.limit||200,s=e.offset||0,c=0,y={...e,limit:l,offset:s};try{if(e.limit===0){do{let g=await i.get("/v1/clients",{params:y}),{totalFilteredRecords:b,pageItems:f}=g.data;m.push(...f),c=b,s+=l}while(s<c);return{totalFilteredRecords:c,pageItems:m}}else return(await i.get("/v1/clients",{params:y})).data}catch(g){p(g)}}}),ea= exports.D =e=>({input:e,metadata:{commandName:"DeleteClient",path:`/v1/clients/${e.clientId}`,method:"DELETE"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.delete(`/v1/clients/${e.clientId}`)).data}catch(i){p(i)}}});var Me=_zod.z.object({id:_zod.z.number(),code:_zod.z.string(),value:_zod.z.string(),submittedAndPendingApproval:_zod.z.boolean(),approved:_zod.z.boolean(),rejected:_zod.z.boolean(),withdrawnByApplicant:_zod.z.boolean(),active:_zod.z.boolean(),closed:_zod.z.boolean(),prematureClosed:_zod.z.boolean(),transferInProgress:_zod.z.boolean(),transferOnHold:_zod.z.boolean(),matured:_zod.z.boolean()}),B=_zod.z.object({code:_zod.z.string(),name:_zod.z.string(),decimalPlaces:_zod.z.number(),inMultiplesOf:_zod.z.number(),displaySymbol:_zod.z.string(),nameCode:_zod.z.string(),displayLabel:_zod.z.string(),currencyCodeInDigit:_zod.z.number().optional(),isBaseCurrency:_zod.z.boolean().optional()}),Bt=_zod.z.object({id:_zod.z.number(),code:_zod.z.string(),value:_zod.z.string()}),Ve=_zod.z.object({submittedOnDate:_zod.z.array(_zod.z.number()),submittedByUsername:_zod.z.string(),submittedByFirstname:_zod.z.string(),submittedByLastname:_zod.z.string(),approvedOnDate:_zod.z.array(_zod.z.number()).optional(),approvedByUsername:_zod.z.string().optional(),approvedByFirstname:_zod.z.string().optional(),approvedByLastname:_zod.z.string().optional(),activatedOnDate:_zod.z.array(_zod.z.number()).optional(),activatedByUsername:_zod.z.string().optional(),activatedByFirstname:_zod.z.string().optional(),activatedByLastname:_zod.z.string().optional()}),Ge=_zod.z.object({id:_zod.z.number(),code:_zod.z.string(),value:_zod.z.string(),none:_zod.z.boolean(),inactive:_zod.z.boolean(),dormant:_zod.z.boolean(),escheat:_zod.z.boolean(),block:_zod.z.boolean(),blockCredit:_zod.z.boolean(),blockDebit:_zod.z.boolean()}),Ke=_zod.z.object({id:_zod.z.number(),code:_zod.z.string(),value:_zod.z.string()}),Ut=_zod.z.object({id:_zod.z.number(),accountNo:_zod.z.string(),productId:_zod.z.number(),productName:_zod.z.string(),shortProductName:_zod.z.string(),status:Me,currency:B,accountBalance:_zod.z.number(),accountType:Bt,timeline:Ve,subStatus:Ge,lastActiveTransactionDate:_zod.z.array(_zod.z.number()).optional(),depositType:Ke,availableBalance:_zod.z.number(),allowPrepaidCard:_zod.z.boolean(),primaryAccount:_zod.z.record(_zod.z.any())}),qt= exports.E ={id:_zod.z.number(),accountNo:_zod.z.string(),depositType:Ke,clientId:_zod.z.number(),clientName:_zod.z.string(),savingsProductId:_zod.z.number(),savingsProductName:_zod.z.string(),fieldOfficerId:_zod.z.number(),status:Me,subStatus:Ge,timeline:Ve,currency:B,nominalAnnualInterestRate:_zod.z.number(),interestCompoundingPeriodType:_zod.z.object({id:_zod.z.number(),code:_zod.z.string(),value:_zod.z.string()}),interestPostingPeriodType:_zod.z.object({id:_zod.z.number(),code:_zod.z.string(),value:_zod.z.string()}),interestCalculationType:_zod.z.object({id:_zod.z.number(),code:_zod.z.string(),value:_zod.z.string()}),interestCalculationDaysInYearType:_zod.z.object({id:_zod.z.number(),code:_zod.z.string(),value:_zod.z.string()}),lockinPeriodFrequency:_zod.z.number(),lockinPeriodFrequencyType:_zod.z.object({id:_zod.z.number(),code:_zod.z.string(),value:_zod.z.string()}),withdrawalFeeForTransfers:_zod.z.boolean(),allowOverdraft:_zod.z.boolean(),enforceMinRequiredBalance:_zod.z.boolean(),onHoldFunds:_zod.z.number(),withHoldTax:_zod.z.boolean(),lastActiveTransactionDate:_zod.z.array(_zod.z.number()),isDormancyTrackingActive:_zod.z.boolean(),savingsAmountOnHold:_zod.z.number(),summary:_zod.z.object({currency:B,totalDeposits:_zod.z.number(),totalInterestEarned:_zod.z.number(),totalInterestPosted:_zod.z.number(),accountBalance:_zod.z.number(),totalOverdraftInterestDerived:_zod.z.number(),interestNotPosted:_zod.z.number(),lastInterestCalculationDate:_zod.z.array(_zod.z.number()),availableBalance:_zod.z.number()}),isLinkedToFloatingInterestRates:_zod.z.boolean(),interestRateDifferential:_zod.z.number(),overdraftInterestRateDifferential:_zod.z.number(),floatingRateId:_zod.z.number(),isBaseLendingRate:_zod.z.boolean(),isFloatingInterestRateCalculationAllowed:_zod.z.boolean(),bankDetails:_zod.z.object({routingNumber:_zod.z.string(),name:_zod.z.string(),swiftCode:_zod.z.string(),address:_zod.z.string(),city:_zod.z.string(),postcode:_zod.z.string()}),skipCollectTransferCharge:_zod.z.boolean(),cardRestricted:_zod.z.boolean(),overdraftLimit:_zod.z.number(),minRequiredBalance:_zod.z.number(),minBalanceForInterestCalculation:_zod.z.number(),minOverdraftForInterestCalculation:_zod.z.number(),overdraftMinimumDue:_zod.z.number(),currentFloatingInterestPeriod:_zod.z.object({fromDate:_zod.z.array(_zod.z.number()),interestRate:_zod.z.number(),isDifferentialToBLR:_zod.z.boolean()}),floatingRateName:_zod.z.string(),floatingRateDifferential:_zod.z.number(),parentAccount:_zod.z.object({withdrawalFeeForTransfers:_zod.z.boolean(),allowOverdraft:_zod.z.boolean(),enforceMinRequiredBalance:_zod.z.boolean(),withHoldTax:_zod.z.boolean(),isDormancyTrackingActive:_zod.z.boolean(),isLinkedToFloatingInterestRates:_zod.z.boolean(),isBaseLendingRate:_zod.z.boolean(),skipCollectTransferCharge:_zod.z.boolean(),cardRestricted:_zod.z.boolean(),allowPrepaidCard:_zod.z.boolean(),prepaidAccount:_zod.z.boolean()}),allowPrepaidCard:_zod.z.boolean(),prepaidAccount:_zod.z.boolean(),prepaidLimitAmount:_zod.z.number()},oa= exports.F =_zod.z.object(qt),jt= exports.G ={savingsAccounts:_zod.z.array(Ut)},ra= exports.H =_zod.z.object(jt),zt=_zod.z.enum(["showReservedAccount"]),$t= exports.I ={tenantId:_zod.z.string().optional(),showReservedAccount:_zod.z.boolean().optional().default(!1)},ia= exports.J =_zod.z.object($t),U=e=>zt.parse(e),We=e=>{try{for(let[o,r]of Object.entries(e))if(U(o),r!=null)switch(o){case"showReservedAccount":_zod.z.boolean().parse(r);break}}catch(o){throw o instanceof _zod.z.ZodError?u({message:`Validation error: ${o.errors.map(r=>r.message).join(", ")}`,code:"validation_error"}):o}},_t= exports.K ={clientId:_zod.z.number(),productId:_zod.z.number(),submittedOnDate:_zod.z.string(),nominalAnnualInterestRate:_zod.z.string(),minRequiredOpeningBalance:_zod.z.string(),lockinPeriodFrequency:_zod.z.string(),withdrawalFeeForTransfers:_zod.z.boolean(),allowOverdraft:_zod.z.boolean(),overdraftLimit:_zod.z.number(),minOverdraftForInterestCalculation:_zod.z.number(),enforceMinRequiredBalance:_zod.z.boolean(),minRequiredBalance:_zod.z.number(),withHoldTax:_zod.z.boolean(),interestCompoundingPeriodType:_zod.z.number(),interestPostingPeriodType:_zod.z.number(),interestCalculationType:_zod.z.number(),interestCalculationDaysInYearType:_zod.z.number(),fieldOfficerId:_zod.z.number(),lockinPeriodFrequencyType:_zod.z.number(),locale:_zod.z.string(),dateFormat:_zod.z.string(),monthDayFormat:_zod.z.string(),charges:_zod.z.array(_zod.z.any())},sa= exports.L =_zod.z.object(_t);var ga=e=>({input:e,metadata:{commandName:"GetAccount",path:`/v1/savingaccounts/${e.id}`,method:"GET"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.get(`/v1/savingaccounts/${e.id}`)).data}catch(i){p(i)}}}),fa= exports.N =e=>({input:e,metadata:{commandName:"UpdateAccount",path:`/v1/savingsaccounts/${e.accountId}`,method:"PUT"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.put(`/v1/savingsaccounts/${e.accountId}`,{...e.updates,clientId:e.clientId})).data}catch(i){p(i)}}}),ba= exports.O =e=>({input:e,metadata:{commandName:"DeleteAccount",path:`/v1/savingsaccounts/${e.accountId}`,method:"DELETE"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.delete(`/v1/savingsaccounts/${e.accountId}`)).data}catch(i){p(i)}}}),He=(e,o,r)=>({where:l=>(U(l),{eq:s=>(We({[l]:s}),He({...e,[l]:s},o,r))}),execute:()=>({input:{filters:e,tenantId:r},metadata:{commandName:"ListAccountsOfClient",path:`/v1/clients/${o}/accounts`,method:"GET"},execute:async l=>{r&&(l.tenantId=r);let s=await d(l);try{return(await s.get(`/v1/clients/${o}/accounts`,{params:e})).data}catch(c){p(c)}}})}),Ca= exports.P =e=>({list:()=>He({},_optionalChain([e, 'optionalAccess', _21 => _21.clientId])||0,_optionalChain([e, 'optionalAccess', _22 => _22.tenantId]))}),ha= exports.Q =(e,o,r)=>({input:{params:o,configuration:r},metadata:{commandName:"ListAccountsOfClient",path:`/v1/clients/${e}/accounts`,method:"GET"},execute:async i=>{r.tenantId&&(i.tenantId=r.tenantId);let m=await d(i);try{return(await m.get(`/v1/clients/${e}/accounts`,{params:o})).data}catch(l){p(l)}}});exports.a = u; exports.b = Gt; exports.c = p; exports.d = d; exports.e = q; exports.f = S; exports.g = R; exports.h = v; exports.i = N; exports.j = Qe; exports.k = Zt; exports.l = Ze; exports.m = tt; exports.n = nt; exports.o = at; exports.p = ot; exports.q = en; exports.r = bn; exports.s = Cn; exports.t = hn; exports.u = In; exports.v = xn; exports.w = Sn; exports.x = Hn; exports.y = Yn; exports.z = Jn; exports.A = Xn; exports.B = Qn; exports.C = Zn; exports.D = ea; exports.E = qt; exports.F = oa; exports.G = jt; exports.H = ra; exports.I = $t; exports.J = ia; exports.K = _t; exports.L = sa; exports.M = ga; exports.N = fa; exports.O = ba; exports.P = Ca; exports.Q = ha;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkBYLL2GK4js = require('./chunk-BYLL2GK4.js');var I=u=>{let l=[];if(!u.baseUrl)l.push("baseUrl is required");else if(typeof u.baseUrl!="string")l.push("baseUrl must be a string");else try{new URL(u.baseUrl)}catch (e2){l.push("baseUrl must be a valid URL")}return _optionalChain([u, 'access', _ => _.axiosConfig, 'optionalAccess', _2 => _2.timeout])!==void 0&&(typeof u.axiosConfig.timeout!="number"||u.axiosConfig.timeout<0)&&l.push("timeout must be a positive number"),l};var H=u=>{let l=I(u);if(l.length>0)throw _chunkBYLL2GK4js.a.call(void 0, {message:`Invalid configuration: ${l.join(", ")}`,code:"invalid_config"});let y=async(r,t,n)=>{if(u.middlewares)for(let e of u.middlewares)r==="before"&&e.before?await e.before(t):r==="after"&&e.after?await e.after(t,n):r==="onError"&&e.onError&&await e.onError(t,n)},f={...u},a=async r=>{try{await y("before",r);let t=await r.execute(f);return await y("after",r,t),t}catch(t){throw await y("onError",r,t),t}},x=r=>{let t=r||f.tenantId;return{payment:{create:n=>{let e=_chunkBYLL2GK4js.r.call(void 0, {payment:n,tenantId:t});return{execute:async()=>a(e)}},get:n=>{let e=_chunkBYLL2GK4js.s.call(void 0, {id:n,tenantId:t});return{execute:async()=>a(e)}},update:(n,e)=>{let s=_chunkBYLL2GK4js.t.call(void 0, {id:n,payment:e,tenantId:t});return{execute:async()=>a(s)}},delete:n=>{let e=_chunkBYLL2GK4js.w.call(void 0, {id:n,tenantId:t});return{execute:async()=>a(e)}},list:()=>{let e=_chunkBYLL2GK4js.u.call(void 0, {tenantId:t}).list(),s=c=>({where:c.where,limit:o=>{let m=c.limit(o);return s(m)},offset:o=>{let m=c.offset(o);return s(m)},all:()=>{let o=c.all();return s(o)},execute:async()=>{let o=c.execute();return a(o)}});return s(e)}},client:{create:n=>{let e=_chunkBYLL2GK4js.A.call(void 0, {clientData:n,tenantId:t});return{execute:async()=>a(e)}},get:n=>{let e=_chunkBYLL2GK4js.x.call(void 0, {clientId:n,tenantId:t});return{execute:async()=>a(e)}},update:(n,e)=>{let s=_chunkBYLL2GK4js.y.call(void 0, {clientId:n,updates:e,tenantId:t});return{execute:async()=>a(s)}},updateDocumentRecord:(n,e)=>{let s=_chunkBYLL2GK4js.z.call(void 0, {clientId:n,identifierId:e.id,updates:e,tenantId:t});return{execute:async()=>a(s)}},delete:n=>{let e=_chunkBYLL2GK4js.D.call(void 0, {clientId:n,tenantId:t});return{execute:async()=>a(e)}},for:n=>{let e=parseInt(n,10),c=_chunkBYLL2GK4js.P.call(void 0, {clientId:e,tenantId:t}).list(),o=async()=>{let i=c.execute();returnawait _asyncOptionalChain([(await a(i)), 'optionalAccess', async _3 => _3.savingsAccounts])||[]},m=i=>({where:i.where,execute:async()=>{let d=i.execute();return a(d)}});return{accounts:{get:i=>({execute:async()=>{let d=_chunkBYLL2GK4js.M.call(void 0, {id:i,tenantId:t});return a(d)}}),getFromList:i=>({execute:async()=>(await o()).find(p=>p.id===i)||null}),update:(i,d)=>{let p=_chunkBYLL2GK4js.N.call(void 0, {clientId:e,accountId:i,updates:d,tenantId:t});return{execute:async()=>a(p)}},delete:i=>{let d=_chunkBYLL2GK4js.O.call(void 0, {accountId:i,tenantId:t});return{execute:async()=>a(d)}},where:()=>({eq:()=>({list:()=>m(c)})}),list:()=>m(c)}}},list:()=>{let e=_chunkBYLL2GK4js.B.call(void 0, {tenantId:t}).list(),s=c=>({where:c.where,limit:o=>{let m=c.limit(o);return s(m)},offset:o=>{let m=c.offset(o);return s(m)},all:()=>{let o=c.all();return s(o)},execute:async()=>{let o=c.execute();return a(o)}});return s(e)}}}};return{setConfig:r=>{f=r},updateConfig:r=>{let t={...f,...r,axiosConfig:{...f.axiosConfig,...r.axiosConfig,headers:{..._optionalChain([f, 'access', _4 => _4.axiosConfig, 'optionalAccess', _5 => _5.headers]),..._optionalChain([r, 'access', _6 => _6.axiosConfig, 'optionalAccess', _7 => _7.headers])}}},n=I(t);if(n.length>0)throw _chunkBYLL2GK4js.a.call(void 0, {message:`Invalid configuration: ${n.join(", ")}`,code:"invalid_config"});f=t},resetConfig:()=>{f=u},request:a,tenant:r=>x(r),...x()}};exports.a = H;
@@ -0,0 +1 @@
1
+ import{A as R,B as v,D as B,M as O,N as E,O as L,P as T,a as C,r as g,s as w,t as b,u as h,w as U,x as q,y as P,z as A}from"./chunk-ZPWW7X3U.mjs";var I=u=>{let l=[];if(!u.baseUrl)l.push("baseUrl is required");else if(typeof u.baseUrl!="string")l.push("baseUrl must be a string");else try{new URL(u.baseUrl)}catch{l.push("baseUrl must be a valid URL")}return u.axiosConfig?.timeout!==void 0&&(typeof u.axiosConfig.timeout!="number"||u.axiosConfig.timeout<0)&&l.push("timeout must be a positive number"),l};var H=u=>{let l=I(u);if(l.length>0)throw C({message:`Invalid configuration: ${l.join(", ")}`,code:"invalid_config"});let y=async(r,t,n)=>{if(u.middlewares)for(let e of u.middlewares)r==="before"&&e.before?await e.before(t):r==="after"&&e.after?await e.after(t,n):r==="onError"&&e.onError&&await e.onError(t,n)},f={...u},a=async r=>{try{await y("before",r);let t=await r.execute(f);return await y("after",r,t),t}catch(t){throw await y("onError",r,t),t}},x=r=>{let t=r||f.tenantId;return{payment:{create:n=>{let e=g({payment:n,tenantId:t});return{execute:async()=>a(e)}},get:n=>{let e=w({id:n,tenantId:t});return{execute:async()=>a(e)}},update:(n,e)=>{let s=b({id:n,payment:e,tenantId:t});return{execute:async()=>a(s)}},delete:n=>{let e=U({id:n,tenantId:t});return{execute:async()=>a(e)}},list:()=>{let e=h({tenantId:t}).list(),s=c=>({where:c.where,limit:o=>{let m=c.limit(o);return s(m)},offset:o=>{let m=c.offset(o);return s(m)},all:()=>{let o=c.all();return s(o)},execute:async()=>{let o=c.execute();return a(o)}});return s(e)}},client:{create:n=>{let e=R({clientData:n,tenantId:t});return{execute:async()=>a(e)}},get:n=>{let e=q({clientId:n,tenantId:t});return{execute:async()=>a(e)}},update:(n,e)=>{let s=P({clientId:n,updates:e,tenantId:t});return{execute:async()=>a(s)}},updateDocumentRecord:(n,e)=>{let s=A({clientId:n,identifierId:e.id,updates:e,tenantId:t});return{execute:async()=>a(s)}},delete:n=>{let e=B({clientId:n,tenantId:t});return{execute:async()=>a(e)}},for:n=>{let e=parseInt(n,10),c=T({clientId:e,tenantId:t}).list(),o=async()=>{let i=c.execute();return(await a(i))?.savingsAccounts||[]},m=i=>({where:i.where,execute:async()=>{let d=i.execute();return a(d)}});return{accounts:{get:i=>({execute:async()=>{let d=O({id:i,tenantId:t});return a(d)}}),getFromList:i=>({execute:async()=>(await o()).find(p=>p.id===i)||null}),update:(i,d)=>{let p=E({clientId:e,accountId:i,updates:d,tenantId:t});return{execute:async()=>a(p)}},delete:i=>{let d=L({accountId:i,tenantId:t});return{execute:async()=>a(d)}},where:()=>({eq:()=>({list:()=>m(c)})}),list:()=>m(c)}}},list:()=>{let e=v({tenantId:t}).list(),s=c=>({where:c.where,limit:o=>{let m=c.limit(o);return s(m)},offset:o=>{let m=c.offset(o);return s(m)},all:()=>{let o=c.all();return s(o)},execute:async()=>{let o=c.execute();return a(o)}});return s(e)}}}};return{setConfig:r=>{f=r},updateConfig:r=>{let t={...f,...r,axiosConfig:{...f.axiosConfig,...r.axiosConfig,headers:{...f.axiosConfig?.headers,...r.axiosConfig?.headers}}},n=I(t);if(n.length>0)throw C({message:`Invalid configuration: ${n.join(", ")}`,code:"invalid_config"});f=t},resetConfig:()=>{f=u},request:a,tenant:r=>x(r),...x()}};export{H as a};
@@ -1 +1 @@
1
- import{a as d,c as s,d as i}from"./chunk-SQZ4PAOL.mjs";var u=t=>{let r=t.skipNotification&&"?skipNotification=true"||"",e=t.card.cardType==="CREDIT"?"creditcards":"cards",n={...t.payload,query:r,flag:t.flag};return{input:t,metadata:{commandName:"SendAuthorizationToCore",path:`/${e}/${t.card.internalCardId}/authorization${r}`,method:"POST"},execute:async a=>{t.tenantId&&(a.tenantId=t.tenantId);let o=await i(a);try{return await o.post(`/${e}/${t.card.internalCardId}/authorization${r}`,n)}catch(c){s(c)}}}},C=t=>({input:t,metadata:{commandName:"UpdateCardID",path:`/clients/${t.clientId}`,method:"PUT"},execute:async r=>{t.tenantId&&(r.tenantId=t.tenantId);let e=await i(r);try{await e.put(`/clients/${t.clientId}`,{businessCardIDURL:t.businessCardIDURL,businessCardIDQRCode:t.businessCardIDQRCode})}catch(n){s(n)}}});import{print as m}from"graphql";var y=t=>({input:t,metadata:{commandName:t.operationName||"GraphQL",path:"/graphql",method:"POST"},execute:async r=>{t.tenantId&&(r.tenantId=t.tenantId);let e=await i(r),n=r.graphqlPath||"/graphql";try{let a=typeof t.command=="string"?t.command:m(t.command),{data:o}=await e.post(n,{query:a,variables:t.variables,operationName:t.operationName});if(o.errors?.length)throw d({message:o.errors[0].message,code:"graphql_error",originalError:o.errors[0]});if(!o.data)throw d({message:"No data returned from GraphQL query",code:"graphql_no_data"});return o.data}catch(a){throw a.name==="CommandError"?a:d({message:a.message,code:"graphql_request_failed",originalError:a})}}});export{u as a,C as b,y as c};
1
+ import{a as d,c as s,d as i}from"./chunk-ZPWW7X3U.mjs";var u=t=>{let r=t.skipNotification&&"?skipNotification=true"||"",e=t.card.cardType==="CREDIT"?"creditcards":"cards",n={...t.payload,query:r,flag:t.flag};return{input:t,metadata:{commandName:"SendAuthorizationToCore",path:`/${e}/${t.card.internalCardId}/authorization${r}`,method:"POST"},execute:async a=>{t.tenantId&&(a.tenantId=t.tenantId);let o=await i(a);try{return await o.post(`/${e}/${t.card.internalCardId}/authorization${r}`,n)}catch(c){s(c)}}}},C=t=>({input:t,metadata:{commandName:"UpdateCardID",path:`/clients/${t.clientId}`,method:"PUT"},execute:async r=>{t.tenantId&&(r.tenantId=t.tenantId);let e=await i(r);try{await e.put(`/clients/${t.clientId}`,{businessCardIDURL:t.businessCardIDURL,businessCardIDQRCode:t.businessCardIDQRCode})}catch(n){s(n)}}});import{print as m}from"graphql";var y=t=>({input:t,metadata:{commandName:t.operationName||"GraphQL",path:"/graphql",method:"POST"},execute:async r=>{t.tenantId&&(r.tenantId=t.tenantId);let e=await i(r),n=r.graphqlPath||"/graphql";try{let a=typeof t.command=="string"?t.command:m(t.command),{data:o}=await e.post(n,{query:a,variables:t.variables,operationName:t.operationName});if(o.errors?.length)throw d({message:o.errors[0].message,code:"graphql_error",originalError:o.errors[0]});if(!o.data)throw d({message:"No data returned from GraphQL query",code:"graphql_no_data"});return o.data}catch(a){throw a.name==="CommandError"?a:d({message:a.message,code:"graphql_request_failed",originalError:a})}}});export{u as a,C as b,y as c};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkUD2TOWHPjs = require('./chunk-UD2TOWHP.js');var u=t=>{let r=t.skipNotification&&"?skipNotification=true"||"",e=t.card.cardType==="CREDIT"?"creditcards":"cards",n={...t.payload,query:r,flag:t.flag};return{input:t,metadata:{commandName:"SendAuthorizationToCore",path:`/${e}/${t.card.internalCardId}/authorization${r}`,method:"POST"},execute:async a=>{t.tenantId&&(a.tenantId=t.tenantId);let o=await _chunkUD2TOWHPjs.d.call(void 0, a);try{return await o.post(`/${e}/${t.card.internalCardId}/authorization${r}`,n)}catch(c){_chunkUD2TOWHPjs.c.call(void 0, c)}}}},C= exports.b =t=>({input:t,metadata:{commandName:"UpdateCardID",path:`/clients/${t.clientId}`,method:"PUT"},execute:async r=>{t.tenantId&&(r.tenantId=t.tenantId);let e=await _chunkUD2TOWHPjs.d.call(void 0, r);try{await e.put(`/clients/${t.clientId}`,{businessCardIDURL:t.businessCardIDURL,businessCardIDQRCode:t.businessCardIDQRCode})}catch(n){_chunkUD2TOWHPjs.c.call(void 0, n)}}});var _graphql = require('graphql');var y=t=>({input:t,metadata:{commandName:t.operationName||"GraphQL",path:"/graphql",method:"POST"},execute:async r=>{t.tenantId&&(r.tenantId=t.tenantId);let e=await _chunkUD2TOWHPjs.d.call(void 0, r),n=r.graphqlPath||"/graphql";try{let a=typeof t.command=="string"?t.command:_graphql.print.call(void 0, t.command),{data:o}=await e.post(n,{query:a,variables:t.variables,operationName:t.operationName});if(_optionalChain([o, 'access', _ => _.errors, 'optionalAccess', _2 => _2.length]))throw _chunkUD2TOWHPjs.a.call(void 0, {message:o.errors[0].message,code:"graphql_error",originalError:o.errors[0]});if(!o.data)throw _chunkUD2TOWHPjs.a.call(void 0, {message:"No data returned from GraphQL query",code:"graphql_no_data"});return o.data}catch(a){throw a.name==="CommandError"?a:_chunkUD2TOWHPjs.a.call(void 0, {message:a.message,code:"graphql_request_failed",originalError:a})}}});exports.a = u; exports.b = C; exports.c = y;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkBYLL2GK4js = require('./chunk-BYLL2GK4.js');var u=t=>{let r=t.skipNotification&&"?skipNotification=true"||"",e=t.card.cardType==="CREDIT"?"creditcards":"cards",n={...t.payload,query:r,flag:t.flag};return{input:t,metadata:{commandName:"SendAuthorizationToCore",path:`/${e}/${t.card.internalCardId}/authorization${r}`,method:"POST"},execute:async a=>{t.tenantId&&(a.tenantId=t.tenantId);let o=await _chunkBYLL2GK4js.d.call(void 0, a);try{return await o.post(`/${e}/${t.card.internalCardId}/authorization${r}`,n)}catch(c){_chunkBYLL2GK4js.c.call(void 0, c)}}}},C= exports.b =t=>({input:t,metadata:{commandName:"UpdateCardID",path:`/clients/${t.clientId}`,method:"PUT"},execute:async r=>{t.tenantId&&(r.tenantId=t.tenantId);let e=await _chunkBYLL2GK4js.d.call(void 0, r);try{await e.put(`/clients/${t.clientId}`,{businessCardIDURL:t.businessCardIDURL,businessCardIDQRCode:t.businessCardIDQRCode})}catch(n){_chunkBYLL2GK4js.c.call(void 0, n)}}});var _graphql = require('graphql');var y=t=>({input:t,metadata:{commandName:t.operationName||"GraphQL",path:"/graphql",method:"POST"},execute:async r=>{t.tenantId&&(r.tenantId=t.tenantId);let e=await _chunkBYLL2GK4js.d.call(void 0, r),n=r.graphqlPath||"/graphql";try{let a=typeof t.command=="string"?t.command:_graphql.print.call(void 0, t.command),{data:o}=await e.post(n,{query:a,variables:t.variables,operationName:t.operationName});if(_optionalChain([o, 'access', _ => _.errors, 'optionalAccess', _2 => _2.length]))throw _chunkBYLL2GK4js.a.call(void 0, {message:o.errors[0].message,code:"graphql_error",originalError:o.errors[0]});if(!o.data)throw _chunkBYLL2GK4js.a.call(void 0, {message:"No data returned from GraphQL query",code:"graphql_no_data"});return o.data}catch(a){throw a.name==="CommandError"?a:_chunkBYLL2GK4js.a.call(void 0, {message:a.message,code:"graphql_request_failed",originalError:a})}}});exports.a = u; exports.b = C; exports.c = y;
@@ -0,0 +1 @@
1
+ import Je from"axios";var u=({message:e,statusCode:o,code:r,requestId:i,originalError:m})=>({name:"CommandError",message:e,statusCode:o,code:r,requestId:i,originalError:m}),Gt=e=>typeof e=="object"&&e!==null&&"name"in e&&e.name==="CommandError",Xe=e=>{if(!e||typeof e!="object")return e;let o={...e};if(o.config&&typeof o.config=="object"){let r=o.config;if(r.httpsAgent&&typeof r.httpsAgent=="object"){let i=r.httpsAgent;delete i.sockets,delete i.freeSockets,delete i._sessionCache}}return o},p=e=>{if(Je.isAxiosError(e)){let o=e.response?.data?.message,r=e.response?.status?`Request failed with status code ${e.response.status}`:e.message||"Request failed";throw u({message:o||r,statusCode:e.response?.status,code:e.code,requestId:e.response?.headers?.["x-request-id"],originalError:Xe(e)})}throw e};import{z as a}from"zod";var q=a.enum(["originatorName","originatorAccount","originatorBankRoutingCode","recipientName","recipientAccount","recipientBankRoutingCode","reference","traceNumber","externalId","clientId","dateFormat","locale","originatedBy","paymentRail","paymentType","fromValueDate","toValueDate","fromExecuteDate","toExecuteDate","status","fromReturnDate","toReturnDate","isSettlement","orderBy","sortOrder"]),S=a.enum(["DRAFT","AML_SCREENING","AML_REJECTED","EXECUTION_SCHEDULED","EXECUTION_PROCESSING","EXECUTION_SUCCESS","EXECUTION_FAILURE","RETURNED","CANCELLED","COMPLIANCE_FAILURE","DELETED","UNKNOWN"]),R=a.enum(["ACH","SAMEDAYACH","WIRE","SWIFT","INTERNAL","FXPAY","CARD"]),v=a.enum(["CREDIT","DEBIT"]),N=a.enum(["ASC","DESC"]),Ht=q.options,Yt=S.options,Jt=R.options,Xt=v.options,Qt=N.options,j=e=>q.parse(e),z=e=>S.parse(e),$=e=>R.parse(e),_=e=>v.parse(e),M=e=>N.parse(e),V=a.string().min(1),G=a.string().min(1),K=a.string().min(1),W=a.string().min(1),H=a.string().min(1),Y=a.string().min(1),J=a.string().min(1),X=a.string().min(1),Q=a.string().min(1),Z=a.union([a.string(),a.number()]),ee=a.string(),te=a.string(),ne=a.string(),T=a.string(),k=a.string(),L=a.string(),ae=a.boolean(),oe=a.string(),re=e=>V.parse(e),ie=e=>G.parse(e),se=e=>K.parse(e),ce=e=>W.parse(e),le=e=>H.parse(e),pe=e=>Y.parse(e),de=e=>J.parse(e),me=e=>X.parse(e),ue=e=>Q.parse(e),ye=e=>Z.parse(e),ge=e=>ee.parse(e),fe=e=>te.parse(e),be=e=>ne.parse(e),Ce=e=>T.parse(e),he=e=>k.parse(e),Ie=e=>L.parse(e),xe=e=>ae.parse(e),Se=e=>oe.parse(e),Qe={originatorName:V.optional(),originatorAccount:G.optional(),originatorBankRoutingCode:K.optional(),recipientName:W.optional(),recipientAccount:H.optional(),recipientBankRoutingCode:Y.optional(),reference:J.optional(),traceNumber:X.optional(),externalId:Q.optional(),clientId:Z.optional(),dateFormat:ee.optional(),locale:te.optional(),originatedBy:ne.optional(),paymentRail:R.optional(),paymentType:v.optional(),fromValueDate:T.optional(),toValueDate:T.optional(),fromExecuteDate:k.optional(),toExecuteDate:k.optional(),status:S.optional(),fromReturnDate:L.optional(),toReturnDate:L.optional(),isSettlement:ae.optional(),orderBy:oe.optional(),sortOrder:N.optional(),limit:a.number().min(0).optional().describe("Maximum number of records to return. Defaults to 20 if not specified. Set to 0 to return all records."),offset:a.number().min(0).optional()},Zt=a.object(Qe).partial();var Ze={id:a.number(),clientId:a.number(),amount:a.number().positive(),correlationId:a.string(),paymentType:v,paymentRail:R,recipient:a.object({cardId:a.string().optional(),recipientType:a.string(),address:a.object({line1:a.string().optional(),line2:a.string().optional(),stateCode:a.string().optional(),countryCode:a.string(),postalCode:a.string().optional()}),name:a.string()}),originator:a.object({accountId:a.string().optional(),recipientType:a.string(),address:a.object({line1:a.string().optional(),line2:a.string().optional(),stateCode:a.string().optional(),countryCode:a.string(),postalCode:a.string().optional()}),name:a.string()}),executedAt:a.string(),createdAt:a.string(),externalId:a.string(),status:S,paymentRailMetaData:a.record(a.string(),a.any()).optional(),currencyData:a.object({code:a.string(),name:a.string(),decimalPlaces:a.number(),displaySymbol:a.string(),nameCode:a.string(),currencyCodeInDigit:a.number(),isBaseCurrency:a.boolean()}),currency:a.string().min(3).max(3)},Re=a.object(Ze).catchall(a.any()),ve=a.object({streetAddress:a.string().optional(),city:a.string().optional(),state:a.string().optional(),country:a.string().optional(),postalCode:a.string().optional()}).optional(),et=a.object({name:a.string().optional(),identifier:a.string().optional(),address:ve}).optional(),w=a.object({name:a.string(),identifier:a.string(),accountType:a.enum(["CHECKING","SAVINGS"]).optional(),address:ve,agent:et}),tt={amount:a.number().positive(),currency:a.string().min(3).max(3),paymentRail:R,paymentType:v,debtor:w,creditor:w,clientId:a.string().optional(),correspondent:w.optional(),exchangeRate:a.number().positive().optional(),externalId:a.string().optional(),reference:a.union([a.string(),a.array(a.string())]).optional(),paymentRailMetaData:a.record(a.string(),a.any()).optional(),chargeBearer:a.enum(["OUR","BEN","SHA"]).optional(),purposeCode:a.string().optional(),valueDate:a.string().optional(),executionDate:a.string().optional()},nt=a.object(tt).catchall(a.any()).refine(e=>(e.paymentRail==="WIRE"||e.paymentRail==="SWIFT")&&e.creditor?e.creditor.address&&e.creditor.address.state&&e.creditor.address.country:!0,{message:"For WIRE transfers, recipient address with state and country is mandatory"}),at={amount:a.number().positive().optional(),correspondent:a.object({name:a.string().optional(),identifier:a.string().optional(),accountType:a.string().optional()}).optional(),creditor:a.object({name:a.string().optional(),identifier:a.string().optional(),accountType:a.string().optional(),agent:a.object({name:a.string().optional(),identifier:a.string().optional()}).optional()}).optional(),debtor:a.object({name:a.string().optional(),identifier:a.string().optional(),accountType:a.string().optional(),agent:a.object({name:a.string().optional(),identifier:a.string().optional()}).optional()}).optional(),exchangeRate:a.number().positive().optional(),externalId:a.string().optional(),errorCode:a.string().optional(),errorMessage:a.string().optional(),reference:a.union([a.string(),a.array(a.string())]).optional(),paymentRailMetaData:a.record(a.string(),a.any()).optional(),status:S.optional()},ot=a.object(at).catchall(a.any()),en=a.object({totalFilteredRecords:a.number(),pageItems:a.array(Re)}),P=e=>Re.parse(e),De=e=>nt.parse(e),Ae=e=>ot.parse(e);var tn=a.object({id:a.string(),clientId:a.number(),resourceId:a.number(),resourceIdentifier:a.string()});import st from"axios";import{v4 as ct}from"uuid";import*as we from"https";import rt from"axios";import it from"jsonwebtoken";var Pe=(e,o)=>{if(!e)throw u({message:"Missing JWT secret",code:"missing_jwt_secret"});return it.sign({signee:o},e,{algorithm:"HS512",expiresIn:"1d"})||""},Oe=async(e,o,r,i)=>{let m={method:"POST",url:`${o}/oauth/token`,headers:{"Content-Type":"application/x-www-form-urlencoded",tenantId:r},data:i},{data:{access_token:l}}=await rt.request(m);return e=l,e};var Ee={token:""},lt=e=>e&&(e.startsWith("Bearer ")?e:`Bearer ${e}`),d=async e=>{let r=st.create({timeout:e.axiosConfig?.timeout||29e3,baseURL:e.baseUrl,headers:{"Content-Type":"application/json; charset=utf-8","JWT-Token":e?.secret?`${Pe(e?.secret,e?.signee||"")}`:void 0,Authorization:e.bearerToken!==void 0?lt(e.bearerToken):e.credential?`Bearer ${Ee.token||await Oe(Ee.token,e.baseUrl,e.tenantId,e.credential)}`:void 0,"trace-id":e.traceId||`RequestUUID=${ct()}`,tenantId:e.tenantId},httpsAgent:new we.Agent({rejectUnauthorized:!0,keepAlive:e.axiosConfig?.keepAlive})});return e.logger&&e.logger(r),r};import{ZodError as O}from"zod";var pt=e=>{try{j(e)}catch(o){throw o instanceof O?u({message:`Invalid filter key: '${e}'. ${o.message}`,code:"invalid_filter_key"}):o}},dt=(e,o)=>{try{switch(e){case"status":z(o);break;case"paymentRail":$(o);break;case"paymentType":_(o);break;case"sortOrder":M(o);break;case"originatorName":re(o);break;case"originatorAccount":ie(o);break;case"originatorBankRoutingCode":se(o);break;case"recipientName":ce(o);break;case"recipientAccount":le(o);break;case"recipientBankRoutingCode":pe(o);break;case"reference":de(o);break;case"traceNumber":me(o);break;case"externalId":ue(o);break;case"clientId":ye(o);break;case"dateFormat":ge(o);break;case"locale":fe(o);break;case"originatedBy":be(o);break;case"fromValueDate":case"toValueDate":Ce(o);break;case"fromExecuteDate":case"toExecuteDate":he(o);break;case"fromReturnDate":case"toReturnDate":Ie(o);break;case"isSettlement":xe(o);break;case"orderBy":Se(o);break;default:break}}catch(r){throw r instanceof O?u({message:`Invalid value for '${e}': '${o}'. ${r.message}`,code:`invalid_${e}_value`}):r}},bn=e=>({input:e,metadata:{commandName:"CreatePayment",path:"/v1/payments",method:"POST"},execute:async o=>{try{De(e.payment)}catch(i){throw i instanceof O?u({message:`Invalid payment data: ${i.message}`,code:"invalid_payment_input"}):i}e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{let i=await r.post("/v1/payments",e.payment);return P(i.data)}catch(i){p(i)}}}),Cn=e=>({input:e,metadata:{commandName:"GetPayment",path:`/v1/payments/${e.id}`,method:"GET"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{let i=await r.get(`/v1/payments/${e.id}`);return P(i.data)}catch(i){p(i)}}}),hn=e=>({input:e,metadata:{commandName:"UpdatePayment",path:`/v1/payments/${e.id}`,method:"PUT"},execute:async o=>{try{Ae(e.payment)}catch(i){throw i instanceof O?u({message:`Invalid payment update data: ${i.message}`,code:"invalid_payment_update_input"}):i}e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{let i=await r.put(`/v1/payments/${e.id}`,e.payment);return P(i.data)}catch(i){p(i)}}}),D=(e,o,r,i)=>{if(o!==void 0&&o!==0&&o<=0)throw u({message:`Invalid limit: ${o}. Limit must be positive or 0 for fetching all records.`,code:"invalid_limit"});if(r!==void 0&&r<0)throw u({message:`Invalid offset: ${r}. Offset must be non-negative.`,code:"invalid_offset"});return{where:s=>(pt(s),{eq:c=>(dt(s,c),D({...e,[s]:c},o,r,i))}),limit:s=>D(e,s,r,i),offset:s=>D(e,o,s,i),all:()=>D(e,0,r,i),execute:()=>{let s={locale:"en",originatedBy:"us",orderBy:"id",sortOrder:"DESC"},c={...s,...e,limit:o||200,offset:r||0};return{input:{filters:e,limit:o,offset:r,tenantId:i},metadata:{commandName:"ListPayments",path:"/v1/payments",method:"GET"},execute:async y=>{i&&(y.tenantId=i);let g=await d(y);try{if(o===0){let b=[],C=r||0,h=0;do{let I={...s,...e,limit:200,offset:C},x=await g.get("/v1/payments",{params:I}),{totalFilteredRecords:E,pageItems:Ye}=x.data;b.push(...Ye),h=E,C+=200}while(C<h);return{totalFilteredRecords:h,pageItems:b}}else return(await g.get("/v1/payments",{params:c})).data}catch(b){p(b)}}}}}},In=e=>({list:()=>D({},void 0,void 0,e?.tenantId)}),xn=(e,o)=>({input:{params:e,configuration:o},metadata:{commandName:"GetPayments",path:"/v1/payments",method:"GET"},execute:async r=>{o.tenantId&&(r.tenantId=o.tenantId);let i=await d(r),m=[],l=e.limit||20,s=e.offset||0,c=0,b={...{locale:"en",originatedBy:"us",orderBy:"id",sortOrder:"DESC"},...(f=>{let h=["fromValueDate","toValueDate","fromExecuteDate","toExecuteDate","fromReturnDate","toReturnDate"].some(x=>f[x]!==void 0),I={...f};return h&&I.dateFormat===void 0&&(I.dateFormat="yyyy-MM-dd"),I})(e),limit:l,offset:s};try{if(e.limit===0){do{let f=await i.get("/v1/payments",{params:b}),{totalFilteredRecords:C,pageItems:h}=f.data;m.push(...h),c=C,s+=l}while(s<c);return{totalFilteredRecords:c,pageItems:m}}else return(await i.get("/v1/payments",{params:b})).data}catch(f){p(f)}}}),Sn=e=>({input:e,metadata:{commandName:"DeletePayment",path:`/v1/payments/${e.id}`,method:"DELETE"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{await r.delete(`/v1/payments/${e.id}`)}catch(i){p(i)}}});import t from"zod";var Te=t.object({id:t.number(),code:t.string(),value:t.string()}),ke=t.object({id:t.number(),code:t.string(),value:t.string()}),Le=t.object({active:t.boolean(),mandatory:t.boolean(),systemDefined:t.boolean()}),Ne=t.object({id:t.number()}),Fe=t.object({id:t.number(),name:t.string().optional()}),Be=t.object({active:t.boolean()}),Ue=t.object({submittedOnDate:t.array(t.number()),submittedByUsername:t.string().optional(),submittedByFirstname:t.string().optional(),submittedByLastname:t.string().optional(),activatedOnDate:t.array(t.number()).optional(),activatedByUsername:t.string().optional(),activatedByFirstname:t.string().optional(),activatedByLastname:t.string().optional()}),mt=t.object({}).catchall(t.any()),ut=t.object({}).catchall(t.any()),yt=t.object({}).catchall(t.any()),qe=t.object({constitution:mt,mainBusinessLine:ut,countryOfIncorporation:yt}).catchall(t.any()),je=t.object({isExternalCardDebitDisable:t.boolean(),isExternalCardCreditDisable:t.boolean(),isAchDebitOutgoingDisable:t.boolean(),isAchCreditOutgoingDisable:t.boolean(),isAchDebitIncomingDisable:t.boolean(),isAchCreditIncomingDisable:t.boolean(),isInternalCreditDisable:t.boolean(),isInternalDebitDisable:t.boolean(),isWireCreditOutgoingDisable:t.boolean(),isWireCreditIncomingDisable:t.boolean(),isSwiftCreditOutgoingDisable:t.boolean(),isSwiftCreditIncomingDisable:t.boolean(),isFxpayCreditOutgoingDisable:t.boolean(),isAllocateToSubAccountDisable:t.boolean(),isInternalCreditOwnDisable:t.boolean(),type:t.string(),resourceId:t.number(),id:t.number()}).catchall(t.any()),ze=t.object({}).catchall(t.any()),$e=t.object({id:t.number(),accountNo:t.string(),status:ke,subStatus:Le,active:t.boolean(),activationDate:t.array(t.number()).optional(),firstname:t.string(),lastname:t.string(),displayName:t.string(),mobileNo:t.string(),emailAddress:t.string(),dateOfBirth:t.array(t.number()),gender:Ne,clientTypes:t.array(t.any()),clientClassification:Fe,occupation:Be,isStaff:t.boolean(),skipAvs:t.boolean(),officeId:t.number(),officeName:t.string(),imageId:t.string().optional(),imagePresent:t.boolean().optional(),timeline:Ue,legalForm:Te,clientVerificationStatus:t.string(),updatedAt:t.string(),isBlockExternalCardsAddition:t.boolean(),clientNonPersonDetails:qe,clientTransferOptionData:je,authorizations:t.array(t.number()).optional(),mobileCountryCode:t.string(),clientKycStatus:ze,ofLoanCycle:t.number(),ofLoanActive:t.number(),activeDepositAccount:t.number(),onBoardingStatus:t.string().optional()}).catchall(t.any()),gt=t.object({riskScore:t.number(),rating:t.string()}).catchall(t.any()),ft=t.object({street:t.string(),city:t.string(),state:t.string(),zipCode:t.string()}).catchall(t.any()),bt=t.object({type:t.string(),value:t.string()}).catchall(t.any()),Ct={firstname:t.string(),middlename:t.string().optional(),lastname:t.string(),fullname:t.string().optional(),dob:t.string(),genderId:t.number(),locale:t.string(),officeId:t.number(),mobileCountryCode:t.string(),mobileNo:t.string(),emailAddress:t.string().email(),legalFormId:t.number(),externalId:t.string().optional(),isOptedForMLALStatus:t.boolean().optional(),currentMLALStatus:t.string().optional(),isStaff:t.boolean().optional(),staffId:t.number().optional(),clientClassificationId:t.number().optional(),savingsProductId:t.number().optional(),active:t.boolean().optional(),dateFormat:t.string(),activationDate:t.string().optional(),submittedOnDate:t.string(),dateOfBirth:t.string()},An=t.object(Ct).catchall(t.any()),ht={clientId:t.number(),status:t.string()},Pn=t.object(ht).catchall(t.any()),It={firstname:t.string().optional(),middlename:t.string().optional(),fullname:t.string().optional(),genderId:t.number().optional(),lastname:t.string().optional(),occupationId:t.number().optional(),mobileCountryCode:t.string().optional(),mobileNo:t.string().optional(),emailAddress:t.string().email().optional(),externalId:t.string().optional(),clientClassificationId:t.number().optional(),dateOfBirth:t.string().optional(),dateFormat:t.string().optional()},On=t.object(It).catchall(t.any()),xt={documentTypeId:t.string(),documentKey:t.string(),status:t.string(),description:t.string().optional(),issuedBy:t.string().optional(),locale:t.string().optional(),dateFormat:t.string().optional(),expiryDate:t.string().optional(),nationality:t.number().optional(),issuedDate:t.string().optional()},En=t.object(xt).catchall(t.any()),St={id:t.number(),officeId:t.number(),clientId:t.number(),resourceId:t.number(),changes:t.record(t.string(),t.any()),isScheduledTransfer:t.boolean(),isSkipNotification:t.boolean()},wn=t.object(St).catchall(t.any()),Rt={developerMessage:t.string(),defaultUserMessage:t.string(),userMessageGlobalisationCode:t.string(),parameterName:t.string().optional(),value:t.any().nullable(),args:t.array(t.object({value:t.any()})).optional()},vt=t.object(Rt),Dt={developerMessage:t.string(),httpStatusCode:t.string(),defaultUserMessage:t.string(),userMessageGlobalisationCode:t.string(),errors:t.array(vt).optional()},Tn=t.object(Dt).catchall(t.any()),At={tenantId:t.string().optional(),offset:t.number().optional(),limit:t.number().optional(),orderBy:t.string().optional(),sortOrder:t.string().optional(),officeId:t.number().optional(),displayName:t.string().optional(),firstname:t.string().optional(),lastname:t.string().optional(),externalId:t.string().optional(),orphansOnly:t.boolean().optional(),clientStatus:t.string().optional(),mobileNo:t.string().optional(),createdStartDate:t.string().optional(),creationEndDate:t.string().optional(),activatedStartDate:t.string().optional(),activatedEndDate:t.string().optional(),closedStartDate:t.string().optional(),closedEndDate:t.string().optional()},kn=t.object(At),Ln={id:t.number(),accountNo:t.string(),status:ke,subStatus:Le,active:t.boolean(),activationDate:t.array(t.number()).optional(),firstname:t.string(),lastname:t.string(),displayName:t.string(),mobileNo:t.string(),emailAddress:t.string(),dateOfBirth:t.array(t.number()),gender:Ne,clientTypes:t.array(t.any()),clientClassification:Fe,occupation:Be,isStaff:t.boolean(),skipAvs:t.boolean(),officeId:t.number(),officeName:t.string(),imageId:t.string().optional(),imagePresent:t.boolean().optional(),timeline:Ue,legalForm:Te,clientVerificationStatus:t.string(),updatedAt:t.string(),isBlockExternalCardsAddition:t.boolean(),clientNonPersonDetails:qe,clientTransferOptionData:je,authorizations:t.array(t.number()).optional(),mobileCountryCode:t.string(),clientKycStatus:ze,ofLoanCycle:t.number(),ofLoanActive:t.number(),activeDepositAccount:t.number(),onBoardingStatus:t.string().optional()},Pt={totalFilteredRecords:t.number(),pageItems:t.array($e)},Nn=t.object(Pt).catchall(t.any()),Ot={clientData:$e.optional(),riskRatingData:gt.optional(),clientAddressData:ft.optional(),clientIdentifierData:bt.optional()},Fn=t.object(Ot);var Et=t.enum(["offset","limit","orderBy","sortOrder","officeId","displayName","firstname","lastname","externalId","orphansOnly","clientStatus","mobileNo","createdStartDate","creationEndDate","activatedStartDate","activatedEndDate","closedStartDate","closedEndDate"]),wt=t.enum(["displayName","accountNo","officeId","officeName"]),Tt=t.enum(["ASC","DESC"]),kt=t.enum(["ACTIVE","PENDING","INACTIVE"]),F=e=>Et.parse(e),Lt=e=>wt.parse(e),Nt=e=>Tt.parse(e),Ft=e=>kt.parse(e),_e=e=>{try{for(let[o,r]of Object.entries(e))if(F(o),r!=null)switch(o){case"orderBy":Lt(r);break;case"sortOrder":Nt(r);break;case"clientStatus":Ft(r);break;case"offset":case"limit":case"officeId":t.number().min(0).parse(r);break;case"orphansOnly":t.boolean().parse(r);break;case"displayName":case"firstname":case"lastname":case"externalId":case"mobileNo":case"createdStartDate":case"creationEndDate":case"activatedStartDate":case"activatedEndDate":case"closedStartDate":case"closedEndDate":t.string().min(1).parse(r);break}}catch(o){throw o instanceof t.ZodError?u({message:`Validation error: ${o.errors.map(r=>r.message).join(", ")}`,code:"validation_error"}):o}};var Hn=e=>({input:e,metadata:{commandName:"GetClient",path:`/v1/clients/${e.clientId}`,method:"GET"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{let i={},m=new URLSearchParams;e.staffInSelectedOfficeOnly&&m.append("staffInSelectedOfficeOnly","true"),e.checkIdentitiesExpiration&&m.append("checkIdentitiesExpiration","true"),e.clientAccountAssociate&&m.append("clientAccountAssociate","true");let l=m.toString(),s=`/v1/clients/${e.clientId}${l?`?${l}`:""}`,c=await r.get(s);if(i.clientData=c,e.riskRating){let y=await r.get(`/v1/clients/${e.clientId}/riskrating`);i.riskRatingData=y}if(e.clientAddress){let y=await r.get(`/v1/client/${e.clientId}/addresses`);i.clientAddressData=y}if(e.clientIdentifier){let y=await r.get(`/v1/clients/${e.clientId}/identifiers?unmaskValue=true`);i.clientIdentifierData=y}return i}catch(i){p(i)}}}),Yn=e=>({input:e,metadata:{commandName:"UpdateClient",path:`/v1/clients/${e.clientId}`,method:"PUT"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.put(`/v1/clients/${e.clientId}`,{...e.updates})).data}catch(i){p(i)}}}),Jn=e=>({input:e,metadata:{commandName:"UpdateClientIdentifier",path:`/v1/clients/${e.clientId}/identifiers/${e.identifierId}`,method:"PUT"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.put(`/v1/clients/${e.clientId}/identifiers/${e.identifierId}`,{...e.updates})).data}catch(i){p(i)}}}),Xn=e=>({input:e,metadata:{commandName:"CreateClient",path:"/v1/clients",method:"POST"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.post("/v1/clients",e.clientData)).data}catch(i){p(i)}}}),A=(e,o,r,i)=>{if(o!==void 0&&o!==0&&o<=0)throw u({message:`Invalid limit: ${o}. Limit must be positive or 0 for fetching all records.`,code:"invalid_limit"});if(r!==void 0&&r<0)throw u({message:`Invalid offset: ${r}. Offset must be non-negative.`,code:"invalid_offset"});return{where:s=>(F(s),{eq:c=>(_e({[s]:c}),A({...e,[s]:c},o,r,i))}),limit:s=>A(e,s,r,i),offset:s=>A(e,o,s,i),all:()=>A(e,0,r,i),execute:()=>{let s={...e,limit:o||200,offset:r||0};return{input:{filters:e,limit:o,offset:r,tenantId:i},metadata:{commandName:"ListClients",path:"/v1/clients",method:"GET"},execute:async c=>{i&&(c.tenantId=i);let y=await d(c);try{if(o===0){let g=[],f=r||0,C=0;do{let h={...e,limit:200,offset:f},I=await y.get("/v1/clients",{params:h}),{totalFilteredRecords:x,pageItems:E}=I.data;g.push(...E),C=x,f+=200}while(f<C);return{totalFilteredRecords:C,pageItems:g}}else return(await y.get("/v1/clients",{params:s})).data}catch(g){p(g)}}}}}},Qn=e=>({list:()=>A({},void 0,void 0,e?.tenantId)}),Zn=(e,o)=>({input:{params:e,configuration:o},metadata:{commandName:"GetClients",path:"/v1/clients",method:"GET"},execute:async r=>{o.tenantId&&(r.tenantId=o.tenantId);let i=await d(r),m=[],l=e.limit||200,s=e.offset||0,c=0,y={...e,limit:l,offset:s};try{if(e.limit===0){do{let g=await i.get("/v1/clients",{params:y}),{totalFilteredRecords:b,pageItems:f}=g.data;m.push(...f),c=b,s+=l}while(s<c);return{totalFilteredRecords:c,pageItems:m}}else return(await i.get("/v1/clients",{params:y})).data}catch(g){p(g)}}}),ea=e=>({input:e,metadata:{commandName:"DeleteClient",path:`/v1/clients/${e.clientId}`,method:"DELETE"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.delete(`/v1/clients/${e.clientId}`)).data}catch(i){p(i)}}});import{z as n}from"zod";var Me=n.object({id:n.number(),code:n.string(),value:n.string(),submittedAndPendingApproval:n.boolean(),approved:n.boolean(),rejected:n.boolean(),withdrawnByApplicant:n.boolean(),active:n.boolean(),closed:n.boolean(),prematureClosed:n.boolean(),transferInProgress:n.boolean(),transferOnHold:n.boolean(),matured:n.boolean()}),B=n.object({code:n.string(),name:n.string(),decimalPlaces:n.number(),inMultiplesOf:n.number(),displaySymbol:n.string(),nameCode:n.string(),displayLabel:n.string(),currencyCodeInDigit:n.number().optional(),isBaseCurrency:n.boolean().optional()}),Bt=n.object({id:n.number(),code:n.string(),value:n.string()}),Ve=n.object({submittedOnDate:n.array(n.number()),submittedByUsername:n.string(),submittedByFirstname:n.string(),submittedByLastname:n.string(),approvedOnDate:n.array(n.number()).optional(),approvedByUsername:n.string().optional(),approvedByFirstname:n.string().optional(),approvedByLastname:n.string().optional(),activatedOnDate:n.array(n.number()).optional(),activatedByUsername:n.string().optional(),activatedByFirstname:n.string().optional(),activatedByLastname:n.string().optional()}),Ge=n.object({id:n.number(),code:n.string(),value:n.string(),none:n.boolean(),inactive:n.boolean(),dormant:n.boolean(),escheat:n.boolean(),block:n.boolean(),blockCredit:n.boolean(),blockDebit:n.boolean()}),Ke=n.object({id:n.number(),code:n.string(),value:n.string()}),Ut=n.object({id:n.number(),accountNo:n.string(),productId:n.number(),productName:n.string(),shortProductName:n.string(),status:Me,currency:B,accountBalance:n.number(),accountType:Bt,timeline:Ve,subStatus:Ge,lastActiveTransactionDate:n.array(n.number()).optional(),depositType:Ke,availableBalance:n.number(),allowPrepaidCard:n.boolean(),primaryAccount:n.record(n.any())}),qt={id:n.number(),accountNo:n.string(),depositType:Ke,clientId:n.number(),clientName:n.string(),savingsProductId:n.number(),savingsProductName:n.string(),fieldOfficerId:n.number(),status:Me,subStatus:Ge,timeline:Ve,currency:B,nominalAnnualInterestRate:n.number(),interestCompoundingPeriodType:n.object({id:n.number(),code:n.string(),value:n.string()}),interestPostingPeriodType:n.object({id:n.number(),code:n.string(),value:n.string()}),interestCalculationType:n.object({id:n.number(),code:n.string(),value:n.string()}),interestCalculationDaysInYearType:n.object({id:n.number(),code:n.string(),value:n.string()}),lockinPeriodFrequency:n.number(),lockinPeriodFrequencyType:n.object({id:n.number(),code:n.string(),value:n.string()}),withdrawalFeeForTransfers:n.boolean(),allowOverdraft:n.boolean(),enforceMinRequiredBalance:n.boolean(),onHoldFunds:n.number(),withHoldTax:n.boolean(),lastActiveTransactionDate:n.array(n.number()),isDormancyTrackingActive:n.boolean(),savingsAmountOnHold:n.number(),summary:n.object({currency:B,totalDeposits:n.number(),totalInterestEarned:n.number(),totalInterestPosted:n.number(),accountBalance:n.number(),totalOverdraftInterestDerived:n.number(),interestNotPosted:n.number(),lastInterestCalculationDate:n.array(n.number()),availableBalance:n.number()}),isLinkedToFloatingInterestRates:n.boolean(),interestRateDifferential:n.number(),overdraftInterestRateDifferential:n.number(),floatingRateId:n.number(),isBaseLendingRate:n.boolean(),isFloatingInterestRateCalculationAllowed:n.boolean(),bankDetails:n.object({routingNumber:n.string(),name:n.string(),swiftCode:n.string(),address:n.string(),city:n.string(),postcode:n.string()}),skipCollectTransferCharge:n.boolean(),cardRestricted:n.boolean(),overdraftLimit:n.number(),minRequiredBalance:n.number(),minBalanceForInterestCalculation:n.number(),minOverdraftForInterestCalculation:n.number(),overdraftMinimumDue:n.number(),currentFloatingInterestPeriod:n.object({fromDate:n.array(n.number()),interestRate:n.number(),isDifferentialToBLR:n.boolean()}),floatingRateName:n.string(),floatingRateDifferential:n.number(),parentAccount:n.object({withdrawalFeeForTransfers:n.boolean(),allowOverdraft:n.boolean(),enforceMinRequiredBalance:n.boolean(),withHoldTax:n.boolean(),isDormancyTrackingActive:n.boolean(),isLinkedToFloatingInterestRates:n.boolean(),isBaseLendingRate:n.boolean(),skipCollectTransferCharge:n.boolean(),cardRestricted:n.boolean(),allowPrepaidCard:n.boolean(),prepaidAccount:n.boolean()}),allowPrepaidCard:n.boolean(),prepaidAccount:n.boolean(),prepaidLimitAmount:n.number()},oa=n.object(qt),jt={savingsAccounts:n.array(Ut)},ra=n.object(jt),zt=n.enum(["showReservedAccount"]),$t={tenantId:n.string().optional(),showReservedAccount:n.boolean().optional().default(!1)},ia=n.object($t),U=e=>zt.parse(e),We=e=>{try{for(let[o,r]of Object.entries(e))if(U(o),r!=null)switch(o){case"showReservedAccount":n.boolean().parse(r);break}}catch(o){throw o instanceof n.ZodError?u({message:`Validation error: ${o.errors.map(r=>r.message).join(", ")}`,code:"validation_error"}):o}},_t={clientId:n.number(),productId:n.number(),submittedOnDate:n.string(),nominalAnnualInterestRate:n.string(),minRequiredOpeningBalance:n.string(),lockinPeriodFrequency:n.string(),withdrawalFeeForTransfers:n.boolean(),allowOverdraft:n.boolean(),overdraftLimit:n.number(),minOverdraftForInterestCalculation:n.number(),enforceMinRequiredBalance:n.boolean(),minRequiredBalance:n.number(),withHoldTax:n.boolean(),interestCompoundingPeriodType:n.number(),interestPostingPeriodType:n.number(),interestCalculationType:n.number(),interestCalculationDaysInYearType:n.number(),fieldOfficerId:n.number(),lockinPeriodFrequencyType:n.number(),locale:n.string(),dateFormat:n.string(),monthDayFormat:n.string(),charges:n.array(n.any())},sa=n.object(_t);var ga=e=>({input:e,metadata:{commandName:"GetAccount",path:`/v1/savingaccounts/${e.id}`,method:"GET"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.get(`/v1/savingaccounts/${e.id}`)).data}catch(i){p(i)}}}),fa=e=>({input:e,metadata:{commandName:"UpdateAccount",path:`/v1/savingsaccounts/${e.accountId}`,method:"PUT"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.put(`/v1/savingsaccounts/${e.accountId}`,{...e.updates,clientId:e.clientId})).data}catch(i){p(i)}}}),ba=e=>({input:e,metadata:{commandName:"DeleteAccount",path:`/v1/savingsaccounts/${e.accountId}`,method:"DELETE"},execute:async o=>{e.tenantId&&(o.tenantId=e.tenantId);let r=await d(o);try{return(await r.delete(`/v1/savingsaccounts/${e.accountId}`)).data}catch(i){p(i)}}}),He=(e,o,r)=>({where:l=>(U(l),{eq:s=>(We({[l]:s}),He({...e,[l]:s},o,r))}),execute:()=>({input:{filters:e,tenantId:r},metadata:{commandName:"ListAccountsOfClient",path:`/v1/clients/${o}/accounts`,method:"GET"},execute:async l=>{r&&(l.tenantId=r);let s=await d(l);try{return(await s.get(`/v1/clients/${o}/accounts`,{params:e})).data}catch(c){p(c)}}})}),Ca=e=>({list:()=>He({},e?.clientId||0,e?.tenantId)}),ha=(e,o,r)=>({input:{params:o,configuration:r},metadata:{commandName:"ListAccountsOfClient",path:`/v1/clients/${e}/accounts`,method:"GET"},execute:async i=>{r.tenantId&&(i.tenantId=r.tenantId);let m=await d(i);try{return(await m.get(`/v1/clients/${e}/accounts`,{params:o})).data}catch(l){p(l)}}});export{u as a,Gt as b,p as c,d,q as e,S as f,R as g,v as h,N as i,Qe as j,Zt as k,Ze as l,tt as m,nt as n,at as o,ot as p,en as q,bn as r,Cn as s,hn as t,In as u,xn as v,Sn as w,Hn as x,Yn as y,Jn as z,Xn as A,Qn as B,Zn as C,ea as D,qt as E,oa as F,jt as G,ra as H,$t as I,ia as J,_t as K,sa as L,ga as M,fa as N,ba as O,Ca as P,ha as Q};