@matech/thebigpos-sdk 3.6.0-stag-2655 → 3.7.0-pr-4910

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";
@@ -441,6 +443,8 @@ export interface AiCanonicalField {
441
443
  textractKey?: string | null;
442
444
  textractKeyAliases: string[];
443
445
  hasAccountOverride: boolean;
446
+ writable: boolean;
447
+ patchPath?: string | null;
444
448
  /** @format date-time */
445
449
  createdAt: string;
446
450
  /** @format date-time */
@@ -1416,6 +1420,15 @@ export interface CreateLoanImportRequest {
1416
1420
  startDate: string;
1417
1421
  importMode: CreateLoanImportRequestImportModeEnum;
1418
1422
  }
1423
+ export interface CreateLoanRoleTaskRequest {
1424
+ /** @format uuid */
1425
+ taskId: string;
1426
+ role: CreateLoanRoleTaskRequestRoleEnum;
1427
+ /** @format int32 */
1428
+ borrowerPair: number;
1429
+ /** @format int32 */
1430
+ borrowerPosition: number;
1431
+ }
1419
1432
  export interface CreateSession {
1420
1433
  sessionId: string;
1421
1434
  sessionUrl: string;
@@ -1828,6 +1841,7 @@ export interface EnabledServices {
1828
1841
  ringCentral?: boolean | null;
1829
1842
  socialSurvey?: boolean | null;
1830
1843
  borrowerTasks?: boolean | null;
1844
+ preBorrowerTasks?: boolean | null;
1831
1845
  docusign?: boolean | null;
1832
1846
  emailNotifications?: boolean | null;
1833
1847
  autoTaskReminders?: boolean | null;
@@ -2649,6 +2663,7 @@ export interface LoanApplicationRequest {
2649
2663
  purpose?: LoanPurpose | null;
2650
2664
  referrer?: string | null;
2651
2665
  companyName?: string | null;
2666
+ relationship?: BorrowerRelationship | null;
2652
2667
  property?: LoanPropertyRequest | null;
2653
2668
  financial?: LoanFinancialRequest | null;
2654
2669
  refinance?: LoanRefinanceRequest | null;
@@ -3563,6 +3578,7 @@ export interface LoanDocumentFolderWithCount {
3563
3578
  isActive: boolean;
3564
3579
  /** @format int32 */
3565
3580
  documentCount: number;
3581
+ accessLevel: LoanDocumentFolderWithCountAccessLevelEnum;
3566
3582
  isUnassigned: boolean;
3567
3583
  }
3568
3584
  export interface LoanDocumentPreviewsRequest {
@@ -3748,6 +3764,7 @@ export interface LoanList {
3748
3764
  userLoans: UserLoan[];
3749
3765
  contacts: LoanContact[];
3750
3766
  borrowers: LoanListBorrower[];
3767
+ taskCounts: LoanTaskCounts;
3751
3768
  }
3752
3769
  export interface LoanListBorrower {
3753
3770
  /** @format uuid */
@@ -4088,6 +4105,52 @@ export interface LoanRefinanceRequest {
4088
4105
  purpose?: LoanRefinancePurpose | null;
4089
4106
  currentLoan?: LoanRefinanceCurrentLoanRequest | null;
4090
4107
  }
4108
+ export interface LoanRoleSlotTasks {
4109
+ role: LoanRoleSlotTasksRoleEnum;
4110
+ /** @format int32 */
4111
+ borrowerPair: number;
4112
+ /** @format int32 */
4113
+ borrowerPosition: number;
4114
+ tasks: LoanRoleTask[];
4115
+ }
4116
+ export interface LoanRoleTask {
4117
+ /** @format uuid */
4118
+ id: string;
4119
+ /** @format uuid */
4120
+ loanId: string;
4121
+ role: LoanRoleTaskRoleEnum;
4122
+ /** @format int32 */
4123
+ borrowerPair: number;
4124
+ /** @format int32 */
4125
+ borrowerPosition: number;
4126
+ /** @format uuid */
4127
+ definitionTaskId: string;
4128
+ /** @format uuid */
4129
+ taskId: string;
4130
+ name: string;
4131
+ description?: string | null;
4132
+ type: LoanRoleTaskTypeEnum;
4133
+ losTarget?: string | null;
4134
+ /** @format int32 */
4135
+ daysDueFromApplication?: number | null;
4136
+ /** @format int32 */
4137
+ weight: number;
4138
+ willAutocompleteAfterResponse: boolean;
4139
+ /** @format uuid */
4140
+ loanDocumentFolderId?: string | null;
4141
+ /** @format date */
4142
+ dueDate?: string | null;
4143
+ source: LoanRoleTaskSourceEnum;
4144
+ isAttached: boolean;
4145
+ /** @format uuid */
4146
+ attachedUserLoanTaskId?: string | null;
4147
+ /** @format date-time */
4148
+ attachedAt?: string | null;
4149
+ /** @format uuid */
4150
+ createdById?: string | null;
4151
+ /** @format date-time */
4152
+ createdAt: string;
4153
+ }
4091
4154
  export interface LoanSearchCriteria {
4092
4155
  searchText?: string | null;
4093
4156
  searchTerms?: string[] | null;
@@ -4104,6 +4167,16 @@ export interface LoanSearchCriteria {
4104
4167
  export interface LoanSettings {
4105
4168
  excludeFromAutoTaskReminders: boolean;
4106
4169
  }
4170
+ export interface LoanTaskCounts {
4171
+ /** @format int32 */
4172
+ outstanding: number;
4173
+ /** @format int32 */
4174
+ pending: number;
4175
+ /** @format int32 */
4176
+ completed: number;
4177
+ /** @format int32 */
4178
+ rejected: number;
4179
+ }
4107
4180
  export interface LoanTaskSearchRequest {
4108
4181
  searchText?: string | null;
4109
4182
  statuses?: TaskStatus[] | null;
@@ -4394,6 +4467,10 @@ export interface LosWebhookSigningKeySyncResult {
4394
4467
  export interface ManualDocumentClassificationRequest {
4395
4468
  documentType: ManualDocumentClassificationRequestDocumentTypeEnum;
4396
4469
  }
4470
+ export interface MaterializeLoanRoleTasks {
4471
+ /** @format int32 */
4472
+ rowsAdded: number;
4473
+ }
4397
4474
  export interface MdmUser {
4398
4475
  user_email?: string | null;
4399
4476
  user_id?: string | null;
@@ -5736,6 +5813,8 @@ export interface Task {
5736
5813
  isGlobal: boolean;
5737
5814
  /** @format uuid */
5738
5815
  id: string;
5816
+ /** @format uuid */
5817
+ sourceTaskID?: string | null;
5739
5818
  user?: User | null;
5740
5819
  isFromLegacySource: boolean;
5741
5820
  usedInBusinessRule: boolean;
@@ -6041,6 +6120,16 @@ export interface UpdateLoanDocumentFolderRequest {
6041
6120
  export interface UpdateLoanQueueRequest {
6042
6121
  data: any;
6043
6122
  }
6123
+ export interface UpdateLoanRoleTaskRequest {
6124
+ name?: string | null;
6125
+ description?: string | null;
6126
+ /** @format int32 */
6127
+ weight?: number | null;
6128
+ /** @format uuid */
6129
+ loanDocumentFolderId?: string | null;
6130
+ /** @format date */
6131
+ dueDate?: string | null;
6132
+ }
6044
6133
  export interface UpdateMeRequest {
6045
6134
  phone?: string | null;
6046
6135
  firstName: string;
@@ -6411,6 +6500,12 @@ export interface UserLoanTaskUpdateRequest {
6411
6500
  value?: string | null;
6412
6501
  /** @format date */
6413
6502
  dueDate?: string | null;
6503
+ name?: string | null;
6504
+ description?: string | null;
6505
+ /** @format int32 */
6506
+ weight?: number | null;
6507
+ /** @format uuid */
6508
+ loanDocumentFolderId?: string | null;
6414
6509
  }
6415
6510
  export interface UserMobilePhoneVerificationRequest {
6416
6511
  code: string;
@@ -6584,6 +6679,7 @@ export type CreateGroupMemberRequestLoanRoleEnum = "Borrower" | "CoBorrower" | "
6584
6679
  /** @deprecated */
6585
6680
  export type CreateInviteRequestRelationshipEnum = "NotApplicable" | "Spouse" | "NonSpouse";
6586
6681
  export type CreateLoanImportRequestImportModeEnum = "All" | "NewOnly" | "UpdateOnly";
6682
+ export type CreateLoanRoleTaskRequestRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6587
6683
  export type CreateUserDraftLoanRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6588
6684
  export type CustomFieldDefinitionDataTypeEnum = "String" | "Number" | "Decimal" | "Boolean" | "Date" | "SingleSelect" | "MultiSelect";
6589
6685
  export type CustomFieldDefinitionEntityTypeEnum = "Loan";
@@ -6614,13 +6710,18 @@ export type LoanDocumentFolderPermissionReadScopeEnum = "Own" | "All";
6614
6710
  export type LoanDocumentFolderPermissionRequestRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6615
6711
  export type LoanDocumentFolderPermissionRequestLevelEnum = "None" | "Read" | "Write" | "Manage";
6616
6712
  export type LoanDocumentFolderPermissionRequestReadScopeEnum = "Own" | "All";
6713
+ export type LoanDocumentFolderWithCountAccessLevelEnum = "None" | "Read" | "Write" | "Manage";
6617
6714
  export type LoanImportStatusEnum = "WaitingProcess" | "InProgress" | "Completed" | "Failed" | "Cancelled";
6618
6715
  export type LoanImportImportModeEnum = "All" | "NewOnly" | "UpdateOnly";
6619
6716
  export type LoanImportLogLevelEnum = "None" | "Info" | "Warning" | "Error";
6620
6717
  export type LoanLogLevelEnum = "None" | "Info" | "Warning" | "Error";
6621
- export type LoanLogTypeEnum = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded";
6718
+ export type LoanLogTypeEnum = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded" | "TaskEdited";
6622
6719
  export type LoanLogDetailLevelEnum = "None" | "Info" | "Warning" | "Error";
6623
- export type LoanLogDetailTypeEnum = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded";
6720
+ export type LoanLogDetailTypeEnum = "Loan" | "Queue" | "POSFlagChanged" | "Verification" | "DocumentUploaded" | "LoanCreated" | "WorkflowSubmitted" | "UserInvitationSent" | "CoBorrowerAdded" | "TaskCompleted" | "LoanStatusChanged" | "Consent" | "SensitiveDataPurge" | "ClosingDateUpdated" | "ConsumerConnectAssociation" | "TaskReminderSent" | "DocumentClassified" | "CoBorrowerEmailAutoFixed" | "LosFieldWriteBack" | "ReferrerChangeDiscarded" | "TaskEdited";
6721
+ export type LoanRoleSlotTasksRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6722
+ export type LoanRoleTaskRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6723
+ export type LoanRoleTaskTypeEnum = "Document" | "Field" | "Signature" | "EDisclosure" | "EConsent" | "VerificationOfAssets" | "VerificationOfIncome" | "VerificationOfEmployment" | "VerificationOfCredit" | "Payment" | "VerificationOfIncomeAndEmployment" | "VerificationOfTaxes";
6724
+ export type LoanRoleTaskSourceEnum = "Rule" | "Manual";
6624
6725
  export type LoanTaskStatusSummaryStatusEnum = "Outstanding" | "Pending" | "Completed" | "Rejected" | "Unknown";
6625
6726
  export type LoanUserLoanRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
6626
6727
  export type LosCredentialHealthStatusEnum = "Unknown" | "Healthy" | "InvalidCredentials" | "Forbidden" | "TransportError" | "NotConfigured";
@@ -6706,7 +6807,7 @@ export declare class HttpClient<SecurityDataType = unknown> {
6706
6807
  }
6707
6808
  /**
6708
6809
  * @title The Big POS API
6709
- * @version v3.6.0
6810
+ * @version v3.7.0
6710
6811
  * @termsOfService https://www.thebigpos.com/terms-of-use/
6711
6812
  * @contact Mortgage Automation Technologies <support@thebigpos.com> (https://www.thebigpos.com/terms-of-use/)
6712
6813
  */
@@ -10234,7 +10335,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
10234
10335
  */
10235
10336
  getLoanDocumentFolderUsage: (id: string, params?: RequestParams) => Promise<AxiosResponse<LoanDocumentFolderUsage, any, {}>>;
10236
10337
  /**
10237
- * @description Returns each folder that holds at least one document the caller can read, with the document count per folder. Documents that are not assigned to a folder are returned as a synthetic 'Unassigned' folder (ID = empty GUID, isUnassigned = true); filter to its documents with searchLoanDocuments folderScope 'Unassigned' rather than by echoing that ID.
10338
+ * @description Returns every folder the caller can access on this loan — including folders holding no documents — with the caller's effective accessLevel and the count of documents they can read in each. Upload destinations are the active entries with accessLevel at least Write. Documents that are not assigned to a folder are returned as a synthetic 'Unassigned' folder (ID = empty GUID, isUnassigned = true); filter to its documents with searchLoanDocuments folderScope 'Unassigned' rather than by echoing that ID.
10238
10339
  *
10239
10340
  * @tags LoanDocumentFoldersForSingleLoan
10240
10341
  * @name ListLoanDocumentFolders
@@ -10287,7 +10388,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
10287
10388
  */
10288
10389
  getLoanDocumentPreviews: (loanId: string, data: LoanDocumentPreviewsRequest, params?: RequestParams) => Promise<AxiosResponse<Record<string, string>, any, {}>>;
10289
10390
  /**
10290
- * @description Filters the loan's readable documents. Pass folderID to filter to one folder, or folderScope 'Unassigned' for the documents that have no folder (the synthetic folder listLoanDocumentFolders reports with isUnassigned true); the two cannot be combined.
10391
+ * @description Filters the loan's readable documents. Pass folderID to filter to one folder, or folderScope 'Unassigned' for the documents that have no folder; folderID with the empty GUID listLoanDocumentFolders reports for that synthetic folder selects the same set. folderScope 'Unassigned' cannot be combined with a real folderID. Documents with no folder come back naming the synthetic 'Unassigned' folder.
10291
10392
  *
10292
10393
  * @tags LoanDocuments
10293
10394
  * @name SearchLoanDocuments
@@ -10326,6 +10427,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
10326
10427
  * @request POST:/api/loans/{loanId}/documents
10327
10428
  * @secure
10328
10429
  * @response `201` `LoanDocument` Created
10430
+ * @response `400` `ProblemDetails` Bad Request
10329
10431
  * @response `404` `ProblemDetails` Not Found
10330
10432
  * @response `422` `UnprocessableEntity` Unprocessable Content
10331
10433
  */
@@ -10811,6 +10913,85 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
10811
10913
  * @response `404` `ProblemDetails` Not Found
10812
10914
  */
10813
10915
  retryLoanQueue: (loanQueueId: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
10916
+ /**
10917
+ * No description
10918
+ *
10919
+ * @tags LoanRoleTasks
10920
+ * @name GetLoanRoleTasks
10921
+ * @summary Get queued tasks grouped by borrower slot
10922
+ * @request GET:/api/loans/{loanId}/role-tasks
10923
+ * @secure
10924
+ * @response `200` `(LoanRoleSlotTasks)[]` OK
10925
+ * @response `404` `ProblemDetails` Not Found
10926
+ */
10927
+ getLoanRoleTasks: (loanId: string, params?: RequestParams) => Promise<AxiosResponse<LoanRoleSlotTasks[], any, {}>>;
10928
+ /**
10929
+ * @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.
10930
+ *
10931
+ * @tags LoanRoleTasks
10932
+ * @name CreateLoanRoleTask
10933
+ * @summary Queue a task for a borrower slot
10934
+ * @request POST:/api/loans/{loanId}/role-tasks
10935
+ * @secure
10936
+ * @response `201` `LoanRoleTask` Created
10937
+ * @response `400` `ProblemDetails` Bad Request
10938
+ * @response `404` `ProblemDetails` Not Found
10939
+ * @response `409` `ProblemDetails` Conflict
10940
+ * @response `422` `ProblemDetails` Unprocessable Content
10941
+ */
10942
+ createLoanRoleTask: (loanId: string, data: CreateLoanRoleTaskRequest, params?: RequestParams) => Promise<AxiosResponse<LoanRoleTask, any, {}>>;
10943
+ /**
10944
+ * No description
10945
+ *
10946
+ * @tags LoanRoleTasks
10947
+ * @name GetLoanRoleTask
10948
+ * @summary Get a queued task
10949
+ * @request GET:/api/loans/{loanId}/role-tasks/{id}
10950
+ * @secure
10951
+ * @response `200` `LoanRoleTask` OK
10952
+ * @response `404` `ProblemDetails` Not Found
10953
+ */
10954
+ getLoanRoleTask: (loanId: string, id: string, params?: RequestParams) => Promise<AxiosResponse<LoanRoleTask, any, {}>>;
10955
+ /**
10956
+ * @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.
10957
+ *
10958
+ * @tags LoanRoleTasks
10959
+ * @name UpdateLoanRoleTask
10960
+ * @summary Edit a queued task
10961
+ * @request PUT:/api/loans/{loanId}/role-tasks/{id}
10962
+ * @secure
10963
+ * @response `200` `LoanRoleTask` OK
10964
+ * @response `400` `ProblemDetails` Bad Request
10965
+ * @response `404` `ProblemDetails` Not Found
10966
+ * @response `409` `ProblemDetails` Conflict
10967
+ * @response `422` `ProblemDetails` Unprocessable Content
10968
+ */
10969
+ updateLoanRoleTask: (loanId: string, id: string, data: UpdateLoanRoleTaskRequest, params?: RequestParams) => Promise<AxiosResponse<LoanRoleTask, any, {}>>;
10970
+ /**
10971
+ * @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.
10972
+ *
10973
+ * @tags LoanRoleTasks
10974
+ * @name DeleteLoanRoleTask
10975
+ * @summary Remove a queued task
10976
+ * @request DELETE:/api/loans/{loanId}/role-tasks/{id}
10977
+ * @secure
10978
+ * @response `204` `void` No Content
10979
+ * @response `404` `ProblemDetails` Not Found
10980
+ * @response `409` `ProblemDetails` Conflict
10981
+ */
10982
+ deleteLoanRoleTask: (loanId: string, id: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
10983
+ /**
10984
+ * @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.
10985
+ *
10986
+ * @tags LoanRoleTasks
10987
+ * @name MaterializeLoanRoleTasks
10988
+ * @summary Queue the business rule defaults
10989
+ * @request POST:/api/loans/{loanId}/role-tasks/materialize
10990
+ * @secure
10991
+ * @response `200` `MaterializeLoanRoleTasks` OK
10992
+ * @response `404` `ProblemDetails` Not Found
10993
+ */
10994
+ materializeLoanRoleTasks: (loanId: string, params?: RequestParams) => Promise<AxiosResponse<MaterializeLoanRoleTasks, any, {}>>;
10814
10995
  /**
10815
10996
  * No description
10816
10997
  *
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.6.0
104
+ * @version v3.7.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
  */
@@ -384,7 +390,7 @@ export class Api extends HttpClient {
384
390
  * @response `200` `AiPrompt` OK
385
391
  * @response `404` `ProblemDetails` Not Found
386
392
  */
387
- toggleAiPrompt: (id, params = {}) => this.request(Object.assign({ path: `/api/ai/prompts/${id}/toggle`, method: "PATCH", secure: true, format: "json" }, params)),
393
+ toggleAiPrompt: (id, params = {}) => this.request(Object.assign({ path: `/api/ai/prompts/${id}/toggle`, method: "PATCH", secure: true, type: ContentType.Json, format: "json" }, params)),
388
394
  /**
389
395
  * No description
390
396
  *
@@ -557,7 +563,7 @@ export class Api extends HttpClient {
557
563
  * @response `200` `AiCanonicalField` OK
558
564
  * @response `404` `ProblemDetails` Not Found
559
565
  */
560
- toggleAiCanonicalField: (id, params = {}) => this.request(Object.assign({ path: `/api/ai/canonical-fields/${id}/toggle`, method: "PATCH", secure: true, format: "json" }, params)),
566
+ toggleAiCanonicalField: (id, params = {}) => this.request(Object.assign({ path: `/api/ai/canonical-fields/${id}/toggle`, method: "PATCH", secure: true, type: ContentType.Json, format: "json" }, params)),
561
567
  /**
562
568
  * No description
563
569
  *
@@ -633,7 +639,7 @@ export class Api extends HttpClient {
633
639
  * @response `403` `ProblemDetails` Forbidden
634
640
  * @response `404` `ProblemDetails` Not Found
635
641
  */
636
- renameAiConversation: (id, data, params = {}) => this.request(Object.assign({ path: `/api/ai/conversations/${id}`, method: "PATCH", body: data, secure: true, type: "application/json", format: "json" }, params)),
642
+ renameAiConversation: (id, data, params = {}) => this.request(Object.assign({ path: `/api/ai/conversations/${id}`, method: "PATCH", body: data, secure: true, type: ContentType.JsonPatch, format: "json" }, params)),
637
643
  /**
638
644
  * No description
639
645
  *
@@ -793,7 +799,7 @@ export class Api extends HttpClient {
793
799
  * @response `200` `AiGuardrail` OK
794
800
  * @response `404` `ProblemDetails` Not Found
795
801
  */
796
- toggleAiGuardrail: (id, params = {}) => this.request(Object.assign({ path: `/api/ai/guardrails/${id}/toggle`, method: "PATCH", secure: true, format: "json" }, params)),
802
+ toggleAiGuardrail: (id, params = {}) => this.request(Object.assign({ path: `/api/ai/guardrails/${id}/toggle`, method: "PATCH", secure: true, type: ContentType.Json, format: "json" }, params)),
797
803
  /**
798
804
  * No description
799
805
  *
@@ -982,7 +988,7 @@ export class Api extends HttpClient {
982
988
  * @response `200` `AiUrlSource` OK
983
989
  * @response `404` `ProblemDetails` Not Found
984
990
  */
985
- toggleAiUrlSource: (id, params = {}) => this.request(Object.assign({ path: `/api/ai/url-sources/${id}/toggle`, method: "PATCH", secure: true, format: "json" }, params)),
991
+ toggleAiUrlSource: (id, params = {}) => this.request(Object.assign({ path: `/api/ai/url-sources/${id}/toggle`, method: "PATCH", secure: true, type: ContentType.Json, format: "json" }, params)),
986
992
  /**
987
993
  * No description
988
994
  *
@@ -2702,7 +2708,7 @@ export class Api extends HttpClient {
2702
2708
  * @response `200` `string` OK
2703
2709
  * @response `422` `UnprocessableEntity` Unprocessable Content
2704
2710
  */
2705
- updateLoanConsentAndCustomFieldsObsolete: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/los/loan/application/${loanId}`, method: "PATCH", body: data, secure: true, type: "application/json", format: "json" }, params)),
2711
+ updateLoanConsentAndCustomFieldsObsolete: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/los/loan/application/${loanId}`, method: "PATCH", body: data, secure: true, type: ContentType.JsonPatch, format: "json" }, params)),
2706
2712
  /**
2707
2713
  * No description
2708
2714
  *
@@ -2752,7 +2758,7 @@ export class Api extends HttpClient {
2752
2758
  * @response `200` `string` OK
2753
2759
  * @response `422` `UnprocessableEntity` Unprocessable Content
2754
2760
  */
2755
- updateLoanCustomFields: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/los/loan/application/${loanId}/custom-fields`, method: "PATCH", body: data, secure: true, type: "application/json", format: "json" }, params)),
2761
+ updateLoanCustomFields: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/los/loan/application/${loanId}/custom-fields`, method: "PATCH", body: data, secure: true, type: ContentType.JsonPatch, format: "json" }, params)),
2756
2762
  /**
2757
2763
  * No description
2758
2764
  *
@@ -2765,7 +2771,7 @@ export class Api extends HttpClient {
2765
2771
  * @response `202` `string` Accepted
2766
2772
  * @response `422` `UnprocessableEntity` Unprocessable Content
2767
2773
  */
2768
- updateLoanConsent: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/los/loan/application/${loanId}/consent`, method: "PATCH", body: data, secure: true, type: "application/json", format: "json" }, params)),
2774
+ updateLoanConsent: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/los/loan/application/${loanId}/consent`, method: "PATCH", body: data, secure: true, type: ContentType.JsonPatch, format: "json" }, params)),
2769
2775
  /**
2770
2776
  * No description
2771
2777
  *
@@ -2856,7 +2862,7 @@ export class Api extends HttpClient {
2856
2862
  * @secure
2857
2863
  * @response `200` `ListingFile` OK
2858
2864
  */
2859
- updateListingFiles: (listingId, data, params = {}) => this.request(Object.assign({ path: `/api/listings/${listingId}/files`, method: "PATCH", body: data, secure: true, type: "application/json", format: "json" }, params)),
2865
+ updateListingFiles: (listingId, data, params = {}) => this.request(Object.assign({ path: `/api/listings/${listingId}/files`, method: "PATCH", body: data, secure: true, type: ContentType.JsonPatch, format: "json" }, params)),
2860
2866
  /**
2861
2867
  * No description
2862
2868
  *
@@ -2889,7 +2895,7 @@ export class Api extends HttpClient {
2889
2895
  * @secure
2890
2896
  * @response `200` `(ListingPhoto)[]` OK
2891
2897
  */
2892
- updateListingPhotos: (listingId, data, params = {}) => this.request(Object.assign({ path: `/api/listings/${listingId}/photos`, method: "PATCH", body: data, secure: true, type: "application/json", format: "json" }, params)),
2898
+ updateListingPhotos: (listingId, data, params = {}) => this.request(Object.assign({ path: `/api/listings/${listingId}/photos`, method: "PATCH", body: data, secure: true, type: ContentType.JsonPatch, format: "json" }, params)),
2893
2899
  /**
2894
2900
  * No description
2895
2901
  *
@@ -3264,7 +3270,7 @@ export class Api extends HttpClient {
3264
3270
  */
3265
3271
  getLoanDocumentFolderUsage: (id, params = {}) => this.request(Object.assign({ path: `/api/loan-document-folders/${id}/usage`, method: "GET", secure: true, format: "json" }, params)),
3266
3272
  /**
3267
- * @description Returns each folder that holds at least one document the caller can read, with the document count per folder. Documents that are not assigned to a folder are returned as a synthetic 'Unassigned' folder (ID = empty GUID, isUnassigned = true); filter to its documents with searchLoanDocuments folderScope 'Unassigned' rather than by echoing that ID.
3273
+ * @description Returns every folder the caller can access on this loan — including folders holding no documents — with the caller's effective accessLevel and the count of documents they can read in each. Upload destinations are the active entries with accessLevel at least Write. Documents that are not assigned to a folder are returned as a synthetic 'Unassigned' folder (ID = empty GUID, isUnassigned = true); filter to its documents with searchLoanDocuments folderScope 'Unassigned' rather than by echoing that ID.
3268
3274
  *
3269
3275
  * @tags LoanDocumentFoldersForSingleLoan
3270
3276
  * @name ListLoanDocumentFolders
@@ -3311,7 +3317,7 @@ export class Api extends HttpClient {
3311
3317
  */
3312
3318
  getLoanDocumentPreviews: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/documents/previews`, method: "POST", body: data, secure: true, type: "application/json", format: "json" }, params)),
3313
3319
  /**
3314
- * @description Filters the loan's readable documents. Pass folderID to filter to one folder, or folderScope 'Unassigned' for the documents that have no folder (the synthetic folder listLoanDocumentFolders reports with isUnassigned true); the two cannot be combined.
3320
+ * @description Filters the loan's readable documents. Pass folderID to filter to one folder, or folderScope 'Unassigned' for the documents that have no folder; folderID with the empty GUID listLoanDocumentFolders reports for that synthetic folder selects the same set. folderScope 'Unassigned' cannot be combined with a real folderID. Documents with no folder come back naming the synthetic 'Unassigned' folder.
3315
3321
  *
3316
3322
  * @tags LoanDocuments
3317
3323
  * @name SearchLoanDocuments
@@ -3343,6 +3349,7 @@ export class Api extends HttpClient {
3343
3349
  * @request POST:/api/loans/{loanId}/documents
3344
3350
  * @secure
3345
3351
  * @response `201` `LoanDocument` Created
3352
+ * @response `400` `ProblemDetails` Bad Request
3346
3353
  * @response `404` `ProblemDetails` Not Found
3347
3354
  * @response `422` `UnprocessableEntity` Unprocessable Content
3348
3355
  */
@@ -3766,6 +3773,85 @@ export class Api extends HttpClient {
3766
3773
  * @response `404` `ProblemDetails` Not Found
3767
3774
  */
3768
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 LoanRoleTasks
3780
+ * @name GetLoanRoleTasks
3781
+ * @summary Get queued tasks grouped by borrower slot
3782
+ * @request GET:/api/loans/{loanId}/role-tasks
3783
+ * @secure
3784
+ * @response `200` `(LoanRoleSlotTasks)[]` OK
3785
+ * @response `404` `ProblemDetails` Not Found
3786
+ */
3787
+ getLoanRoleTasks: (loanId, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks`, method: "GET", secure: true, format: "json" }, params)),
3788
+ /**
3789
+ * @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.
3790
+ *
3791
+ * @tags LoanRoleTasks
3792
+ * @name CreateLoanRoleTask
3793
+ * @summary Queue a task for a borrower slot
3794
+ * @request POST:/api/loans/{loanId}/role-tasks
3795
+ * @secure
3796
+ * @response `201` `LoanRoleTask` Created
3797
+ * @response `400` `ProblemDetails` Bad Request
3798
+ * @response `404` `ProblemDetails` Not Found
3799
+ * @response `409` `ProblemDetails` Conflict
3800
+ * @response `422` `ProblemDetails` Unprocessable Content
3801
+ */
3802
+ 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)),
3803
+ /**
3804
+ * No description
3805
+ *
3806
+ * @tags LoanRoleTasks
3807
+ * @name GetLoanRoleTask
3808
+ * @summary Get a queued task
3809
+ * @request GET:/api/loans/{loanId}/role-tasks/{id}
3810
+ * @secure
3811
+ * @response `200` `LoanRoleTask` OK
3812
+ * @response `404` `ProblemDetails` Not Found
3813
+ */
3814
+ getLoanRoleTask: (loanId, id, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks/${id}`, method: "GET", secure: true, format: "json" }, params)),
3815
+ /**
3816
+ * @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.
3817
+ *
3818
+ * @tags LoanRoleTasks
3819
+ * @name UpdateLoanRoleTask
3820
+ * @summary Edit a queued task
3821
+ * @request PUT:/api/loans/{loanId}/role-tasks/{id}
3822
+ * @secure
3823
+ * @response `200` `LoanRoleTask` OK
3824
+ * @response `400` `ProblemDetails` Bad Request
3825
+ * @response `404` `ProblemDetails` Not Found
3826
+ * @response `409` `ProblemDetails` Conflict
3827
+ * @response `422` `ProblemDetails` Unprocessable Content
3828
+ */
3829
+ 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)),
3830
+ /**
3831
+ * @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.
3832
+ *
3833
+ * @tags LoanRoleTasks
3834
+ * @name DeleteLoanRoleTask
3835
+ * @summary Remove a queued task
3836
+ * @request DELETE:/api/loans/{loanId}/role-tasks/{id}
3837
+ * @secure
3838
+ * @response `204` `void` No Content
3839
+ * @response `404` `ProblemDetails` Not Found
3840
+ * @response `409` `ProblemDetails` Conflict
3841
+ */
3842
+ deleteLoanRoleTask: (loanId, id, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks/${id}`, method: "DELETE", secure: true }, params)),
3843
+ /**
3844
+ * @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.
3845
+ *
3846
+ * @tags LoanRoleTasks
3847
+ * @name MaterializeLoanRoleTasks
3848
+ * @summary Queue the business rule defaults
3849
+ * @request POST:/api/loans/{loanId}/role-tasks/materialize
3850
+ * @secure
3851
+ * @response `200` `MaterializeLoanRoleTasks` OK
3852
+ * @response `404` `ProblemDetails` Not Found
3853
+ */
3854
+ materializeLoanRoleTasks: (loanId, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/role-tasks/materialize`, method: "POST", secure: true, format: "json" }, params)),
3769
3855
  /**
3770
3856
  * No description
3771
3857
  *
@@ -3830,7 +3916,7 @@ export class Api extends HttpClient {
3830
3916
  * @response `409` `any` Conflict
3831
3917
  * @response `422` `UnprocessableEntity` Unprocessable Content
3832
3918
  */
3833
- updateLoan: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}`, method: "PATCH", body: data, secure: true, type: "application/json", format: "json" }, params)),
3919
+ updateLoan: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}`, method: "PATCH", body: data, secure: true, type: ContentType.Json, format: "json" }, params)),
3834
3920
  /**
3835
3921
  * No description
3836
3922
  *