iptuapi 2.0.3 → 2.1.1

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/dist/index.d.mts CHANGED
@@ -23,11 +23,16 @@
23
23
  * });
24
24
  * ```
25
25
  */
26
- type Cidade = 'sp' | 'bh' | 'recife';
26
+ type Cidade = 'sp' | 'bh' | 'recife' | 'poa' | 'fortaleza' | 'curitiba' | 'rj' | 'brasilia';
27
27
  declare const CidadeEnum: {
28
28
  readonly SAO_PAULO: Cidade;
29
29
  readonly BELO_HORIZONTE: Cidade;
30
30
  readonly RECIFE: Cidade;
31
+ readonly PORTO_ALEGRE: Cidade;
32
+ readonly FORTALEZA: Cidade;
33
+ readonly CURITIBA: Cidade;
34
+ readonly RIO_DE_JANEIRO: Cidade;
35
+ readonly BRASILIA: Cidade;
31
36
  };
32
37
  interface RateLimitInfo {
33
38
  limit: number;
@@ -333,6 +338,104 @@ declare class IPTUClient {
333
338
  valor_corrigido: number;
334
339
  fator: number;
335
340
  }>;
341
+ /**
342
+ * Lista todas as cidades com calendario de IPTU disponivel.
343
+ *
344
+ * @returns Lista de cidades com codigo, nome, desconto e parcelas
345
+ */
346
+ iptuToolsCidades(): Promise<{
347
+ cidades: Array<{
348
+ codigo: string;
349
+ nome: string;
350
+ ano: number;
351
+ desconto_vista: string;
352
+ parcelas_max: number;
353
+ site_oficial: string;
354
+ }>;
355
+ total: number;
356
+ }>;
357
+ /**
358
+ * Retorna o calendario completo de IPTU para a cidade especificada.
359
+ *
360
+ * @param cidade - Codigo da cidade (sp, bh, rj, recife, curitiba, poa, fortaleza)
361
+ * @returns Calendario com vencimentos, descontos, alertas e novidades
362
+ */
363
+ iptuToolsCalendario(cidade?: Cidade): Promise<{
364
+ cidade: string;
365
+ ano: number;
366
+ desconto_vista_percentual: number;
367
+ desconto_vista_texto: string;
368
+ parcelas_max: number;
369
+ valor_minimo_parcela: number;
370
+ isencao_valor_venal?: number;
371
+ isencao_texto?: string;
372
+ site_oficial: string;
373
+ novidades?: string[];
374
+ alertas?: string[];
375
+ formas_pagamento?: string[];
376
+ vencimentos_cota_unica: string[];
377
+ vencimentos_parcelado: string[];
378
+ proximo_vencimento?: string;
379
+ dias_para_proximo_vencimento?: number;
380
+ }>;
381
+ /**
382
+ * Simula as opcoes de pagamento do IPTU (a vista vs parcelado).
383
+ *
384
+ * @param valorIptu - Valor total do IPTU
385
+ * @param cidade - Codigo da cidade
386
+ * @param valorVenal - Valor venal do imovel (para verificar isencao)
387
+ * @returns Comparativo entre pagamento a vista e parcelado com recomendacao
388
+ */
389
+ iptuToolsSimulador(valorIptu: number, cidade?: Cidade, valorVenal?: number): Promise<{
390
+ valor_original: number;
391
+ valor_vista: number;
392
+ desconto_vista: number;
393
+ desconto_percentual: number;
394
+ parcelas: number;
395
+ valor_parcela: number;
396
+ valor_total_parcelado: number;
397
+ economia_vista: number;
398
+ economia_percentual: number;
399
+ recomendacao: string;
400
+ elegivel_isencao: boolean;
401
+ isencao_mensagem?: string;
402
+ cidade: string;
403
+ ano: number;
404
+ proximo_vencimento?: string;
405
+ }>;
406
+ /**
407
+ * Verifica se um imovel e elegivel para isencao de IPTU.
408
+ *
409
+ * @param valorVenal - Valor venal do imovel
410
+ * @param cidade - Codigo da cidade
411
+ * @returns Elegibilidade para isencao total ou parcial
412
+ */
413
+ iptuToolsIsencao(valorVenal: number, cidade?: Cidade): Promise<{
414
+ cidade: string;
415
+ valor_venal: number;
416
+ limite_isencao: number;
417
+ elegivel_isencao_total: boolean;
418
+ elegivel_desconto_parcial: boolean;
419
+ desconto_estimado_percentual?: number;
420
+ mensagem: string;
421
+ requisitos_adicionais: string[];
422
+ }>;
423
+ /**
424
+ * Retorna informacoes sobre o proximo vencimento do IPTU.
425
+ *
426
+ * @param cidade - Codigo da cidade
427
+ * @param parcela - Numero da parcela (1-12)
428
+ * @returns Data de vencimento, dias restantes e status
429
+ */
430
+ iptuToolsProximoVencimento(cidade?: Cidade, parcela?: number): Promise<{
431
+ cidade: string;
432
+ data_vencimento: string;
433
+ dias_restantes: number;
434
+ status: "em_dia" | "proximo" | "vence_hoje" | "vencido";
435
+ mensagem: string;
436
+ multa_estimada?: number;
437
+ juros_estimados?: number;
438
+ }>;
336
439
  }
337
440
 
338
441
  export { AuthenticationError, type BatchValuationResult, type Cidade, CidadeEnum, type ComparavelItem, type ConsultaEnderecoParams, type ConsultaEnderecoResult, type ConsultaSQLResult, ForbiddenError, type HistoricoItem, IPTUAPIError, IPTUClient, type IPTUClientOptions, type Logger, NetworkError, NotFoundError, RateLimitError, type RateLimitInfo, type RetryConfig, ServerError, TimeoutError, ValidationError, type ValuationParams, type ValuationResult, type ZoneamentoResult, IPTUClient as default };
package/dist/index.d.ts CHANGED
@@ -23,11 +23,16 @@
23
23
  * });
24
24
  * ```
25
25
  */
26
- type Cidade = 'sp' | 'bh' | 'recife';
26
+ type Cidade = 'sp' | 'bh' | 'recife' | 'poa' | 'fortaleza' | 'curitiba' | 'rj' | 'brasilia';
27
27
  declare const CidadeEnum: {
28
28
  readonly SAO_PAULO: Cidade;
29
29
  readonly BELO_HORIZONTE: Cidade;
30
30
  readonly RECIFE: Cidade;
31
+ readonly PORTO_ALEGRE: Cidade;
32
+ readonly FORTALEZA: Cidade;
33
+ readonly CURITIBA: Cidade;
34
+ readonly RIO_DE_JANEIRO: Cidade;
35
+ readonly BRASILIA: Cidade;
31
36
  };
32
37
  interface RateLimitInfo {
33
38
  limit: number;
@@ -333,6 +338,104 @@ declare class IPTUClient {
333
338
  valor_corrigido: number;
334
339
  fator: number;
335
340
  }>;
341
+ /**
342
+ * Lista todas as cidades com calendario de IPTU disponivel.
343
+ *
344
+ * @returns Lista de cidades com codigo, nome, desconto e parcelas
345
+ */
346
+ iptuToolsCidades(): Promise<{
347
+ cidades: Array<{
348
+ codigo: string;
349
+ nome: string;
350
+ ano: number;
351
+ desconto_vista: string;
352
+ parcelas_max: number;
353
+ site_oficial: string;
354
+ }>;
355
+ total: number;
356
+ }>;
357
+ /**
358
+ * Retorna o calendario completo de IPTU para a cidade especificada.
359
+ *
360
+ * @param cidade - Codigo da cidade (sp, bh, rj, recife, curitiba, poa, fortaleza)
361
+ * @returns Calendario com vencimentos, descontos, alertas e novidades
362
+ */
363
+ iptuToolsCalendario(cidade?: Cidade): Promise<{
364
+ cidade: string;
365
+ ano: number;
366
+ desconto_vista_percentual: number;
367
+ desconto_vista_texto: string;
368
+ parcelas_max: number;
369
+ valor_minimo_parcela: number;
370
+ isencao_valor_venal?: number;
371
+ isencao_texto?: string;
372
+ site_oficial: string;
373
+ novidades?: string[];
374
+ alertas?: string[];
375
+ formas_pagamento?: string[];
376
+ vencimentos_cota_unica: string[];
377
+ vencimentos_parcelado: string[];
378
+ proximo_vencimento?: string;
379
+ dias_para_proximo_vencimento?: number;
380
+ }>;
381
+ /**
382
+ * Simula as opcoes de pagamento do IPTU (a vista vs parcelado).
383
+ *
384
+ * @param valorIptu - Valor total do IPTU
385
+ * @param cidade - Codigo da cidade
386
+ * @param valorVenal - Valor venal do imovel (para verificar isencao)
387
+ * @returns Comparativo entre pagamento a vista e parcelado com recomendacao
388
+ */
389
+ iptuToolsSimulador(valorIptu: number, cidade?: Cidade, valorVenal?: number): Promise<{
390
+ valor_original: number;
391
+ valor_vista: number;
392
+ desconto_vista: number;
393
+ desconto_percentual: number;
394
+ parcelas: number;
395
+ valor_parcela: number;
396
+ valor_total_parcelado: number;
397
+ economia_vista: number;
398
+ economia_percentual: number;
399
+ recomendacao: string;
400
+ elegivel_isencao: boolean;
401
+ isencao_mensagem?: string;
402
+ cidade: string;
403
+ ano: number;
404
+ proximo_vencimento?: string;
405
+ }>;
406
+ /**
407
+ * Verifica se um imovel e elegivel para isencao de IPTU.
408
+ *
409
+ * @param valorVenal - Valor venal do imovel
410
+ * @param cidade - Codigo da cidade
411
+ * @returns Elegibilidade para isencao total ou parcial
412
+ */
413
+ iptuToolsIsencao(valorVenal: number, cidade?: Cidade): Promise<{
414
+ cidade: string;
415
+ valor_venal: number;
416
+ limite_isencao: number;
417
+ elegivel_isencao_total: boolean;
418
+ elegivel_desconto_parcial: boolean;
419
+ desconto_estimado_percentual?: number;
420
+ mensagem: string;
421
+ requisitos_adicionais: string[];
422
+ }>;
423
+ /**
424
+ * Retorna informacoes sobre o proximo vencimento do IPTU.
425
+ *
426
+ * @param cidade - Codigo da cidade
427
+ * @param parcela - Numero da parcela (1-12)
428
+ * @returns Data de vencimento, dias restantes e status
429
+ */
430
+ iptuToolsProximoVencimento(cidade?: Cidade, parcela?: number): Promise<{
431
+ cidade: string;
432
+ data_vencimento: string;
433
+ dias_restantes: number;
434
+ status: "em_dia" | "proximo" | "vence_hoje" | "vencido";
435
+ mensagem: string;
436
+ multa_estimada?: number;
437
+ juros_estimados?: number;
438
+ }>;
336
439
  }
337
440
 
338
441
  export { AuthenticationError, type BatchValuationResult, type Cidade, CidadeEnum, type ComparavelItem, type ConsultaEnderecoParams, type ConsultaEnderecoResult, type ConsultaSQLResult, ForbiddenError, type HistoricoItem, IPTUAPIError, IPTUClient, type IPTUClientOptions, type Logger, NetworkError, NotFoundError, RateLimitError, type RateLimitInfo, type RetryConfig, ServerError, TimeoutError, ValidationError, type ValuationParams, type ValuationResult, type ZoneamentoResult, IPTUClient as default };
package/dist/index.js CHANGED
@@ -37,7 +37,12 @@ module.exports = __toCommonJS(index_exports);
37
37
  var CidadeEnum = {
38
38
  SAO_PAULO: "sp",
39
39
  BELO_HORIZONTE: "bh",
40
- RECIFE: "recife"
40
+ RECIFE: "recife",
41
+ PORTO_ALEGRE: "poa",
42
+ FORTALEZA: "fortaleza",
43
+ CURITIBA: "curitiba",
44
+ RIO_DE_JANEIRO: "rj",
45
+ BRASILIA: "brasilia"
41
46
  };
42
47
  var IPTUAPIError = class _IPTUAPIError extends Error {
43
48
  statusCode;
@@ -166,7 +171,7 @@ var IPTUClient = class {
166
171
  this.logger = options.logger;
167
172
  this.logRequests = options.logRequests || false;
168
173
  this.logResponses = options.logResponses || false;
169
- this.userAgent = options.userAgent || "iptuapi-js/2.0.0";
174
+ this.userAgent = options.userAgent || "iptuapi-js/2.1.0";
170
175
  }
171
176
  // ===========================================================================
172
177
  // Properties
@@ -537,6 +542,70 @@ var IPTUClient = class {
537
542
  }
538
543
  );
539
544
  }
545
+ // ===========================================================================
546
+ // IPTU Tools Endpoints (Ferramentas IPTU 2026)
547
+ // ===========================================================================
548
+ /**
549
+ * Lista todas as cidades com calendario de IPTU disponivel.
550
+ *
551
+ * @returns Lista de cidades com codigo, nome, desconto e parcelas
552
+ */
553
+ async iptuToolsCidades() {
554
+ return this.request("GET", "/iptu-tools/cidades");
555
+ }
556
+ /**
557
+ * Retorna o calendario completo de IPTU para a cidade especificada.
558
+ *
559
+ * @param cidade - Codigo da cidade (sp, bh, rj, recife, curitiba, poa, fortaleza)
560
+ * @returns Calendario com vencimentos, descontos, alertas e novidades
561
+ */
562
+ async iptuToolsCalendario(cidade = "sp") {
563
+ return this.request("GET", "/iptu-tools/calendario", { cidade });
564
+ }
565
+ /**
566
+ * Simula as opcoes de pagamento do IPTU (a vista vs parcelado).
567
+ *
568
+ * @param valorIptu - Valor total do IPTU
569
+ * @param cidade - Codigo da cidade
570
+ * @param valorVenal - Valor venal do imovel (para verificar isencao)
571
+ * @returns Comparativo entre pagamento a vista e parcelado com recomendacao
572
+ */
573
+ async iptuToolsSimulador(valorIptu, cidade = "sp", valorVenal) {
574
+ const body = {
575
+ valor_iptu: valorIptu,
576
+ cidade
577
+ };
578
+ if (valorVenal !== void 0) {
579
+ body.valor_venal = valorVenal;
580
+ }
581
+ return this.request("POST", "/iptu-tools/simulador", void 0, body);
582
+ }
583
+ /**
584
+ * Verifica se um imovel e elegivel para isencao de IPTU.
585
+ *
586
+ * @param valorVenal - Valor venal do imovel
587
+ * @param cidade - Codigo da cidade
588
+ * @returns Elegibilidade para isencao total ou parcial
589
+ */
590
+ async iptuToolsIsencao(valorVenal, cidade = "sp") {
591
+ return this.request("GET", "/iptu-tools/isencao", {
592
+ valor_venal: valorVenal,
593
+ cidade
594
+ });
595
+ }
596
+ /**
597
+ * Retorna informacoes sobre o proximo vencimento do IPTU.
598
+ *
599
+ * @param cidade - Codigo da cidade
600
+ * @param parcela - Numero da parcela (1-12)
601
+ * @returns Data de vencimento, dias restantes e status
602
+ */
603
+ async iptuToolsProximoVencimento(cidade = "sp", parcela = 1) {
604
+ return this.request("GET", "/iptu-tools/proximo-vencimento", {
605
+ cidade,
606
+ parcela
607
+ });
608
+ }
540
609
  };
541
610
  var index_default = IPTUClient;
542
611
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.mjs CHANGED
@@ -2,7 +2,12 @@
2
2
  var CidadeEnum = {
3
3
  SAO_PAULO: "sp",
4
4
  BELO_HORIZONTE: "bh",
5
- RECIFE: "recife"
5
+ RECIFE: "recife",
6
+ PORTO_ALEGRE: "poa",
7
+ FORTALEZA: "fortaleza",
8
+ CURITIBA: "curitiba",
9
+ RIO_DE_JANEIRO: "rj",
10
+ BRASILIA: "brasilia"
6
11
  };
7
12
  var IPTUAPIError = class _IPTUAPIError extends Error {
8
13
  statusCode;
@@ -131,7 +136,7 @@ var IPTUClient = class {
131
136
  this.logger = options.logger;
132
137
  this.logRequests = options.logRequests || false;
133
138
  this.logResponses = options.logResponses || false;
134
- this.userAgent = options.userAgent || "iptuapi-js/2.0.0";
139
+ this.userAgent = options.userAgent || "iptuapi-js/2.1.0";
135
140
  }
136
141
  // ===========================================================================
137
142
  // Properties
@@ -502,6 +507,70 @@ var IPTUClient = class {
502
507
  }
503
508
  );
504
509
  }
510
+ // ===========================================================================
511
+ // IPTU Tools Endpoints (Ferramentas IPTU 2026)
512
+ // ===========================================================================
513
+ /**
514
+ * Lista todas as cidades com calendario de IPTU disponivel.
515
+ *
516
+ * @returns Lista de cidades com codigo, nome, desconto e parcelas
517
+ */
518
+ async iptuToolsCidades() {
519
+ return this.request("GET", "/iptu-tools/cidades");
520
+ }
521
+ /**
522
+ * Retorna o calendario completo de IPTU para a cidade especificada.
523
+ *
524
+ * @param cidade - Codigo da cidade (sp, bh, rj, recife, curitiba, poa, fortaleza)
525
+ * @returns Calendario com vencimentos, descontos, alertas e novidades
526
+ */
527
+ async iptuToolsCalendario(cidade = "sp") {
528
+ return this.request("GET", "/iptu-tools/calendario", { cidade });
529
+ }
530
+ /**
531
+ * Simula as opcoes de pagamento do IPTU (a vista vs parcelado).
532
+ *
533
+ * @param valorIptu - Valor total do IPTU
534
+ * @param cidade - Codigo da cidade
535
+ * @param valorVenal - Valor venal do imovel (para verificar isencao)
536
+ * @returns Comparativo entre pagamento a vista e parcelado com recomendacao
537
+ */
538
+ async iptuToolsSimulador(valorIptu, cidade = "sp", valorVenal) {
539
+ const body = {
540
+ valor_iptu: valorIptu,
541
+ cidade
542
+ };
543
+ if (valorVenal !== void 0) {
544
+ body.valor_venal = valorVenal;
545
+ }
546
+ return this.request("POST", "/iptu-tools/simulador", void 0, body);
547
+ }
548
+ /**
549
+ * Verifica se um imovel e elegivel para isencao de IPTU.
550
+ *
551
+ * @param valorVenal - Valor venal do imovel
552
+ * @param cidade - Codigo da cidade
553
+ * @returns Elegibilidade para isencao total ou parcial
554
+ */
555
+ async iptuToolsIsencao(valorVenal, cidade = "sp") {
556
+ return this.request("GET", "/iptu-tools/isencao", {
557
+ valor_venal: valorVenal,
558
+ cidade
559
+ });
560
+ }
561
+ /**
562
+ * Retorna informacoes sobre o proximo vencimento do IPTU.
563
+ *
564
+ * @param cidade - Codigo da cidade
565
+ * @param parcela - Numero da parcela (1-12)
566
+ * @returns Data de vencimento, dias restantes e status
567
+ */
568
+ async iptuToolsProximoVencimento(cidade = "sp", parcela = 1) {
569
+ return this.request("GET", "/iptu-tools/proximo-vencimento", {
570
+ cidade,
571
+ parcela
572
+ });
573
+ }
505
574
  };
506
575
  var index_default = IPTUClient;
507
576
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iptuapi",
3
- "version": "2.0.3",
3
+ "version": "2.1.1",
4
4
  "description": "SDK oficial para a IPTU API - Dados de IPTU de São Paulo, Belo Horizonte e Recife",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -49,11 +49,11 @@
49
49
  },
50
50
  "devDependencies": {
51
51
  "@types/node": "^20.10.0",
52
- "@vitest/coverage-v8": "^1.0.0",
52
+ "@vitest/coverage-v8": "^4.0.16",
53
53
  "msw": "^2.0.0",
54
54
  "tsup": "^8.0.0",
55
55
  "typescript": "^5.3.0",
56
- "vitest": "^1.0.0"
56
+ "vitest": "^4.0.16"
57
57
  },
58
58
  "engines": {
59
59
  "node": ">=18"