diff --git a/package-lock.json b/package-lock.json index b18383d..90556a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,14 @@ "version": "2.1.0", "license": "MIT", "dependencies": { + "@tadashi/hex-id": "2.0.0", "camaro": "6.1.0", "got": "12.1.0" }, "devDependencies": { "@babel/core": "7.18.2", "@babel/eslint-parser": "7.18.2", - "@snyk/protect": "1.946.0", + "@snyk/protect": "1.947.0", "ava": "4.3.0", "c8": "7.11.3", "eslint": "8.17.0", @@ -530,9 +531,9 @@ } }, "node_modules/@snyk/protect": { - "version": "1.946.0", - "resolved": "https://registry.npmjs.org/@snyk/protect/-/protect-1.946.0.tgz", - "integrity": "sha512-LdqVSuI3gFX87dLfZsUvlb5lp7XuURa22uY2oDuOyNxk4Z0gsSOoYxYrFXUW2RreH+mch1T6rU5HztQkoL38YQ==", + "version": "1.947.0", + "resolved": "https://registry.npmjs.org/@snyk/protect/-/protect-1.947.0.tgz", + "integrity": "sha512-F/8yrTbrxNfLbPNbNXuFrrMeaC3+uTzOqNQTnvgh8ctB/CVlkYJfDpZpEReb9VVl3KK5RDdgUDv/Bzz0pbansA==", "dev": true, "bin": { "snyk-protect": "bin/snyk-protect" @@ -552,6 +553,14 @@ "node": ">=14.16" } }, + "node_modules/@tadashi/hex-id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tadashi/hex-id/-/hex-id-2.0.0.tgz", + "integrity": "sha512-FaREVU+UQNXJvZrStmsOVfJzpcMbAWz1qvZNUJTopRQjOr1Tca2aKM0JIquYvktCiDZHZusHdIshgVR9QcL17w==", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/@types/cacheable-request": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", @@ -588,9 +597,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.40", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.40.tgz", - "integrity": "sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg==" + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -892,9 +901,9 @@ } }, "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.20.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz", + "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==", "dev": true, "funding": [ { @@ -907,10 +916,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", + "caniuse-lite": "^1.0.30001349", + "electron-to-chromium": "^1.4.147", "escalade": "^3.1.1", - "node-releases": "^2.0.3", + "node-releases": "^2.0.5", "picocolors": "^1.0.0" }, "bin": { @@ -1097,9 +1106,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001346", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001346.tgz", - "integrity": "sha512-q6ibZUO2t88QCIPayP/euuDREq+aMAxFE5S70PkrLh0iTDj/zEhgvJRKC2+CvXY6EWc6oQwUR48lL5vCW6jiXQ==", + "version": "1.0.30001349", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001349.tgz", + "integrity": "sha512-VFaWW3jeo6DLU5rwdiasosxhYSduJgSGil4cSyX3/85fbctlE58pXAkWyuRmVA0r2RxsOSVYUTZcySJ8WpbTxw==", "dev": true, "funding": [ { @@ -3796,7 +3805,7 @@ "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4962,9 +4971,9 @@ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@snyk/protect": { - "version": "1.946.0", - "resolved": "https://registry.npmjs.org/@snyk/protect/-/protect-1.946.0.tgz", - "integrity": "sha512-LdqVSuI3gFX87dLfZsUvlb5lp7XuURa22uY2oDuOyNxk4Z0gsSOoYxYrFXUW2RreH+mch1T6rU5HztQkoL38YQ==", + "version": "1.947.0", + "resolved": "https://registry.npmjs.org/@snyk/protect/-/protect-1.947.0.tgz", + "integrity": "sha512-F/8yrTbrxNfLbPNbNXuFrrMeaC3+uTzOqNQTnvgh8ctB/CVlkYJfDpZpEReb9VVl3KK5RDdgUDv/Bzz0pbansA==", "dev": true }, "@szmarczak/http-timer": { @@ -4975,6 +4984,11 @@ "defer-to-connect": "^2.0.1" } }, + "@tadashi/hex-id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tadashi/hex-id/-/hex-id-2.0.0.tgz", + "integrity": "sha512-FaREVU+UQNXJvZrStmsOVfJzpcMbAWz1qvZNUJTopRQjOr1Tca2aKM0JIquYvktCiDZHZusHdIshgVR9QcL17w==" + }, "@types/cacheable-request": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", @@ -5011,9 +5025,9 @@ } }, "@types/node": { - "version": "17.0.40", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.40.tgz", - "integrity": "sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg==" + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -5226,15 +5240,15 @@ } }, "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.20.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz", + "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", + "caniuse-lite": "^1.0.30001349", + "electron-to-chromium": "^1.4.147", "escalade": "^3.1.1", - "node-releases": "^2.0.3", + "node-releases": "^2.0.5", "picocolors": "^1.0.0" } }, @@ -5368,9 +5382,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001346", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001346.tgz", - "integrity": "sha512-q6ibZUO2t88QCIPayP/euuDREq+aMAxFE5S70PkrLh0iTDj/zEhgvJRKC2+CvXY6EWc6oQwUR48lL5vCW6jiXQ==", + "version": "1.0.30001349", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001349.tgz", + "integrity": "sha512-VFaWW3jeo6DLU5rwdiasosxhYSduJgSGil4cSyX3/85fbctlE58pXAkWyuRmVA0r2RxsOSVYUTZcySJ8WpbTxw==", "dev": true }, "cbor": { @@ -7327,7 +7341,7 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "resolve": { diff --git a/package.json b/package.json index b0878bd..5e5b952 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tadashi/cep", - "version": "2.1.0", + "version": "2.1.1", "description": "Busca por CEP diretamente da API dos Correios", "keywords": [ "cep", @@ -37,6 +37,7 @@ "readme.md" ], "dependencies": { + "@tadashi/hex-id": "2.0.0", "camaro": "6.1.0", "got": "12.1.0" }, @@ -48,11 +49,11 @@ "eslint": "8.17.0", "eslint-config-xo": "0.41.0", "eslint-plugin-unicorn": "42.0.0", - "@snyk/protect": "1.946.0" + "@snyk/protect": "1.947.0" }, "snyk": true, "ava": { "timeout": "30s" }, "babel": {} -} \ No newline at end of file +} diff --git a/src/lib/service.js b/src/lib/service.js index 16ba06e..874f707 100644 --- a/src/lib/service.js +++ b/src/lib/service.js @@ -1,5 +1,6 @@ // import {inspect} from 'node:util' import got from 'got' +import hexID from '@tadashi/hex-id' import {transform} from 'camaro' import CepError from './cep-error.js' import dict from './dict.js' @@ -10,6 +11,8 @@ const wsdl = { } async function service(code) { + const id = hexID() + try { const xml = `${code}` const response = await got.post(wsdl.producao, { @@ -26,7 +29,9 @@ async function service(code) { bairro: '//bairro', cep: '//cep', cidade: '//cidade', - complemento: '//complemento2', + complemento: '//complemento', + complemento2: '//complemento2', + end: '//end', endereco: '//end', uf: '//uf', } @@ -42,6 +47,7 @@ async function service(code) { const data = await transform(response.body, template) return { + id, success: true, status: 200, ...data, @@ -49,6 +55,7 @@ async function service(code) { } catch (error) { const r = dict.has(error.message) && dict.get(error.message) const b = { + id, success: false, status: 500, message: error.message,