@matech/thebigpos-sdk 3.7.0-stag-3434 → 3.8.0-dev-3566

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
@@ -40,5 +40,44 @@ apiClient.api.getSiteConfiguration().then((response) => {
40
40
  });
41
41
  ```
42
42
 
43
+ ## Generate SDK from Swagger
44
+
45
+ To regenerate the SDK from a specific API version, run:
46
+
47
+ ```bash
48
+ npx swagger-typescript-api generate -p https://api.thebigpos.dev/swagger/{version}/swagger.json -o ./src -n index.ts -r true --axios --enum-names-as-values --enum-style union
49
+ ```
50
+
51
+ Replace `{version}` with the target API version (e.g. `v2.34.0`):
52
+
53
+ ```bash
54
+ npx swagger-typescript-api generate -p https://api.thebigpos.dev/swagger/v2.34.0/swagger.json -o ./src -n index.ts -r true --axios --enum-names-as-values --enum-style union
55
+ ```
56
+
57
+ Then apply the PATCH content-type fixup, passing the **same** spec that was given
58
+ to the generator. The generator does not propagate `application/json-patch+json`,
59
+ so this step sets each PATCH method's content type from the spec (no hard-coded
60
+ endpoint list):
61
+
62
+ ```bash
63
+ node scripts/apply-json-patch-content-type.js https://api.thebigpos.dev/swagger/v2.34.0/swagger.json
64
+ yarn build
65
+ ```
66
+
67
+ ## Publishing
68
+
69
+ 1. Update the `version` field in `package.json` before publishing.
70
+ 2. Build the project:
71
+
72
+ ```bash
73
+ yarn build
74
+ ```
75
+
76
+ 3. Publish to npm:
77
+
78
+ ```bash
79
+ yarn publish
80
+ ```
81
+
43
82
  ____
44
83
  © 2024 Mortgage Automation Technologies. All rights reserved
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export type VersionStatusType = "Draft" | "Published";
2
2
  export type UserRole = "Borrower" | "LoanOfficer" | "Admin" | "SuperAdmin" | "Realtor" | "SettlementAgent" | "LoanProcessor" | "LoanOfficerAssistant" | "SystemAdmin";
3
+ export type TaskType = "Document" | "Field" | "Signature" | "EDisclosure" | "EConsent" | "VerificationOfAssets" | "VerificationOfIncome" | "VerificationOfEmployment" | "VerificationOfCredit" | "Payment" | "VerificationOfIncomeAndEmployment" | "VerificationOfTaxes";
3
4
  export type TaskStatus = "Outstanding" | "Pending" | "Completed" | "Rejected" | "Unknown";
4
5
  export type TableKey = "Pipeline";
5
6
  export type SortDirection = "Asc" | "Desc";
@@ -19,6 +20,7 @@ export type LoanType = "Fha" | "Conventional" | "UsdaRd" | "Va" | "Other";
19
20
  export type LoanTrustType = "Living" | "Land" | "Testamentary" | "Other";
20
21
  export type LoanTitleHeld = "Sole" | "JointWithSpouse" | "JointWithOtherThanSpouse";
21
22
  export type LoanTaskActivityFilter = "Active" | "Inactive" | "All";
23
+ export type LoanRoleTaskSource = "Rule" | "Manual";
22
24
  export type LoanRole = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
23
25
  export type LoanRefinancePurpose = "CashOutDebtConsolidation" | "CashOutHomeImprovement" | "CashOutOther" | "NoCashOut" | "LimitedCashOut";
24
26
  export type LoanRealEstateStatus = "Keep" | "Rent" | "Sell" | "PendingSale";
@@ -39,7 +41,7 @@ export type LoanNameSuffix = "Jr" | "Sr" | "II" | "III" | "IV" | "V" | "VI" | "V
39
41
  export type LoanNamePrefix = "Mr" | "Mrs" | "Ms";
40
42
  export type LoanMilitaryServiceType = "Current" | "RetiredDischargedSeparated" | "NonActivatedNationalGuard" | "SurvivingSpouse";
41
43
  export type LoanMaritalStatus = "Married" | "Separated" | "Single";
42
- export type LoanLogType = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded";
44
+ export type LoanLogType = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded" | "TaskEdited";
43
45
  export type LoanLienPosition = "First" | "Subordinate";
44
46
  export type LoanLiabilityType = "Revolving" | "Installment" | "Open30Day" | "Lease" | "Other";
45
47
  export type LoanLanguagePreference = "English" | "Chinese" | "Korean" | "Spanish" | "Tagalog" | "Vietnamese" | "Other" | "DoNotWishToRespond";
@@ -98,7 +100,7 @@ export type AiPromptScope = "General" | "LoanSpecific";
98
100
  export type AiPromptCategory = "DocumentAnalysis" | "DataQuery" | "General" | "Action";
99
101
  export type AiGuardrailCategory = "ContentSafety" | "PromptInjection" | "Privacy" | "Legal";
100
102
  export type AiDisplayHint = "Table" | "SummaryCards" | "RankedList" | "Comparison" | "ExecutiveBrief";
101
- export type AiAuditEventType = "Error" | "GuardrailBlockedPre" | "GuardrailPassedPre" | "IntentClassified" | "LoanResolvedFromMessage" | "DocumentNotFound" | "GuardrailBlockedPost" | "GuardrailPassedPost" | "DocumentAnalyzed" | "DocumentList" | "DocumentResolutionAmbiguous" | "ResponseGenerated" | "ParametersExtracted" | "QueryExecuted" | "LoanContextNotFound" | "LoanContextLoaded" | "GuardrailBlockedBedrock" | "PromptMatched" | "QueryCondensed" | "IntentParseFailed" | "LoanSearchTermDiscarded" | "CanonicalFieldsSelected" | "LoanAccessDenied" | "AgentModelCall" | "AgentToolCallRequested" | "AgentToolCallCompleted" | "AgentToolCallFailed" | "AgentLoopLimitReached" | "RequestCancelled" | "KnowledgeBaseRetrieved" | "PromptResolutionFailed" | "PromptTriggerPublished" | "PromptTriggerSkipped" | "PromptRunCompleted" | "LoanUpdateProposed" | "LoanUpdateApplied" | "LoanUpdateRefused" | "PromptTriggerCoalesced";
103
+ export type AiAuditEventType = "Error" | "GuardrailBlockedPre" | "GuardrailPassedPre" | "IntentClassified" | "LoanResolvedFromMessage" | "DocumentNotFound" | "GuardrailBlockedPost" | "GuardrailPassedPost" | "DocumentAnalyzed" | "DocumentList" | "DocumentResolutionAmbiguous" | "ResponseGenerated" | "ParametersExtracted" | "QueryExecuted" | "LoanContextNotFound" | "LoanContextLoaded" | "GuardrailBlockedBedrock" | "PromptMatched" | "QueryCondensed" | "IntentParseFailed" | "LoanSearchTermDiscarded" | "CanonicalFieldsSelected" | "LoanAccessDenied" | "AgentModelCall" | "AgentToolCallRequested" | "AgentToolCallCompleted" | "AgentToolCallFailed" | "AgentLoopLimitReached" | "RequestCancelled" | "KnowledgeBaseRetrieved" | "PromptResolutionFailed" | "PromptTriggerPublished" | "PromptTriggerSkipped" | "PromptRunCompleted" | "LoanUpdateProposed" | "LoanUpdateApplied" | "LoanUpdateRefused" | "PromptTriggerCoalesced" | "RecommendationRunCompleted";
102
104
  export type AddressFamily = "Unspecified" | "Unix" | "InterNetwork" | "ImpLink" | "Pup" | "Chaos" | "NS" | "Ipx" | "Iso" | "Osi" | "Ecma" | "DataKit" | "Ccitt" | "Sna" | "DecNet" | "DataLink" | "Lat" | "HyperChannel" | "AppleTalk" | "NetBios" | "VoiceView" | "FireFox" | "Banyan" | "Atm" | "InterNetworkV6" | "Cluster" | "Ieee12844" | "Irda" | "NetworkDesigners" | "Max" | "Packet" | "ControllerAreaNetwork" | "Unknown";
103
105
  export interface ASOSettings {
104
106
  enabled: boolean;
@@ -1421,6 +1423,15 @@ export interface CreateLoanImportRequest {
1421
1423
  startDate: string;
1422
1424
  importMode: CreateLoanImportRequestImportModeEnum;
1423
1425
  }
1426
+ export interface CreateLoanRoleTaskRequest {
1427
+ /** @format uuid */
1428
+ taskId: string;
1429
+ role: CreateLoanRoleTaskRequestRoleEnum;
1430
+ /** @format int32 */
1431
+ borrowerPair: number;
1432
+ /** @format int32 */
1433
+ borrowerPosition: number;
1434
+ }
1424
1435
  export interface CreateSession {
1425
1436
  sessionId: string;
1426
1437
  sessionUrl: string;
@@ -1834,6 +1845,7 @@ export interface EnabledServices {
1834
1845
  ringCentral?: boolean | null;
1835
1846
  socialSurvey?: boolean | null;
1836
1847
  borrowerTasks?: boolean | null;
1848
+ preBorrowerTasks?: boolean | null;
1837
1849
  docusign?: boolean | null;
1838
1850
  emailNotifications?: boolean | null;
1839
1851
  autoTaskReminders?: boolean | null;
@@ -2072,8 +2084,6 @@ export interface File {
2072
2084
  fileName: string;
2073
2085
  name: string;
2074
2086
  s3FilePath: string;
2075
- user?: User | null;
2076
- account?: Account | null;
2077
2087
  url: string;
2078
2088
  }
2079
2089
  export interface FilePaginated {
@@ -2457,7 +2467,6 @@ export interface Invite {
2457
2467
  /** @format date-time */
2458
2468
  expiresAt?: string | null;
2459
2469
  status: string;
2460
- invitedBy?: User | null;
2461
2470
  loan: LoanIdentifier;
2462
2471
  url: string;
2463
2472
  }
@@ -4066,6 +4075,24 @@ export interface LoanQueueWithData {
4066
4075
  siteConfiguration: SiteConfigurationReduced;
4067
4076
  data?: any | null;
4068
4077
  }
4078
+ export interface LoanRecommendation {
4079
+ /** @format uuid */
4080
+ id: string;
4081
+ canonicalName: string;
4082
+ displayName: string;
4083
+ extractedValue: string;
4084
+ currentLoanValue?: any | null;
4085
+ /** @format uuid */
4086
+ sourceDocumentId: string;
4087
+ sourceDocumentName?: string | null;
4088
+ /** @format float */
4089
+ confidence: number;
4090
+ /** @format uuid */
4091
+ borrowerId?: string | null;
4092
+ borrowerName?: string | null;
4093
+ /** @format date-time */
4094
+ detectedAt: string;
4095
+ }
4069
4096
  export interface LoanRecord {
4070
4097
  loanGuid: string;
4071
4098
  loanFields: Record<string, string>;
@@ -4114,6 +4141,52 @@ export interface LoanRefinanceRequest {
4114
4141
  purpose?: LoanRefinancePurpose | null;
4115
4142
  currentLoan?: LoanRefinanceCurrentLoanRequest | null;
4116
4143
  }
4144
+ export interface LoanRoleSlotTasks {
4145
+ role: LoanRoleSlotTasksRoleEnum;
4146
+ /** @format int32 */
4147
+ borrowerPair: number;
4148
+ /** @format int32 */
4149
+ borrowerPosition: number;
4150
+ tasks: LoanRoleTask[];
4151
+ }
4152
+ export interface LoanRoleTask {
4153
+ /** @format uuid */
4154
+ id: string;
4155
+ /** @format uuid */
4156
+ loanId: string;
4157
+ role: LoanRoleTaskRoleEnum;
4158
+ /** @format int32 */
4159
+ borrowerPair: number;
4160
+ /** @format int32 */
4161
+ borrowerPosition: number;
4162
+ /** @format uuid */
4163
+ definitionTaskId: string;
4164
+ /** @format uuid */
4165
+ taskId: string;
4166
+ name: string;
4167
+ description?: string | null;
4168
+ type: LoanRoleTaskTypeEnum;
4169
+ losTarget?: string | null;
4170
+ /** @format int32 */
4171
+ daysDueFromApplication?: number | null;
4172
+ /** @format int32 */
4173
+ weight: number;
4174
+ willAutocompleteAfterResponse: boolean;
4175
+ /** @format uuid */
4176
+ loanDocumentFolderId?: string | null;
4177
+ /** @format date */
4178
+ dueDate?: string | null;
4179
+ source: LoanRoleTaskSourceEnum;
4180
+ isAttached: boolean;
4181
+ /** @format uuid */
4182
+ attachedUserLoanTaskId?: string | null;
4183
+ /** @format date-time */
4184
+ attachedAt?: string | null;
4185
+ /** @format uuid */
4186
+ createdById?: string | null;
4187
+ /** @format date-time */
4188
+ createdAt: string;
4189
+ }
4117
4190
  export interface LoanSearchCriteria {
4118
4191
  searchText?: string | null;
4119
4192
  searchTerms?: string[] | null;
@@ -4142,6 +4215,7 @@ export interface LoanSearchCriteria {
4142
4215
  closingFrom?: string | null;
4143
4216
  /** @format date */
4144
4217
  closingTo?: string | null;
4218
+ milestoneConfigurationIds?: string[] | null;
4145
4219
  }
4146
4220
  export interface LoanSettings {
4147
4221
  excludeFromAutoTaskReminders: boolean;
@@ -4446,6 +4520,10 @@ export interface LosWebhookSigningKeySyncResult {
4446
4520
  export interface ManualDocumentClassificationRequest {
4447
4521
  documentType: ManualDocumentClassificationRequestDocumentTypeEnum;
4448
4522
  }
4523
+ export interface MaterializeLoanRoleTasks {
4524
+ /** @format int32 */
4525
+ rowsAdded: number;
4526
+ }
4449
4527
  export interface MdmUser {
4450
4528
  user_email?: string | null;
4451
4529
  user_id?: string | null;
@@ -5798,6 +5876,8 @@ export interface Task {
5798
5876
  isGlobal: boolean;
5799
5877
  /** @format uuid */
5800
5878
  id: string;
5879
+ /** @format uuid */
5880
+ sourceTaskID?: string | null;
5801
5881
  user?: User | null;
5802
5882
  isFromLegacySource: boolean;
5803
5883
  usedInBusinessRule: boolean;
@@ -6117,6 +6197,16 @@ export interface UpdateLoanDocumentFolderRequest {
6117
6197
  export interface UpdateLoanQueueRequest {
6118
6198
  data: any;
6119
6199
  }
6200
+ export interface UpdateLoanRoleTaskRequest {
6201
+ name?: string | null;
6202
+ description?: string | null;
6203
+ /** @format int32 */
6204
+ weight?: number | null;
6205
+ /** @format uuid */
6206
+ loanDocumentFolderId?: string | null;
6207
+ /** @format date */
6208
+ dueDate?: string | null;
6209
+ }
6120
6210
  export interface UpdateMeRequest {
6121
6211
  phone?: string | null;
6122
6212
  firstName: string;
@@ -6487,6 +6577,12 @@ export interface UserLoanTaskUpdateRequest {
6487
6577
  value?: string | null;
6488
6578
  /** @format date */
6489
6579
  dueDate?: string | null;
6580
+ name?: string | null;
6581
+ description?: string | null;
6582
+ /** @format int32 */
6583
+ weight?: number | null;
6584
+ /** @format uuid */
6585
+ loanDocumentFolderId?: string | null;
6490
6586
  }
6491
6587
  export interface UserMobilePhoneVerificationRequest {
6492
6588
  code: string;
@@ -6635,7 +6731,7 @@ export interface Workflow {
6635
6731
  icon: string;
6636
6732
  }
6637
6733
  export type AccountBillingRequestBillingTypeEnum = "ClosedLoan" | "LoanOfficer";
6638
- export type AiAuditLogEventTypeEnum = "Error" | "GuardrailBlockedPre" | "GuardrailPassedPre" | "IntentClassified" | "LoanResolvedFromMessage" | "DocumentNotFound" | "GuardrailBlockedPost" | "GuardrailPassedPost" | "DocumentAnalyzed" | "DocumentList" | "DocumentResolutionAmbiguous" | "ResponseGenerated" | "ParametersExtracted" | "QueryExecuted" | "LoanContextNotFound" | "LoanContextLoaded" | "GuardrailBlockedBedrock" | "PromptMatched" | "QueryCondensed" | "IntentParseFailed" | "LoanSearchTermDiscarded" | "CanonicalFieldsSelected" | "LoanAccessDenied" | "AgentModelCall" | "AgentToolCallRequested" | "AgentToolCallCompleted" | "AgentToolCallFailed" | "AgentLoopLimitReached" | "RequestCancelled" | "KnowledgeBaseRetrieved" | "PromptResolutionFailed" | "PromptTriggerPublished" | "PromptTriggerSkipped" | "PromptRunCompleted" | "LoanUpdateProposed" | "LoanUpdateApplied" | "LoanUpdateRefused" | "PromptTriggerCoalesced";
6734
+ export type AiAuditLogEventTypeEnum = "Error" | "GuardrailBlockedPre" | "GuardrailPassedPre" | "IntentClassified" | "LoanResolvedFromMessage" | "DocumentNotFound" | "GuardrailBlockedPost" | "GuardrailPassedPost" | "DocumentAnalyzed" | "DocumentList" | "DocumentResolutionAmbiguous" | "ResponseGenerated" | "ParametersExtracted" | "QueryExecuted" | "LoanContextNotFound" | "LoanContextLoaded" | "GuardrailBlockedBedrock" | "PromptMatched" | "QueryCondensed" | "IntentParseFailed" | "LoanSearchTermDiscarded" | "CanonicalFieldsSelected" | "LoanAccessDenied" | "AgentModelCall" | "AgentToolCallRequested" | "AgentToolCallCompleted" | "AgentToolCallFailed" | "AgentLoopLimitReached" | "RequestCancelled" | "KnowledgeBaseRetrieved" | "PromptResolutionFailed" | "PromptTriggerPublished" | "PromptTriggerSkipped" | "PromptRunCompleted" | "LoanUpdateProposed" | "LoanUpdateApplied" | "LoanUpdateRefused" | "PromptTriggerCoalesced" | "RecommendationRunCompleted";
6639
6735
  export type AiChatStructuredDataTypeEnum = "Table" | "DocumentAnalysis" | "DocumentList" | "GeneratedDocument" | "CitedPassages" | "PendingLoanUpdate";
6640
6736
  export type AiCitedDocumentSourceTypeEnum = "File" | "FreeText";
6641
6737
  export type AiGuardrailCategoryEnum = "ContentSafety" | "PromptInjection" | "Privacy" | "Legal";
@@ -6660,6 +6756,7 @@ export type CreateGroupMemberRequestLoanRoleEnum = "Borrower" | "CoBorrower" | "
6660
6756
  /** @deprecated */
6661
6757
  export type CreateInviteRequestRelationshipEnum = "NotApplicable" | "Spouse" | "NonSpouse";
6662
6758
  export type CreateLoanImportRequestImportModeEnum = "All" | "NewOnly" | "UpdateOnly";
6759
+ export type CreateLoanRoleTaskRequestRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6663
6760
  export type CreateUserDraftLoanRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6664
6761
  export type CustomFieldDefinitionDataTypeEnum = "String" | "Number" | "Decimal" | "Boolean" | "Date" | "SingleSelect" | "MultiSelect";
6665
6762
  export type CustomFieldDefinitionEntityTypeEnum = "Loan";
@@ -6695,9 +6792,13 @@ export type LoanImportStatusEnum = "WaitingProcess" | "InProgress" | "Completed"
6695
6792
  export type LoanImportImportModeEnum = "All" | "NewOnly" | "UpdateOnly";
6696
6793
  export type LoanImportLogLevelEnum = "None" | "Info" | "Warning" | "Error";
6697
6794
  export type LoanLogLevelEnum = "None" | "Info" | "Warning" | "Error";
6698
- export type LoanLogTypeEnum = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded";
6795
+ export type LoanLogTypeEnum = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded" | "TaskEdited";
6699
6796
  export type LoanLogDetailLevelEnum = "None" | "Info" | "Warning" | "Error";
6700
- export type LoanLogDetailTypeEnum = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded";
6797
+ export type LoanLogDetailTypeEnum = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded" | "TaskEdited";
6798
+ export type LoanRoleSlotTasksRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6799
+ export type LoanRoleTaskRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6800
+ export type LoanRoleTaskTypeEnum = "Document" | "Field" | "Signature" | "EDisclosure" | "EConsent" | "VerificationOfAssets" | "VerificationOfIncome" | "VerificationOfEmployment" | "VerificationOfCredit" | "Payment" | "VerificationOfIncomeAndEmployment" | "VerificationOfTaxes";
6801
+ export type LoanRoleTaskSourceEnum = "Rule" | "Manual";
6701
6802
  export type LoanTaskStatusSummaryStatusEnum = "Outstanding" | "Pending" | "Completed" | "Rejected" | "Unknown";
6702
6803
  export type LoanUserLoanRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6703
6804
  export type LosCredentialHealthStatusEnum = "Unknown" | "Healthy" | "InvalidCredentials" | "Forbidden" | "TransportError" | "NotConfigured";
@@ -6783,7 +6884,7 @@ export declare class HttpClient<SecurityDataType = unknown> {
6783
6884
  }
6784
6885
  /**
6785
6886
  * @title The Big POS API
6786
- * @version v3.7.0
6887
+ * @version v3.8.0
6787
6888
  * @termsOfService https://www.thebigpos.com/terms-of-use/
6788
6889
  * @contact Mortgage Automation Technologies <support@thebigpos.com> (https://www.thebigpos.com/terms-of-use/)
6789
6890
  */
@@ -10889,6 +10990,111 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
10889
10990
  * @response `404` `ProblemDetails` Not Found
10890
10991
  */
10891
10992
  retryLoanQueue: (loanQueueId: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
10993
+ /**
10994
+ * No description
10995
+ *
10996
+ * @tags LoanRecommendations
10997
+ * @name GetLoanRecommendations
10998
+ * @summary Get a loan's open recommendations
10999
+ * @request GET:/api/loans/{loanId}/recommendations
11000
+ * @secure
11001
+ * @response `200` `(LoanRecommendation)[]` OK
11002
+ * @response `400` `ProblemDetails` Bad Request
11003
+ * @response `404` `ProblemDetails` Not Found
11004
+ */
11005
+ getLoanRecommendations: (loanId: string, params?: RequestParams) => Promise<AxiosResponse<LoanRecommendation[], any, {}>>;
11006
+ /**
11007
+ * No description
11008
+ *
11009
+ * @tags LoanRecommendations
11010
+ * @name DismissLoanRecommendation
11011
+ * @summary Dismiss a loan recommendation
11012
+ * @request POST:/api/loans/{loanId}/recommendations/{id}/dismiss
11013
+ * @secure
11014
+ * @response `204` `void` No Content
11015
+ * @response `400` `ProblemDetails` Bad Request
11016
+ * @response `404` `ProblemDetails` Not Found
11017
+ */
11018
+ dismissLoanRecommendation: (loanId: string, id: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
11019
+ /**
11020
+ * No description
11021
+ *
11022
+ * @tags LoanRoleTasks
11023
+ * @name GetLoanRoleTasks
11024
+ * @summary Get queued tasks grouped by borrower slot
11025
+ * @request GET:/api/loans/{loanId}/role-tasks
11026
+ * @secure
11027
+ * @response `200` `(LoanRoleSlotTasks)[]` OK
11028
+ * @response `404` `ProblemDetails` Not Found
11029
+ */
11030
+ getLoanRoleTasks: (loanId: string, params?: RequestParams) => Promise<AxiosResponse<LoanRoleSlotTasks[], any, {}>>;
11031
+ /**
11032
+ * @description Queues an account template against a borrower slot that has no registered user yet. The row owns a per-loan copy of the template, so editing it never changes the account's catalogue.
11033
+ *
11034
+ * @tags LoanRoleTasks
11035
+ * @name CreateLoanRoleTask
11036
+ * @summary Queue a task for a borrower slot
11037
+ * @request POST:/api/loans/{loanId}/role-tasks
11038
+ * @secure
11039
+ * @response `201` `LoanRoleTask` Created
11040
+ * @response `400` `ProblemDetails` Bad Request
11041
+ * @response `404` `ProblemDetails` Not Found
11042
+ * @response `409` `ProblemDetails` Conflict
11043
+ * @response `422` `ProblemDetails` Unprocessable Content
11044
+ */
11045
+ createLoanRoleTask: (loanId: string, data: CreateLoanRoleTaskRequest, params?: RequestParams) => Promise<AxiosResponse<LoanRoleTask, any, {}>>;
11046
+ /**
11047
+ * No description
11048
+ *
11049
+ * @tags LoanRoleTasks
11050
+ * @name GetLoanRoleTask
11051
+ * @summary Get a queued task
11052
+ * @request GET:/api/loans/{loanId}/role-tasks/{id}
11053
+ * @secure
11054
+ * @response `200` `LoanRoleTask` OK
11055
+ * @response `404` `ProblemDetails` Not Found
11056
+ */
11057
+ getLoanRoleTask: (loanId: string, id: string, params?: RequestParams) => Promise<AxiosResponse<LoanRoleTask, any, {}>>;
11058
+ /**
11059
+ * @description Edits the loan's own copy of the template. The account's catalogue entry is untouched, so the change applies to this borrower only. Omitted fields are left as they are.
11060
+ *
11061
+ * @tags LoanRoleTasks
11062
+ * @name UpdateLoanRoleTask
11063
+ * @summary Edit a queued task
11064
+ * @request PUT:/api/loans/{loanId}/role-tasks/{id}
11065
+ * @secure
11066
+ * @response `200` `LoanRoleTask` OK
11067
+ * @response `400` `ProblemDetails` Bad Request
11068
+ * @response `404` `ProblemDetails` Not Found
11069
+ * @response `409` `ProblemDetails` Conflict
11070
+ * @response `422` `ProblemDetails` Unprocessable Content
11071
+ */
11072
+ updateLoanRoleTask: (loanId: string, id: string, data: UpdateLoanRoleTaskRequest, params?: RequestParams) => Promise<AxiosResponse<LoanRoleTask, any, {}>>;
11073
+ /**
11074
+ * @description Removes a queued task from a borrower slot. The removal is remembered, so a later run of the rules does not queue the same template again.
11075
+ *
11076
+ * @tags LoanRoleTasks
11077
+ * @name DeleteLoanRoleTask
11078
+ * @summary Remove a queued task
11079
+ * @request DELETE:/api/loans/{loanId}/role-tasks/{id}
11080
+ * @secure
11081
+ * @response `204` `void` No Content
11082
+ * @response `404` `ProblemDetails` Not Found
11083
+ * @response `409` `ProblemDetails` Conflict
11084
+ */
11085
+ deleteLoanRoleTask: (loanId: string, id: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
11086
+ /**
11087
+ * @description Runs the account's business rules against the loan and queues what is missing. Templates already queued, and ones removed by staff, are left alone.
11088
+ *
11089
+ * @tags LoanRoleTasks
11090
+ * @name MaterializeLoanRoleTasks
11091
+ * @summary Queue the business rule defaults
11092
+ * @request POST:/api/loans/{loanId}/role-tasks/materialize
11093
+ * @secure
11094
+ * @response `200` `MaterializeLoanRoleTasks` OK
11095
+ * @response `404` `ProblemDetails` Not Found
11096
+ */
11097
+ materializeLoanRoleTasks: (loanId: string, params?: RequestParams) => Promise<AxiosResponse<MaterializeLoanRoleTasks, any, {}>>;
10892
11098
  /**
10893
11099
  * No description
10894
11100
  *
@@ -11323,6 +11529,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
11323
11529
  * @request POST:/api/loans/{loanId}/users/{userId}
11324
11530
  * @secure
11325
11531
  * @response `201` `LoanUser` Created
11532
+ * @response `404` `ProblemDetails` Not Found
11326
11533
  */
11327
11534
  addLoanUser: (loanId: string, userId: string, data: CreateUserLoan, params?: RequestParams) => Promise<AxiosResponse<LoanUser, any, {}>>;
11328
11535
  /**
package/dist/index.js CHANGED
@@ -86,7 +86,13 @@ export class HttpClient {
86
86
  const property = input[key];
87
87
  const propertyContent = property instanceof Array ? property : [property];
88
88
  for (const formItem of propertyContent) {
89
- const isFileType = formItem instanceof Blob || formItem instanceof File;
89
+ // React Native files are plain { uri, name, type } objects, not Blob/File.
90
+ const isReactNativeFile = !!formItem &&
91
+ typeof formItem === "object" &&
92
+ "uri" in formItem &&
93
+ "name" in formItem &&
94
+ "type" in formItem;
95
+ const isFileType = isReactNativeFile || formItem instanceof Blob || formItem instanceof File;
90
96
  formData.append(key, isFileType ? formItem : this.stringifyFormItem(formItem));
91
97
  }
92
98
  return formData;
@@ -95,7 +101,7 @@ export class HttpClient {
95
101
  }
96
102
  /**
97
103
  * @title The Big POS API
98
- * @version v3.7.0
104
+ * @version v3.8.0
99
105
  * @termsOfService https://www.thebigpos.com/terms-of-use/
100
106
  * @contact Mortgage Automation Technologies <support@thebigpos.com> (https://www.thebigpos.com/terms-of-use/)
101
107
  */
@@ -3767,6 +3773,111 @@ export class Api extends HttpClient {
3767
3773
  * @response `404` `ProblemDetails` Not Found
3768
3774
  */
3769
3775
  retryLoanQueue: (loanQueueId, params = {}) => this.request(Object.assign({ path: `/api/loans/queue/${loanQueueId}/retry`, method: "POST", secure: true }, params)),
3776
+ /**
3777
+ * No description
3778
+ *
3779
+ * @tags LoanRecommendations
3780
+ * @name GetLoanRecommendations
3781
+ * @summary Get a loan's open recommendations
3782
+ * @request GET:/api/loans/{loanId}/recommendations
3783
+ * @secure
3784
+ * @response `200` `(LoanRecommendation)[]` OK
3785
+ * @response `400` `ProblemDetails` Bad Request
3786
+ * @response `404` `ProblemDetails` Not Found
3787
+ */
3788
+ getLoanRecommendations: (loanId, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/recommendations`, method: "GET", secure: true, format: "json" }, params)),
3789
+ /**
3790
+ * No description
3791
+ *
3792
+ * @tags LoanRecommendations
3793
+ * @name DismissLoanRecommendation
3794
+ * @summary Dismiss a loan recommendation
3795
+ * @request POST:/api/loans/{loanId}/recommendations/{id}/dismiss
3796
+ * @secure
3797
+ * @response `204` `void` No Content
3798
+ * @response `400` `ProblemDetails` Bad Request
3799
+ * @response `404` `ProblemDetails` Not Found
3800
+ */
3801
+ dismissLoanRecommendation: (loanId, id, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/recommendations/${id}/dismiss`, method: "POST", secure: true }, params)),
3802
+ /**
3803
+ * No description
3804
+ *
3805
+ * @tags LoanRoleTasks
3806
+ * @name GetLoanRoleTasks
3807
+ * @summary Get queued tasks grouped by borrower slot
3808
+ * @request GET:/api/loans/{loanId}/role-tasks
3809
+ * @secure
3810
+ * @response `200` `(LoanRoleSlotTasks)[]` OK
3811
+ * @response `404` `ProblemDetails` Not Found
3812
+ */
3813
+ getLoanRoleTasks: (loanId, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks`, method: "GET", secure: true, format: "json" }, params)),
3814
+ /**
3815
+ * @description Queues an account template against a borrower slot that has no registered user yet. The row owns a per-loan copy of the template, so editing it never changes the account's catalogue.
3816
+ *
3817
+ * @tags LoanRoleTasks
3818
+ * @name CreateLoanRoleTask
3819
+ * @summary Queue a task for a borrower slot
3820
+ * @request POST:/api/loans/{loanId}/role-tasks
3821
+ * @secure
3822
+ * @response `201` `LoanRoleTask` Created
3823
+ * @response `400` `ProblemDetails` Bad Request
3824
+ * @response `404` `ProblemDetails` Not Found
3825
+ * @response `409` `ProblemDetails` Conflict
3826
+ * @response `422` `ProblemDetails` Unprocessable Content
3827
+ */
3828
+ createLoanRoleTask: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks`, method: "POST", body: data, secure: true, type: "application/json", format: "json" }, params)),
3829
+ /**
3830
+ * No description
3831
+ *
3832
+ * @tags LoanRoleTasks
3833
+ * @name GetLoanRoleTask
3834
+ * @summary Get a queued task
3835
+ * @request GET:/api/loans/{loanId}/role-tasks/{id}
3836
+ * @secure
3837
+ * @response `200` `LoanRoleTask` OK
3838
+ * @response `404` `ProblemDetails` Not Found
3839
+ */
3840
+ getLoanRoleTask: (loanId, id, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks/${id}`, method: "GET", secure: true, format: "json" }, params)),
3841
+ /**
3842
+ * @description Edits the loan's own copy of the template. The account's catalogue entry is untouched, so the change applies to this borrower only. Omitted fields are left as they are.
3843
+ *
3844
+ * @tags LoanRoleTasks
3845
+ * @name UpdateLoanRoleTask
3846
+ * @summary Edit a queued task
3847
+ * @request PUT:/api/loans/{loanId}/role-tasks/{id}
3848
+ * @secure
3849
+ * @response `200` `LoanRoleTask` OK
3850
+ * @response `400` `ProblemDetails` Bad Request
3851
+ * @response `404` `ProblemDetails` Not Found
3852
+ * @response `409` `ProblemDetails` Conflict
3853
+ * @response `422` `ProblemDetails` Unprocessable Content
3854
+ */
3855
+ updateLoanRoleTask: (loanId, id, data, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks/${id}`, method: "PUT", body: data, secure: true, type: "application/json", format: "json" }, params)),
3856
+ /**
3857
+ * @description Removes a queued task from a borrower slot. The removal is remembered, so a later run of the rules does not queue the same template again.
3858
+ *
3859
+ * @tags LoanRoleTasks
3860
+ * @name DeleteLoanRoleTask
3861
+ * @summary Remove a queued task
3862
+ * @request DELETE:/api/loans/{loanId}/role-tasks/{id}
3863
+ * @secure
3864
+ * @response `204` `void` No Content
3865
+ * @response `404` `ProblemDetails` Not Found
3866
+ * @response `409` `ProblemDetails` Conflict
3867
+ */
3868
+ deleteLoanRoleTask: (loanId, id, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks/${id}`, method: "DELETE", secure: true }, params)),
3869
+ /**
3870
+ * @description Runs the account's business rules against the loan and queues what is missing. Templates already queued, and ones removed by staff, are left alone.
3871
+ *
3872
+ * @tags LoanRoleTasks
3873
+ * @name MaterializeLoanRoleTasks
3874
+ * @summary Queue the business rule defaults
3875
+ * @request POST:/api/loans/{loanId}/role-tasks/materialize
3876
+ * @secure
3877
+ * @response `200` `MaterializeLoanRoleTasks` OK
3878
+ * @response `404` `ProblemDetails` Not Found
3879
+ */
3880
+ materializeLoanRoleTasks: (loanId, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks/materialize`, method: "POST", secure: true, format: "json" }, params)),
3770
3881
  /**
3771
3882
  * No description
3772
3883
  *
@@ -4172,6 +4283,7 @@ export class Api extends HttpClient {
4172
4283
  * @request POST:/api/loans/{loanId}/users/{userId}
4173
4284
  * @secure
4174
4285
  * @response `201` `LoanUser` Created
4286
+ * @response `404` `ProblemDetails` Not Found
4175
4287
  */
4176
4288
  addLoanUser: (loanId, userId, data, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/users/${userId}`, method: "POST", body: data, secure: true, type: "application/json", format: "json" }, params)),
4177
4289
  /**