@matech/thebigpos-sdk 3.30.0-main-8913 → 3.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,19 +1,12 @@
1
1
  {
2
2
  "name": "@matech/thebigpos-sdk",
3
- "version": "3.30.0-main-8913",
3
+ "version": "3.31.0",
4
4
  "description": "The Big POS Typescript SDK",
5
- "main": "dist/index.cjs",
6
- "module": "dist/index.js",
7
- "react-native": "dist/index.js",
5
+ "main": "dist/index.js",
8
6
  "types": "dist/index.d.ts",
9
- "files": [
10
- "dist",
11
- "src",
12
- "index.js"
13
- ],
14
7
  "scripts": {
15
- "build": "rimraf dist && tsc && esbuild dist/index.js --format=cjs --platform=node --packages=external --sourcemap --outfile=dist/index.cjs",
16
- "postbuild": "node -e \"if (typeof require('./').Api !== 'function') { console.error('Smoke check failed: the CommonJS entry does not export Api'); process.exit(1) }\"",
8
+ "build": "rimraf dist && tsc",
9
+ "test": "mocha -r ts-node/register 'src/api_test.spec.ts' --exit",
17
10
  "browserify": "tsc && esbuild dist/index.js --bundle --minify --sourcemap --global-name=thebigpos --outfile=dist/thebigpos.min.js",
18
11
  "prepare": "husky"
19
12
  },
@@ -33,22 +26,15 @@
33
26
  "url": "https://github.com/MortgageAutomationTechnologies/thebigpos-sdk-typescript/issues"
34
27
  },
35
28
  "homepage": "https://github.com/MortgageAutomationTechnologies/thebigpos-sdk-typescript#readme",
36
- "engines": {
37
- "node": ">=18"
38
- },
39
- "peerDependencies": {
40
- "axios": "^1"
29
+ "dependencies": {
30
+ "axios": "^1.7.7"
41
31
  },
42
32
  "devDependencies": {
43
- "axios": "^1.20.0",
44
- "esbuild": "^0.28.1",
33
+ "esbuild": "^0.27.0",
45
34
  "husky": "^9.1.5",
46
- "rimraf": "6.1.4",
35
+ "rimraf": "6.1.1",
36
+ "ts-node": "^10.9.2",
47
37
  "typescript": "^5.5.4"
48
38
  },
49
- "resolutions": {
50
- "brace-expansion": "^5.0.12",
51
- "follow-redirects": "^1.16.1"
52
- },
53
- "swaggerSha256": "559b6b2ba69a254a45166ef53bfe5e6c02b96b80947924d3ce04ecae65b0e095"
39
+ "swaggerSha256": "9b35860ed24aa28054e297e6652c9fb9bfd3628605d9fc79e3c69cdb7d131400"
54
40
  }
@@ -0,0 +1,56 @@
1
+ /*
2
+ This script is meant to run after the SDK has been generated.
3
+
4
+ - It updates the generated code to ensure that all PATCH methods use ContentType.JsonPatch.
5
+ - It also ensures that the ContentType enum includes JsonPatch and modifies the Operation interface
6
+ to allow any value for the `value` property instead of just object or null.
7
+
8
+ This is necessary because the SDK generation does not currently handle these cases correctly.
9
+ */
10
+
11
+ const fs = require('fs')
12
+
13
+ const path = require('path').resolve(__dirname, '../src/index.ts')
14
+
15
+ if (!fs.existsSync(path)) {
16
+ console.error(`Error: File not found at path "${path}". Please ensure the SDK has been generated.`)
17
+ process.exit(1)
18
+ }
19
+ let content
20
+ try {
21
+ content = fs.readFileSync(path, 'utf8')
22
+ } catch (err) {
23
+ console.error(`Error: Unable to read file at path "${path}". Details: ${err.message}`)
24
+ process.exit(1)
25
+ }
26
+
27
+ // Update PATCH methods to use ContentType.JsonPatch
28
+ content = content.replace(
29
+ /(method:\s*"PATCH"[\s\S]+?)type:\s*ContentType\.Json/g,
30
+ (match) => match.replace('ContentType.Json', 'ContentType.JsonPatch')
31
+ )
32
+
33
+ // Ensure JsonPatch is included in the ContentType enum
34
+ content = content.replace(
35
+ /export enum ContentType\s*{([\s\S]*?)}/,
36
+ (match, enumBody) => {
37
+ if (enumBody.includes('JsonPatch')) return match
38
+ const insertion = ` JsonPatch = "application/json-patch+json",\n `
39
+ return `export enum ContentType {\n${insertion}${enumBody.trim()}\n}`
40
+ }
41
+ )
42
+
43
+ // Fix the Operation interface to allow any value
44
+ content = content.replace(
45
+ /export interface Operation\s*{([\s\S]*?)}/,
46
+ (match, body) => {
47
+ const updated = body.replace(
48
+ /value\?:\s*object\s*\|?\s*null?;/,
49
+ 'value?: string | number | boolean | null | object;'
50
+ )
51
+ return `export interface Operation {\n ${updated.trim()}\n}`
52
+ }
53
+ )
54
+
55
+ fs.writeFileSync(path, content)
56
+ console.log('SDK patch complete: All PATCH methods now use ContentType.JsonPatch.')
package/src/index.ts CHANGED
@@ -319,7 +319,8 @@ export type LoanLogType =
319
319
  | "LosFieldWriteBack"
320
320
  | "ReferrerChangeDiscarded"
321
321
  | "TaskEdited"
322
- | "SigningMethodChanged";
322
+ | "SigningMethodChanged"
323
+ | "ConsumerConnectUnlinked";
323
324
 
324
325
  export type LoanLienPosition = "First" | "Subordinate";
325
326
 
@@ -6135,6 +6136,12 @@ export interface LosSyncStep {
6135
6136
  atUtc: string;
6136
6137
  }
6137
6138
 
6139
+ export interface LosUnlinkedRecipient {
6140
+ email: string;
6141
+ contactType: string;
6142
+ recipientId: string;
6143
+ }
6144
+
6138
6145
  export interface LosWebhook {
6139
6146
  /** @format uuid */
6140
6147
  id: string;
@@ -9564,7 +9571,8 @@ export type LoanLogTypeEnum =
9564
9571
  | "LosFieldWriteBack"
9565
9572
  | "ReferrerChangeDiscarded"
9566
9573
  | "TaskEdited"
9567
- | "SigningMethodChanged";
9574
+ | "SigningMethodChanged"
9575
+ | "ConsumerConnectUnlinked";
9568
9576
 
9569
9577
  export type LoanLogDetailLevelEnum = "None" | "Info" | "Warning" | "Error";
9570
9578
 
@@ -9590,7 +9598,8 @@ export type LoanLogDetailTypeEnum =
9590
9598
  | "LosFieldWriteBack"
9591
9599
  | "ReferrerChangeDiscarded"
9592
9600
  | "TaskEdited"
9593
- | "SigningMethodChanged";
9601
+ | "SigningMethodChanged"
9602
+ | "ConsumerConnectUnlinked";
9594
9603
 
9595
9604
  export type LoanProgressWidgetConfigTypeEnum = "LoanProgress";
9596
9605
 
@@ -10205,15 +10214,7 @@ export class HttpClient<SecurityDataType = unknown> {
10205
10214
  property instanceof Array ? property : [property];
10206
10215
 
10207
10216
  for (const formItem of propertyContent) {
10208
- // React Native files are plain { uri, name, type } objects, not Blob/File.
10209
- const isReactNativeFile =
10210
- !!formItem &&
10211
- typeof formItem === "object" &&
10212
- "uri" in formItem &&
10213
- "name" in formItem &&
10214
- "type" in formItem;
10215
- const isFileType =
10216
- isReactNativeFile || formItem instanceof Blob || formItem instanceof File;
10217
+ const isFileType = formItem instanceof Blob || formItem instanceof File;
10217
10218
  formData.append(
10218
10219
  key,
10219
10220
  isFileType ? formItem : this.stringifyFormItem(formItem),
@@ -10275,7 +10276,7 @@ export class HttpClient<SecurityDataType = unknown> {
10275
10276
 
10276
10277
  /**
10277
10278
  * @title The Big POS API
10278
- * @version v3.30.0
10279
+ * @version v3.31.0
10279
10280
  * @termsOfService https://www.thebigpos.com/terms-of-use/
10280
10281
  * @contact Mortgage Automation Technologies <support@thebigpos.com> (https://www.thebigpos.com/terms-of-use/)
10281
10282
  */
@@ -16772,6 +16773,7 @@ export class Api<
16772
16773
  * @response `204` `void` No Content
16773
16774
  * @response `400` `ProblemDetails` Bad Request
16774
16775
  * @response `422` `ProblemDetails` Unprocessable Content
16776
+ * @response `423` `ProblemDetails` Locked
16775
16777
  */
16776
16778
  bulkSetLoanCustomFieldValues: (
16777
16779
  loanId: string,
@@ -16799,6 +16801,7 @@ export class Api<
16799
16801
  * @response `400` `ProblemDetails` Bad Request
16800
16802
  * @response `404` `ProblemDetails` Not Found
16801
16803
  * @response `422` `ProblemDetails` Unprocessable Content
16804
+ * @response `423` `ProblemDetails` Locked
16802
16805
  */
16803
16806
  setLoanCustomFieldValue: (
16804
16807
  loanId: string,
@@ -18923,6 +18926,35 @@ export class Api<
18923
18926
  ...params,
18924
18927
  }),
18925
18928
 
18929
+ /**
18930
+ * No description
18931
+ *
18932
+ * @tags LoanSigningMethod
18933
+ * @name UnlinkLoanFromConsumerConnect
18934
+ * @summary Unlink the loan's borrowers from Consumer Connect
18935
+ * @request POST:/api/loans/{loanId}/signing-method/unlink
18936
+ * @secure
18937
+ * @response `200` `(LosUnlinkedRecipient)[]` OK
18938
+ * @response `400` `ProblemDetails` Bad Request
18939
+ * @response `403` `ProblemDetails` Forbidden
18940
+ * @response `404` `ProblemDetails` Not Found
18941
+ * @response `422` `ProblemDetails` Unprocessable Content
18942
+ * @response `423` `ProblemDetails` Locked
18943
+ * @response `429` `ProblemDetails` Too Many Requests
18944
+ * @response `504` `void` Gateway Timeout
18945
+ */
18946
+ unlinkLoanFromConsumerConnect: (
18947
+ loanId: string,
18948
+ params: RequestParams = {},
18949
+ ) =>
18950
+ this.request<LosUnlinkedRecipient[], ProblemDetails | void>({
18951
+ path: `/api/loans/${loanId}/signing-method/unlink`,
18952
+ method: "POST",
18953
+ secure: true,
18954
+ format: "json",
18955
+ ...params,
18956
+ }),
18957
+
18926
18958
  /**
18927
18959
  * No description
18928
18960
  *
package/tsconfig.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es6",
4
+ "module": "esnext",
5
+ "allowJs": true,
6
+ "sourceMap": true,
7
+ "outDir": "./dist",
8
+ "strict": true,
9
+ "moduleResolution": "node",
10
+ "baseUrl": "./",
11
+ "declaration": true,
12
+ "paths": {
13
+ "*": [
14
+ "node_modules/*"
15
+ ]
16
+ },
17
+ "typeRoots": [
18
+ "./node_modules/@types"
19
+ ],
20
+ "esModuleInterop": true,
21
+ "skipLibCheck": true,
22
+ "forceConsistentCasingInFileNames": true,
23
+ "resolveJsonModule": true
24
+ },
25
+ "include": ["./src/**/*"],
26
+ "exclude": ["./dist"]
27
+ }