diff --git a/dist/client.cjs b/dist/client.cjs index 935edff..a660132 100644 --- a/dist/client.cjs +++ b/dist/client.cjs @@ -683,6 +683,16 @@ var PubSubApiClient = class { */ async #subscribe(subscribeRequest) { try { + if (typeof subscribeRequest.numRequested !== "number") { + throw new Error( + `Expected a number type for number of requested events but got ${typeof subscribeRequest.numRequested}` + ); + } + if (!Number.isSafeInteger(subscribeRequest.numRequested) || subscribeRequest.numRequested < 1) { + throw new Error( + `Expected an integer greater than 1 for number of requested events but got ${subscribeRequest.numRequested}` + ); + } if (!this.#client) { throw new Error("Pub/Sub API client is not connected."); } diff --git a/dist/client.d.ts.map b/dist/client.d.ts.map index 1e1846e..8e8b942 100644 --- a/dist/client.d.ts.map +++ b/dist/client.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.js"],"names":[],"mappings":"AA0EA;;;;GAIG;AACH;IAeI;;;OAGG;IACH,qBAFW,MAAM,EAchB;IAED;;;;OAIG;IACH,WAHa,QAAQ,IAAI,CAAC,CAuBzB;IAED;;;;;;;OAOG;IACH,6BANW,MAAM,eACN,MAAM,mBACN,MAAM,GACJ,QAAQ,IAAI,CAAC,CAmCzB;IAmDD;;;;;;OAMG;IACH,sCALW,MAAM,gBACN,MAAM,GACJ,qBAAqB,CASjC;IAED;;;;;;;OAOG;IACH,iCANW,MAAM,gBACN,MAAM,YACN,MAAM,GACJ,qBAAqB,CAUjC;IAED;;;;;;OAMG;IACH,qBALW,MAAM,gBACN,MAAM,GACJ,qBAAqB,CAQjC;IAqGD;;;;;;;OAOG;IACH,mBANW,MAAM,iCAEN,MAAM,GACJ,QAAQ,aAAa,CAAC,CAwClC;IAED;;;OAGG;IACH,cAGC;;CAyDJ;;cAjda,MAAM;oBACN,MAAM;;;QAMN,MAAM"} \ No newline at end of file +{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.js"],"names":[],"mappings":"AA0EA;;;;GAIG;AACH;IAeI;;;OAGG;IACH,qBAFW,MAAM,EAchB;IAED;;;;OAIG;IACH,WAHa,QAAQ,IAAI,CAAC,CAuBzB;IAED;;;;;;;OAOG;IACH,6BANW,MAAM,eACN,MAAM,mBACN,MAAM,GACJ,QAAQ,IAAI,CAAC,CAmCzB;IAmDD;;;;;;OAMG;IACH,sCALW,MAAM,gBACN,MAAM,GACJ,qBAAqB,CASjC;IAED;;;;;;;OAOG;IACH,iCANW,MAAM,gBACN,MAAM,YACN,MAAM,GACJ,qBAAqB,CAUjC;IAED;;;;;;OAMG;IACH,qBALW,MAAM,gBACN,MAAM,GACJ,qBAAqB,CAQjC;IAkHD;;;;;;;OAOG;IACH,mBANW,MAAM,iCAEN,MAAM,GACJ,QAAQ,aAAa,CAAC,CAwClC;IAED;;;OAGG;IACH,cAGC;;CAyDJ;;cA9da,MAAM;oBACN,MAAM;;;QAMN,MAAM"} \ No newline at end of file diff --git a/dist/client.js b/dist/client.js index a492eba..be0c174 100644 --- a/dist/client.js +++ b/dist/client.js @@ -650,6 +650,16 @@ var PubSubApiClient = class { */ async #subscribe(subscribeRequest) { try { + if (typeof subscribeRequest.numRequested !== "number") { + throw new Error( + `Expected a number type for number of requested events but got ${typeof subscribeRequest.numRequested}` + ); + } + if (!Number.isSafeInteger(subscribeRequest.numRequested) || subscribeRequest.numRequested < 1) { + throw new Error( + `Expected an integer greater than 1 for number of requested events but got ${subscribeRequest.numRequested}` + ); + } if (!this.#client) { throw new Error("Pub/Sub API client is not connected."); } diff --git a/package.json b/package.json index e436993..5ae7d0b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salesforce-pubsub-api-client", - "version": "3.2.2", + "version": "3.2.3", "type": "module", "description": "A node client for the Salesforce Pub/Sub API", "author": "pozil", @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@grpc/grpc-js": "^1.9.12", + "@grpc/grpc-js": "^1.9.13", "@grpc/proto-loader": "^0.7.10", "avro-js": "^1.11.3", "certifi": "^14.5.15", @@ -32,10 +32,10 @@ }, "devDependencies": { "@chialab/esbuild-plugin-meta-url": "^0.17.7", - "eslint": "^8.55.0", + "eslint": "^8.56.0", "husky": "^8.0.3", "lint-staged": "^15.2.0", - "prettier": "^3.1.0", + "prettier": "^3.1.1", "tsup": "^8.0.1", "typescript": "^5.3.3" }, diff --git a/src/client.js b/src/client.js index e5ec7fc..9d33e94 100644 --- a/src/client.js +++ b/src/client.js @@ -281,6 +281,19 @@ export default class PubSubApiClient { */ async #subscribe(subscribeRequest) { try { + if (typeof subscribeRequest.numRequested !== 'number') { + throw new Error( + `Expected a number type for number of requested events but got ${typeof subscribeRequest.numRequested}` + ); + } + if ( + !Number.isSafeInteger(subscribeRequest.numRequested) || + subscribeRequest.numRequested < 1 + ) { + throw new Error( + `Expected an integer greater than 1 for number of requested events but got ${subscribeRequest.numRequested}` + ); + } if (!this.#client) { throw new Error('Pub/Sub API client is not connected.'); }