summaryrefslogtreecommitdiffstats
path: root/cepis-0.2.0-1.rockspec
diff options
context:
space:
mode:
authorMurilo Ijanc <[email protected]>2026-07-27 20:33:25 -0300
committerMurilo Ijanc <[email protected]>2026-07-27 20:33:25 -0300
commit58dbe934a90c1eda8e76cd218a413f01a4d9b11d (patch)
treedeaee88adad3791c8f010db7f7161a95318ed67e /cepis-0.2.0-1.rockspec
parent7fd555fcaf4304cb0dff3e8f5661565c3618299e (diff)
downloadlua-main.tar.gz
Carry the municipality of a missing CEP on not_foundHEADv0.2.0main
A CEP that fails is rarely a random number: it is someone who knows the city and guessed the digits, and the classic guess is the -000 that 957 municipalities never received. The API now answers that 404 with an optional faixa block naming where the CEP would have been, so a caller can turn "CEP does not exist" into something the user can act on. It hangs off the error, never off an address: the lookup still failed. Parsing gives up quietly at every step — no block, a block that is not an object, one without a municipality to name — because a broken piece of context must not turn a clean not-found into a parse failure. cep_ini and cep_fim are the CEPs that exist, not the range the Correios publish, and the interval between them is sparse; ceps is what keeps the pair from being read as a list of valid CEPs.
Diffstat (limited to 'cepis-0.2.0-1.rockspec')
-rw-r--r--cepis-0.2.0-1.rockspec46
1 files changed, 46 insertions, 0 deletions
diff --git a/cepis-0.2.0-1.rockspec b/cepis-0.2.0-1.rockspec
new file mode 100644
index 0000000..5a3b283
--- /dev/null
+++ b/cepis-0.2.0-1.rockspec
@@ -0,0 +1,46 @@
+rockspec_format = "3.0"
+package = "cepis"
+version = "0.2.0-1"
+
+source = {
+ url = "git+https://git.cep.is/lua.git",
+ tag = "v0.2.0",
+}
+
+description = {
+ summary = "Lua client for the public CEP API at cep.is",
+ detailed = [[
+ Looks a Brazilian CEP up against https://cep.is, which serves the official
+ Correios database (DNE) refreshed every two weeks, with coordinates for
+ about 57% of them. Single lookups, batches of up to 500 per request, and a
+ health endpoint. Retries 429 and 5xx with exponential backoff and full
+ jitter; never retries 400 or 404.
+ ]],
+ homepage = "https://cep.is",
+ license = "ISC",
+ labels = { "cep", "correios", "dne", "endereco", "brasil", "http" },
+}
+
+dependencies = {
+ "lua >= 5.1",
+ "luasocket >= 3.0",
+ "luasec >= 1.0",
+ "dkjson >= 2.5",
+}
+
+build = {
+ type = "builtin",
+ modules = {
+ ["cepis"] = "cepis.lua",
+ ["cepis.client"] = "cepis/client.lua",
+ ["cepis.csv"] = "cepis/csv.lua",
+ ["cepis.errors"] = "cepis/errors.lua",
+ ["cepis.models"] = "cepis/models.lua",
+ },
+ copy_directories = {},
+}
+
+test = {
+ type = "command",
+ command = "lua test/run.lua",
+}