{"_id":"@revmob/minimum-bid-validator","_rev":"54-4b9898ec49c4d022b1546fa8160517c8","name":"@revmob/minimum-bid-validator","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@revmob/minimum-bid-validator","version":"0.1.0","author":{"name":"Revmob"},"license":"ISC","_id":"@revmob/minimum-bid-validator@0.1.0","maintainers":[{"name":"hbarcelos","email":"rick.hjpbarcelos@gmail.com"}],"ava":{"babel":"inherit","require":["babel-register"]},"dist":{"shasum":"4ae72e98a70c80c53b1fe4038813e77dec5fb694","tarball":"https://registry.npmjs.org/@revmob/minimum-bid-validator/-/minimum-bid-validator-0.1.0.tgz","integrity":"sha512-BtuUIdRX3e+5Z9usxs2zgbCRQXBFir6QXGdikEnppdYS/pK/g4ERZMTPkPTI4fklcyG9J29l4ULZS6PaisjkZA==","signatures":[{"sig":"MEYCIQCiVDfixQEdkQiieEzXHE9ym3k2I3a8I4qddklkgN9H8AIhAItGHF34pNT8jFeYtrnoThMHUUjWKgiJ5HbRjypKcmQw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","module":"src/index.js","_shasum":"4ae72e98a70c80c53b1fe4038813e77dec5fb694","gitHead":"fdd452d14abfbdfc842ce9ecd9328587f8561f81","scripts":{"test":"ava","build":"babel src/ -d dist/ --copy-files","test:watch":"ava --watch","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"hbarcelos","email":"rick.hjpbarcelos@gmail.com"},"_npmVersion":"2.15.12","description":"Revmob minimum bid validation utility","directories":{},"_nodeVersion":"4.4.6","devDependencies":{"ava":"^0.23.0","eslint":"^4.11.0","babel-cli":"^6.26.0","testdouble":"^3.2.6","babel-preset-env":"^1.6.1","eslint-plugin-node":"^5.2.1","eslint-plugin-import":"^2.8.0","babel-plugin-istanbul":"^4.1.5","eslint-plugin-promise":"^3.6.0","eslint-config-standard":"^10.2.1","eslint-plugin-standard":"^3.0.1","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/minimum-bid-validator-0.1.0.tgz_1511282348987_0.4070877206977457","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@revmob/minimum-bid-validator","version":"0.1.1","author":{"name":"Revmob"},"license":"ISC","_id":"@revmob/minimum-bid-validator@0.1.1","maintainers":[{"name":"guisouza","email":"gui_souza@me.com"},{"name":"hbarcelos","email":"rick.hjpbarcelos@gmail.com"},{"name":"revmobadmin","email":"revmobads@revmob.com"}],"ava":{"babel":"inherit","require":["babel-register"]},"dist":{"shasum":"5f88990eba3d6fcb9a31e3bb61568a70f5078608","tarball":"https://registry.npmjs.org/@revmob/minimum-bid-validator/-/minimum-bid-validator-0.1.1.tgz","integrity":"sha512-19PpyEic0NGlw3elY7ZKJOYiawZTua493wtEZXUeDHI+zMtmOXH+gkgNajXB/QjftG9TqI3OmdXp02YiVWH+hw==","signatures":[{"sig":"MEUCIQDEeDV1iUYne8trDKSz7LgQJLOri/YsZMFG7eaAoJwNqAIgHsRJZ+utVUC3obODBdbF8j0+RsX1Ix2XrSx81n0u3Y8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","module":"src/index.js","_shasum":"5f88990eba3d6fcb9a31e3bb61568a70f5078608","gitHead":"267586167fdb14f46143f65116bc977df9599d09","scripts":{"test":"ava","build":"babel src/ -d dist/ --copy-files","test:watch":"ava --watch","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"hbarcelos","email":"rick.hjpbarcelos@gmail.com"},"_npmVersion":"2.15.12","description":"Revmob minimum bid validation utility","directories":{},"_nodeVersion":"4.4.6","devDependencies":{"ava":"^0.23.0","eslint":"^4.11.0","babel-cli":"^6.26.0","testdouble":"^3.2.6","babel-preset-env":"^1.6.1","eslint-plugin-node":"^5.2.1","eslint-plugin-import":"^2.8.0","babel-plugin-istanbul":"^4.1.5","eslint-plugin-promise":"^3.6.0","eslint-config-standard":"^10.2.1","eslint-plugin-standard":"^3.0.1","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/minimum-bid-validator-0.1.1.tgz_1511290735615_0.8120922057423741","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@revmob/minimum-bid-validator","version":"0.1.2","author":{"name":"Revmob"},"license":"ISC","_id":"@revmob/minimum-bid-validator@0.1.2","maintainers":[{"name":"guisouza","email":"gui_souza@me.com"},{"name":"hbarcelos","email":"rick.hjpbarcelos@gmail.com"},{"name":"revmobadmin","email":"revmobads@revmob.com"}],"ava":{"babel":"inherit","require":["babel-register"]},"dist":{"shasum":"0cd0f500bb5aac010120251a02f485b0113d0fa4","tarball":"https://registry.npmjs.org/@revmob/minimum-bid-validator/-/minimum-bid-validator-0.1.2.tgz","integrity":"sha512-VdRH3kH0zvM3NacdZZfdN0LvqkRcI5rzQUnuyYeTvUGYWN1saDQQm8MV/wcDCWpAlxns9OLVkvtZ5p6JZJLIow==","signatures":[{"sig":"MEQCIBl6yJS6tyeHleKRzMaIdHO6Jp3W+REvO3J/1V0fwdb0AiAHbQL+xC7T4g6lZ7p/P60k/9oj2A9lrlnHpwLaiE/Fug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","module":"src/index.js","gitHead":"d984991ca732a1202daca87451b07373bddcdbb7","scripts":{"test":"ava","build":"babel src/ -d dist/ --copy-files","test:watch":"ava --watch","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"hbarcelos","email":"rick.hjpbarcelos@gmail.com"},"_npmVersion":"5.5.1","description":"Revmob minimum bid validation utility","directories":{},"_nodeVersion":"8.9.1","devDependencies":{"ava":"^0.23.0","eslint":"^4.11.0","babel-cli":"^6.26.0","testdouble":"^3.2.6","babel-preset-env":"^1.6.1","eslint-plugin-node":"^5.2.1","eslint-plugin-import":"^2.8.0","babel-plugin-istanbul":"^4.1.5","eslint-plugin-promise":"^3.6.0","eslint-config-standard":"^10.2.1","eslint-plugin-standard":"^3.0.1","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/minimum-bid-validator-0.1.2.tgz_1511448354151_0.5687089306302369","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@revmob/minimum-bid-validator","version":"0.1.3","author":{"name":"Revmob"},"license":"ISC","_id":"@revmob/minimum-bid-validator@0.1.3","maintainers":[{"name":"guisouza","email":"gui_souza@me.com"},{"name":"hbarcelos","email":"rick.hjpbarcelos@gmail.com"},{"name":"revmobadmin","email":"revmobads@revmob.com"}],"ava":{"babel":"inherit","require":["babel-register"]},"dist":{"shasum":"417509d6467848243b247339dde394ca9519d388","tarball":"https://registry.npmjs.org/@revmob/minimum-bid-validator/-/minimum-bid-validator-0.1.3.tgz","integrity":"sha512-Wjh8kDcLz1kA/BQnOn9jZ5W7qjbCvoHx0h6tDP+GDekffNF8yBp3b5G6Nia7r+CRnrB1+PZZ0cya61DNQiCxUA==","signatures":[{"sig":"MEYCIQDmrxWsTTkwBh521kE9vWnLHsq91ZNTgyaA6qAvzNuR0AIhAOVNCZqSxVkQgNF2aLk4+h7m8eXeyDXrWC0e0MJPY0eQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","module":"src/index.js","gitHead":"6f7c7acd466503054cd6751db56701dc1ab89d7a","scripts":{"test":"ava","build":"babel src/ -d dist/ --copy-files","test:watch":"ava --watch","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"hbarcelos","email":"rick.hjpbarcelos@gmail.com"},"_npmVersion":"5.5.1","description":"Revmob minimum bid validation utility","directories":{},"_nodeVersion":"8.9.1","dependencies":{"babel-runtime":"^6.26.0"},"devDependencies":{"ava":"^0.23.0","eslint":"^4.11.0","babel-cli":"^6.26.0","testdouble":"^3.2.6","babel-preset-env":"^1.6.1","eslint-plugin-node":"^5.2.1","eslint-plugin-import":"^2.8.0","babel-plugin-istanbul":"^4.1.5","eslint-plugin-promise":"^3.6.0","eslint-config-standard":"^10.2.1","eslint-plugin-standard":"^3.0.1","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/minimum-bid-validator-0.1.3.tgz_1511460557324_0.989591060904786","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-11-21T16:39:09.157Z","modified":"2026-03-06T15:29:13.121Z","0.1.0":"2017-11-21T16:39:09.157Z","0.1.1":"2017-11-21T18:58:55.798Z","0.1.2":"2017-11-23T14:45:54.224Z","0.1.3":"2017-11-23T18:09:17.455Z"},"author":{"name":"Revmob"},"license":"ISC","description":"Revmob minimum bid validation utility","maintainers":[{"email":"rafael@artnic.io","name":"artnic"},{"email":"lucas.souza@infleux.co","name":"inf.simstm"},{"email":"igor.correa@infleux.co","name":"igor.correa"}],"readme":"# Minimum Bid Validator\n\n## Motivation\n\nThis module contains simple rules for minimum bid retrieval and validation for different countries and OSs.\n\n## Installation\n\n```sh\nnpm install --save @revmob/minimum-bid-validator\n```\n\n## Usage\n\n```javascript\n// CommonJS:\nconst minimumBidValidator = require('@revmob/minimum-bid-validation').default\n\n// or with ES6 modules:\nimport minimumBidValidator from '@revmob/minimum-bid-validation'\n```\n\n### Public Interface\n\n#### Methods\n\n```javascript\nminimumBidValidator.setDefaultMinimumBid(defaults: BidInfo) => Void\nminimumBidValidator.setAllBidsByCountry(bids: CountryBids) => Void\nminimumBidValidator.getMinimumBid(os: String, countryList: String[]) => Number | undefined\nminimumBidValidator.validate(os: String, countryList: String[], currentBid: Number) => Void, throws: Error\n```\n\n#### Types\n\n```javascript\ninterface BidInfo {\n  [os: String]: Number\n}\n\ninterface CountryBids {\n  [countryCode: String]: BidInfo\n}\n```\n\n#### Rules\n\n##### `getMinimumBid`\n\n- If the country list contains invalid countries, only the valid ones are considered.\n- If there are no valid countries in the country list, returns the **default minimum bid**.\n- If the country list contains all countries set in `setAllBidsByCountry`, returns the **default minimum bid**.\n- If the OS is missing for one or more of the countries, it will not be considered.\n- If the OS is missing for all countries, returns `undefined`.\n\n##### `validate`\n\n- If the country list contains invalid countries, only the valid ones are considered.\n- If there are no valid countries in the country list, uses the **default minimum bid** to validate.\n- If the country list contains all countries set in `setAllBidsByCountry`, uses the **default minimum bid** to validate.\n- If the OS is missing for one or more of the countries, it will not be considered.\n- If the OS is missing for all countries, always throws.\n\n### Example\n\n```javascript\n// First setup...\nconst defaultBids = {\n  'android': 1,\n  'ios': 2\n}\n\n// Setting the default bids\nminimumBidValidator.setDefaultMinimumBid(defaultBids)\n\n// Setting the bids for each country\nconst bids = {\n  BR: { 'android': 1, 'ios': 1 }\n  US: { 'android': 2, 'ios': 2 }\n  IN: { 'android': 0.5, 'ios': 0.75 }\n}\n\nminimumBidValidator.setAllBidsByCountry(bids)\n\n// Then using...\n\n// Getting the minimum bid for android in ['BR', 'US']\nminimumBidValidator.getMinimumBid('android', ['BR', 'US']) // returns 2\n\n// Validate if a given bid is greater than or equal the minimum bid\nminimumBidValidator.validate('android', ['BR', 'US'], 1) // throws Error\n```\n","readmeFilename":"README.md"}