@eusilvio/cep-lookup 2.0.0 → 2.1.0

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/README.md CHANGED
@@ -17,6 +17,7 @@ Its agnostic design allows it to be used in any JavaScript environment with any
17
17
 
18
18
  - **Multiple Providers (Race Strategy)**: Queries multiple CEP APIs at the same time and uses the first valid response.
19
19
  - **Class-Based API**: Create a reusable instance with your settings.
20
+ - **Bulk Lookups**: Efficiently look up multiple CEPs with a single method call.
20
21
  - **Customizable Return Format**: Provide a `mapper` function to transform the address data into any format your application needs.
21
22
  - **HTTP Client Agnostic**: You provide the fetch function, giving you full control over the requests. Defaults to global `fetch` if not provided.
22
23
  - **Modular and Extensible Architecture**: Adding a new CEP data source is trivial.
@@ -31,7 +32,7 @@ npm install @eusilvio/cep-lookup
31
32
 
32
33
  ## How to Use
33
34
 
34
- `@eusilvio/cep-lookup` is designed to be straightforward. You can create a reusable instance of the `CepLookup` class with your desired settings or use the `lookupCep` function for a quick, one-off lookup. The library also includes a simple in-memory cache to avoid repeated requests, which you can use or replace with your own implementation.
35
+ `@eusilvio/cep-lookup` is designed to be straightforward. You create a reusable instance of the `CepLookup` class with your desired settings and use its methods to look up single or multiple CEPs. The library also includes a simple in-memory cache to avoid repeated requests, which you can use or replace with your own implementation.
35
36
 
36
37
  ### Example 1: Basic Usage
37
38
 
@@ -42,7 +43,7 @@ import {
42
43
  brasilApiProvider,
43
44
  } from "@eusilvio/cep-lookup/providers";
44
45
 
45
- // 1. Create an instance of CepLookup (fetcher is now optional and defaults to global fetch)
46
+ // 1. Create an instance of CepLookup
46
47
  const cepLookup = new CepLookup({
47
48
  providers: [viaCepProvider, brasilApiProvider],
48
49
  });
@@ -101,10 +102,10 @@ cepLookup.lookup("01001-000", myMapper).then((customAddress: CustomAddress) => {
101
102
 
102
103
  ### Example 3: Bulk CEP Lookup
103
104
 
104
- For scenarios where you need to query multiple CEPs at once, you can use the `lookupCeps` function. It processes the CEPs in parallel with a configurable concurrency limit to avoid overwhelming the providers.
105
+ For scenarios where you need to query multiple CEPs at once, you can use the `lookupCeps` method. It processes the CEPs in parallel with a configurable concurrency limit to avoid overwhelming the providers.
105
106
 
106
107
  ```typescript
107
- import { lookupCeps, BulkCepResult } from "@eusilvio/cep-lookup";
108
+ import { CepLookup, BulkCepResult } from "@eusilvio/cep-lookup";
108
109
  import {
109
110
  viaCepProvider,
110
111
  brasilApiProvider,
@@ -112,11 +113,13 @@ import {
112
113
 
113
114
  const cepsToLookup = ["01001-000", "99999-999", "04538-132"];
114
115
 
115
- lookupCeps({
116
- ceps: cepsToLookup,
116
+ // 1. Create an instance with your settings
117
+ const cepLookup = new CepLookup({
117
118
  providers: [viaCepProvider, brasilApiProvider],
118
- concurrency: 5, // Optional: Number of parallel requests
119
- }).then((results: BulkCepResult[]) => {
119
+ });
120
+
121
+ // 2. Look up multiple CEPs
122
+ cepLookup.lookupCeps(cepsToLookup, { concurrency: 2 }).then((results: BulkCepResult[]) => {
120
123
  console.log("Bulk lookup results:", results);
121
124
  // Output:
122
125
  // [
@@ -149,6 +152,7 @@ Creates a new `CepLookup` instance.
149
152
  - `providers` (Provider[], **required**): An array of providers that will be queried.
150
153
  - `fetcher` (Fetcher, _optional_): Your asynchronous function that fetches data from a URL. Defaults to global `fetch` if not provided.
151
154
  - `cache` (Cache, _optional_): An instance of a cache that implements the `Cache` interface. Use `InMemoryCache` for a simple in-memory cache.
155
+ - `rateLimit` ({ requests: number, per: number }, _optional_): Configures an in-memory rate limiter (e.g., `{ requests: 10, per: 1000 }` for 10 requests per second).
152
156
 
153
157
  ### `cepLookup.lookup<T = Address>(cep, mapper?): Promise<T>`
154
158
 
@@ -157,22 +161,52 @@ Returns a `Promise` that resolves to the address in the default format (`Address
157
161
  - `cep` (string, **required**): The CEP to be queried.
158
162
  - `mapper` ((address: Address) => T, _optional_): A function that receives the default `Address` object and transforms it into a new format `T`.
159
163
 
160
- ### `lookupCeps(options): Promise<BulkCepResult[]>`
164
+ ### `cepLookup.lookupCeps(ceps, options?): Promise<BulkCepResult[]>`
161
165
 
162
166
  Looks up multiple CEPs in bulk. Returns a `Promise` that resolves to an array of `BulkCepResult` objects, one for each queried CEP.
163
167
 
164
- - `options`: A configuration object extending the `CepLookup` options.
165
- - `ceps` (string[], **required**): An array of CEP strings to be queried.
166
- - `providers` (Provider[], **required**): An array of providers.
167
- - `concurrency` (number, _optional_): The number of parallel requests to make. Defaults to `5`.
168
- - `fetcher` (Fetcher, _optional_): A custom fetch function.
169
- - `cache` (Cache, _optional_): A cache instance.
168
+ - `ceps` (string[], **required**): An array of CEP strings to be queried.
169
+ - `options` (object, _optional_): An options object.
170
+ - `concurrency` (number): The number of parallel requests to make. Defaults to `5`.
171
+
172
+ > **Note on Deprecated Functions:**
173
+ > Standalone `lookupCep` and `lookupCeps` functions are deprecated and will be removed in a future version. Please use the methods on a `CepLookup` instance instead.
174
+
175
+ ### Observability Events API
176
+
177
+ Version 2.0.0 introduced an event-based API to monitor the library's behavior. You can listen to events to gather metrics on provider performance, latency, and errors.
178
+
179
+ ```typescript
180
+ const cepLookup = new CepLookup({ providers: [...] });
181
+
182
+ // Fired for each successful provider response
183
+ cepLookup.on('success', ({ provider, cep, duration }) => {
184
+ console.log(`[${provider}] Success for CEP ${cep} in ${duration}ms`);
185
+ // myMetrics.timing('cep.latency', duration, { provider });
186
+ });
187
+
188
+ // Fired for each failed provider response
189
+ cepLookup.on('failure', ({ provider, cep, error }) => {
190
+ console.error(`[${provider}] Failure for CEP ${cep}: ${error.message}`);
191
+ // myMetrics.increment('cep.failure', { provider });
192
+ });
193
+
194
+ // Fired when a CEP is resolved from the cache
195
+ cepLookup.on('cache:hit', ({ cep }) => {
196
+ console.log(`[Cache] CEP ${cep} found in cache.`);
197
+ // myMetrics.increment('cep.cache_hit');
198
+ });
199
+
200
+ // The lookup call remains the same
201
+ cepLookup.lookup("01001-000");
202
+ ```
170
203
 
171
204
  ## Examples
172
205
 
173
206
  You can find more detailed examples in the `examples/` directory:
174
207
 
175
208
  - **Basic Usage**: `examples/example.ts`
209
+ - **Bulk Lookup**: `examples/bulk-example.ts`
176
210
  - **Custom Provider**: `examples/custom-provider-example.ts`
177
211
  - **Node.js Usage**: `examples/node-example.ts`
178
212
  - **React Component**: `examples/react-example.tsx`
@@ -212,4 +246,4 @@ npm test
212
246
 
213
247
  ## License
214
248
 
215
- Distributed under the MIT License.
249
+ Distributed under the MIT License.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var g=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var L=(r,e)=>{for(var t in e)g(r,t,{get:e[t],enumerable:!0})},y=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of k(e))!A.call(r,s)&&s!==t&&g(r,s,{get:()=>e[s],enumerable:!(i=v(e,s))||i.enumerable});return r};var T=r=>y(g({},"__esModule",{value:!0}),r);var x={};L(x,{CepLookup:()=>h,InMemoryCache:()=>m,lookupCep:()=>P,lookupCeps:()=>b});module.exports=T(x);var m=class{constructor(){this.cache=new Map}get(e){return this.cache.get(e)}set(e,t){this.cache.set(e,t)}clear(){this.cache.clear()}};function N(r){if(!/^(\d{8}|\d{5}-\d{3})$/.test(r))throw new Error("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN.");return r.replace("-","")}function C(r){let e={...r};for(let t in e)typeof e[t]=="string"&&(e[t]=e[t].trim());return e}var h=class{constructor(e){this.requestTimestamps=[];this.providers=e.providers,this.fetcher=e.fetcher||(async(t,i)=>{let s=await fetch(t,{signal:i});if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return s.json()}),this.cache=e.cache,this.rateLimit=e.rateLimit}checkRateLimit(){if(!this.rateLimit)return;let e=Date.now(),t=e-this.rateLimit.per;if(this.requestTimestamps=this.requestTimestamps.filter(i=>i>t),this.requestTimestamps.length>=this.rateLimit.requests)throw new Error(`Rate limit exceeded: ${this.rateLimit.requests} requests per ${this.rateLimit.per}ms.`);this.requestTimestamps.push(e)}async lookup(e,t){this.checkRateLimit();let i=N(e);if(this.cache){let o=this.cache.get(i);if(o)return Promise.resolve(t?t(o):o)}let s=new AbortController,{signal:a}=s,u=this.providers.map(o=>{let p=o.buildUrl(i),l=new Promise((c,n)=>{let d,w=()=>{clearTimeout(d),n(new DOMException("Aborted","AbortError"))};o.timeout?(d=setTimeout(()=>{a.removeEventListener("abort",w),n(new Error(`Timeout from ${o.name}`))},o.timeout),a.addEventListener("abort",w,{once:!0})):a.addEventListener("abort",w,{once:!0})}),f=this.fetcher(p,a).then(c=>o.transform(c)).then(c=>{let n=C(c);return this.cache&&this.cache.set(i,n),t?t(n):n});return Promise.race([f,l])});try{return await Promise.any(u)}finally{s.abort()}}};function P(r){let{cep:e,providers:t,fetcher:i,mapper:s,cache:a}=r;return new h({providers:t,fetcher:i,cache:a}).lookup(e,s)}async function b(r){let{ceps:e,providers:t,fetcher:i,cache:s,concurrency:a=5}=r;if(!e||e.length===0)return[];let u=new h({providers:t,fetcher:i,cache:s}),o=new Array(e.length),p=0,l=async()=>{for(;p<e.length;){let c=p++;if(c>=e.length)break;let n=e[c];try{let d=await u.lookup(n);if(d)o[c]={cep:n,data:d,provider:d.service};else throw new Error("No address found")}catch(d){o[c]={cep:n,data:null,error:d}}}},f=Array.from({length:Math.min(a,e.length)},()=>l());return await Promise.all(f),o.filter(Boolean)}0&&(module.exports={CepLookup,InMemoryCache,lookupCep,lookupCeps});
1
+ "use strict";var f=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var y=(r,e)=>{for(var t in e)f(r,t,{get:e[t],enumerable:!0})},b=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of C(e))!A.call(r,i)&&i!==t&&f(r,i,{get:()=>e[i],enumerable:!(s=E(e,i))||s.enumerable});return r};var N=r=>b(f({},"__esModule",{value:!0}),r);var O={};y(O,{CepLookup:()=>l,InMemoryCache:()=>m,lookupCep:()=>R,lookupCeps:()=>q});module.exports=N(O);var m=class{constructor(){this.cache=new Map}get(e){return this.cache.get(e)}set(e,t){this.cache.set(e,t)}clear(){this.cache.clear()}};var v=class{constructor(){this.listeners={}}on(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)}off(e,t){this.listeners[e]&&(this.listeners[e]=this.listeners[e].filter(s=>s!==t))}emit(e,t){this.listeners[e]&&this.listeners[e].forEach(s=>s(t))}};function P(r){if(!/^(\d{8}|\d{5}-\d{3})$/.test(r))throw new Error("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN.");return r.replace("-","")}function x(r){let e={...r};for(let t in e)typeof e[t]=="string"&&(e[t]=e[t].trim());return e}var l=class{constructor(e){this.requestTimestamps=[];this.providers=e.providers,this.emitter=new v,this.fetcher=e.fetcher||(async(t,s)=>{let i=await fetch(t,{signal:s});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);return i.json()}),this.cache=e.cache,this.rateLimit=e.rateLimit}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}checkRateLimit(){if(!this.rateLimit)return;let e=Date.now(),t=e-this.rateLimit.per;if(this.requestTimestamps=this.requestTimestamps.filter(s=>s>t),this.requestTimestamps.length>=this.rateLimit.requests)throw new Error(`Rate limit exceeded: ${this.rateLimit.requests} requests per ${this.rateLimit.per}ms.`);this.requestTimestamps.push(e)}async lookup(e,t){this.checkRateLimit();let s=P(e);if(this.cache){let n=this.cache.get(s);if(n)return this.emitter.emit("cache:hit",{cep:s}),Promise.resolve(t?t(n):n)}let i=new AbortController,{signal:o}=i,a=this.providers.map(n=>{let u=Date.now(),d=n.buildUrl(s),T=new Promise((c,h)=>{if(!n.timeout)return;let p=setTimeout(()=>{o.removeEventListener("abort",w);let L=Date.now()-u,k=new Error(`Timeout from ${n.name}`);this.emitter.emit("failure",{provider:n.name,cep:s,duration:L,error:k}),h(k)},n.timeout),w=()=>clearTimeout(p);o.addEventListener("abort",w,{once:!0})}),g=this.fetcher(d,o).then(c=>n.transform(c)).then(c=>{let h=Date.now()-u,p=x(c);return this.emitter.emit("success",{provider:n.name,cep:s,duration:h,address:p}),this.cache&&this.cache.set(s,p),t?t(p):p}).catch(c=>{let h=Date.now()-u;throw c.message.includes("Timeout from")||this.emitter.emit("failure",{provider:n.name,cep:s,duration:h,error:c}),c});return Promise.race([g,T])});try{return a.length===1?await a[0]:await Promise.any(a)}finally{i.abort()}}async lookupCeps(e,t=5){if(!e||e.length===0)return[];let s=new Array(e.length),i=0,o=async()=>{for(;i<e.length;){let n=i++;if(n>=e.length)break;let u=e[n];try{let d=await this.lookup(u);if(d)s[n]={cep:u,data:d,provider:d.service};else throw new Error("No address found")}catch(d){s[n]={cep:u,data:null,error:d}}}},a=Array.from({length:Math.min(t,e.length)},()=>o());return await Promise.all(a),s.filter(Boolean)}};function R(r){console.warn("[cep-lookup] The standalone `lookupCep` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookup(cep)` instead.");let{cep:e,providers:t,fetcher:s,mapper:i,cache:o,rateLimit:a}=r;return new l({providers:t,fetcher:s,cache:o,rateLimit:a}).lookup(e,i)}async function q(r){console.warn("[cep-lookup] The standalone `lookupCeps` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookupCeps(ceps)` instead.");let{ceps:e,providers:t,fetcher:s,cache:i,concurrency:o=5,rateLimit:a}=r;return new l({providers:t,fetcher:s,cache:i,rateLimit:a}).lookupCeps(e,o)}0&&(module.exports={CepLookup,InMemoryCache,lookupCep,lookupCeps});
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InMemoryCache = void 0;
4
+ /**
5
+ * @class InMemoryCache
6
+ * @description A simple in-memory cache implementation for storing CEP lookups.
7
+ */
8
+ class InMemoryCache {
9
+ constructor() {
10
+ this.cache = new Map();
11
+ }
12
+ /**
13
+ * @method get
14
+ * @description Retrieves an address from the cache.
15
+ * @param {string} key - The CEP to look up.
16
+ * @returns {Address | undefined} The cached address or undefined if not found.
17
+ */
18
+ get(key) {
19
+ return this.cache.get(key);
20
+ }
21
+ /**
22
+ * @method set
23
+ * @description Stores an address in the cache.
24
+ * @param {string} key - The CEP to use as the cache key.
25
+ * @param {Address} value - The address to store.
26
+ */
27
+ set(key, value) {
28
+ this.cache.set(key, value);
29
+ }
30
+ /**
31
+ * @method clear
32
+ * @description Clears the entire cache.
33
+ */
34
+ clear() {
35
+ this.cache.clear();
36
+ }
37
+ }
38
+ exports.InMemoryCache = InMemoryCache;
@@ -0,0 +1,35 @@
1
+ import { Address, Fetcher, Provider, CepLookupOptions, BulkCepResult, RateLimitOptions, EventName, EventListener, EventMap } from "./types";
2
+ import { Cache, InMemoryCache } from "./cache";
3
+ export { Address, Fetcher, Provider, CepLookupOptions, Cache, InMemoryCache, BulkCepResult, RateLimitOptions, EventName, EventListener, EventMap };
4
+ /**
5
+ * @class CepLookup
6
+ * @description A class for looking up Brazilian postal codes (CEPs) using multiple providers.
7
+ */
8
+ export declare class CepLookup {
9
+ private providers;
10
+ private fetcher;
11
+ private cache?;
12
+ private rateLimit?;
13
+ private requestTimestamps;
14
+ private emitter;
15
+ constructor(options: CepLookupOptions);
16
+ on<T extends EventName>(eventName: T, listener: EventListener<T>): void;
17
+ off<T extends EventName>(eventName: T, listener: EventListener<T>): void;
18
+ private checkRateLimit;
19
+ lookup<T = Address>(cep: string, mapper?: (address: Address) => T): Promise<T>;
20
+ lookupCeps(ceps: string[], concurrency?: number): Promise<BulkCepResult[]>;
21
+ }
22
+ /**
23
+ * @deprecated Use `new CepLookup(options).lookup(cep)` instead.
24
+ */
25
+ export declare function lookupCep<T = Address>(options: CepLookupOptions & {
26
+ cep: string;
27
+ mapper?: (address: Address) => T;
28
+ }): Promise<T>;
29
+ /**
30
+ * @deprecated Use `new CepLookup(options).lookupCeps(ceps)` instead.
31
+ */
32
+ export declare function lookupCeps(options: CepLookupOptions & {
33
+ ceps: string[];
34
+ concurrency?: number;
35
+ }): Promise<BulkCepResult[]>;
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CepLookup = exports.InMemoryCache = void 0;
4
+ exports.lookupCep = lookupCep;
5
+ exports.lookupCeps = lookupCeps;
6
+ const cache_1 = require("./cache");
7
+ Object.defineProperty(exports, "InMemoryCache", { enumerable: true, get: function () { return cache_1.InMemoryCache; } });
8
+ // Minimal EventEmitter for internal use
9
+ class EventEmitter {
10
+ constructor() {
11
+ this.listeners = {};
12
+ }
13
+ on(eventName, listener) {
14
+ if (!this.listeners[eventName]) {
15
+ this.listeners[eventName] = [];
16
+ }
17
+ this.listeners[eventName].push(listener);
18
+ }
19
+ off(eventName, listener) {
20
+ if (!this.listeners[eventName]) {
21
+ return;
22
+ }
23
+ // Use a type assertion to work around a complex generic issue
24
+ this.listeners[eventName] = this.listeners[eventName].filter((l) => l !== listener);
25
+ }
26
+ emit(eventName, payload) {
27
+ if (!this.listeners[eventName]) {
28
+ return;
29
+ }
30
+ this.listeners[eventName].forEach((listener) => listener(payload));
31
+ }
32
+ }
33
+ /**
34
+ * @function validateCep
35
+ * @description Validates and cleans a CEP string strictly.
36
+ * @param {string} cep - The CEP string to validate.
37
+ * @returns {string} The cleaned, 8-digit CEP string.
38
+ * @throws {Error} If the CEP format is invalid.
39
+ */
40
+ function validateCep(cep) {
41
+ const cepRegex = /^(\d{8}|\d{5}-\d{3})$/;
42
+ if (!cepRegex.test(cep)) {
43
+ throw new Error("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN.");
44
+ }
45
+ return cep.replace("-", "");
46
+ }
47
+ /**
48
+ * @function sanitizeAddress
49
+ * @description Trims whitespace from all string properties of an address object.
50
+ * @param {Address} address - The address object to sanitize.
51
+ * @returns {Address} The sanitized address object.
52
+ */
53
+ function sanitizeAddress(address) {
54
+ const sanitized = { ...address };
55
+ for (const key in sanitized) {
56
+ if (typeof sanitized[key] === 'string') {
57
+ sanitized[key] = sanitized[key].trim();
58
+ }
59
+ }
60
+ return sanitized;
61
+ }
62
+ /**
63
+ * @class CepLookup
64
+ * @description A class for looking up Brazilian postal codes (CEPs) using multiple providers.
65
+ */
66
+ class CepLookup {
67
+ constructor(options) {
68
+ this.requestTimestamps = [];
69
+ this.providers = options.providers;
70
+ this.emitter = new EventEmitter();
71
+ this.fetcher = options.fetcher || (async (url, signal) => {
72
+ const response = await fetch(url, { signal });
73
+ if (!response.ok) {
74
+ throw new Error(`HTTP error! status: ${response.status}`);
75
+ }
76
+ return response.json();
77
+ });
78
+ this.cache = options.cache;
79
+ this.rateLimit = options.rateLimit;
80
+ }
81
+ on(eventName, listener) {
82
+ this.emitter.on(eventName, listener);
83
+ }
84
+ off(eventName, listener) {
85
+ this.emitter.off(eventName, listener);
86
+ }
87
+ checkRateLimit() {
88
+ if (!this.rateLimit)
89
+ return;
90
+ const now = Date.now();
91
+ const windowStart = now - this.rateLimit.per;
92
+ this.requestTimestamps = this.requestTimestamps.filter((ts) => ts > windowStart);
93
+ if (this.requestTimestamps.length >= this.rateLimit.requests) {
94
+ throw new Error(`Rate limit exceeded: ${this.rateLimit.requests} requests per ${this.rateLimit.per}ms.`);
95
+ }
96
+ this.requestTimestamps.push(now);
97
+ }
98
+ async lookup(cep, mapper) {
99
+ this.checkRateLimit();
100
+ const cleanedCep = validateCep(cep);
101
+ if (this.cache) {
102
+ const cachedAddress = this.cache.get(cleanedCep);
103
+ if (cachedAddress) {
104
+ this.emitter.emit('cache:hit', { cep: cleanedCep });
105
+ return Promise.resolve(mapper ? mapper(cachedAddress) : cachedAddress);
106
+ }
107
+ }
108
+ const controller = new AbortController();
109
+ const { signal } = controller;
110
+ const promises = this.providers.map((provider) => {
111
+ const startTime = Date.now();
112
+ const url = provider.buildUrl(cleanedCep);
113
+ const timeoutPromise = new Promise((_, reject) => {
114
+ if (!provider.timeout)
115
+ return;
116
+ const timeoutId = setTimeout(() => {
117
+ signal.removeEventListener('abort', onAbort);
118
+ const duration = Date.now() - startTime;
119
+ const error = new Error(`Timeout from ${provider.name}`);
120
+ this.emitter.emit('failure', { provider: provider.name, cep: cleanedCep, duration, error });
121
+ reject(error);
122
+ }, provider.timeout);
123
+ const onAbort = () => clearTimeout(timeoutId);
124
+ signal.addEventListener('abort', onAbort, { once: true });
125
+ });
126
+ const fetchPromise = this.fetcher(url, signal)
127
+ .then((response) => provider.transform(response))
128
+ .then((address) => {
129
+ const duration = Date.now() - startTime;
130
+ const sanitizedAddress = sanitizeAddress(address);
131
+ this.emitter.emit('success', { provider: provider.name, cep: cleanedCep, duration, address: sanitizedAddress });
132
+ if (this.cache) {
133
+ this.cache.set(cleanedCep, sanitizedAddress);
134
+ }
135
+ return mapper ? mapper(sanitizedAddress) : sanitizedAddress;
136
+ })
137
+ .catch((error) => {
138
+ const duration = Date.now() - startTime;
139
+ if (!error.message.includes('Timeout from')) {
140
+ this.emitter.emit('failure', { provider: provider.name, cep: cleanedCep, duration, error });
141
+ }
142
+ throw error;
143
+ });
144
+ return Promise.race([fetchPromise, timeoutPromise]);
145
+ });
146
+ try {
147
+ if (promises.length === 1) {
148
+ return await promises[0];
149
+ }
150
+ return await Promise.any(promises);
151
+ }
152
+ finally {
153
+ controller.abort();
154
+ }
155
+ }
156
+ async lookupCeps(ceps, concurrency = 5) {
157
+ if (!ceps || ceps.length === 0) {
158
+ return [];
159
+ }
160
+ const results = new Array(ceps.length);
161
+ let cepIndex = 0;
162
+ const worker = async () => {
163
+ while (cepIndex < ceps.length) {
164
+ const currentIndex = cepIndex++;
165
+ if (currentIndex >= ceps.length)
166
+ break;
167
+ const cep = ceps[currentIndex];
168
+ try {
169
+ const address = await this.lookup(cep);
170
+ if (address) {
171
+ results[currentIndex] = { cep, data: address, provider: address.service };
172
+ }
173
+ else {
174
+ throw new Error('No address found');
175
+ }
176
+ }
177
+ catch (error) {
178
+ results[currentIndex] = { cep, data: null, error: error };
179
+ }
180
+ }
181
+ };
182
+ const workers = Array.from({ length: Math.min(concurrency, ceps.length) }, () => worker());
183
+ await Promise.all(workers);
184
+ return results.filter(Boolean);
185
+ }
186
+ }
187
+ exports.CepLookup = CepLookup;
188
+ /**
189
+ * @deprecated Use `new CepLookup(options).lookup(cep)` instead.
190
+ */
191
+ function lookupCep(options) {
192
+ console.warn("[cep-lookup] The standalone `lookupCep` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookup(cep)` instead.");
193
+ const { cep, providers, fetcher, mapper, cache, rateLimit } = options;
194
+ const cepLookup = new CepLookup({ providers, fetcher, cache, rateLimit });
195
+ return cepLookup.lookup(cep, mapper);
196
+ }
197
+ /**
198
+ * @deprecated Use `new CepLookup(options).lookupCeps(ceps)` instead.
199
+ */
200
+ async function lookupCeps(options) {
201
+ console.warn("[cep-lookup] The standalone `lookupCeps` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookupCeps(ceps)` instead.");
202
+ const { ceps, providers, fetcher, cache, concurrency = 5, rateLimit } = options;
203
+ const cepLookup = new CepLookup({ providers, fetcher, cache, rateLimit });
204
+ return cepLookup.lookupCeps(ceps, concurrency);
205
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.apicepProvider = void 0;
4
+ /**
5
+ * @const {Provider} apicepProvider
6
+ * @description Provider for the ApiCEP service.
7
+ * @property {string} name - "ApiCEP".
8
+ * @property {(cep: string) => string} buildUrl - Constructs the URL for ApiCEP.
9
+ * @property {(response: any) => Address} transform - Transforms ApiCEP's response into a standardized `Address` object.
10
+ */
11
+ exports.apicepProvider = {
12
+ name: "ApiCEP",
13
+ buildUrl: (cep) => `https://cdn.apicep.com/file/apicep/${cep}.json`,
14
+ transform: (response) => {
15
+ return {
16
+ cep: response.code,
17
+ state: response.state,
18
+ city: response.city,
19
+ neighborhood: response.district,
20
+ street: response.address,
21
+ service: "ApiCEP",
22
+ };
23
+ },
24
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.brasilApiProvider = void 0;
4
+ /**
5
+ * @const {Provider} brasilApiProvider
6
+ * @description Provider for the BrasilAPI service.
7
+ * @property {string} name - "BrasilAPI".
8
+ * @property {(cep: string) => string} buildUrl - Constructs the URL for BrasilAPI.
9
+ * @property {(response: any) => Address} transform - Transforms BrasilAPI's response into a standardized `Address` object.
10
+ */
11
+ exports.brasilApiProvider = {
12
+ name: "BrasilAPI",
13
+ buildUrl: (cep) => `https://brasilapi.com.br/api/cep/v1/${cep}`,
14
+ transform: (response) => {
15
+ return {
16
+ cep: response.cep,
17
+ state: response.state,
18
+ city: response.city,
19
+ neighborhood: response.neighborhood,
20
+ street: response.street,
21
+ service: "BrasilAPI",
22
+ };
23
+ },
24
+ };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./viacep"), exports);
18
+ __exportStar(require("./brasil-api"), exports);
19
+ __exportStar(require("./apicep"), exports);
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.viaCepProvider = void 0;
4
+ /**
5
+ * @const {Provider} viaCepProvider
6
+ * @description Provider for the ViaCEP service.
7
+ * @property {string} name - "ViaCEP".
8
+ * @property {(cep: string) => string} buildUrl - Constructs the URL for ViaCEP API.
9
+ * @property {(response: any) => Address} transform - Transforms ViaCEP's response into a standardized `Address` object.
10
+ * @throws {Error} If ViaCEP response indicates an error (e.g., CEP not found).
11
+ */
12
+ exports.viaCepProvider = {
13
+ name: "ViaCEP",
14
+ buildUrl: (cep) => `https://viacep.com.br/ws/${cep}/json/`,
15
+ transform: (response) => {
16
+ if (response.erro) {
17
+ throw new Error("CEP not found");
18
+ }
19
+ return {
20
+ cep: response.cep,
21
+ state: response.uf,
22
+ city: response.localidade,
23
+ neighborhood: response.bairro,
24
+ street: response.logradouro,
25
+ service: "ViaCEP",
26
+ };
27
+ },
28
+ };
@@ -0,0 +1,78 @@
1
+ import { Cache } from "./cache";
2
+ /**
3
+ * @interface Address
4
+ * @description Represents a standardized address object returned by the CEP lookup.
5
+ */
6
+ export interface Address {
7
+ cep: string;
8
+ state: string;
9
+ city: string;
10
+ neighborhood: string;
11
+ street: string;
12
+ service: string;
13
+ }
14
+ /**
15
+ * @interface Provider
16
+ * @description Defines the contract for a CEP lookup provider.
17
+ */
18
+ export interface Provider {
19
+ name: string;
20
+ timeout?: number;
21
+ buildUrl: (cep: string) => string;
22
+ transform: (response: any) => Address;
23
+ }
24
+ /**
25
+ * @typedef {function(url: string, signal?: AbortSignal): Promise<any>}
26
+ * @description A function that fetches data from a given URL.
27
+ */
28
+ export type Fetcher = (url: string, signal?: AbortSignal) => Promise<any>;
29
+ /**
30
+ * @interface RateLimitOptions
31
+ * @description Options for configuring the internal rate limiter.
32
+ */
33
+ export interface RateLimitOptions {
34
+ requests: number;
35
+ per: number;
36
+ }
37
+ /**
38
+ * @interface CepLookupOptions
39
+ * @description Options for initializing the `CepLookup` class.
40
+ */
41
+ export interface CepLookupOptions {
42
+ providers: Provider[];
43
+ fetcher?: Fetcher;
44
+ cache?: Cache;
45
+ rateLimit?: RateLimitOptions;
46
+ }
47
+ /**
48
+ * @interface BulkCepResult
49
+ * @description Represents the result for a single CEP in a bulk lookup operation.
50
+ */
51
+ export interface BulkCepResult {
52
+ cep: string;
53
+ data: Address | null;
54
+ provider?: string;
55
+ error?: Error;
56
+ }
57
+ export type EventName = 'success' | 'failure' | 'cache:hit';
58
+ export interface SuccessPayload {
59
+ provider: string;
60
+ cep: string;
61
+ duration: number;
62
+ address: Address;
63
+ }
64
+ export interface FailurePayload {
65
+ provider: string;
66
+ cep: string;
67
+ duration: number;
68
+ error: Error;
69
+ }
70
+ export interface CacheHitPayload {
71
+ cep: string;
72
+ }
73
+ export interface EventMap {
74
+ success: SuccessPayload;
75
+ failure: FailurePayload;
76
+ 'cache:hit': CacheHitPayload;
77
+ }
78
+ export type EventListener<T extends EventName> = (payload: EventMap[T]) => void;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2021.full.d.ts","../src/cache/index.ts","../src/types.ts","../src/index.ts","../src/providers/apicep.ts","../src/providers/brasil-api.ts","../src/providers/viacep.ts","../src/providers/index.ts","../../../node_modules/@types/aria-query/index.d.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/symbols/symbols.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/symbols/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/any/any.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/any/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/async-iterator/async-iterator.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/async-iterator/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/readonly-optional.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/constructor/constructor.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/constructor/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/literal/literal.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/literal/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/enum/enum.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/enum/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/function/function.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/function/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/computed/computed.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/computed/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/never/never.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/never/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-evaluated.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intersect/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/union/union-type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/union/union-evaluated.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/union/union.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/union/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/recursive/recursive.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/recursive/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/unsafe/unsafe.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/unsafe/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/ref/ref.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/ref/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/tuple/tuple.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/tuple/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/error/error.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/error/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/string/string.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/string/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/boolean/boolean.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/boolean/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/number/number.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/number/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/integer/integer.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/integer/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/bigint/bigint.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/bigint/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/parse.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/finite.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/generate.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/syntax.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/pattern.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/template-literal.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/union.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-property-keys.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/iterator/iterator.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/iterator/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/promise/promise.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/promise/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/sets/set.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/sets/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/mapped/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/optional/optional.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/optional/optional-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/optional/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/awaited/awaited.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/awaited/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-keys.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-entries.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/omit/omit.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/omit/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/pick/pick.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/pick/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/null/null.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/null/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/symbol/symbol.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/symbol/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/undefined/undefined.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/undefined/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/partial/partial.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/partial/partial-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/partial/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/regexp/regexp.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/regexp/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/record/record.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/record/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/required/required.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/required/required-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/required/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/transform/transform.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/transform/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/module/compute.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/module/infer.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/module/module.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/module/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/not/not.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/not/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/static/static.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/static/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/object/object.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/object/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/helpers/helpers.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/helpers/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/array/array.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/array/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/date/date.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/date/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/uint8array/uint8array.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/uint8array/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/unknown/unknown.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/unknown/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/void/void.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/void/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/schema/schema.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/schema/anyschema.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/schema/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/clone/type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/clone/value.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/clone/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/create/type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/create/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/argument/argument.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/argument/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/guard/kind.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/guard/type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/guard/value.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/guard/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/patterns/patterns.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/patterns/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/registry/format.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/registry/type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/registry/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/composite/composite.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/composite/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/const/const.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/const/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/constructor-parameters.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-template-literal.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/exclude/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends-check.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends-undefined.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-template-literal.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extract/extract.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extract/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/instance-type/instance-type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/instance-type/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/instantiate/instantiate.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/instantiate/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/capitalize.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/lowercase.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uncapitalize.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uppercase.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/parameters/parameters.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/parameters/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/rest/rest.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/rest/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/return-type/return-type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/return-type/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/type/json.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/type/javascript.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/type/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/index.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/jest-diff/node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/jest-mock/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/parse5/dist/common/html.d.ts","../../../node_modules/parse5/dist/common/token.d.ts","../../../node_modules/parse5/dist/common/error-codes.d.ts","../../../node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../../../node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts","../../../node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts","../../../node_modules/entities/dist/commonjs/decode-codepoint.d.ts","../../../node_modules/entities/dist/commonjs/decode.d.ts","../../../node_modules/entities/decode.d.ts","../../../node_modules/parse5/dist/tokenizer/index.d.ts","../../../node_modules/parse5/dist/tree-adapters/interface.d.ts","../../../node_modules/parse5/dist/parser/open-element-stack.d.ts","../../../node_modules/parse5/dist/parser/formatting-element-list.d.ts","../../../node_modules/parse5/dist/parser/index.d.ts","../../../node_modules/parse5/dist/tree-adapters/default.d.ts","../../../node_modules/parse5/dist/serializer/index.d.ts","../../../node_modules/parse5/dist/common/foreign-content.d.ts","../../../node_modules/parse5/dist/index.d.ts","../../../node_modules/@types/tough-cookie/index.d.ts","../../../node_modules/@types/jsdom/base.d.ts","../../../node_modules/@types/jsdom/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[67,280,334,351,352],[280,334,351,352],[269,280,334,351,352],[79,81,85,88,90,92,94,96,98,102,106,110,112,114,116,118,120,122,124,126,128,130,138,143,145,147,149,151,154,156,161,165,169,171,173,175,178,180,182,185,187,191,193,195,197,199,201,203,205,207,209,212,215,217,219,223,225,228,230,232,234,238,244,248,250,252,259,261,263,265,268,280,334,351,352],[79,212,280,334,351,352],[80,280,334,351,352],[218,280,334,351,352],[79,195,199,212,280,334,351,352],[200,280,334,351,352],[79,195,212,280,334,351,352],[84,280,334,351,352],[100,106,110,116,147,199,212,280,334,351,352],[155,280,334,351,352],[129,280,334,351,352],[123,280,334,351,352],[213,214,280,334,351,352],[212,280,334,351,352],[102,106,143,149,161,197,199,212,280,334,351,352],[229,280,334,351,352],[78,212,280,334,351,352],[99,280,334,351,352],[81,88,94,98,102,118,130,171,173,175,197,199,203,205,207,212,280,334,351,352],[231,280,334,351,352],[92,102,118,212,280,334,351,352],[233,280,334,351,352],[79,88,90,154,195,199,212,280,334,351,352],[91,280,334,351,352],[216,280,334,351,352],[210,280,334,351,352],[202,280,334,351,352],[79,94,212,280,334,351,352],[95,280,334,351,352],[119,280,334,351,352],[151,197,212,236,280,334,351,352],[138,212,236,280,334,351,352],[102,110,138,151,195,199,212,235,237,280,334,351,352],[235,236,237,280,334,351,352],[120,212,280,334,351,352],[94,151,197,199,212,241,280,334,351,352],[151,197,212,241,280,334,351,352],[110,151,195,199,212,240,242,280,334,351,352],[239,240,241,242,243,280,334,351,352],[151,197,212,246,280,334,351,352],[138,212,246,280,334,351,352],[102,110,138,151,195,199,212,245,247,280,334,351,352],[245,246,247,280,334,351,352],[97,280,334,351,352],[220,221,222,280,334,351,352],[79,81,85,88,92,94,98,100,102,106,110,112,114,116,118,122,124,126,128,130,138,145,147,151,154,171,173,175,180,182,187,191,193,197,201,203,205,207,209,212,219,280,334,351,352],[79,81,85,88,92,94,98,100,102,106,110,112,114,116,118,120,122,124,126,128,130,138,145,147,151,154,171,173,175,180,182,187,191,193,197,201,203,205,207,209,212,219,280,334,351,352],[102,197,212,280,334,351,352],[198,280,334,351,352],[139,140,141,142,280,334,351,352],[141,151,197,199,212,280,334,351,352],[139,143,151,197,212,280,334,351,352],[94,110,126,128,138,212,280,334,351,352],[100,102,106,110,112,116,118,139,140,142,151,197,199,201,212,280,334,351,352],[249,280,334,351,352],[92,102,212,280,334,351,352],[251,280,334,351,352],[85,88,90,92,98,106,110,118,145,147,154,182,197,201,207,212,219,280,334,351,352],[127,280,334,351,352],[103,104,105,280,334,351,352],[88,102,103,154,212,280,334,351,352],[102,103,212,280,334,351,352],[212,254,280,334,351,352],[253,254,255,256,257,258,280,334,351,352],[94,151,197,199,212,254,280,334,351,352],[94,110,138,151,212,253,280,334,351,352],[144,280,334,351,352],[157,158,159,160,280,334,351,352],[151,158,197,199,212,280,334,351,352],[106,110,112,118,149,197,199,201,212,280,334,351,352],[94,100,110,116,126,151,157,159,199,212,280,334,351,352],[93,280,334,351,352],[82,83,150,280,334,351,352],[79,197,212,280,334,351,352],[82,83,85,88,92,94,96,98,106,110,118,143,145,147,149,154,197,199,201,212,280,334,351,352],[85,88,92,96,98,100,102,106,110,116,118,143,145,154,156,161,165,169,178,182,185,187,197,199,201,212,280,334,351,352],[190,280,334,351,352],[85,88,92,96,98,106,110,112,116,118,145,154,182,195,197,199,201,212,280,334,351,352],[79,188,189,195,197,212,280,334,351,352],[101,280,334,351,352],[192,280,334,351,352],[170,280,334,351,352],[125,280,334,351,352],[196,280,334,351,352],[79,88,154,195,199,212,280,334,351,352],[162,163,164,280,334,351,352],[151,163,197,212,280,334,351,352],[151,163,197,199,212,280,334,351,352],[94,100,106,110,112,116,143,151,162,164,197,199,212,280,334,351,352],[152,153,280,334,351,352],[151,152,197,280,334,351,352],[79,151,153,199,212,280,334,351,352],[260,280,334,351,352],[98,102,118,212,280,334,351,352],[176,177,280,334,351,352],[151,176,197,199,212,280,334,351,352],[88,90,94,100,106,110,112,116,122,124,126,128,130,151,154,171,173,175,177,197,199,212,280,334,351,352],[224,280,334,351,352],[166,167,168,280,334,351,352],[151,167,197,212,280,334,351,352],[151,167,197,199,212,280,334,351,352],[94,100,106,110,112,116,143,151,166,168,197,199,212,280,334,351,352],[146,280,334,351,352],[89,280,334,351,352],[88,154,212,280,334,351,352],[86,87,280,334,351,352],[86,151,197,280,334,351,352],[79,87,151,199,212,280,334,351,352],[181,280,334,351,352],[79,81,94,96,102,110,122,124,126,128,138,180,195,197,199,212,280,334,351,352],[111,280,334,351,352],[115,280,334,351,352],[79,114,195,212,280,334,351,352],[179,280,334,351,352],[226,227,280,334,351,352],[183,184,280,334,351,352],[151,183,197,199,212,280,334,351,352],[88,90,94,100,106,110,112,116,122,124,126,128,130,151,154,171,173,175,184,197,199,212,280,334,351,352],[262,280,334,351,352],[106,110,118,212,280,334,351,352],[264,280,334,351,352],[98,102,212,280,334,351,352],[81,85,92,94,96,98,106,110,112,116,118,122,124,126,128,130,138,145,147,171,173,175,180,182,193,197,201,203,205,207,209,210,280,334,351,352],[210,211,280,334,351,352],[79,280,334,351,352],[148,280,334,351,352],[194,280,334,351,352],[85,88,92,96,98,102,106,110,112,114,116,118,145,147,154,182,187,191,193,197,199,201,212,280,334,351,352],[121,280,334,351,352],[172,280,334,351,352],[78,280,334,351,352],[94,110,120,122,124,126,128,130,131,138,280,334,351,352],[94,110,120,124,131,132,138,199,280,334,351,352],[131,132,133,134,135,136,137,280,334,351,352],[120,280,334,351,352],[120,138,280,334,351,352],[94,110,122,124,126,130,138,199,280,334,351,352],[79,94,102,110,122,124,126,128,130,134,195,199,212,280,334,351,352],[94,110,136,195,199,280,334,351,352],[186,280,334,351,352],[117,280,334,351,352],[266,267,280,334,351,352],[85,92,98,130,145,147,156,173,175,180,203,205,209,212,219,234,250,252,261,265,266,280,334,351,352],[81,88,90,94,96,102,106,110,112,114,116,118,122,124,126,128,138,143,151,154,161,165,169,171,178,182,185,187,191,193,197,201,207,212,230,232,238,244,248,259,263,280,334,351,352],[204,280,334,351,352],[174,280,334,351,352],[107,108,109,280,334,351,352],[88,102,107,154,212,280,334,351,352],[102,107,212,280,334,351,352],[206,280,334,351,352],[113,280,334,351,352],[208,280,334,351,352],[67,68,69,70,71,280,334,351,352],[67,69,280,334,351,352],[73,280,334,351,352],[74,280,334,351,352],[271,275,280,334,351,352],[270,280,334,351,352],[280,334,345,351,352,380,384,402,403,405],[280,334,351,352,404],[280,331,332,334,351,352],[280,333,334,351,352],[334,351,352],[280,334,339,351,352,369],[280,334,335,340,345,351,352,354,366,377],[280,334,335,336,345,351,352,354],[280,334,337,351,352,378],[280,334,338,339,346,351,352,355],[280,334,339,351,352,366,374],[280,334,340,342,345,351,352,354],[280,333,334,341,351,352],[280,334,342,343,351,352],[280,334,344,345,351,352],[280,333,334,345,351,352],[280,334,345,346,347,351,352,366,377],[280,334,345,346,347,351,352,361,366,369],[280,326,334,342,345,348,351,352,354,366,377],[280,334,345,346,348,349,351,352,354,366,374,377],[280,334,348,350,351,352,366,374,377],[278,279,280,281,282,283,284,285,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383],[280,334,345,351,352],[280,334,351,352,353,377],[280,334,342,345,351,352,354,366],[280,334,351,352,355],[280,334,351,352,356],[280,333,334,351,352,357],[280,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383],[280,334,351,352,359],[280,334,351,352,360],[280,334,345,351,352,361,362],[280,334,351,352,361,363,378,380],[280,334,345,351,352,366,367,369],[280,334,351,352,368,369],[280,334,351,352,366,367],[280,334,351,352,369],[280,334,351,352,370],[280,331,334,351,352,366,371],[280,334,345,351,352,372,373],[280,334,351,352,372,373],[280,334,339,351,352,354,366,374],[280,334,351,352,375],[280,334,351,352,354,376],[280,334,348,351,352,360,377],[280,334,339,351,352,378],[280,334,351,352,366,379],[280,334,351,352,353,380],[280,334,351,352,381],[280,334,339,351,352],[280,326,334,351,352],[280,334,351,352,382],[280,326,334,345,347,351,352,357,366,369,377,379,380,382],[280,334,351,352,366,383],[280,334,351,352,409],[280,334,351,352,406,407,408],[280,334,351,352,412],[280,334,351,352,392],[280,334,351,352,389,390,391],[76,273,274,280,334,351,352],[271,280,334,351,352],[77,272,280,334,351,352],[280,334,351,352,386],[280,334,351,352,385,386],[280,334,351,352,385],[280,334,351,352,385,386,387,394,395,398,399,400,401],[280,334,351,352,386,395],[280,334,351,352,385,386,387,394,395,396,397],[280,334,351,352,385,395],[280,334,351,352,395,399],[280,334,351,352,386,387,388,393],[280,334,351,352,387],[280,334,351,352,385,386,395],[280,292,295,298,299,334,351,352,377],[280,295,334,351,352,366,377],[280,295,299,334,351,352,377],[280,334,351,352,366],[280,289,334,351,352],[280,293,334,351,352],[280,291,292,295,334,351,352,377],[280,334,351,352,354,374],[280,334,351,352,384],[280,289,334,351,352,384],[280,291,295,334,351,352,354,377],[280,286,287,288,290,294,334,345,351,352,366,377],[280,295,303,311,334,351,352],[280,287,293,334,351,352],[280,295,320,321,334,351,352],[280,287,290,295,334,351,352,369,377,384],[280,295,334,351,352],[280,291,295,334,351,352,377],[280,286,334,351,352],[280,289,290,291,293,294,295,296,297,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,321,322,323,324,325,334,351,352],[280,295,313,316,334,342,351,352],[280,295,303,304,305,334,351,352],[280,293,295,304,306,334,351,352],[280,294,334,351,352],[280,287,289,295,334,351,352],[280,295,299,304,306,334,351,352],[280,299,334,351,352],[280,293,295,298,334,351,352,377],[280,287,291,295,303,334,351,352],[280,295,313,334,351,352],[280,306,334,351,352],[280,289,295,320,334,351,352,369,382,384],[60,280,334,351,352],[59,60,280,334,351,352],[62,63,64,280,334,351,352],[59,280,334,351,352]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a66df3ab5de5cfcda11538cffddd67ff6a174e003788e270914c1e0248483cf","impliedFormat":1},{"version":"12850149476b3edfac5efa1063eafa6a188bfd7446ca7c983fcc381552971803","signature":"43f37477e88600586fbee697ad4233ffe9c119dd6e9735c13e2c43aa1f59cef7"},{"version":"d8117cc8595df21e440379820fc3cd31d56039b0d6450568b357edcf2f5f6525","signature":"e143c02d1acf778046492767e798ab3417fa0a8cd0ca18b950ffda6c70f2a6c3"},{"version":"3790f5a3f3d6574584ffc71597f047d0b728ee1d98579eebf30a044f55aef28b","signature":"37d471ff78a85136b8c0c7a4cb41790f2f28270875f25d37318221b18b46fabc"},{"version":"1721a0494c45dc3aa6d7e6fdd6d099767af14a8746462ab6cdfcfabca66f94f4","signature":"1c0a4a3ff278c6675c65dea00fa006b88dec7b3c3618145414bfd1886ba8210d"},{"version":"d9b7a6aa5795f94f392bdc8ef0f0a4105e4541d2468e77f4f49fd3c8886ad34e","signature":"e534a0d4dc76fed916d8e2d19fdf0b16ba87cb3f22f586ddeeed4d3685762a9e"},{"version":"485283145b71e1f55448a0f2746d46852a5162b3404fcf6e3cdfcc95a0c0dea4","signature":"e5fa96d16e623285b0b15ab53bfbfb8478ec688b75fe5673cd70708065b81b6d"},{"version":"d63f228102e5a6c548ce4ae03a39973572304bf86037982e75b471dabbeb332d","signature":"4dbcca0cd7d5571029b693b8310d1ac0dd2520b05608326c1fa72e2020ab12f1"},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"a28ac3e717907284b3910b8e9b3f9844a4e0b0a861bea7b923e5adf90f620330","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"82e5a50e17833a10eb091923b7e429dc846d42f1c6161eb6beeb964288d98a15","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"d934a06d62d87a7e2d75a3586b5f9fb2d94d5fe4725ff07252d5f4651485100f","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"b104e2da53231a529373174880dc0abfbc80184bb473b6bf2a9a0746bebb663d","impliedFormat":1},{"version":"ee91a5fbbd1627c632df89cce5a4054f9cc6e7413ebdccc82b27c7ffeedf982d","impliedFormat":1},{"version":"85c8731ca285809fc248abf21b921fe00a67b6121d27060d6194eddc0e042b1a","impliedFormat":1},{"version":"6bac0cbdf1bc85ae707f91fdf037e1b600e39fb05df18915d4ecab04a1e59d3c","impliedFormat":1},{"version":"5688b21a05a2a11c25f56e53359e2dcda0a34cb1a582dbeb1eaacdeca55cb699","impliedFormat":1},{"version":"35558bf15f773acbe3ed5ac07dd27c278476630d85245f176e85f9a95128b6e0","impliedFormat":1},{"version":"951f54e4a63e82b310439993170e866dba0f28bb829cbc14d2f2103935cea381","impliedFormat":1},{"version":"4454a999dc1676b866450e8cddd9490be87b391b5526a33f88c7e45129d30c5d","impliedFormat":1},{"version":"99013139312db746c142f27515a14cdebb61ff37f20ee1de6a58ce30d36a4f0d","impliedFormat":1},{"version":"71da852f38ac50d2ae43a7b7f2899b10a2000727fee293b0b72123ed2e7e2ad6","impliedFormat":1},{"version":"74dd1096fca1fec76b951cf5eacf609feaf919e67e13af02fed49ec3b77ea797","impliedFormat":1},{"version":"a0691153ccf5aa1b687b1500239722fff4d755481c20e16d9fcd7fb2d659c7c7","impliedFormat":1},{"version":"fe2201d73ae56b1b4946c10e18549a93bf4c390308af9d422f1ffd3c7989ffc8","impliedFormat":1},{"version":"cad63667f992149cee390c3e98f38c00eee56a2dae3541c6d9929641b835f987","impliedFormat":1},{"version":"f497cad2b33824d8b566fa276cfe3561553f905fdc6b40406c92bcfcaec96552","impliedFormat":1},{"version":"eb58c4dbc6fec60617d80f8ccf23900a64d3190fda7cfb2558b389506ec69be0","impliedFormat":1},{"version":"578929b1c1e3adaed503c0a0f9bda8ba3fea598cc41ad5c38932f765684d9888","impliedFormat":1},{"version":"7cc9d600b2070b1e5c220044a8d5a58b40da1c11399b6c8968711de9663dc6b2","impliedFormat":1},{"version":"45f36cf09d3067cd98b39a7d430e0e531f02911dd6d63b6d784b1955eef86435","impliedFormat":1},{"version":"80419a23b4182c256fa51d71cb9c4d872256ca6873701ceabbd65f8426591e49","impliedFormat":1},{"version":"5aa046aaab44da1a63d229bd67a7a1344afbd6f64db20c2bbe3981ceb2db3b07","impliedFormat":1},{"version":"ed9ad5b51c6faf9d6f597aa0ab11cb1d3a361c51ba59d1220557ef21ad5b0146","impliedFormat":1},{"version":"73db7984e8a35e6b48e3879a6d024803dd990022def2750b3c23c01eb58bc30f","impliedFormat":1},{"version":"c9ecb910b3b4c0cf67bc74833fc41585141c196b5660d2eb3a74cfffbf5aa266","impliedFormat":1},{"version":"33dcfba8a7e4acbe23974d342c44c36d7382c3d1d261f8aef28261a7a5df2969","impliedFormat":1},{"version":"de26700eb7277e8cfdde32ebb21b3d9ad1d713b64fdc2019068b857611e8f0c4","impliedFormat":1},{"version":"e481bd2c07c8e93eb58a857a9e66f22cb0b5ddfd86bbf273816fd31ef3a80613","impliedFormat":1},{"version":"ef156ba4043f6228d37645d6d9c6230a311e1c7a86669518d5f2ebc26e6559bf","impliedFormat":1},{"version":"457fd1e6d6f359d7fa2ca453353f4317efccae5c902b13f15c587597015212bc","impliedFormat":1},{"version":"473b2b42af720ebdb539988c06e040fd9600facdeb23cb297d72ee0098d8598f","impliedFormat":1},{"version":"22bc373ca556de33255faaddb373fec49e08336638958ad17fbd6361c7461eed","impliedFormat":1},{"version":"b3d58358675095fef03ec71bddc61f743128682625f1336df2fc31e29499ab25","impliedFormat":1},{"version":"5b1ef94b03042629c76350fe18be52e17ab70f1c3be8f606102b30a5cd86c1b3","impliedFormat":1},{"version":"a7b6046c44d5fda21d39b3266805d37a2811c2f639bf6b40a633b9a5fb4f5d88","impliedFormat":1},{"version":"80b036a132f3def4623aad73d526c6261dcae3c5f7013857f9ecf6589b72951f","impliedFormat":1},{"version":"0a347c2088c3b1726b95ccde77953bede00dd9dd2fda84585fa6f9f6e9573c18","impliedFormat":1},{"version":"8cc3abb4586d574a3faeea6747111b291e0c9981003a0d72711351a6bcc01421","impliedFormat":1},{"version":"0a516adfde610035e31008b170da29166233678216ef3646822c1b9af98879da","impliedFormat":1},{"version":"70d48a1faa86f67c9cb8a39babc5049246d7c67b6617cd08f64e29c055897ca9","impliedFormat":1},{"version":"a8d7795fcf72b0b91fe2ad25276ea6ab34fdb0f8f42aa1dd4e64ee7d02727031","impliedFormat":1},{"version":"082b818038423de54be877cebdb344a2e3cf3f6abcfc48218d8acf95c030426a","impliedFormat":1},{"version":"813514ef625cb8fc3befeec97afddfb3b80b80ced859959339d99f3ad538d8fe","impliedFormat":1},{"version":"039cd54028eb988297e189275764df06c18f9299b14c063e93bd3f30c046fee6","impliedFormat":1},{"version":"e91cfd040e6da28427c5c4396912874902c26605240bdc3457cc75b6235a80f2","impliedFormat":1},{"version":"b4347f0b45e4788c18241ac4dee20ceab96d172847f1c11d42439d3de3c09a3e","impliedFormat":1},{"version":"16fe6721dc0b4144a0cdcef98857ee19025bf3c2a3cc210bcd0b9d0e25f7cec8","impliedFormat":1},{"version":"346d903799e8ea99e9674ba5745642d47c0d77b003cc7bb93e1d4c21c9e37101","impliedFormat":1},{"version":"3997421bb1889118b1bbfc53dd198c3f653bf566fd13c663e02eb08649b985c4","impliedFormat":1},{"version":"2d1ac54184d897cb5b2e732d501fa4591f751678717fd0c1fd4a368236b75cba","impliedFormat":1},{"version":"bade30041d41945c54d16a6ec7046fba6d1a279aade69dfdef9e70f71f2b7226","impliedFormat":1},{"version":"56fbea100bd7dd903dc49a1001995d3c6eee10a419c66a79cdb194bff7250eb7","impliedFormat":1},{"version":"fe8d26b2b3e519e37ceea31b1790b17d7c5ab30334ca2b56d376501388ba80d6","impliedFormat":1},{"version":"37ad0a0c2b296442072cd928d55ef6a156d50793c46c2e2497da1c2750d27c1e","impliedFormat":1},{"version":"be93d07586d09e1b6625e51a1591d6119c9f1cbd95718497636a406ec42babee","impliedFormat":1},{"version":"a062b507ed5fc23fbc5850fd101bc9a39e9a0940bb52a45cd4624176337ad6b8","impliedFormat":1},{"version":"cf01f601ef1e10b90cad69312081ce0350f26a18330913487a26d6d4f7ce5a73","impliedFormat":1},{"version":"a9de7b9a5deaed116c9c89ad76fdcc469226a22b79c80736de585af4f97b17cd","impliedFormat":1},{"version":"5bde81e8b0efb2d977c6795f9425f890770d54610764b1d8df340ce35778c4f8","impliedFormat":1},{"version":"20fd0402351907669405355eeae8db00b3cf0331a3a86d8142f7b33805174f57","impliedFormat":1},{"version":"da6949af729eca1ec1fe867f93a601988b5b206b6049c027d0c849301d20af6f","impliedFormat":1},{"version":"7008f240ea3a5a344be4e5f9b5dbf26721aad3c5cfef5ff79d133fa7450e48fa","impliedFormat":1},{"version":"eb13c8624f5747a845aea0df1dfde0f2b8f5ed90ca3bc550b12777797cb1b1e3","impliedFormat":1},{"version":"2452fc0f47d3b5b466bda412397831dd5138e62f77aa5e11270e6ca3ecb8328d","impliedFormat":1},{"version":"33c2ebbdd9a62776ca0091a8d1f445fa2ea4b4f378bc92f524031a70dfbeec86","impliedFormat":1},{"version":"3ac3a5b34331a56a3f76de9baf619def3f3073961ce0a012b6ffa72cf8a91f1f","impliedFormat":1},{"version":"d5e9d32cc9813a5290a17492f554999e33f1aa083a128d3e857779548537a778","impliedFormat":1},{"version":"776f49489fa2e461b40370e501d8e775ddb32433c2d1b973f79d9717e1d79be5","impliedFormat":1},{"version":"be94ea1bfaa2eeef1e821a024914ef94cf0cba05be8f2e7df7e9556231870a1d","impliedFormat":1},{"version":"40cd13782413c7195ad8f189f81174850cc083967d056b23d529199d64f02c79","impliedFormat":1},{"version":"05e041810faf710c1dcd03f3ffde100c4a744672d93512314b1f3cfffccdaf20","impliedFormat":1},{"version":"15a8f79b1557978d752c0be488ee5a70daa389638d79570507a3d4cfc620d49d","impliedFormat":1},{"version":"968ee57037c469cffb3b0e268ab824a9c31e4205475b230011895466a1e72da4","impliedFormat":1},{"version":"77debd777927059acbaf1029dfc95900b3ab8ed0434ce3914775efb0574e747b","impliedFormat":1},{"version":"921e3bd6325acb712cd319eaec9392c9ad81f893dead509ab2f4e688f265e536","impliedFormat":1},{"version":"60f6768c96f54b870966957fb9a1b176336cd82895ded088980fb506c032be1c","impliedFormat":1},{"version":"755d9b267084db4ea40fa29653ea5fc43e125792b1940f2909ec70a4c7f712d8","impliedFormat":1},{"version":"7e3056d5333f2d8a9e54324c2e2293027e4cd9874615692a53ad69090894d116","impliedFormat":1},{"version":"1e25b848c58ad80be5c31b794d49092d94df2b7e492683974c436bcdbefb983c","impliedFormat":1},{"version":"3df6fc700b8d787974651680ae6e37b6b50726cf5401b7887f669ab195c2f2ef","impliedFormat":1},{"version":"145df08c171ec616645a353d5eaa5d5f57a5fbce960a47d847548abd9215a99e","impliedFormat":1},{"version":"dcfd2ca9e033077f9125eeca6890bb152c6c0bc715d0482595abc93c05d02d92","impliedFormat":1},{"version":"8056fa6beb8297f160e13c9b677ba2be92ab23adfb6940e5a974b05acd33163b","impliedFormat":1},{"version":"86dda1e79020fad844010b39abb68fafed2f3b2156e3302820c4d0a161f88b03","impliedFormat":1},{"version":"dea0dcec8d5e0153d6f0eacebb163d7c3a4b322a9304048adffc6d26084054bd","impliedFormat":1},{"version":"2afd081a65d595d806b0ff434d2a96dc3d6dcd8f0d1351c0a0968568c6944e0b","impliedFormat":1},{"version":"10ca40958b0dbba6426cf142c0347559cdd97d66c10083e829b10eb3c0ebc75c","impliedFormat":1},{"version":"2f1f7c65e8ee58e3e7358f9b8b3c37d8447549ecc85046f9405a0fc67fbdf54b","impliedFormat":1},{"version":"e3f3964ff78dee11a07ae589f1319ff682f62f3c6c8afa935e3d8616cf21b431","impliedFormat":1},{"version":"2762c2dbee294ffb8fdbcae6db32c3dae09e477d6a348b48578b4145b15d1818","impliedFormat":1},{"version":"e0f1c55e727739d4918c80cd9f82cf8a94274838e5ac48ff0c36529e23b79dc5","impliedFormat":1},{"version":"24bd135b687da453ea7bd98f7ece72e610a3ff8ca6ec23d321c0e32f19d32db6","impliedFormat":1},{"version":"64d45d55ba6e42734ac326d2ea1f674c72837443eb7ff66c82f95e4544980713","impliedFormat":1},{"version":"f9b0dc747f13dcc09e40c26ddcc118b1bafc3152f771fdc32757a7f8916a11fc","impliedFormat":1},{"version":"7035fc608c297fd38dfe757d44d3483a570e2d6c8824b2d6b20294d617da64c6","impliedFormat":1},{"version":"22160a296186123d2df75280a1fab70d2105ce1677af1ebb344ffcb88eef6e42","impliedFormat":1},{"version":"9067b3fd7d71165d4c34fcbbf29f883860fd722b7e8f92e87da036b355a6c625","impliedFormat":1},{"version":"e01ab4b99cc4a775d06155e9cadd2ebd93e4af46e2723cb9361f24a4e1f178ef","impliedFormat":1},{"version":"9a13410635d5cc9c2882e67921c59fb26e77b9d99efa1a80b5a46fdc2954afce","impliedFormat":1},{"version":"eabf68d666f0568b6439f4a58559d42287c3397a03fa6335758b1c8811d4174a","impliedFormat":1},{"version":"fa894bdddb2ba0e6c65ad0d88942cf15328941246410c502576124ef044746f9","impliedFormat":1},{"version":"59c5a06fa4bf2fa320a3c5289b6f199a3e4f9562480f59c0987c91dc135a1adf","impliedFormat":1},{"version":"456a9a12ad5d57af0094edf99ceab1804449f6e7bc773d85d09c56a18978a177","impliedFormat":1},{"version":"a8e2a77f445a8a1ce61bfd4b7b22664d98cf19b84ec6a966544d0decec18e143","impliedFormat":1},{"version":"6f6b0b477db6c4039410c7a13fe1ebed4910dedf644330269816df419cdb1c65","impliedFormat":1},{"version":"960b6e1edfb9aafbd560eceaae0093b31a9232ab273f4ed776c647b2fb9771da","impliedFormat":1},{"version":"3bf44073402d2489e61cdf6769c5c4cf37529e3a1cd02f01c58b7cf840308393","impliedFormat":1},{"version":"a0db48d42371b223cea8fd7a41763d48f9166ecd4baecc9d29d9bb44cc3c2d83","impliedFormat":1},{"version":"aaf3c2e268f27514eb28255835f38445a200cd8bcfdff2c07c6227f67aaaf657","impliedFormat":1},{"version":"6ade56d2afdf75a9bd55cd9c8593ed1d78674804d9f6d9aba04f807f3179979e","impliedFormat":1},{"version":"b67acb619b761e91e3a11dddb98c51ee140361bc361eb17538f1c3617e3ec157","impliedFormat":1},{"version":"81b097e0f9f8d8c3d5fe6ba9dc86139e2d95d1e24c5ce7396a276dfbb2713371","impliedFormat":1},{"version":"692d56fff4fb60948fe16e9fed6c4c4eac9b263c06a8c6e63726e28ed4844fd4","impliedFormat":1},{"version":"f13228f2c0e145fc6dc64917eeef690fb2883a0ac3fa9ebfbd99616fd12f5629","impliedFormat":1},{"version":"d89b2b41a42c04853037408080a2740f8cd18beee1c422638d54f8aefe95c5b8","impliedFormat":1},{"version":"be5d39e513e3e0135068e4ebed5473ab465ae441405dce90ab95055a14403f64","impliedFormat":1},{"version":"97e320c56905d9fa6ac8bd652cea750265384f048505870831e273050e2878cc","impliedFormat":1},{"version":"9932f390435192eb93597f89997500626fb31005416ce08a614f66ec475c5c42","impliedFormat":1},{"version":"5d89ca552233ac2d61aee34b0587f49111a54a02492e7a1098e0701dedca60c9","impliedFormat":1},{"version":"369773458c84d91e1bfcb3b94948a9768f15bf2829538188abd467bad57553cd","impliedFormat":1},{"version":"fdc4fd2c610b368104746960b45216bc32685927529dd871a5330f4871d14906","impliedFormat":1},{"version":"7b5d77c769a6f54ea64b22f1877d64436f038d9c81f1552ad11ed63f394bd351","impliedFormat":1},{"version":"4f7d54c603949113f45505330caae6f41e8dbb59841d4ae20b42307dc4579835","impliedFormat":1},{"version":"a71fd01a802624c3fce6b09c14b461cc7c7758aa199c202d423a7c89ad89943c","impliedFormat":1},{"version":"1ed0dc05908eb15f46379bc1cb64423760e59d6c3de826a970b2e2f6da290bf5","impliedFormat":1},{"version":"db89ef053f209839606e770244031688c47624b771ff5c65f0fa1ec10a6919f1","impliedFormat":1},{"version":"4d45b88987f32b2ac744f633ff5ddb95cd10f64459703f91f1633ff457d6c30d","impliedFormat":1},{"version":"8512fd4a480cd8ef8bf923a85ff5e97216fa93fb763ec871144a9026e1c9dade","impliedFormat":1},{"version":"2aa58b491183eedf2c8ae6ef9a610cd43433fcd854f4cc3e2492027fbe63f5ca","impliedFormat":1},{"version":"ce1f3439cb1c5a207f47938e68752730892fc3e66222227effc6a8b693450b82","impliedFormat":1},{"version":"295ce2cf585c26a9b71ba34fbb026d2b5a5f0d738b06a356e514f39c20bf38ba","impliedFormat":1},{"version":"342f10cf9ba3fbf52d54253db5c0ac3de50360b0a3c28e648a449e28a4ac8a8c","impliedFormat":1},{"version":"c485987c684a51c30e375d70f70942576fa86e9d30ee8d5849b6017931fccc6f","impliedFormat":1},{"version":"320bd1aa480e22cdd7cd3d385157258cc252577f4948cbf7cfdf78ded9d6d0a8","impliedFormat":1},{"version":"4ee053dfa1fce5266ecfae2bf8b6b0cb78a6a76060a1dcf66fb7215b9ff46b0b","impliedFormat":1},{"version":"1f84d8b133284b596328df47453d3b3f3817ad206cf3facf5eb64b0a2c14f6d7","impliedFormat":1},{"version":"5c75e05bc62bffe196a9b2e9adfa824ffa7b90d62345a766c21585f2ce775001","impliedFormat":1},{"version":"cc2eb5b23140bbceadf000ef2b71d27ac011d1c325b0fc5ecd42a3221db5fb2e","impliedFormat":1},{"version":"fd75cc24ea5ec28a44c0afc2f8f33da5736be58737ba772318ae3bdc1c079dc3","impliedFormat":1},{"version":"5ae43407346e6f7d5408292a7d957a663cc7b6d858a14526714a23466ac83ef9","impliedFormat":1},{"version":"c72001118edc35bbe4fff17674dc5f2032ccdbcc5bec4bd7894a6ed55739d31b","impliedFormat":1},{"version":"353196fd0dd1d05e933703d8dad664651ed172b8dfb3beaef38e66522b1e0219","impliedFormat":1},{"version":"670aef817baea9332d7974295938cf0201a2d533c5721fccf4801ba9a4571c75","impliedFormat":1},{"version":"3f5736e735ee01c6ecc6d4ab35b2d905418bb0d2128de098b73e11dd5decc34f","impliedFormat":1},{"version":"b64e159c49afc6499005756f5a7c2397c917525ceab513995f047cdd80b04bdf","impliedFormat":1},{"version":"f72b400dbf8f27adbda4c39a673884cb05daf8e0a1d8152eec2480f5700db36c","impliedFormat":1},{"version":"24509d0601fc00c4d77c20cacddbca6b878025f4e0712bddd171c7917f8cdcde","impliedFormat":1},{"version":"5f5baa59149d3d6d6cef2c09d46bb4d19beb10d6bee8c05b7850c33535b3c438","impliedFormat":1},{"version":"f17a51aae728f9f1a2290919cf29a927621b27f6ae91697aee78f41d48851690","impliedFormat":1},{"version":"be02e3c3cb4e187fd252e7ae12f6383f274e82288c8772bb0daf1a4e4af571ad","impliedFormat":1},{"version":"82ca40fb541799273571b011cd9de6ee9b577ef68acc8408135504ae69365b74","impliedFormat":1},{"version":"8fb6646db72914d6ef0692ea88b25670bbf5e504891613a1f46b42783ec18cce","impliedFormat":1},{"version":"07b0cb8b69e71d34804bde3e6dc6faaae8299f0118e9566b94e1f767b8ba9d64","impliedFormat":1},{"version":"213aa21650a910d95c4d0bee4bb936ecd51e230c1a9e5361e008830dcc73bc86","impliedFormat":1},{"version":"874a8c5125ad187e47e4a8eacc809c866c0e71b619a863cc14794dd3ccf23940","impliedFormat":1},{"version":"c31db8e51e85ee67018ac2a40006910efbb58e46baea774cf1f245d99bf178b5","impliedFormat":1},{"version":"31fac222250b18ebac0158938ede4b5d245e67d29cd2ef1e6c8a5859d137d803","impliedFormat":1},{"version":"a9dfb793a7e10949f4f3ea9f282b53d3bd8bf59f5459bc6e618e3457ed2529f5","impliedFormat":1},{"version":"2a77167687b0ec0c36ef581925103f1dc0c69993f61a9dbd299dcd30601af487","impliedFormat":1},{"version":"0f23b5ce60c754c2816c2542b9b164d6cb15243f4cbcd11cfafcab14b60e04d0","impliedFormat":1},{"version":"813ce40a8c02b172fdbeb8a07fdd427ac68e821f0e20e3dc699fb5f5bdf1ef0a","impliedFormat":1},{"version":"5ce6b24d5fd5ebb1e38fe817b8775e2e00c94145ad6eedaf26e3adf8bb3903d0","impliedFormat":1},{"version":"6babca69d3ae17be168cfceb91011eed881d41ce973302ee4e97d68a81c514b4","impliedFormat":1},{"version":"3e0832bc2533c0ec6ffcd61b7c055adedcca1a45364b3275c03343b83c71f5b3","impliedFormat":1},{"version":"342418c52b55f721b043183975052fb3956dae3c1f55f965fedfbbf4ad540501","impliedFormat":1},{"version":"6a6ab1edb5440ee695818d76f66d1a282a31207707e0d835828341e88e0c1160","impliedFormat":1},{"version":"7e9b4669774e97f5dc435ddb679aa9e7d77a1e5a480072c1d1291892d54bf45c","impliedFormat":1},{"version":"de439ddbed60296fbd1e5b4d242ce12aad718dffe6432efcae1ad6cd996defd3","impliedFormat":1},{"version":"ce5fb71799f4dbb0a9622bf976a192664e6c574d125d3773d0fa57926387b8b2","impliedFormat":1},{"version":"b9c0de070a5876c81540b1340baac0d7098ea9657c6653731a3199fcb2917cef","impliedFormat":1},{"version":"cbc91ecd74d8f9ddcbcbdc2d9245f14eff5b2f6ae38371283c97ca7dc3c4a45f","impliedFormat":1},{"version":"3ca1d6f016f36c61a59483c80d8b9f9d50301fbe52a0dde288c1381862b13636","impliedFormat":1},{"version":"ecfef0c0ff0c80ac9a6c2fab904a06b680fb5dfe8d9654bb789e49c6973cb781","impliedFormat":1},{"version":"0ee2eb3f7c0106ccf6e388bc0a16e1b3d346e88ac31b6a5bbc15766e43992167","impliedFormat":1},{"version":"f9592b77fd32a7a1262c1e9363d2e43027f513d1d2ff6b21e1cfdac4303d5a73","impliedFormat":1},{"version":"7e46dd61422e5afe88c34e5f1894ae89a37b7a07393440c092e9dc4399820172","impliedFormat":1},{"version":"9df4f57d7279173b0810154c174aa03fd60f5a1f0c3acfe8805e55e935bdecd4","impliedFormat":1},{"version":"a02a51b68a60a06d4bd0c747d6fbade0cb87eefda5f985fb4650e343da424f12","impliedFormat":1},{"version":"0cf851e2f0ecf61cabe64efd72de360246bcb8c19c6ef7b5cbb702293e1ff755","impliedFormat":1},{"version":"0c0e0aaf37ab0552dffc13eb584d8c56423b597c1c49f7974695cb45e2973de6","impliedFormat":1},{"version":"e2e0cd8f6470bc69bbfbc5e758e917a4e0f9259da7ffc93c0930516b0aa99520","impliedFormat":1},{"version":"180de8975eff720420697e7b5d95c0ecaf80f25d0cea4f8df7fe9cf817d44884","impliedFormat":1},{"version":"424a7394f9704d45596dce70bd015c5afec74a1cc5760781dfda31bc300df88f","impliedFormat":1},{"version":"044a62b9c967ee8c56dcb7b2090cf07ef2ac15c07e0e9c53d99fab7219ee3d67","impliedFormat":1},{"version":"3903b01a9ba327aae8c7ea884cdabc115d27446fba889afc95fddca8a9b4f6e2","impliedFormat":1},{"version":"78fd8f2504fbfb0070569729bf2fe41417fdf59f8c3e975ab3143a96f03e0a4a","impliedFormat":1},{"version":"8afd4f91e3a060a886a249f22b23da880ec12d4a20b6404acc5e283ef01bdd46","impliedFormat":1},{"version":"72e72e3dea4081877925442f67b23be151484ef0a1565323c9af7f1c5a0820f0","impliedFormat":1},{"version":"fa8c21bafd5d8991019d58887add8971ccbe88243c79bbcaec2e2417a40af4e8","impliedFormat":1},{"version":"ab35597fd103b902484b75a583606f606ab2cef7c069fae6c8aca0f058cee77d","impliedFormat":1},{"version":"ca54ec33929149dded2199dca95fd8ad7d48a04f6e8500f3f84a050fa77fee45","impliedFormat":1},{"version":"cac7dcf6f66d12979cc6095f33edc7fbb4266a44c8554cd44cd04572a4623fd0","impliedFormat":1},{"version":"98af566e6d420e54e4d8d942973e7fbe794e5168133ad6658b589d9dfb4409d8","impliedFormat":1},{"version":"772b2865dd86088c6e0cab71e23534ad7254961c1f791bdeaf31a57a2254df43","impliedFormat":1},{"version":"786d837fba58af9145e7ad685bc1990f52524dc4f84f3e60d9382a0c3f4a0f77","impliedFormat":1},{"version":"539dd525bf1d52094e7a35c2b4270bee757d3a35770462bcb01cd07683b4d489","impliedFormat":1},{"version":"69135303a105f3b058d79ea7e582e170721e621b1222e8f8e51ea29c61cd3acf","impliedFormat":1},{"version":"e92e6f0d63e0675fe2538e8031e1ece36d794cb6ecc07a036d82c33fa3e091a9","impliedFormat":1},{"version":"1fdb07843cdb9bd7e24745d357c6c1fde5e7f2dd7c668dd68b36c0dff144a390","impliedFormat":1},{"version":"786d837fba58af9145e7ad685bc1990f52524dc4f84f3e60d9382a0c3f4a0f77","impliedFormat":1},{"version":"3e2f739bdfb6b194ae2af13316b4c5bb18b3fe81ac340288675f92ba2061b370","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0671b50bb99cc7ad46e9c68fa0e7f15ba4bc898b59c31a17ea4611fab5095da","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"00b21ef538da5a2bbe419e2144f3be50661768e1e039ef2b57bb89f96aff9b18","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"e843e840f484f7e59b2ef9488501a301e3300a8e3e56aa84a02ddf915c7ce07d","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"18f8cfbb14ba9405e67d30968ae67b8d19133867d13ebc49c8ed37ec64ce9bdb","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f68328826a275104d92bd576c796c570f66365f25ea8bbaaa208727bce132d5f","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"18334defc3d0a0e1966f5f3c23c7c83b62c77811e51045c5a7ff3883b446f81f","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b17fcd63aa13734bf1d01419f4d6031b1c6a5fb2cbdb45e9839fb1762bdf0df","impliedFormat":1},{"version":"c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"beb77fcd86c8cee62c32b2fb82753f5bc0e171d938e20af3cb0b8925db78d60b","impliedFormat":1},{"version":"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","impliedFormat":1},{"version":"25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","impliedFormat":1},{"version":"aa9224557befad144262c85b463c0a7ba8a3a0ad2a7c907349f8bb8bc3fe4abc","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"8d86c8d8c43e04cc3dde9953e571656812c8964a3651203af7b3a1df832a34df","affectsGlobalScope":true,"impliedFormat":1},{"version":"0121911fcc364eb821d058cf4c3b9339f197eccbe298098a4c6be0396b607d90","impliedFormat":1},{"version":"c6176c7b9f3769ba7f076c7a791588562c653cc0ba08fb2184f87bf78db2a87c","impliedFormat":1},{"version":"d70840e8a184618f24132f455e16aad5d0b2e0253b96cbf88953e3913ae179f1","impliedFormat":1},{"version":"4f766affd1281935fe5f7fd5d7af693a7c26d81adef7c1aefb84b9cd573a9cbb","impliedFormat":1},{"version":"165a0c1f95bc939c72f18a280fc707fba6f2f349539246b050cfc09eb1d9f446","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"c0bb1b65757c72bbf8ddf7eaa532223bacf58041ff16c883e76f45506596e925","impliedFormat":1},{"version":"c8b85f7aed29f8f52b813f800611406b0bfe5cf3224d20a4bdda7c7f73ce368e","affectsGlobalScope":true,"impliedFormat":1},{"version":"7baae9bf5b50e572e7742c886c73c6f8fa50b34190bc5f0fd20dd7e706fda832","impliedFormat":1},{"version":"e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"5e9f8c1e042b0f598a9be018fc8c3cb670fe579e9f2e18e3388b63327544fe16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","impliedFormat":1},{"version":"b827f8800f42858f0a751a605c003b7ab571ff7af184436f36cef9bdfebae808","impliedFormat":1},{"version":"363eedb495912790e867da6ff96e81bf792c8cfe386321e8163b71823a35719a","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"6b306cd4282bbb54d4a6bb23cfb7a271160983dfc38c67b5a132504cfcc34896","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","impliedFormat":1},{"version":"450172a56b944c2d83f45cc11c9a388ea967cd301a21202aa0a23c34c7506a18","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"3af7d02e5d6ecbf363e61fb842ee55d3518a140fd226bdfb24a3bca6768c58df","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"7dfa742c23851808a77ec27062fbbd381c8c36bb3cfdff46cb8af6c6c233bfc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb078cfcd14dc0b1700a48272958f803f30f13f99111c5978c75c3a0aa07e40e","affectsGlobalScope":true,"impliedFormat":1},{"version":"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","impliedFormat":1},{"version":"420fdd37c51263be9db3fcac35ffd836216c71e6000e6a9740bb950fb0540654","impliedFormat":1},{"version":"73b0bff83ee76e3a9320e93c7fc15596e858b33c687c39a57567e75c43f2a324","impliedFormat":1},{"version":"3c947600f6f5664cca690c07fcf8567ca58d029872b52c31c2f51d06fbdb581b","affectsGlobalScope":true,"impliedFormat":1},{"version":"493c64d062139b1849b0e9c4c3a6465e1227d2b42be9e26ec577ca728984c041","impliedFormat":1},{"version":"d7e9ab1b0996639047c61c1e62f85c620e4382206b3abb430d9a21fb7bc23c77","impliedFormat":1},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":1},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":1},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":1},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":1},{"version":"9462ab013df86c16a2a69ca0a3b6f31d4fd86dd29a947e14b590eb20806f220b","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"03c258e060b7da220973f84b89615e4e9850e9b5d30b3a8e4840b3e3268ae8eb","impliedFormat":1},{"version":"fd0589ca571ad090b531d8c095e26caa53d4825c64d3ff2b2b1ab95d72294175","impliedFormat":1},{"version":"669843ecafb89ae1e944df06360e8966219e4c1c34c0d28aa2503272cdd444a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"7a3aa194cfd5919c4da251ef04ea051077e22702638d4edcb9579e9101653519","affectsGlobalScope":true,"impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[[59,65]],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./","skipLibCheck":true,"strict":true,"target":8},"referencedMap":[[69,1],[67,2],[76,2],[270,3],[269,4],[80,5],[81,6],[218,5],[219,7],[200,8],[201,9],[84,10],[85,11],[155,12],[156,13],[129,5],[130,14],[123,5],[124,15],[215,16],[213,17],[214,2],[229,18],[230,19],[99,20],[100,21],[231,22],[232,23],[233,24],[234,25],[91,26],[92,27],[217,28],[216,29],[202,5],[203,30],[95,31],[96,32],[119,2],[120,33],[237,34],[235,35],[236,36],[238,37],[239,38],[242,39],[240,40],[243,17],[241,41],[244,42],[247,43],[245,44],[246,45],[248,46],[97,26],[98,47],[223,48],[220,49],[221,50],[222,2],[198,51],[199,52],[143,53],[142,54],[140,55],[139,56],[141,57],[250,58],[249,59],[252,60],[251,61],[128,62],[127,5],[106,63],[104,64],[103,10],[105,65],[255,66],[259,67],[253,68],[254,69],[256,66],[257,66],[258,66],[145,70],[144,10],[161,71],[159,72],[160,17],[157,73],[158,74],[94,75],[93,5],[151,76],[82,5],[83,77],[150,78],[188,79],[191,80],[189,81],[190,82],[102,83],[101,5],[193,84],[192,10],[171,85],[170,5],[126,86],[125,5],[197,87],[196,88],[165,89],[164,90],[162,91],[163,92],[154,93],[153,94],[152,95],[261,96],[260,97],[178,98],[177,99],[176,100],[225,101],[224,2],[169,102],[168,103],[166,104],[167,105],[147,106],[146,10],[90,107],[89,108],[88,109],[87,110],[86,111],[182,112],[181,113],[112,114],[111,10],[116,115],[115,116],[180,117],[179,5],[226,2],[228,118],[227,2],[185,119],[184,120],[183,121],[263,122],[262,123],[265,124],[264,125],[211,126],[212,127],[210,128],[149,129],[148,2],[195,130],[194,131],[122,132],[121,5],[173,133],[172,5],[79,134],[78,2],[132,135],[133,136],[138,137],[131,138],[135,139],[134,140],[136,141],[137,142],[187,143],[186,10],[118,144],[117,10],[268,145],[267,146],[266,147],[205,148],[204,5],[175,149],[174,5],[110,150],[108,151],[107,10],[109,152],[207,153],[206,5],[114,154],[113,5],[209,155],[208,5],[66,2],[72,156],[68,1],[70,157],[71,1],[73,2],[74,158],[75,159],[277,160],[276,161],[404,162],[405,163],[331,164],[332,164],[333,165],[280,166],[334,167],[335,168],[336,169],[278,2],[337,170],[338,171],[339,172],[340,173],[341,174],[342,175],[343,175],[344,176],[345,177],[346,178],[347,179],[281,2],[279,2],[348,180],[349,181],[350,182],[384,183],[351,184],[352,2],[353,185],[354,186],[355,187],[356,188],[357,189],[358,190],[359,191],[360,192],[361,193],[362,193],[363,194],[364,2],[365,2],[366,195],[368,196],[367,197],[369,198],[370,199],[371,200],[372,201],[373,202],[374,203],[375,204],[376,205],[377,206],[378,207],[379,208],[380,209],[381,210],[282,2],[283,211],[284,2],[285,2],[327,212],[328,213],[329,2],[330,198],[382,214],[383,215],[406,2],[410,216],[407,2],[409,217],[411,2],[403,2],[412,2],[413,218],[77,2],[408,2],[393,219],[391,2],[392,220],[389,2],[390,2],[275,221],[272,222],[271,161],[273,223],[274,2],[387,224],[401,225],[385,2],[386,226],[402,227],[397,228],[398,229],[396,230],[400,231],[394,232],[388,233],[399,234],[395,225],[56,2],[57,2],[11,2],[9,2],[10,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[24,2],[25,2],[4,2],[26,2],[30,2],[27,2],[28,2],[29,2],[31,2],[32,2],[33,2],[5,2],[34,2],[35,2],[36,2],[37,2],[6,2],[41,2],[38,2],[39,2],[40,2],[42,2],[7,2],[43,2],[48,2],[49,2],[44,2],[45,2],[46,2],[47,2],[8,2],[58,2],[53,2],[50,2],[51,2],[52,2],[1,2],[54,2],[55,2],[13,2],[12,2],[303,235],[315,236],[301,237],[316,238],[325,239],[292,240],[293,241],[291,242],[324,243],[319,244],[323,245],[295,246],[312,247],[294,248],[322,249],[289,250],[290,244],[296,251],[297,2],[302,252],[300,251],[287,253],[326,254],[317,255],[306,256],[305,251],[307,257],[310,258],[304,259],[308,260],[320,243],[298,261],[299,262],[311,263],[288,238],[314,264],[313,251],[309,265],[318,2],[286,2],[321,266],[59,267],[61,268],[62,267],[63,267],[65,269],[64,267],[60,270]],"latestChangedDtsFile":"./src/providers/index.d.ts","version":"5.9.3"}
package/package.json CHANGED
@@ -1,17 +1,27 @@
1
1
  {
2
2
  "name": "@eusilvio/cep-lookup",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "A modern, flexible, and agnostic CEP lookup library written in TypeScript.",
5
5
  "license": "MIT",
6
+ "author": "Silvio Souza",
6
7
  "repository": {
7
8
  "type": "git",
8
- "url": "git+https://github.com/eusilvio/cep-lookup.git"
9
+ "url": "https://github.com/eusilvio/cep-lookup.git",
10
+ "directory": "packages/cep-lookup"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public",
14
+ "registry": "https://registry.npmjs.org/"
9
15
  },
10
- "main": "dist/index.js",
11
- "types": "dist/index.d.ts",
12
16
  "exports": {
13
- ".": "./dist/index.js",
14
- "./providers": "./dist/providers/index.js"
17
+ ".": {
18
+ "require": "./dist/index.js",
19
+ "types": "./dist/src/index.d.ts"
20
+ },
21
+ "./providers": {
22
+ "require": "./dist/providers/index.js",
23
+ "types": "./dist/src/providers/index.d.ts"
24
+ }
15
25
  },
16
26
  "sideEffects": false,
17
27
  "files": [
package/dist/index.d.ts DELETED
@@ -1,58 +0,0 @@
1
- import { Address, Fetcher, Provider, CepLookupOptions, BulkCepResult, RateLimitOptions } from "./types";
2
- import { Cache, InMemoryCache } from "./cache";
3
- export { Address, Fetcher, Provider, CepLookupOptions, Cache, InMemoryCache, BulkCepResult, RateLimitOptions };
4
- /**
5
- * @class CepLookup
6
- * @description A class for looking up Brazilian postal codes (CEPs) using multiple providers.
7
- * It queries multiple services simultaneously and returns the response from the fastest one.
8
- */
9
- export declare class CepLookup {
10
- private providers;
11
- private fetcher;
12
- private cache?;
13
- private rateLimit?;
14
- private requestTimestamps;
15
- /**
16
- * @constructor
17
- * @param {CepLookupOptions} options - The options for initializing the CepLookup instance.
18
- */
19
- constructor(options: CepLookupOptions);
20
- private checkRateLimit;
21
- /**
22
- * @method lookup
23
- * @description Looks up an address for a given CEP.
24
- * @template T - The expected return type, defaults to `Address`.
25
- * @param {string} cep - The CEP to be queried.
26
- * @param {(address: Address) => T} [mapper] - An optional function to transform the `Address` object into a custom format `T`.
27
- * @returns {Promise<T>} A Promise that resolves to the address in the default `Address` format or a custom format `T` if a mapper is provided.
28
- * @throws {Error} If the CEP is invalid or if all providers fail to find the CEP.
29
- */
30
- lookup<T = Address>(cep: string, mapper?: (address: Address) => T): Promise<T>;
31
- }
32
- /**
33
- * @function lookupCep
34
- * @description Backward-compatible function for looking up a CEP. Internally creates a `CepLookup` instance.
35
- * @template T - The expected return type, defaults to `Address`.
36
- * @param {object} options - Options for the lookup.
37
- * @param {string} options.cep - The CEP to be queried.
38
- * @param {Provider[]} options.providers - An array of `Provider` instances.
39
- * @param {Fetcher} [options.fetcher] - The `Fetcher` function. Defaults to global `fetch` if not provided.
40
- * @param {Cache} [options.cache] - The `Cache` instance.
41
- * @param {(address: Address) => T} [options.mapper] - An optional function to transform the `Address` object.
42
- * @returns {Promise<T>} A Promise that resolves to the address.
43
- * @throws {Error} If the CEP is invalid or if all providers fail.
44
- */
45
- export declare function lookupCep<T = Address>(options: CepLookupOptions & {
46
- cep: string;
47
- mapper?: (address: Address) => T;
48
- }): Promise<T>;
49
- /**
50
- * @function lookupCeps
51
- * @description Looks up multiple CEPs in bulk with controlled concurrency.
52
- * @param {CepLookupOptions & { ceps: string[], concurrency?: number }} options - Options for the bulk lookup.
53
- * @returns {Promise<BulkCepResult[]>} A Promise that resolves to an array of results for each CEP.
54
- */
55
- export declare function lookupCeps(options: CepLookupOptions & {
56
- ceps: string[];
57
- concurrency?: number;
58
- }): Promise<BulkCepResult[]>;
package/dist/types.d.ts DELETED
@@ -1,73 +0,0 @@
1
- /**
2
- * @interface Address
3
- * @description Represents a standardized address object returned by the CEP lookup.
4
- * @property {string} cep - The postal code.
5
- * @property {string} state - The state abbreviation (e.g., 'SP', 'RJ').
6
- * @property {string} city - The city name.
7
- * @property {string} neighborhood - The neighborhood name.
8
- * @property {string} street - The street name.
9
- * @property {string} service - The name of the service that provided the address (e.g., 'ViaCEP', 'BrasilAPI').
10
- */
11
- export interface Address {
12
- cep: string;
13
- state: string;
14
- city: string;
15
- neighborhood: string;
16
- street: string;
17
- service: string;
18
- }
19
- /**
20
- * @interface Provider
21
- * @description Defines the contract for a CEP lookup provider.
22
- * @property {string} name - The name of the provider.
23
- * @property {(cep: string) => string} buildUrl - A function that constructs the API URL for a given CEP.
24
- * @property {(response: any) => Address} transform - A function that transforms the raw API response into a standardized `Address` object.
25
- */
26
- export interface Provider {
27
- name: string;
28
- timeout?: number;
29
- buildUrl: (cep: string) => string;
30
- transform: (response: any) => Address;
31
- }
32
- /**
33
- * @typedef {function(url: string, signal?: AbortSignal): Promise<any>}
34
- * @description A function that fetches data from a given URL and returns a Promise resolving to the response data.
35
- */
36
- export type Fetcher = (url: string, signal?: AbortSignal) => Promise<any>;
37
- /**
38
- * @interface CepLookupOptions
39
- * @description Options for initializing the `CepLookup` class.
40
- * @property {Provider[]} providers - An array of `Provider` instances to be used for CEP lookup.
41
- * @property {Fetcher} [fetcher] - The `Fetcher` function to be used for making HTTP requests. Defaults to global `fetch` if not provided.
42
- */
43
- import { Cache } from "./cache";
44
- export interface CepLookupOptions {
45
- providers: Provider[];
46
- fetcher?: Fetcher;
47
- cache?: Cache;
48
- rateLimit?: RateLimitOptions;
49
- }
50
- /**
51
- * @interface RateLimitOptions
52
- * @description Options for configuring the internal rate limiter.
53
- * @property {number} requests - The maximum number of requests allowed within the time window.
54
- * @property {number} per - The time window in milliseconds.
55
- */
56
- export interface RateLimitOptions {
57
- requests: number;
58
- per: number;
59
- }
60
- /**
61
- * @interface BulkCepResult
62
- * @description Represents the result for a single CEP in a bulk lookup operation.
63
- * @property {string} cep - The original CEP string.
64
- * @property {Address | null} data - The address data if the lookup was successful, otherwise null.
65
- * @property {string} [provider] - The name of the provider that successfully resolved the address.
66
- * @property {Error} [error] - An error object if the lookup failed for this specific CEP.
67
- */
68
- export interface BulkCepResult {
69
- cep: string;
70
- data: Address | null;
71
- provider?: string;
72
- error?: Error;
73
- }
File without changes
File without changes
File without changes
File without changes