@matech/thebigpos-sdk 3.16.0 → 3.17.0-dev-6319

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
@@ -78,6 +78,7 @@ export type EncompassLogOperationType = "FieldUpdate" | "ConsentUpdate" | "Docum
78
78
  export type EncompassEnvironment = "Production" | "UAT";
79
79
  export type DraftType = "NewLoan" | "EditLoan";
80
80
  export type DocumentVisibilityScope = "Own" | "All";
81
+ export type DocumentType = "PrequalLetter" | "PreapprovalLetter" | "EConsent" | "CreditAuthorization" | "TextOptIn" | "OpenHouseFlyer" | "LoanComparison" | "BuyerAgencyAgreements" | "ListingAgreements" | "Addendums" | "RentalAgreements" | "SalesContracts" | "RealEstateMarketFlyer" | "MortgageMarketingFlyer" | "FeeItemization" | "RefinanceDocument" | "CertifiedCommitments" | "CoBrandedMarketingFlyer";
81
82
  export type CustomFieldEntityType = "Loan";
82
83
  export type CustomFieldDataType = "String" | "Number" | "Decimal" | "Boolean" | "Date" | "SingleSelect" | "MultiSelect";
83
84
  export type CustomFieldAnswerWarningReason = "Unresolved" | "Inactive" | "ReadOnly" | "DuplicateDefinition";
@@ -101,6 +102,7 @@ export type BulkLoanTaskOperationType = "SetStatus" | "Delete" | "SetDueDate";
101
102
  export type BranchType = "Mortgage" | "RealEstate";
102
103
  export type BorrowerType = "Borrower" | "CoBorrower" | "Unknown";
103
104
  export type BorrowerRelationship = "NotApplicable" | "Spouse" | "NonSpouse";
105
+ export type BorrowerApplicationWarningCode = "UnknownKey" | "NotWritable" | "CustomFieldUnresolved" | "CustomFieldInactive" | "CustomFieldReadOnly" | "CustomFieldDuplicateDefinition" | "LoanOfficerUnresolved";
104
106
  export type BorrowerApplicationStatus = "Draft" | "Complete";
105
107
  export type BillingType = "ClosedLoan" | "LoanOfficer";
106
108
  export type AuditChangeType = "Created" | "Modified" | "SoftDeleted" | "HardDeleted" | "Restored" | "Deactivated" | "Reactivated" | "Accessed";
@@ -188,6 +190,7 @@ export interface AccountFailureCount {
188
190
  export interface AccountSettings {
189
191
  isSmsEnabled: boolean;
190
192
  isLoanEditEnabled: boolean;
193
+ isApplicationEditEnabled?: boolean | null;
191
194
  smsNumber?: string | null;
192
195
  ssoHostOverride?: string | null;
193
196
  isEarlyAdopter: boolean;
@@ -196,6 +199,7 @@ export interface AccountSettingsRequest {
196
199
  isSmsEnabled: boolean;
197
200
  smsNumber?: string | null;
198
201
  isEarlyAdopter: boolean;
202
+ isApplicationEditEnabled?: boolean | null;
199
203
  }
200
204
  export interface Address {
201
205
  /** @format uuid */
@@ -458,8 +462,6 @@ export interface AiCanonicalField {
458
462
  isDefault: boolean;
459
463
  category?: string | null;
460
464
  jsonPropertyName?: string | null;
461
- textractKey?: string | null;
462
- textractKeyAliases: string[];
463
465
  hasAccountOverride: boolean;
464
466
  writable: boolean;
465
467
  patchPath?: string | null;
@@ -1015,6 +1017,32 @@ export interface AutomatedService {
1015
1017
  skipped: string[];
1016
1018
  rateLimited: string[];
1017
1019
  }
1020
+ export interface BorrowerApplication {
1021
+ /** @format uuid */
1022
+ loanId: string;
1023
+ /** @format uuid */
1024
+ borrowerId: string;
1025
+ /** @format uuid */
1026
+ coBorrowerId?: string | null;
1027
+ applicationStatus: BorrowerApplicationApplicationStatusEnum;
1028
+ answers: Record<string, any>;
1029
+ additionalFields: Record<string, string>;
1030
+ cursor?: LoanApplicationSession | null;
1031
+ }
1032
+ export interface BorrowerApplicationUpdate {
1033
+ warnings: BorrowerApplicationWarning[];
1034
+ application: BorrowerApplication;
1035
+ }
1036
+ export interface BorrowerApplicationUpdateRequest {
1037
+ answers: Record<string, any>;
1038
+ additionalFields?: Record<string, any> | null;
1039
+ cursor?: LoanApplicationSessionRequest | null;
1040
+ }
1041
+ export interface BorrowerApplicationWarning {
1042
+ key: string;
1043
+ code: BorrowerApplicationWarningCodeEnum;
1044
+ message: string;
1045
+ }
1018
1046
  export interface BorrowerCount {
1019
1047
  /** @format uuid */
1020
1048
  userId: string;
@@ -1550,7 +1578,6 @@ export interface CreateAiCanonicalFieldRequest {
1550
1578
  description: string;
1551
1579
  allowedRoles: string[];
1552
1580
  isPii: boolean;
1553
- dataSource: string;
1554
1581
  category?: string | null;
1555
1582
  }
1556
1583
  export interface CreateAiGuardrailRequest {
@@ -2702,7 +2729,7 @@ export interface Invite {
2702
2729
  phoneNumber: string;
2703
2730
  relationship: string;
2704
2731
  /** @deprecated */
2705
- loanID: string;
2732
+ loanID?: string | null;
2706
2733
  route?: string | null;
2707
2734
  /** @format uuid */
2708
2735
  siteConfigurationID: string;
@@ -2718,7 +2745,7 @@ export interface Invite {
2718
2745
  /** @format date-time */
2719
2746
  expiresAt?: string | null;
2720
2747
  status: string;
2721
- loan: LoanIdentifier;
2748
+ loan?: LoanIdentifier | null;
2722
2749
  url: string;
2723
2750
  linksBorrowerApplication?: boolean | null;
2724
2751
  }
@@ -5104,6 +5131,9 @@ export interface NotificationTemplateVersionUpdateRequest {
5104
5131
  textBody?: string | null;
5105
5132
  pushNotificationBody?: string | null;
5106
5133
  }
5134
+ export interface OpenBorrowerApplicationEditRequest {
5135
+ isCoBorrower: boolean;
5136
+ }
5107
5137
  export type OpenTasksWidgetConfig = UtilRequiredKeys<BaseCanvasWidgetConfig, "type"> & {
5108
5138
  /** @format int32 */
5109
5139
  maxItems: number;
@@ -7160,6 +7190,8 @@ export type AiUrlSourceScopeEnum = "FullDomain" | "SpecificPath";
7160
7190
  export type AiUrlSourceApprovalStatusEnum = "Pending" | "Approved" | "Rejected";
7161
7191
  export type AmortizationWidgetConfigTypeEnum = "Amortization";
7162
7192
  export type AuditLogEntryChangeTypeEnum = "Created" | "Modified" | "SoftDeleted" | "HardDeleted" | "Restored" | "Deactivated" | "Reactivated" | "Accessed";
7193
+ export type BorrowerApplicationApplicationStatusEnum = "Draft" | "Complete";
7194
+ export type BorrowerApplicationWarningCodeEnum = "UnknownKey" | "NotWritable" | "CustomFieldUnresolved" | "CustomFieldInactive" | "CustomFieldReadOnly" | "CustomFieldDuplicateDefinition" | "LoanOfficerUnresolved";
7163
7195
  export type BorrowerCountRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
7164
7196
  export type BorrowerIdentityRoleEnum = "Borrower" | "CoBorrower" | "NonBorrower" | "LoanOfficer" | "LoanProcessor" | "LoanOfficerAssistant" | "SupportingLoanOfficer" | "BuyerAgent" | "SellerAgent" | "TitleInsuranceAgent" | "EscrowAgent" | "SettlementAgent" | "Admin";
7165
7197
  export type CanvasFieldDescriptorSourceEnum = "Standard" | "Custom";
@@ -7352,7 +7384,7 @@ export declare class HttpClient<SecurityDataType = unknown> {
7352
7384
  }
7353
7385
  /**
7354
7386
  * @title The Big POS API
7355
- * @version v3.16.0
7387
+ * @version v3.17.0
7356
7388
  * @termsOfService https://www.thebigpos.com/terms-of-use/
7357
7389
  * @contact Mortgage Automation Technologies <support@thebigpos.com> (https://www.thebigpos.com/terms-of-use/)
7358
7390
  */
@@ -8649,6 +8681,35 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8649
8681
  /** @default true */
8650
8682
  revokeSessions?: boolean;
8651
8683
  }, params?: RequestParams) => Promise<AxiosResponse<NoContentResult, any, {}>>;
8684
+ /**
8685
+ * No description
8686
+ *
8687
+ * @tags BorrowerApplication
8688
+ * @name GetBorrowerApplication
8689
+ * @summary Get a borrower's application as flat answers
8690
+ * @request GET:/api/loans/{loanId}/borrowers/{borrowerId}/application
8691
+ * @secure
8692
+ * @response `200` `BorrowerApplication` OK
8693
+ * @response `400` `any` Bad Request
8694
+ * @response `403` `ProblemDetails` Forbidden
8695
+ * @response `404` `ProblemDetails` Not Found
8696
+ */
8697
+ getBorrowerApplication: (loanId: string, borrowerId: string, params?: RequestParams) => Promise<AxiosResponse<BorrowerApplication, any, {}>>;
8698
+ /**
8699
+ * No description
8700
+ *
8701
+ * @tags BorrowerApplication
8702
+ * @name UpdateBorrowerApplication
8703
+ * @summary Save a step of a borrower's application from flat answers
8704
+ * @request PATCH:/api/loans/{loanId}/borrowers/{borrowerId}/application
8705
+ * @secure
8706
+ * @response `200` `BorrowerApplicationUpdate` OK
8707
+ * @response `400` `any` Bad Request
8708
+ * @response `403` `ProblemDetails` Forbidden
8709
+ * @response `404` `ProblemDetails` Not Found
8710
+ * @response `422` `UnprocessableEntity` Unprocessable Content
8711
+ */
8712
+ updateBorrowerApplication: (loanId: string, borrowerId: string, data: JsonPatchDocument, params?: RequestParams) => Promise<AxiosResponse<BorrowerApplicationUpdate, any, {}>>;
8652
8713
  /**
8653
8714
  * No description
8654
8715
  *
@@ -10672,6 +10733,22 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
10672
10733
  * @response `200` `File` OK
10673
10734
  */
10674
10735
  getListingOpenHouseFlyer: (id: string, params?: RequestParams) => Promise<AxiosResponse<File, any, {}>>;
10736
+ /**
10737
+ * No description
10738
+ *
10739
+ * @tags LoanApplicationEdit
10740
+ * @name OpenBorrowerApplicationEdit
10741
+ * @summary Open a borrower's submitted application for editing
10742
+ * @request POST:/api/loans/{loanId}/application/edit
10743
+ * @secure
10744
+ * @response `200` `BorrowerApplication` OK
10745
+ * @response `400` `any` Bad Request
10746
+ * @response `403` `ProblemDetails` Forbidden
10747
+ * @response `404` `ProblemDetails` Not Found
10748
+ * @response `409` `ProblemDetails` Conflict
10749
+ * @response `423` `any` Locked
10750
+ */
10751
+ openBorrowerApplicationEdit: (loanId: string, data: OpenBorrowerApplicationEditRequest, params?: RequestParams) => Promise<AxiosResponse<BorrowerApplication, any, {}>>;
10675
10752
  /**
10676
10753
  * No description
10677
10754
  *
@@ -11773,6 +11850,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
11773
11850
  * @response `404` `ProblemDetails` Not Found
11774
11851
  * @response `409` `ProblemDetails` Conflict
11775
11852
  * @response `422` `UnprocessableEntity` Unprocessable Content
11853
+ * @response `423` `ProblemDetails` Locked
11776
11854
  */
11777
11855
  completeBorrowerApplication: (loanId: string, borrowerId: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
11778
11856
  /**
@@ -13217,9 +13295,13 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
13217
13295
  * @request GET:/api/template-tokens
13218
13296
  * @secure
13219
13297
  * @response `200` `(TemplateTokenRoot)[]` OK
13298
+ * @response `400` `ProblemDetails` Bad Request
13220
13299
  * @response `403` `ProblemDetails` Forbidden
13221
13300
  */
13222
- getTemplateTokens: (params?: RequestParams) => Promise<AxiosResponse<TemplateTokenRoot[], any, {}>>;
13301
+ getTemplateTokens: (query?: {
13302
+ notificationKey?: string;
13303
+ documentType?: DocumentType;
13304
+ }, params?: RequestParams) => Promise<AxiosResponse<TemplateTokenRoot[], any, {}>>;
13223
13305
  /**
13224
13306
  * No description
13225
13307
  *
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.16.0
104
+ * @version v3.17.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
  */
@@ -1229,6 +1235,35 @@ export class Api extends HttpClient {
1229
1235
  * @response `422` `UnprocessableEntity` Unprocessable Content
1230
1236
  */
1231
1237
  logOut: (query, params = {}) => this.request(Object.assign({ path: `/api/logout`, method: "POST", query: query, secure: true, format: "json" }, params)),
1238
+ /**
1239
+ * No description
1240
+ *
1241
+ * @tags BorrowerApplication
1242
+ * @name GetBorrowerApplication
1243
+ * @summary Get a borrower's application as flat answers
1244
+ * @request GET:/api/loans/{loanId}/borrowers/{borrowerId}/application
1245
+ * @secure
1246
+ * @response `200` `BorrowerApplication` OK
1247
+ * @response `400` `any` Bad Request
1248
+ * @response `403` `ProblemDetails` Forbidden
1249
+ * @response `404` `ProblemDetails` Not Found
1250
+ */
1251
+ getBorrowerApplication: (loanId, borrowerId, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/borrowers/${borrowerId}/application`, method: "GET", secure: true, format: "json" }, params)),
1252
+ /**
1253
+ * No description
1254
+ *
1255
+ * @tags BorrowerApplication
1256
+ * @name UpdateBorrowerApplication
1257
+ * @summary Save a step of a borrower's application from flat answers
1258
+ * @request PATCH:/api/loans/{loanId}/borrowers/{borrowerId}/application
1259
+ * @secure
1260
+ * @response `200` `BorrowerApplicationUpdate` OK
1261
+ * @response `400` `any` Bad Request
1262
+ * @response `403` `ProblemDetails` Forbidden
1263
+ * @response `404` `ProblemDetails` Not Found
1264
+ * @response `422` `UnprocessableEntity` Unprocessable Content
1265
+ */
1266
+ updateBorrowerApplication: (loanId, borrowerId, data, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/borrowers/${borrowerId}/application`, method: "PATCH", body: data, secure: true, type: "application/json", format: "json" }, params)),
1232
1267
  /**
1233
1268
  * No description
1234
1269
  *
@@ -3033,6 +3068,22 @@ export class Api extends HttpClient {
3033
3068
  * @response `200` `File` OK
3034
3069
  */
3035
3070
  getListingOpenHouseFlyer: (id, params = {}) => this.request(Object.assign({ path: `/api/listings/${id}/open-house-flyer`, method: "GET", secure: true, format: "json" }, params)),
3071
+ /**
3072
+ * No description
3073
+ *
3074
+ * @tags LoanApplicationEdit
3075
+ * @name OpenBorrowerApplicationEdit
3076
+ * @summary Open a borrower's submitted application for editing
3077
+ * @request POST:/api/loans/{loanId}/application/edit
3078
+ * @secure
3079
+ * @response `200` `BorrowerApplication` OK
3080
+ * @response `400` `any` Bad Request
3081
+ * @response `403` `ProblemDetails` Forbidden
3082
+ * @response `404` `ProblemDetails` Not Found
3083
+ * @response `409` `ProblemDetails` Conflict
3084
+ * @response `423` `any` Locked
3085
+ */
3086
+ openBorrowerApplicationEdit: (loanId, data, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/application/edit`, method: "POST", body: data, secure: true, type: "application/json", format: "json" }, params)),
3036
3087
  /**
3037
3088
  * No description
3038
3089
  *
@@ -4043,6 +4094,7 @@ export class Api extends HttpClient {
4043
4094
  * @response `404` `ProblemDetails` Not Found
4044
4095
  * @response `409` `ProblemDetails` Conflict
4045
4096
  * @response `422` `UnprocessableEntity` Unprocessable Content
4097
+ * @response `423` `ProblemDetails` Locked
4046
4098
  */
4047
4099
  completeBorrowerApplication: (loanId, borrowerId, params = {}) => this.request(Object.assign({ path: `/api/loans/${loanId}/borrowers/${borrowerId}/complete`, method: "POST", secure: true }, params)),
4048
4100
  /**
@@ -5352,9 +5404,10 @@ export class Api extends HttpClient {
5352
5404
  * @request GET:/api/template-tokens
5353
5405
  * @secure
5354
5406
  * @response `200` `(TemplateTokenRoot)[]` OK
5407
+ * @response `400` `ProblemDetails` Bad Request
5355
5408
  * @response `403` `ProblemDetails` Forbidden
5356
5409
  */
5357
- getTemplateTokens: (params = {}) => this.request(Object.assign({ path: `/api/template-tokens`, method: "GET", secure: true, format: "json" }, params)),
5410
+ getTemplateTokens: (query, params = {}) => this.request(Object.assign({ path: `/api/template-tokens`, method: "GET", query: query, secure: true, format: "json" }, params)),
5358
5411
  /**
5359
5412
  * No description
5360
5413
  *