@eusilvio/cep-lookup 2.3.2 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -47
- package/README.md +17 -6
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/providers/index.cjs +1 -1
- package/dist/providers/index.mjs +1 -1
- package/dist/src/cache/index.d.ts +14 -17
- package/dist/src/cache/index.js +35 -20
- package/dist/src/data/ddd-by-state.d.ts +2 -0
- package/dist/src/data/ddd-by-state.js +12 -0
- package/dist/src/errors.d.ts +23 -0
- package/dist/src/errors.js +46 -0
- package/dist/src/index.d.ts +19 -17
- package/dist/src/index.js +135 -33
- package/dist/src/providers/index.d.ts +1 -0
- package/dist/src/providers/index.js +1 -0
- package/dist/src/providers/opencep.d.ts +10 -0
- package/dist/src/providers/opencep.js +32 -0
- package/dist/src/providers/viacep.js +2 -0
- package/dist/src/types.d.ts +13 -2
- package/package.json +4 -3
- package/dist/tsconfig.tsbuildinfo +0 -1
package/LICENSE
CHANGED
|
@@ -1,24 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
This project was developed with the philosophy that knowledge and tools should be accessible to all. I believe that by sharing our work freely, we can empower other creators to build incredible things.
|
|
4
|
-
|
|
5
|
-
That's why I chose the MIT License for this project. In simple terms, this means you have complete freedom to use, modify, and distribute this code, even for commercial purposes, with a single condition: you must keep the original copyright and license notice included.
|
|
6
|
-
|
|
7
|
-
Thank you for your interest and contributions!
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Licença do Projeto
|
|
12
|
-
|
|
13
|
-
Este projeto foi desenvolvido com a filosofia de que o conhecimento e as ferramentas devem ser acessíveis a todos. Acredito que, ao compartilhar nosso trabalho livremente, podemos capacitar outros criadores a construir coisas incríveis.
|
|
14
|
-
|
|
15
|
-
Por isso, escolhi a Licença MIT para este projeto. Em termos simples, isso significa que você tem total liberdade para usar, modificar e distribuir este código, até mesmo para fins comerciais, com uma única condição: mantenha o aviso de licença e copyright originais.
|
|
16
|
-
|
|
17
|
-
Agradecemos o seu interesse e contribuição!
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
### MIT License
|
|
1
|
+
MIT License
|
|
22
2
|
|
|
23
3
|
Copyright (c) 2025 Silvio Campos
|
|
24
4
|
|
|
@@ -39,29 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
39
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
40
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
41
21
|
SOFTWARE.
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
### Tradução para Português (Apenas para referência)
|
|
46
|
-
|
|
47
|
-
_Aviso: Esta é uma tradução não oficial e serve apenas para facilitar o entendimento. A versão em inglês é a que possui validade legal._
|
|
48
|
-
|
|
49
|
-
Copyright (c) 2025 Silvio Campos
|
|
50
|
-
|
|
51
|
-
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia
|
|
52
|
-
deste software e dos arquivos de documentação associados (o "Software"), para negociar
|
|
53
|
-
o Software sem restrições, incluindo, sem limitação, os direitos
|
|
54
|
-
de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender
|
|
55
|
-
cópias do Software, e permitir que as pessoas a quem o Software é
|
|
56
|
-
fornecido o façam, sujeito às seguintes condições:
|
|
57
|
-
|
|
58
|
-
O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as
|
|
59
|
-
cópias ou partes substanciais do Software.
|
|
60
|
-
|
|
61
|
-
O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU
|
|
62
|
-
IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO,
|
|
63
|
-
ADEQUAÇÃO A UM FIM ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS
|
|
64
|
-
AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA
|
|
65
|
-
RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ILÍCITO CIVIL OU DE OUTRA FORMA, DECORRENTE DE,
|
|
66
|
-
FORA DE OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO
|
|
67
|
-
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@eusilvio/cep-lookup)
|
|
4
4
|
[](https://www.npmjs.com/package/@eusilvio/cep-lookup)
|
|
5
|
-
[](https://github.com/eusilvio/cep-lookup/actions)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
8
|
A modern, flexible, and agnostic CEP (Brazilian postal code) lookup library written in TypeScript.
|
|
@@ -119,7 +119,7 @@ const cepLookup = new CepLookup({
|
|
|
119
119
|
});
|
|
120
120
|
|
|
121
121
|
// 2. Look up multiple CEPs
|
|
122
|
-
cepLookup.lookupCeps(cepsToLookup,
|
|
122
|
+
cepLookup.lookupCeps(cepsToLookup, 2).then((results: BulkCepResult[]) => {
|
|
123
123
|
console.log("Bulk lookup results:", results);
|
|
124
124
|
// Output:
|
|
125
125
|
// [
|
|
@@ -153,6 +153,11 @@ Creates a new `CepLookup` instance.
|
|
|
153
153
|
- `fetcher` (Fetcher, _optional_): Your asynchronous function that fetches data from a URL. Defaults to global `fetch` if not provided.
|
|
154
154
|
- `cache` (Cache, _optional_): An instance of a cache that implements the `Cache` interface. Use `InMemoryCache` for a simple in-memory cache.
|
|
155
155
|
- `rateLimit` ({ requests: number, per: number }, _optional_): Configures an in-memory rate limiter (e.g., `{ requests: 10, per: 1000 }` for 10 requests per second).
|
|
156
|
+
- `staggerDelay` (number, _optional_): Time in milliseconds to wait for the fastest provider before triggering backups (default: `100`).
|
|
157
|
+
|
|
158
|
+
### `cepLookup.warmup()`
|
|
159
|
+
|
|
160
|
+
Pings all providers to determine the fastest one for the current environment. Call this during idle UI time (like when a user focuses a CEP input field) to optimize the subsequent `lookup` call.
|
|
156
161
|
|
|
157
162
|
### `cepLookup.lookup<T = Address>(cep, mapper?): Promise<T>`
|
|
158
163
|
|
|
@@ -161,13 +166,12 @@ Returns a `Promise` that resolves to the address in the default format (`Address
|
|
|
161
166
|
- `cep` (string, **required**): The CEP to be queried.
|
|
162
167
|
- `mapper` ((address: Address) => T, _optional_): A function that receives the default `Address` object and transforms it into a new format `T`.
|
|
163
168
|
|
|
164
|
-
### `cepLookup.lookupCeps(ceps,
|
|
169
|
+
### `cepLookup.lookupCeps(ceps, concurrency?): Promise<BulkCepResult[]>`
|
|
165
170
|
|
|
166
171
|
Looks up multiple CEPs in bulk. Returns a `Promise` that resolves to an array of `BulkCepResult` objects, one for each queried CEP.
|
|
167
172
|
|
|
168
173
|
- `ceps` (string[], **required**): An array of CEP strings to be queried.
|
|
169
|
-
- `
|
|
170
|
-
- `concurrency` (number): The number of parallel requests to make. Defaults to `5`.
|
|
174
|
+
- `concurrency` (number, _optional_): The number of parallel requests to make. Defaults to `5`.
|
|
171
175
|
|
|
172
176
|
> **Note on Deprecated Functions:**
|
|
173
177
|
> Standalone `lookupCep` and `lookupCeps` functions are deprecated and will be removed in a future version. Please use the methods on a `CepLookup` instance instead.
|
|
@@ -244,6 +248,13 @@ const myCustomProvider: Provider = {
|
|
|
244
248
|
npm test
|
|
245
249
|
```
|
|
246
250
|
|
|
251
|
+
## Compatibility and support
|
|
252
|
+
|
|
253
|
+
- Node.js: `20.x`, `22.x`, `24.x`
|
|
254
|
+
- React package: `react >= 16.8`
|
|
255
|
+
- Vue package: `vue ^3`
|
|
256
|
+
- Maintenance policy: [SUPPORT.md](../../SUPPORT.md)
|
|
257
|
+
|
|
247
258
|
## License
|
|
248
259
|
|
|
249
|
-
Distributed under the MIT License.
|
|
260
|
+
Distributed under the MIT License.
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var A=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var z=(s,e)=>{for(var t in e)A(s,t,{get:e[t],enumerable:!0})},B=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of S(e))!I.call(s,i)&&i!==t&&A(s,i,{get:()=>e[i],enumerable:!(r=O(e,i))||r.enumerable});return s};var q=s=>B(A({},"__esModule",{value:!0}),s);var U={};z(U,{AllProvidersFailedError:()=>w,CepLookup:()=>L,CepNotFoundError:()=>T,CepValidationError:()=>v,InMemoryCache:()=>E,ProviderTimeoutError:()=>y,RateLimitError:()=>g});module.exports=q(U);var E=class{constructor(e){this.cache=new Map;this.ttl=e?.ttl??1/0,this.maxSize=e?.maxSize??1/0}get(e){let t=this.cache.get(e);if(t){if(this.ttl!==1/0&&Date.now()-t.timestamp>this.ttl){this.cache.delete(e);return}return t.value}}set(e,t){if(this.cache.has(e)&&this.cache.delete(e),this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(e,{value:t,timestamp:Date.now()})}delete(e){this.cache.delete(e)}has(e){if(!this.cache.has(e))return!1;let t=this.cache.get(e);return this.ttl!==1/0&&Date.now()-t.timestamp>this.ttl?(this.cache.delete(e),!1):!0}clear(){this.cache.clear()}};var v=class extends Error{constructor(e){super("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN."),this.name="CepValidationError",this.cep=e}},g=class extends Error{constructor(e,t){super(`Rate limit exceeded: ${e} requests per ${t}ms.`),this.name="RateLimitError",this.limit=e,this.window=t}},y=class extends Error{constructor(e,t){super(`Timeout from ${e}`),this.name="ProviderTimeoutError",this.provider=e,this.timeout=t}},T=class extends Error{constructor(e,t){super("CEP not found"),this.name="CepNotFoundError",this.cep=e,this.provider=t}},w=class extends Error{constructor(e){super("All providers failed to resolve the CEP."),this.name="AllProvidersFailedError",this.errors=e}};var N={AC:"68",AL:"82",AM:"92",AP:"96",BA:"71",CE:"85",DF:"61",ES:"27",GO:"62",MA:"98",MG:"31",MS:"67",MT:"65",PA:"91",PB:"83",PE:"81",PI:"86",PR:"41",RJ:"21",RN:"84",RO:"69",RR:"95",RS:"51",SC:"48",SE:"79",SP:"11",TO:"63"};var x=class{constructor(){this.listeners={}}on(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)}off(e,t){let r=this.listeners[e];r&&(this.listeners[e]=r.filter(i=>i!==t))}emit(e,t){let r=this.listeners[e];r&&r.forEach(i=>i(t))}};function F(s){if(!/^(\d{8}|\d{5}-\d{3})$/.test(s))throw new v(s);return s.replace("-","")}function $(s){let e={...s};return Object.keys(e).forEach(t=>{let r=e[t];typeof r=="string"&&(e[t]=r.trim())}),e}function K(s){if(!s.ddd&&s.state){let e=N[s.state];if(e)return{...s,ddd:e}}return s}var L=class{constructor(e){this.requestTimestamps=[];this.providers=e.providers,this.sortedProviders=[...e.providers],this.emitter=new x,this.fetcher=e.fetcher||(async(t,r)=>{let i=await fetch(t,{signal:r});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);return i.json()}),this.cache=e.cache,this.rateLimit=e.rateLimit,this.staggerDelay=e.staggerDelay??100,this.retries=e.retries??0,this.retryDelay=e.retryDelay??1e3,this.logger=e.logger}log(e,t){this.logger?.debug(e,t)}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}async warmup(){let e="01001000",t=new AbortController,r=this.providers.map(async n=>{let a=Date.now();try{let c=n.buildUrl(e);return await this.fetcher(c,t.signal),{provider:n,duration:Date.now()-a,error:!1}}catch{return{provider:n,duration:1/0,error:!0}}}),d=(await Promise.all(r)).sort((n,a)=>n.duration-a.duration);return this.sortedProviders=d.map(n=>n.provider).filter(n=>!!n),t.abort(),this.sortedProviders}checkRateLimit(){if(!this.rateLimit)return;let e=Date.now(),t=e-this.rateLimit.per;if(this.requestTimestamps=this.requestTimestamps.filter(r=>r>t),this.requestTimestamps.length>=this.rateLimit.requests)throw new g(this.rateLimit.requests,this.rateLimit.per);this.requestTimestamps.push(e)}async lookup(e,t){this.checkRateLimit();let r=F(e);if(this.log("lookup:start",{cep:r}),this.cache){let n=this.cache.get(r);if(n)return this.log("cache:hit",{cep:r}),this.emitter.emit("cache:hit",{cep:r}),t?t(n):n}let i,d=1+this.retries;for(let n=0;n<d;n++){if(n>0){let a=this.retryDelay*Math.pow(2,n-1);this.log("retry:attempt",{attempt:n,cep:r,delay:a}),await new Promise(c=>setTimeout(c,a))}try{return await this._lookupFromProviders(r,t)}catch(a){if(a instanceof v||a instanceof g)throw a;i=a}}throw i}async _lookupFromProviders(e,t){let r=new AbortController,{signal:i}=r,d=o=>{let m=Date.now(),b=o.buildUrl(e);this.log("provider:start",{provider:o.name,cep:e});let C=new Promise((l,p)=>{if(!o.timeout)return;let f=setTimeout(()=>{i.removeEventListener("abort",R);let M=Date.now()-m,P=new y(o.name,o.timeout);this.log("provider:failure",{provider:o.name,cep:e,error:P.message}),this.emitter.emit("failure",{provider:o.name,cep:e,duration:M,error:P}),p(P)},o.timeout),R=()=>clearTimeout(f);i.addEventListener("abort",R,{once:!0})}),D=this.fetcher(b,i).then(l=>o.transform(l)).then(l=>{let p=Date.now()-m,f=K($(l));return this.log("provider:success",{provider:o.name,cep:e,duration:p}),this.emitter.emit("success",{provider:o.name,cep:e,duration:p,address:f}),this.cache&&this.cache.set(e,f),t?t(f):f}).catch(l=>{let p=Date.now()-m;throw!l.message.includes("Timeout from")&&l.name!=="AbortError"&&(this.log("provider:failure",{provider:o.name,cep:e,error:l.message}),this.emitter.emit("failure",{provider:o.name,cep:e,duration:p,error:l})),l});return Promise.race([D,C])},n=this.sortedProviders[0],a=this.sortedProviders.slice(1);if(a.length===0)try{return await d(n)}finally{r.abort()}let c=null,h=null,u=new Promise((o,m)=>{h=()=>{if(c&&clearTimeout(c),i.aborted)return;let b=a.map(d);Promise.any(b).then(o).catch(m)},c=setTimeout(h,this.staggerDelay)}),k=d(n).catch(o=>{throw h&&h(),o});try{return await Promise.any([k,u])}catch(o){let m=o.errors||[o];throw new w(m)}finally{c&&clearTimeout(c),r.abort()}}async lookupCeps(e,t=5,r){if(!e||e.length===0)return[];let i=new Array(e.length),d=0,n=async()=>{for(;d<e.length;){let c=d++;if(c>=e.length)break;let h=e[c];try{let u=await this.lookup(h);if(u)i[c]={cep:h,data:r?r(u):u,provider:u.service};else throw new Error("No address found")}catch(u){i[c]={cep:h,data:null,error:u}}}},a=Array.from({length:Math.min(t,e.length)},()=>n());return await Promise.all(a),i.filter(Boolean)}};
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var b=class{constructor(e){this.cache=new Map;this.ttl=e?.ttl??1/0,this.maxSize=e?.maxSize??1/0}get(e){let t=this.cache.get(e);if(t){if(this.ttl!==1/0&&Date.now()-t.timestamp>this.ttl){this.cache.delete(e);return}return t.value}}set(e,t){if(this.cache.has(e)&&this.cache.delete(e),this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(e,{value:t,timestamp:Date.now()})}delete(e){this.cache.delete(e)}has(e){if(!this.cache.has(e))return!1;let t=this.cache.get(e);return this.ttl!==1/0&&Date.now()-t.timestamp>this.ttl?(this.cache.delete(e),!1):!0}clear(){this.cache.clear()}};var v=class extends Error{constructor(e){super("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN."),this.name="CepValidationError",this.cep=e}},g=class extends Error{constructor(e,t){super(`Rate limit exceeded: ${e} requests per ${t}ms.`),this.name="RateLimitError",this.limit=e,this.window=t}},y=class extends Error{constructor(e,t){super(`Timeout from ${e}`),this.name="ProviderTimeoutError",this.provider=e,this.timeout=t}},P=class extends Error{constructor(e,t){super("CEP not found"),this.name="CepNotFoundError",this.cep=e,this.provider=t}},w=class extends Error{constructor(e){super("All providers failed to resolve the CEP."),this.name="AllProvidersFailedError",this.errors=e}};var L={AC:"68",AL:"82",AM:"92",AP:"96",BA:"71",CE:"85",DF:"61",ES:"27",GO:"62",MA:"98",MG:"31",MS:"67",MT:"65",PA:"91",PB:"83",PE:"81",PI:"86",PR:"41",RJ:"21",RN:"84",RO:"69",RR:"95",RS:"51",SC:"48",SE:"79",SP:"11",TO:"63"};var A=class{constructor(){this.listeners={}}on(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)}off(e,t){let r=this.listeners[e];r&&(this.listeners[e]=r.filter(i=>i!==t))}emit(e,t){let r=this.listeners[e];r&&r.forEach(i=>i(t))}};function M(o){if(!/^(\d{8}|\d{5}-\d{3})$/.test(o))throw new v(o);return o.replace("-","")}function O(o){let e={...o};return Object.keys(e).forEach(t=>{let r=e[t];typeof r=="string"&&(e[t]=r.trim())}),e}function S(o){if(!o.ddd&&o.state){let e=L[o.state];if(e)return{...o,ddd:e}}return o}var R=class{constructor(e){this.requestTimestamps=[];this.providers=e.providers,this.sortedProviders=[...e.providers],this.emitter=new A,this.fetcher=e.fetcher||(async(t,r)=>{let i=await fetch(t,{signal:r});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);return i.json()}),this.cache=e.cache,this.rateLimit=e.rateLimit,this.staggerDelay=e.staggerDelay??100,this.retries=e.retries??0,this.retryDelay=e.retryDelay??1e3,this.logger=e.logger}log(e,t){this.logger?.debug(e,t)}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}async warmup(){let e="01001000",t=new AbortController,r=this.providers.map(async s=>{let a=Date.now();try{let c=s.buildUrl(e);return await this.fetcher(c,t.signal),{provider:s,duration:Date.now()-a,error:!1}}catch{return{provider:s,duration:1/0,error:!0}}}),d=(await Promise.all(r)).sort((s,a)=>s.duration-a.duration);return this.sortedProviders=d.map(s=>s.provider).filter(s=>!!s),t.abort(),this.sortedProviders}checkRateLimit(){if(!this.rateLimit)return;let e=Date.now(),t=e-this.rateLimit.per;if(this.requestTimestamps=this.requestTimestamps.filter(r=>r>t),this.requestTimestamps.length>=this.rateLimit.requests)throw new g(this.rateLimit.requests,this.rateLimit.per);this.requestTimestamps.push(e)}async lookup(e,t){this.checkRateLimit();let r=M(e);if(this.log("lookup:start",{cep:r}),this.cache){let s=this.cache.get(r);if(s)return this.log("cache:hit",{cep:r}),this.emitter.emit("cache:hit",{cep:r}),t?t(s):s}let i,d=1+this.retries;for(let s=0;s<d;s++){if(s>0){let a=this.retryDelay*Math.pow(2,s-1);this.log("retry:attempt",{attempt:s,cep:r,delay:a}),await new Promise(c=>setTimeout(c,a))}try{return await this._lookupFromProviders(r,t)}catch(a){if(a instanceof v||a instanceof g)throw a;i=a}}throw i}async _lookupFromProviders(e,t){let r=new AbortController,{signal:i}=r,d=n=>{let m=Date.now(),E=n.buildUrl(e);this.log("provider:start",{provider:n.name,cep:e});let k=new Promise((l,p)=>{if(!n.timeout)return;let f=setTimeout(()=>{i.removeEventListener("abort",x);let D=Date.now()-m,T=new y(n.name,n.timeout);this.log("provider:failure",{provider:n.name,cep:e,error:T.message}),this.emitter.emit("failure",{provider:n.name,cep:e,duration:D,error:T}),p(T)},n.timeout),x=()=>clearTimeout(f);i.addEventListener("abort",x,{once:!0})}),C=this.fetcher(E,i).then(l=>n.transform(l)).then(l=>{let p=Date.now()-m,f=S(O(l));return this.log("provider:success",{provider:n.name,cep:e,duration:p}),this.emitter.emit("success",{provider:n.name,cep:e,duration:p,address:f}),this.cache&&this.cache.set(e,f),t?t(f):f}).catch(l=>{let p=Date.now()-m;throw!l.message.includes("Timeout from")&&l.name!=="AbortError"&&(this.log("provider:failure",{provider:n.name,cep:e,error:l.message}),this.emitter.emit("failure",{provider:n.name,cep:e,duration:p,error:l})),l});return Promise.race([C,k])},s=this.sortedProviders[0],a=this.sortedProviders.slice(1);if(a.length===0)try{return await d(s)}finally{r.abort()}let c=null,h=null,u=new Promise((n,m)=>{h=()=>{if(c&&clearTimeout(c),i.aborted)return;let E=a.map(d);Promise.any(E).then(n).catch(m)},c=setTimeout(h,this.staggerDelay)}),N=d(s).catch(n=>{throw h&&h(),n});try{return await Promise.any([N,u])}catch(n){let m=n.errors||[n];throw new w(m)}finally{c&&clearTimeout(c),r.abort()}}async lookupCeps(e,t=5,r){if(!e||e.length===0)return[];let i=new Array(e.length),d=0,s=async()=>{for(;d<e.length;){let c=d++;if(c>=e.length)break;let h=e[c];try{let u=await this.lookup(h);if(u)i[c]={cep:h,data:r?r(u):u,provider:u.service};else throw new Error("No address found")}catch(u){i[c]={cep:h,data:null,error:u}}}},a=Array.from({length:Math.min(t,e.length)},()=>s());return await Promise.all(a),i.filter(Boolean)}};export{w as AllProvidersFailedError,R as CepLookup,P as CepNotFoundError,v as CepValidationError,b as InMemoryCache,y as ProviderTimeoutError,g as RateLimitError};
|
package/dist/providers/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var f=(r,t)=>{for(var d in t)o(r,d,{get:t[d],enumerable:!0})},P=(r,t,d,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of c(t))!m.call(r,i)&&i!==d&&o(r,i,{get:()=>t[i],enumerable:!(e=a(t,i))||e.enumerable});return r};var l=r=>P(o({},"__esModule",{value:!0}),r);var g={};f(g,{apicepProvider:()=>v,brasilApiProvider:()=>u,openCepProvider:()=>b,viaCepProvider:()=>n});module.exports=l(g);var n={name:"ViaCEP",buildUrl:r=>`https://viacep.com.br/ws/${r}/json/`,transform:r=>{if(!r||r.erro===!0||r.erro==="true")throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"ViaCEP",ibge:r.ibge||void 0,ddd:r.ddd||void 0}}};var u={name:"BrasilAPI",buildUrl:r=>`https://brasilapi.com.br/api/cep/v1/${r}`,transform:r=>{if(!r||r.errors||r.message)throw new Error(r.message||"CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.neighborhood||"",street:r.street||"",service:"BrasilAPI"}}};var v={name:"ApiCEP",buildUrl:r=>`https://cdn.apicep.com/file/apicep/${r}.json`,transform:r=>{if(!r||r.status!==200)throw new Error(r?.message||"CEP not found");return{cep:(r.code||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.district||"",street:r.address||"",service:"ApiCEP"}}};var b={name:"OpenCEP",buildUrl:r=>`https://opencep.com/v1/${r}`,transform:r=>{if(!r||r.error)throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"OpenCEP",ibge:r.ibge||void 0}}};
|
package/dist/providers/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var t={name:"ViaCEP",buildUrl:r=>`https://viacep.com.br/ws/${r}/json/`,transform:r=>{if(!r||r.erro===!0||r.erro==="true")throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"ViaCEP"}}};var
|
|
1
|
+
var t={name:"ViaCEP",buildUrl:r=>`https://viacep.com.br/ws/${r}/json/`,transform:r=>{if(!r||r.erro===!0||r.erro==="true")throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"ViaCEP",ibge:r.ibge||void 0,ddd:r.ddd||void 0}}};var d={name:"BrasilAPI",buildUrl:r=>`https://brasilapi.com.br/api/cep/v1/${r}`,transform:r=>{if(!r||r.errors||r.message)throw new Error(r.message||"CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.neighborhood||"",street:r.street||"",service:"BrasilAPI"}}};var e={name:"ApiCEP",buildUrl:r=>`https://cdn.apicep.com/file/apicep/${r}.json`,transform:r=>{if(!r||r.status!==200)throw new Error(r?.message||"CEP not found");return{cep:(r.code||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.district||"",street:r.address||"",service:"ApiCEP"}}};var c={name:"OpenCEP",buildUrl:r=>`https://opencep.com/v1/${r}`,transform:r=>{if(!r||r.error)throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"OpenCEP",ibge:r.ibge||void 0}}};export{e as apicepProvider,d as brasilApiProvider,c as openCepProvider,t as viaCepProvider};
|
|
@@ -7,30 +7,27 @@ export interface Cache {
|
|
|
7
7
|
get(key: string): Address | undefined;
|
|
8
8
|
set(key: string, value: Address): void;
|
|
9
9
|
clear(): void;
|
|
10
|
+
delete?(key: string): void;
|
|
11
|
+
has?(key: string): boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface InMemoryCacheOptions {
|
|
14
|
+
/** Time-to-live in milliseconds. Default: Infinity (no expiry) */
|
|
15
|
+
ttl?: number;
|
|
16
|
+
/** Maximum number of entries. Default: Infinity (no limit) */
|
|
17
|
+
maxSize?: number;
|
|
10
18
|
}
|
|
11
19
|
/**
|
|
12
20
|
* @class InMemoryCache
|
|
13
|
-
* @description
|
|
21
|
+
* @description In-memory cache with optional TTL and size limit.
|
|
14
22
|
*/
|
|
15
23
|
export declare class InMemoryCache implements Cache {
|
|
16
24
|
private cache;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* @param {string} key - The CEP to look up.
|
|
21
|
-
* @returns {Address | undefined} The cached address or undefined if not found.
|
|
22
|
-
*/
|
|
25
|
+
private ttl;
|
|
26
|
+
private maxSize;
|
|
27
|
+
constructor(options?: InMemoryCacheOptions);
|
|
23
28
|
get(key: string): Address | undefined;
|
|
24
|
-
/**
|
|
25
|
-
* @method set
|
|
26
|
-
* @description Stores an address in the cache.
|
|
27
|
-
* @param {string} key - The CEP to use as the cache key.
|
|
28
|
-
* @param {Address} value - The address to store.
|
|
29
|
-
*/
|
|
30
29
|
set(key: string, value: Address): void;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* @description Clears the entire cache.
|
|
34
|
-
*/
|
|
30
|
+
delete(key: string): void;
|
|
31
|
+
has(key: string): boolean;
|
|
35
32
|
clear(): void;
|
|
36
33
|
}
|
package/dist/src/cache/index.js
CHANGED
|
@@ -3,34 +3,49 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.InMemoryCache = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* @class InMemoryCache
|
|
6
|
-
* @description
|
|
6
|
+
* @description In-memory cache with optional TTL and size limit.
|
|
7
7
|
*/
|
|
8
8
|
class InMemoryCache {
|
|
9
|
-
constructor() {
|
|
9
|
+
constructor(options) {
|
|
10
10
|
this.cache = new Map();
|
|
11
|
+
this.ttl = options?.ttl ?? Infinity;
|
|
12
|
+
this.maxSize = options?.maxSize ?? Infinity;
|
|
11
13
|
}
|
|
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
14
|
get(key) {
|
|
19
|
-
|
|
15
|
+
const entry = this.cache.get(key);
|
|
16
|
+
if (!entry)
|
|
17
|
+
return undefined;
|
|
18
|
+
if (this.ttl !== Infinity && Date.now() - entry.timestamp > this.ttl) {
|
|
19
|
+
this.cache.delete(key);
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
return entry.value;
|
|
20
23
|
}
|
|
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
24
|
set(key, value) {
|
|
28
|
-
this.cache.
|
|
25
|
+
if (this.cache.has(key)) {
|
|
26
|
+
this.cache.delete(key);
|
|
27
|
+
}
|
|
28
|
+
if (this.cache.size >= this.maxSize) {
|
|
29
|
+
const oldestKey = this.cache.keys().next().value;
|
|
30
|
+
if (oldestKey !== undefined) {
|
|
31
|
+
this.cache.delete(oldestKey);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
this.cache.set(key, { value, timestamp: Date.now() });
|
|
35
|
+
}
|
|
36
|
+
delete(key) {
|
|
37
|
+
this.cache.delete(key);
|
|
38
|
+
}
|
|
39
|
+
has(key) {
|
|
40
|
+
if (!this.cache.has(key))
|
|
41
|
+
return false;
|
|
42
|
+
const entry = this.cache.get(key);
|
|
43
|
+
if (this.ttl !== Infinity && Date.now() - entry.timestamp > this.ttl) {
|
|
44
|
+
this.cache.delete(key);
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
29
48
|
}
|
|
30
|
-
/**
|
|
31
|
-
* @method clear
|
|
32
|
-
* @description Clears the entire cache.
|
|
33
|
-
*/
|
|
34
49
|
clear() {
|
|
35
50
|
this.cache.clear();
|
|
36
51
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dddByState = void 0;
|
|
4
|
+
/** DDD da capital de cada estado (fallback para providers que nao retornam DDD) */
|
|
5
|
+
exports.dddByState = {
|
|
6
|
+
AC: "68", AL: "82", AM: "92", AP: "96", BA: "71",
|
|
7
|
+
CE: "85", DF: "61", ES: "27", GO: "62", MA: "98",
|
|
8
|
+
MG: "31", MS: "67", MT: "65", PA: "91", PB: "83",
|
|
9
|
+
PE: "81", PI: "86", PR: "41", RJ: "21", RN: "84",
|
|
10
|
+
RO: "69", RR: "95", RS: "51", SC: "48", SE: "79",
|
|
11
|
+
SP: "11", TO: "63",
|
|
12
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare class CepValidationError extends Error {
|
|
2
|
+
readonly cep: string;
|
|
3
|
+
constructor(cep: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class RateLimitError extends Error {
|
|
6
|
+
readonly limit: number;
|
|
7
|
+
readonly window: number;
|
|
8
|
+
constructor(limit: number, window: number);
|
|
9
|
+
}
|
|
10
|
+
export declare class ProviderTimeoutError extends Error {
|
|
11
|
+
readonly provider: string;
|
|
12
|
+
readonly timeout: number;
|
|
13
|
+
constructor(provider: string, timeout: number);
|
|
14
|
+
}
|
|
15
|
+
export declare class CepNotFoundError extends Error {
|
|
16
|
+
readonly cep: string;
|
|
17
|
+
readonly provider?: string;
|
|
18
|
+
constructor(cep: string, provider?: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class AllProvidersFailedError extends Error {
|
|
21
|
+
readonly errors: Error[];
|
|
22
|
+
constructor(errors: Error[]);
|
|
23
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AllProvidersFailedError = exports.CepNotFoundError = exports.ProviderTimeoutError = exports.RateLimitError = exports.CepValidationError = void 0;
|
|
4
|
+
class CepValidationError extends Error {
|
|
5
|
+
constructor(cep) {
|
|
6
|
+
super("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN.");
|
|
7
|
+
this.name = "CepValidationError";
|
|
8
|
+
this.cep = cep;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.CepValidationError = CepValidationError;
|
|
12
|
+
class RateLimitError extends Error {
|
|
13
|
+
constructor(limit, window) {
|
|
14
|
+
super(`Rate limit exceeded: ${limit} requests per ${window}ms.`);
|
|
15
|
+
this.name = "RateLimitError";
|
|
16
|
+
this.limit = limit;
|
|
17
|
+
this.window = window;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.RateLimitError = RateLimitError;
|
|
21
|
+
class ProviderTimeoutError extends Error {
|
|
22
|
+
constructor(provider, timeout) {
|
|
23
|
+
super(`Timeout from ${provider}`);
|
|
24
|
+
this.name = "ProviderTimeoutError";
|
|
25
|
+
this.provider = provider;
|
|
26
|
+
this.timeout = timeout;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ProviderTimeoutError = ProviderTimeoutError;
|
|
30
|
+
class CepNotFoundError extends Error {
|
|
31
|
+
constructor(cep, provider) {
|
|
32
|
+
super("CEP not found");
|
|
33
|
+
this.name = "CepNotFoundError";
|
|
34
|
+
this.cep = cep;
|
|
35
|
+
this.provider = provider;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.CepNotFoundError = CepNotFoundError;
|
|
39
|
+
class AllProvidersFailedError extends Error {
|
|
40
|
+
constructor(errors) {
|
|
41
|
+
super("All providers failed to resolve the CEP.");
|
|
42
|
+
this.name = "AllProvidersFailedError";
|
|
43
|
+
this.errors = errors;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.AllProvidersFailedError = AllProvidersFailedError;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,36 +1,38 @@
|
|
|
1
1
|
import { Address, Fetcher, Provider, CepLookupOptions, BulkCepResult, RateLimitOptions, EventName, EventListener, EventMap } from "./types";
|
|
2
|
-
import { Cache, InMemoryCache } from "./cache";
|
|
3
|
-
|
|
2
|
+
import { Cache, InMemoryCache, InMemoryCacheOptions } from "./cache";
|
|
3
|
+
import { CepValidationError, RateLimitError, ProviderTimeoutError, CepNotFoundError, AllProvidersFailedError } from "./errors";
|
|
4
|
+
export type { Address, Fetcher, Provider, CepLookupOptions, BulkCepResult, RateLimitOptions, EventName, EventListener, EventMap, Cache, InMemoryCacheOptions };
|
|
4
5
|
export { InMemoryCache };
|
|
6
|
+
export { CepValidationError, RateLimitError, ProviderTimeoutError, CepNotFoundError, AllProvidersFailedError };
|
|
5
7
|
/**
|
|
6
8
|
* @class CepLookup
|
|
7
9
|
* @description A class for looking up Brazilian postal codes (CEPs) using multiple providers.
|
|
8
10
|
*/
|
|
9
11
|
export declare class CepLookup {
|
|
10
12
|
private providers;
|
|
13
|
+
private sortedProviders;
|
|
11
14
|
private fetcher;
|
|
12
15
|
private cache?;
|
|
13
16
|
private rateLimit?;
|
|
17
|
+
private staggerDelay;
|
|
18
|
+
private retries;
|
|
19
|
+
private retryDelay;
|
|
20
|
+
private logger?;
|
|
14
21
|
private requestTimestamps;
|
|
15
22
|
private emitter;
|
|
16
23
|
constructor(options: CepLookupOptions);
|
|
24
|
+
private log;
|
|
17
25
|
on<T extends EventName>(eventName: T, listener: EventListener<T>): void;
|
|
18
26
|
off<T extends EventName>(eventName: T, listener: EventListener<T>): void;
|
|
27
|
+
/**
|
|
28
|
+
* @method warmup
|
|
29
|
+
* @description Pings providers to determine the fastest one and updates the internal priority order.
|
|
30
|
+
* Useful to call on UI events like 'focus' on the CEP input.
|
|
31
|
+
* @returns {Promise<Provider[]>} The list of providers sorted by latency.
|
|
32
|
+
*/
|
|
33
|
+
warmup(): Promise<Provider[]>;
|
|
19
34
|
private checkRateLimit;
|
|
20
35
|
lookup<T = Address>(cep: string, mapper?: (address: Address) => T): Promise<T>;
|
|
21
|
-
|
|
36
|
+
private _lookupFromProviders;
|
|
37
|
+
lookupCeps<T = Address>(ceps: string[], concurrency?: number, mapper?: (address: Address) => T): Promise<BulkCepResult<T>[]>;
|
|
22
38
|
}
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated Use `new CepLookup(options).lookup(cep)` instead.
|
|
25
|
-
*/
|
|
26
|
-
export declare function lookupCep<T = Address>(options: CepLookupOptions & {
|
|
27
|
-
cep: string;
|
|
28
|
-
mapper?: (address: Address) => T;
|
|
29
|
-
}): Promise<T>;
|
|
30
|
-
/**
|
|
31
|
-
* @deprecated Use `new CepLookup(options).lookupCeps(ceps)` instead.
|
|
32
|
-
*/
|
|
33
|
-
export declare function lookupCeps(options: CepLookupOptions & {
|
|
34
|
-
ceps: string[];
|
|
35
|
-
concurrency?: number;
|
|
36
|
-
}): Promise<BulkCepResult[]>;
|
package/dist/src/index.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CepLookup = exports.InMemoryCache = void 0;
|
|
4
|
-
exports.lookupCep = lookupCep;
|
|
5
|
-
exports.lookupCeps = lookupCeps;
|
|
3
|
+
exports.CepLookup = exports.AllProvidersFailedError = exports.CepNotFoundError = exports.ProviderTimeoutError = exports.RateLimitError = exports.CepValidationError = exports.InMemoryCache = void 0;
|
|
6
4
|
const cache_1 = require("./cache");
|
|
7
5
|
Object.defineProperty(exports, "InMemoryCache", { enumerable: true, get: function () { return cache_1.InMemoryCache; } });
|
|
6
|
+
const errors_1 = require("./errors");
|
|
7
|
+
Object.defineProperty(exports, "CepValidationError", { enumerable: true, get: function () { return errors_1.CepValidationError; } });
|
|
8
|
+
Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return errors_1.RateLimitError; } });
|
|
9
|
+
Object.defineProperty(exports, "ProviderTimeoutError", { enumerable: true, get: function () { return errors_1.ProviderTimeoutError; } });
|
|
10
|
+
Object.defineProperty(exports, "CepNotFoundError", { enumerable: true, get: function () { return errors_1.CepNotFoundError; } });
|
|
11
|
+
Object.defineProperty(exports, "AllProvidersFailedError", { enumerable: true, get: function () { return errors_1.AllProvidersFailedError; } });
|
|
12
|
+
const ddd_by_state_1 = require("./data/ddd-by-state");
|
|
8
13
|
// Minimal EventEmitter for internal use
|
|
9
14
|
class EventEmitter {
|
|
10
15
|
constructor() {
|
|
@@ -41,7 +46,7 @@ class EventEmitter {
|
|
|
41
46
|
function validateCep(cep) {
|
|
42
47
|
const cepRegex = /^(\d{8}|\d{5}-\d{3})$/;
|
|
43
48
|
if (!cepRegex.test(cep)) {
|
|
44
|
-
throw new
|
|
49
|
+
throw new errors_1.CepValidationError(cep);
|
|
45
50
|
}
|
|
46
51
|
return cep.replace("-", "");
|
|
47
52
|
}
|
|
@@ -61,6 +66,19 @@ function sanitizeAddress(address) {
|
|
|
61
66
|
});
|
|
62
67
|
return sanitized;
|
|
63
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* @function enrichAddress
|
|
71
|
+
* @description Enriches an address with DDD fallback when the provider doesn't return it.
|
|
72
|
+
*/
|
|
73
|
+
function enrichAddress(address) {
|
|
74
|
+
if (!address.ddd && address.state) {
|
|
75
|
+
const fallbackDdd = ddd_by_state_1.dddByState[address.state];
|
|
76
|
+
if (fallbackDdd) {
|
|
77
|
+
return { ...address, ddd: fallbackDdd };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return address;
|
|
81
|
+
}
|
|
64
82
|
/**
|
|
65
83
|
* @class CepLookup
|
|
66
84
|
* @description A class for looking up Brazilian postal codes (CEPs) using multiple providers.
|
|
@@ -69,6 +87,7 @@ class CepLookup {
|
|
|
69
87
|
constructor(options) {
|
|
70
88
|
this.requestTimestamps = [];
|
|
71
89
|
this.providers = options.providers;
|
|
90
|
+
this.sortedProviders = [...options.providers];
|
|
72
91
|
this.emitter = new EventEmitter();
|
|
73
92
|
this.fetcher = options.fetcher || (async (url, signal) => {
|
|
74
93
|
const response = await fetch(url, { signal });
|
|
@@ -79,6 +98,13 @@ class CepLookup {
|
|
|
79
98
|
});
|
|
80
99
|
this.cache = options.cache;
|
|
81
100
|
this.rateLimit = options.rateLimit;
|
|
101
|
+
this.staggerDelay = options.staggerDelay ?? 100;
|
|
102
|
+
this.retries = options.retries ?? 0;
|
|
103
|
+
this.retryDelay = options.retryDelay ?? 1000;
|
|
104
|
+
this.logger = options.logger;
|
|
105
|
+
}
|
|
106
|
+
log(msg, data) {
|
|
107
|
+
this.logger?.debug(msg, data);
|
|
82
108
|
}
|
|
83
109
|
on(eventName, listener) {
|
|
84
110
|
this.emitter.on(eventName, listener);
|
|
@@ -86,6 +112,38 @@ class CepLookup {
|
|
|
86
112
|
off(eventName, listener) {
|
|
87
113
|
this.emitter.off(eventName, listener);
|
|
88
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* @method warmup
|
|
117
|
+
* @description Pings providers to determine the fastest one and updates the internal priority order.
|
|
118
|
+
* Useful to call on UI events like 'focus' on the CEP input.
|
|
119
|
+
* @returns {Promise<Provider[]>} The list of providers sorted by latency.
|
|
120
|
+
*/
|
|
121
|
+
async warmup() {
|
|
122
|
+
const controlCep = "01001000"; // Praça da Sé (Fixed Valid CEP)
|
|
123
|
+
const controller = new AbortController();
|
|
124
|
+
const race = this.providers.map(async (provider) => {
|
|
125
|
+
const start = Date.now();
|
|
126
|
+
try {
|
|
127
|
+
const url = provider.buildUrl(controlCep);
|
|
128
|
+
await this.fetcher(url, controller.signal);
|
|
129
|
+
// We don't care about the result content, just that it didn't throw network error
|
|
130
|
+
return { provider, duration: Date.now() - start, error: false };
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
return { provider, duration: Infinity, error: true };
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
// Wait for all to finish (or fail)
|
|
137
|
+
const results = await Promise.all(race);
|
|
138
|
+
// Sort providers: functional/fastest first
|
|
139
|
+
const sortedResults = results.sort((a, b) => a.duration - b.duration);
|
|
140
|
+
this.sortedProviders = sortedResults
|
|
141
|
+
.map(r => r.provider)
|
|
142
|
+
.filter(p => !!p);
|
|
143
|
+
// Abort any lingering requests (though we awaited all)
|
|
144
|
+
controller.abort();
|
|
145
|
+
return this.sortedProviders;
|
|
146
|
+
}
|
|
89
147
|
checkRateLimit() {
|
|
90
148
|
if (!this.rateLimit)
|
|
91
149
|
return;
|
|
@@ -93,32 +151,57 @@ class CepLookup {
|
|
|
93
151
|
const windowStart = now - this.rateLimit.per;
|
|
94
152
|
this.requestTimestamps = this.requestTimestamps.filter((ts) => ts > windowStart);
|
|
95
153
|
if (this.requestTimestamps.length >= this.rateLimit.requests) {
|
|
96
|
-
throw new
|
|
154
|
+
throw new errors_1.RateLimitError(this.rateLimit.requests, this.rateLimit.per);
|
|
97
155
|
}
|
|
98
156
|
this.requestTimestamps.push(now);
|
|
99
157
|
}
|
|
100
158
|
async lookup(cep, mapper) {
|
|
101
159
|
this.checkRateLimit();
|
|
102
160
|
const cleanedCep = validateCep(cep);
|
|
161
|
+
this.log('lookup:start', { cep: cleanedCep });
|
|
103
162
|
if (this.cache) {
|
|
104
163
|
const cachedAddress = this.cache.get(cleanedCep);
|
|
105
164
|
if (cachedAddress) {
|
|
165
|
+
this.log('cache:hit', { cep: cleanedCep });
|
|
106
166
|
this.emitter.emit('cache:hit', { cep: cleanedCep });
|
|
107
167
|
return mapper ? mapper(cachedAddress) : cachedAddress;
|
|
108
168
|
}
|
|
109
169
|
}
|
|
170
|
+
let lastError;
|
|
171
|
+
const maxAttempts = 1 + this.retries;
|
|
172
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
173
|
+
if (attempt > 0) {
|
|
174
|
+
const delay = this.retryDelay * Math.pow(2, attempt - 1);
|
|
175
|
+
this.log('retry:attempt', { attempt, cep: cleanedCep, delay });
|
|
176
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
177
|
+
}
|
|
178
|
+
try {
|
|
179
|
+
return await this._lookupFromProviders(cleanedCep, mapper);
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
if (error instanceof errors_1.CepValidationError || error instanceof errors_1.RateLimitError) {
|
|
183
|
+
throw error;
|
|
184
|
+
}
|
|
185
|
+
lastError = error;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
throw lastError;
|
|
189
|
+
}
|
|
190
|
+
async _lookupFromProviders(cleanedCep, mapper) {
|
|
110
191
|
const controller = new AbortController();
|
|
111
192
|
const { signal } = controller;
|
|
112
|
-
const
|
|
193
|
+
const createProviderPromise = (provider) => {
|
|
113
194
|
const startTime = Date.now();
|
|
114
195
|
const url = provider.buildUrl(cleanedCep);
|
|
196
|
+
this.log('provider:start', { provider: provider.name, cep: cleanedCep });
|
|
115
197
|
const timeoutPromise = new Promise((_, reject) => {
|
|
116
198
|
if (!provider.timeout)
|
|
117
199
|
return;
|
|
118
200
|
const timeoutId = setTimeout(() => {
|
|
119
201
|
signal.removeEventListener('abort', onAbort);
|
|
120
202
|
const duration = Date.now() - startTime;
|
|
121
|
-
const error = new
|
|
203
|
+
const error = new errors_1.ProviderTimeoutError(provider.name, provider.timeout);
|
|
204
|
+
this.log('provider:failure', { provider: provider.name, cep: cleanedCep, error: error.message });
|
|
122
205
|
this.emitter.emit('failure', { provider: provider.name, cep: cleanedCep, duration, error });
|
|
123
206
|
reject(error);
|
|
124
207
|
}, provider.timeout);
|
|
@@ -129,7 +212,8 @@ class CepLookup {
|
|
|
129
212
|
.then((response) => provider.transform(response))
|
|
130
213
|
.then((address) => {
|
|
131
214
|
const duration = Date.now() - startTime;
|
|
132
|
-
const sanitizedAddress = sanitizeAddress(address);
|
|
215
|
+
const sanitizedAddress = enrichAddress(sanitizeAddress(address));
|
|
216
|
+
this.log('provider:success', { provider: provider.name, cep: cleanedCep, duration });
|
|
133
217
|
this.emitter.emit('success', { provider: provider.name, cep: cleanedCep, duration, address: sanitizedAddress });
|
|
134
218
|
if (this.cache) {
|
|
135
219
|
this.cache.set(cleanedCep, sanitizedAddress);
|
|
@@ -138,24 +222,56 @@ class CepLookup {
|
|
|
138
222
|
})
|
|
139
223
|
.catch((error) => {
|
|
140
224
|
const duration = Date.now() - startTime;
|
|
141
|
-
if (!error.message.includes('Timeout from')) {
|
|
225
|
+
if (!error.message.includes('Timeout from') && error.name !== 'AbortError') {
|
|
226
|
+
this.log('provider:failure', { provider: provider.name, cep: cleanedCep, error: error.message });
|
|
142
227
|
this.emitter.emit('failure', { provider: provider.name, cep: cleanedCep, duration, error });
|
|
143
228
|
}
|
|
144
229
|
throw error;
|
|
145
230
|
});
|
|
146
231
|
return Promise.race([fetchPromise, timeoutPromise]);
|
|
232
|
+
};
|
|
233
|
+
const bestProvider = this.sortedProviders[0];
|
|
234
|
+
const otherProviders = this.sortedProviders.slice(1);
|
|
235
|
+
if (otherProviders.length === 0) {
|
|
236
|
+
try {
|
|
237
|
+
return await createProviderPromise(bestProvider);
|
|
238
|
+
}
|
|
239
|
+
finally {
|
|
240
|
+
controller.abort();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
let staggerTimeout = null;
|
|
244
|
+
let triggerOthers = null;
|
|
245
|
+
const secondaryPromise = new Promise((resolve, reject) => {
|
|
246
|
+
triggerOthers = () => {
|
|
247
|
+
if (staggerTimeout)
|
|
248
|
+
clearTimeout(staggerTimeout);
|
|
249
|
+
if (signal.aborted)
|
|
250
|
+
return;
|
|
251
|
+
const promises = otherProviders.map(createProviderPromise);
|
|
252
|
+
Promise.any(promises).then(resolve).catch(reject);
|
|
253
|
+
};
|
|
254
|
+
staggerTimeout = setTimeout(triggerOthers, this.staggerDelay);
|
|
255
|
+
});
|
|
256
|
+
const primaryPromise = createProviderPromise(bestProvider).catch((err) => {
|
|
257
|
+
if (triggerOthers)
|
|
258
|
+
triggerOthers();
|
|
259
|
+
throw err;
|
|
147
260
|
});
|
|
148
261
|
try {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
262
|
+
return await Promise.any([primaryPromise, secondaryPromise]);
|
|
263
|
+
}
|
|
264
|
+
catch (aggregateError) {
|
|
265
|
+
const errors = aggregateError.errors || [aggregateError];
|
|
266
|
+
throw new errors_1.AllProvidersFailedError(errors);
|
|
153
267
|
}
|
|
154
268
|
finally {
|
|
269
|
+
if (staggerTimeout)
|
|
270
|
+
clearTimeout(staggerTimeout);
|
|
155
271
|
controller.abort();
|
|
156
272
|
}
|
|
157
273
|
}
|
|
158
|
-
async lookupCeps(ceps, concurrency = 5) {
|
|
274
|
+
async lookupCeps(ceps, concurrency = 5, mapper) {
|
|
159
275
|
if (!ceps || ceps.length === 0) {
|
|
160
276
|
return [];
|
|
161
277
|
}
|
|
@@ -170,7 +286,11 @@ class CepLookup {
|
|
|
170
286
|
try {
|
|
171
287
|
const address = await this.lookup(cep);
|
|
172
288
|
if (address) {
|
|
173
|
-
results[currentIndex] = {
|
|
289
|
+
results[currentIndex] = {
|
|
290
|
+
cep,
|
|
291
|
+
data: mapper ? mapper(address) : address,
|
|
292
|
+
provider: address.service,
|
|
293
|
+
};
|
|
174
294
|
}
|
|
175
295
|
else {
|
|
176
296
|
throw new Error('No address found');
|
|
@@ -187,21 +307,3 @@ class CepLookup {
|
|
|
187
307
|
}
|
|
188
308
|
}
|
|
189
309
|
exports.CepLookup = CepLookup;
|
|
190
|
-
/**
|
|
191
|
-
* @deprecated Use `new CepLookup(options).lookup(cep)` instead.
|
|
192
|
-
*/
|
|
193
|
-
function lookupCep(options) {
|
|
194
|
-
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.");
|
|
195
|
-
const { cep, providers, fetcher, mapper, cache, rateLimit } = options;
|
|
196
|
-
const cepLookup = new CepLookup({ providers, fetcher, cache, rateLimit });
|
|
197
|
-
return cepLookup.lookup(cep, mapper);
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* @deprecated Use `new CepLookup(options).lookupCeps(ceps)` instead.
|
|
201
|
-
*/
|
|
202
|
-
async function lookupCeps(options) {
|
|
203
|
-
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.");
|
|
204
|
-
const { ceps, providers, fetcher, cache, concurrency = 5, rateLimit } = options;
|
|
205
|
-
const cepLookup = new CepLookup({ providers, fetcher, cache, rateLimit });
|
|
206
|
-
return cepLookup.lookupCeps(ceps, concurrency);
|
|
207
|
-
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Provider } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* @const {Provider} openCepProvider
|
|
4
|
+
* @description Provider for the OpenCEP service.
|
|
5
|
+
* @property {string} name - "OpenCEP".
|
|
6
|
+
* @property {(cep: string) => string} buildUrl - Constructs the URL for OpenCEP API.
|
|
7
|
+
* @property {(response: any) => Address} transform - Transforms OpenCEP's response into a standardized `Address` object.
|
|
8
|
+
* @throws {Error} If OpenCEP response indicates an error.
|
|
9
|
+
*/
|
|
10
|
+
export declare const openCepProvider: Provider;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.openCepProvider = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @const {Provider} openCepProvider
|
|
6
|
+
* @description Provider for the OpenCEP service.
|
|
7
|
+
* @property {string} name - "OpenCEP".
|
|
8
|
+
* @property {(cep: string) => string} buildUrl - Constructs the URL for OpenCEP API.
|
|
9
|
+
* @property {(response: any) => Address} transform - Transforms OpenCEP's response into a standardized `Address` object.
|
|
10
|
+
* @throws {Error} If OpenCEP response indicates an error.
|
|
11
|
+
*/
|
|
12
|
+
exports.openCepProvider = {
|
|
13
|
+
name: "OpenCEP",
|
|
14
|
+
buildUrl: (cep) => `https://opencep.com/v1/${cep}`,
|
|
15
|
+
transform: (response) => {
|
|
16
|
+
if (!response || response.error) {
|
|
17
|
+
throw new Error("CEP not found");
|
|
18
|
+
}
|
|
19
|
+
// OpenCEP returns status code 404 for not found, which fetcher catches.
|
|
20
|
+
// But sometimes APIs return 200 with error data.
|
|
21
|
+
// Assuming standard JSON return based on description.
|
|
22
|
+
return {
|
|
23
|
+
cep: (response.cep || "").replace("-", ""),
|
|
24
|
+
state: response.uf || "",
|
|
25
|
+
city: response.localidade || "",
|
|
26
|
+
neighborhood: response.bairro || "",
|
|
27
|
+
street: response.logradouro || "",
|
|
28
|
+
service: "OpenCEP",
|
|
29
|
+
ibge: response.ibge || undefined,
|
|
30
|
+
};
|
|
31
|
+
},
|
|
32
|
+
};
|
package/dist/src/types.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export interface Address {
|
|
|
10
10
|
neighborhood: string;
|
|
11
11
|
street: string;
|
|
12
12
|
service: string;
|
|
13
|
+
ibge?: string;
|
|
14
|
+
ddd?: string;
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
17
|
* @interface Provider
|
|
@@ -43,14 +45,23 @@ export interface CepLookupOptions {
|
|
|
43
45
|
fetcher?: Fetcher;
|
|
44
46
|
cache?: Cache;
|
|
45
47
|
rateLimit?: RateLimitOptions;
|
|
48
|
+
staggerDelay?: number;
|
|
49
|
+
/** Number of retries after all providers fail. Default: 0 */
|
|
50
|
+
retries?: number;
|
|
51
|
+
/** Base delay in ms between retries (exponential backoff). Default: 1000 */
|
|
52
|
+
retryDelay?: number;
|
|
53
|
+
/** Optional logger for debug output */
|
|
54
|
+
logger?: {
|
|
55
|
+
debug: (msg: string, data?: Record<string, unknown>) => void;
|
|
56
|
+
};
|
|
46
57
|
}
|
|
47
58
|
/**
|
|
48
59
|
* @interface BulkCepResult
|
|
49
60
|
* @description Represents the result for a single CEP in a bulk lookup operation.
|
|
50
61
|
*/
|
|
51
|
-
export interface BulkCepResult {
|
|
62
|
+
export interface BulkCepResult<T = Address> {
|
|
52
63
|
cep: string;
|
|
53
|
-
data:
|
|
64
|
+
data: T | null;
|
|
54
65
|
provider?: string;
|
|
55
66
|
error?: Error;
|
|
56
67
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eusilvio/cep-lookup",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "A
|
|
3
|
+
"version": "2.5.1",
|
|
4
|
+
"description": "A agnostic, performant and flexible CEP lookup library with race strategy and caching.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Silvio Souza",
|
|
7
7
|
"repository": {
|
|
@@ -34,7 +34,8 @@
|
|
|
34
34
|
"scripts": {
|
|
35
35
|
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
36
36
|
"build": "npm run clean && tsc --emitDeclarationOnly --outDir dist && esbuild src/index.ts src/providers/index.ts --bundle --platform=neutral --format=cjs --outdir=dist --out-extension:.js=.cjs --minify && esbuild src/index.ts src/providers/index.ts --bundle --platform=neutral --format=esm --outdir=dist --out-extension:.js=.mjs --minify",
|
|
37
|
-
"test": "jest"
|
|
37
|
+
"test": "jest",
|
|
38
|
+
"test:html": "npx http-server . -o examples/index.html -c-1"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
41
|
"@types/jest": "^30.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
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/blob.d.ts","../../../node_modules/@types/node/web-globals/console.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/encoding.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/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.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/inspector/promises.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/path/posix.d.ts","../../../node_modules/@types/node/path/win32.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/quic.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/consumers.d.ts","../../../node_modules/@types/node/stream/promises.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/test/reporters.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/util/types.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,342,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373],[269,280,342,350,354,357,359,360,361,373],[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,342,350,354,357,359,360,361,373],[79,212,280,342,350,354,357,359,360,361,373],[80,280,342,350,354,357,359,360,361,373],[218,280,342,350,354,357,359,360,361,373],[79,195,199,212,280,342,350,354,357,359,360,361,373],[200,280,342,350,354,357,359,360,361,373],[79,195,212,280,342,350,354,357,359,360,361,373],[84,280,342,350,354,357,359,360,361,373],[100,106,110,116,147,199,212,280,342,350,354,357,359,360,361,373],[155,280,342,350,354,357,359,360,361,373],[129,280,342,350,354,357,359,360,361,373],[123,280,342,350,354,357,359,360,361,373],[213,214,280,342,350,354,357,359,360,361,373],[212,280,342,350,354,357,359,360,361,373],[102,106,143,149,161,197,199,212,280,342,350,354,357,359,360,361,373],[229,280,342,350,354,357,359,360,361,373],[78,212,280,342,350,354,357,359,360,361,373],[99,280,342,350,354,357,359,360,361,373],[81,88,94,98,102,118,130,171,173,175,197,199,203,205,207,212,280,342,350,354,357,359,360,361,373],[231,280,342,350,354,357,359,360,361,373],[92,102,118,212,280,342,350,354,357,359,360,361,373],[233,280,342,350,354,357,359,360,361,373],[79,88,90,154,195,199,212,280,342,350,354,357,359,360,361,373],[91,280,342,350,354,357,359,360,361,373],[216,280,342,350,354,357,359,360,361,373],[210,280,342,350,354,357,359,360,361,373],[202,280,342,350,354,357,359,360,361,373],[79,94,212,280,342,350,354,357,359,360,361,373],[95,280,342,350,354,357,359,360,361,373],[119,280,342,350,354,357,359,360,361,373],[151,197,212,236,280,342,350,354,357,359,360,361,373],[138,212,236,280,342,350,354,357,359,360,361,373],[102,110,138,151,195,199,212,235,237,280,342,350,354,357,359,360,361,373],[235,236,237,280,342,350,354,357,359,360,361,373],[120,212,280,342,350,354,357,359,360,361,373],[94,151,197,199,212,241,280,342,350,354,357,359,360,361,373],[151,197,212,241,280,342,350,354,357,359,360,361,373],[110,151,195,199,212,240,242,280,342,350,354,357,359,360,361,373],[239,240,241,242,243,280,342,350,354,357,359,360,361,373],[151,197,212,246,280,342,350,354,357,359,360,361,373],[138,212,246,280,342,350,354,357,359,360,361,373],[102,110,138,151,195,199,212,245,247,280,342,350,354,357,359,360,361,373],[245,246,247,280,342,350,354,357,359,360,361,373],[97,280,342,350,354,357,359,360,361,373],[220,221,222,280,342,350,354,357,359,360,361,373],[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,342,350,354,357,359,360,361,373],[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,342,350,354,357,359,360,361,373],[102,197,212,280,342,350,354,357,359,360,361,373],[198,280,342,350,354,357,359,360,361,373],[139,140,141,142,280,342,350,354,357,359,360,361,373],[141,151,197,199,212,280,342,350,354,357,359,360,361,373],[139,143,151,197,212,280,342,350,354,357,359,360,361,373],[94,110,126,128,138,212,280,342,350,354,357,359,360,361,373],[100,102,106,110,112,116,118,139,140,142,151,197,199,201,212,280,342,350,354,357,359,360,361,373],[249,280,342,350,354,357,359,360,361,373],[92,102,212,280,342,350,354,357,359,360,361,373],[251,280,342,350,354,357,359,360,361,373],[85,88,90,92,98,106,110,118,145,147,154,182,197,201,207,212,219,280,342,350,354,357,359,360,361,373],[127,280,342,350,354,357,359,360,361,373],[103,104,105,280,342,350,354,357,359,360,361,373],[88,102,103,154,212,280,342,350,354,357,359,360,361,373],[102,103,212,280,342,350,354,357,359,360,361,373],[212,254,280,342,350,354,357,359,360,361,373],[253,254,255,256,257,258,280,342,350,354,357,359,360,361,373],[94,151,197,199,212,254,280,342,350,354,357,359,360,361,373],[94,110,138,151,212,253,280,342,350,354,357,359,360,361,373],[144,280,342,350,354,357,359,360,361,373],[157,158,159,160,280,342,350,354,357,359,360,361,373],[151,158,197,199,212,280,342,350,354,357,359,360,361,373],[106,110,112,118,149,197,199,201,212,280,342,350,354,357,359,360,361,373],[94,100,110,116,126,151,157,159,199,212,280,342,350,354,357,359,360,361,373],[93,280,342,350,354,357,359,360,361,373],[82,83,150,280,342,350,354,357,359,360,361,373],[79,197,212,280,342,350,354,357,359,360,361,373],[82,83,85,88,92,94,96,98,106,110,118,143,145,147,149,154,197,199,201,212,280,342,350,354,357,359,360,361,373],[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,342,350,354,357,359,360,361,373],[190,280,342,350,354,357,359,360,361,373],[85,88,92,96,98,106,110,112,116,118,145,154,182,195,197,199,201,212,280,342,350,354,357,359,360,361,373],[79,188,189,195,197,212,280,342,350,354,357,359,360,361,373],[101,280,342,350,354,357,359,360,361,373],[192,280,342,350,354,357,359,360,361,373],[170,280,342,350,354,357,359,360,361,373],[125,280,342,350,354,357,359,360,361,373],[196,280,342,350,354,357,359,360,361,373],[79,88,154,195,199,212,280,342,350,354,357,359,360,361,373],[162,163,164,280,342,350,354,357,359,360,361,373],[151,163,197,212,280,342,350,354,357,359,360,361,373],[151,163,197,199,212,280,342,350,354,357,359,360,361,373],[94,100,106,110,112,116,143,151,162,164,197,199,212,280,342,350,354,357,359,360,361,373],[152,153,280,342,350,354,357,359,360,361,373],[151,152,197,280,342,350,354,357,359,360,361,373],[79,151,153,199,212,280,342,350,354,357,359,360,361,373],[260,280,342,350,354,357,359,360,361,373],[98,102,118,212,280,342,350,354,357,359,360,361,373],[176,177,280,342,350,354,357,359,360,361,373],[151,176,197,199,212,280,342,350,354,357,359,360,361,373],[88,90,94,100,106,110,112,116,122,124,126,128,130,151,154,171,173,175,177,197,199,212,280,342,350,354,357,359,360,361,373],[224,280,342,350,354,357,359,360,361,373],[166,167,168,280,342,350,354,357,359,360,361,373],[151,167,197,212,280,342,350,354,357,359,360,361,373],[151,167,197,199,212,280,342,350,354,357,359,360,361,373],[94,100,106,110,112,116,143,151,166,168,197,199,212,280,342,350,354,357,359,360,361,373],[146,280,342,350,354,357,359,360,361,373],[89,280,342,350,354,357,359,360,361,373],[88,154,212,280,342,350,354,357,359,360,361,373],[86,87,280,342,350,354,357,359,360,361,373],[86,151,197,280,342,350,354,357,359,360,361,373],[79,87,151,199,212,280,342,350,354,357,359,360,361,373],[181,280,342,350,354,357,359,360,361,373],[79,81,94,96,102,110,122,124,126,128,138,180,195,197,199,212,280,342,350,354,357,359,360,361,373],[111,280,342,350,354,357,359,360,361,373],[115,280,342,350,354,357,359,360,361,373],[79,114,195,212,280,342,350,354,357,359,360,361,373],[179,280,342,350,354,357,359,360,361,373],[226,227,280,342,350,354,357,359,360,361,373],[183,184,280,342,350,354,357,359,360,361,373],[151,183,197,199,212,280,342,350,354,357,359,360,361,373],[88,90,94,100,106,110,112,116,122,124,126,128,130,151,154,171,173,175,184,197,199,212,280,342,350,354,357,359,360,361,373],[262,280,342,350,354,357,359,360,361,373],[106,110,118,212,280,342,350,354,357,359,360,361,373],[264,280,342,350,354,357,359,360,361,373],[98,102,212,280,342,350,354,357,359,360,361,373],[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,342,350,354,357,359,360,361,373],[210,211,280,342,350,354,357,359,360,361,373],[79,280,342,350,354,357,359,360,361,373],[148,280,342,350,354,357,359,360,361,373],[194,280,342,350,354,357,359,360,361,373],[85,88,92,96,98,102,106,110,112,114,116,118,145,147,154,182,187,191,193,197,199,201,212,280,342,350,354,357,359,360,361,373],[121,280,342,350,354,357,359,360,361,373],[172,280,342,350,354,357,359,360,361,373],[78,280,342,350,354,357,359,360,361,373],[94,110,120,122,124,126,128,130,131,138,280,342,350,354,357,359,360,361,373],[94,110,120,124,131,132,138,199,280,342,350,354,357,359,360,361,373],[131,132,133,134,135,136,137,280,342,350,354,357,359,360,361,373],[120,280,342,350,354,357,359,360,361,373],[120,138,280,342,350,354,357,359,360,361,373],[94,110,122,124,126,130,138,199,280,342,350,354,357,359,360,361,373],[79,94,102,110,122,124,126,128,130,134,195,199,212,280,342,350,354,357,359,360,361,373],[94,110,136,195,199,280,342,350,354,357,359,360,361,373],[186,280,342,350,354,357,359,360,361,373],[117,280,342,350,354,357,359,360,361,373],[266,267,280,342,350,354,357,359,360,361,373],[85,92,98,130,145,147,156,173,175,180,203,205,209,212,219,234,250,252,261,265,266,280,342,350,354,357,359,360,361,373],[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,342,350,354,357,359,360,361,373],[204,280,342,350,354,357,359,360,361,373],[174,280,342,350,354,357,359,360,361,373],[107,108,109,280,342,350,354,357,359,360,361,373],[88,102,107,154,212,280,342,350,354,357,359,360,361,373],[102,107,212,280,342,350,354,357,359,360,361,373],[206,280,342,350,354,357,359,360,361,373],[113,280,342,350,354,357,359,360,361,373],[208,280,342,350,354,357,359,360,361,373],[67,68,69,70,71,280,342,350,354,357,359,360,361,373],[67,69,280,342,350,354,357,359,360,361,373],[73,280,342,350,354,357,359,360,361,373],[74,280,342,350,354,357,359,360,361,373],[271,275,280,342,350,354,357,359,360,361,373],[270,280,342,350,354,357,359,360,361,373],[280,342,350,353,354,357,359,360,361,373,394,398,416,417,419],[280,342,350,354,357,359,360,361,373,418],[280,339,340,342,350,354,357,359,360,361,373],[280,341,342,350,354,357,359,360,361,373],[342,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373,381],[280,342,343,348,350,353,354,357,359,360,361,363,373,378,390],[280,342,343,344,350,353,354,357,359,360,361,373],[280,342,345,350,354,357,359,360,361,373,391],[280,342,346,347,350,354,357,359,360,361,364,373],[280,342,347,350,354,357,359,360,361,373,378,387],[280,342,348,350,353,354,357,359,360,361,363,373],[280,341,342,349,350,354,357,359,360,361,373],[280,342,350,351,354,357,359,360,361,373],[280,342,350,352,353,354,357,359,360,361,373],[280,341,342,350,353,354,357,359,360,361,373],[280,342,350,353,354,355,357,359,360,361,373,378,390],[280,342,350,353,354,355,357,359,360,361,373,378,381],[280,329,342,350,353,354,356,357,359,360,361,363,373,378,390],[280,342,350,353,354,356,357,359,360,361,363,373,378,387,390],[280,342,350,354,356,357,358,359,360,361,373,378,387,390],[278,279,280,281,282,283,284,285,286,287,288,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,384,385,386,387,388,389,390,391,392,393,394,395,396,397],[280,342,350,353,354,357,359,360,361,373],[280,342,350,354,357,359,361,373],[280,342,350,354,357,359,360,361,362,373,390],[280,342,350,353,354,357,359,360,361,363,373,378],[280,342,350,354,357,359,360,361,364,373],[280,342,350,354,357,359,360,361,365,373],[280,342,350,353,354,357,359,360,361,368,373],[280,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,384,385,386,387,388,389,390,391,392,393,394,395,396,397],[280,342,350,354,357,359,360,361,370,373],[280,342,350,354,357,359,360,361,371,373],[280,342,347,350,354,357,359,360,361,363,373,381],[280,342,350,353,354,357,359,360,361,373,374],[280,342,350,354,357,359,360,361,373,375,391,394],[280,342,350,353,354,357,359,360,361,373,378,380,381],[280,342,350,354,357,359,360,361,373,379,381],[280,342,350,354,357,359,360,361,373,381,391],[280,342,350,354,357,359,360,361,373,382],[280,339,342,350,354,357,359,360,361,373,378,384],[280,342,350,354,357,359,360,361,373,378,383],[280,342,350,353,354,357,359,360,361,373,385,386],[280,342,350,354,357,359,360,361,373,385,386],[280,342,347,350,354,357,359,360,361,363,373,378,387],[280,342,350,354,357,359,360,361,373,388],[280,342,350,354,357,359,360,361,363,373,389],[280,342,350,354,356,357,359,360,361,371,373,390],[280,342,350,354,357,359,360,361,373,391,392],[280,342,347,350,354,357,359,360,361,373,392],[280,342,350,354,357,359,360,361,373,378,393],[280,342,350,354,357,359,360,361,362,373,394],[280,342,350,354,357,359,360,361,373,395],[280,342,345,350,354,357,359,360,361,373],[280,342,347,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373,391],[280,329,342,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373,390],[280,342,350,354,357,359,360,361,373,396],[280,342,350,354,357,359,360,361,368,373],[280,342,350,354,357,359,360,361,373,386],[280,329,342,350,353,354,355,357,359,360,361,368,373,378,381,390,393,394,396],[280,342,350,354,357,359,360,361,373,378,397],[280,342,350,354,357,359,360,361,373,423],[280,342,350,354,357,359,360,361,373,420,421,422],[280,342,350,354,357,359,360,361,373,426],[280,342,350,354,357,359,360,361,373,406],[280,342,350,354,357,359,360,361,373,403,404,405],[76,273,274,280,342,350,354,357,359,360,361,373],[271,280,342,350,354,357,359,360,361,373],[77,272,280,342,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373,400],[280,342,350,354,357,359,360,361,373,399,400],[280,342,350,354,357,359,360,361,373,399],[280,342,350,354,357,359,360,361,373,399,400,401,408,409,412,413,414,415],[280,342,350,354,357,359,360,361,373,400,409],[280,342,350,354,357,359,360,361,373,399,400,401,408,409,410,411],[280,342,350,354,357,359,360,361,373,399,409],[280,342,350,354,357,359,360,361,373,409,413],[280,342,350,354,357,359,360,361,373,400,401,402,407],[280,342,350,354,357,359,360,361,373,401],[280,342,350,354,357,359,360,361,373,399,400,409],[280,295,298,301,302,342,350,354,357,359,360,361,373,390],[280,298,342,350,354,357,359,360,361,373,378,390],[280,298,302,342,350,354,357,359,360,361,373,390],[280,342,350,354,357,359,360,361,373,378],[280,292,342,350,354,357,359,360,361,373],[280,296,342,350,354,357,359,360,361,373],[280,294,295,298,342,350,354,357,359,360,361,373,390],[280,342,350,354,357,359,360,361,363,373,387],[280,342,350,354,357,359,360,361,373,398],[280,292,342,350,354,357,359,360,361,373,398],[280,294,298,342,350,354,357,359,360,361,363,373,390],[280,289,290,291,293,297,342,350,353,354,357,359,360,361,373,378,390],[280,298,306,314,342,350,354,357,359,360,361,373],[280,290,296,342,350,354,357,359,360,361,373],[280,298,323,324,342,350,354,357,359,360,361,373],[280,290,293,298,342,350,354,357,359,360,361,373,381,390,398],[280,298,342,350,354,357,359,360,361,373],[280,294,298,342,350,354,357,359,360,361,373,390],[280,289,342,350,354,357,359,360,361,373],[280,292,293,294,296,297,298,299,300,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,324,325,326,327,328,342,350,354,357,359,360,361,373],[280,298,316,319,342,350,354,357,359,360,361,373],[280,298,306,307,308,342,350,354,357,359,360,361,373],[280,296,298,307,309,342,350,354,357,359,360,361,373],[280,297,342,350,354,357,359,360,361,373],[280,290,292,298,342,350,354,357,359,360,361,373],[280,298,302,307,309,342,350,354,357,359,360,361,373],[280,302,342,350,354,357,359,360,361,373],[280,296,298,301,342,350,354,357,359,360,361,373,390],[280,290,294,298,306,342,350,354,357,359,360,361,373],[280,298,316,342,350,354,357,359,360,361,373],[280,309,342,350,354,357,359,360,361,373],[280,292,298,323,342,350,354,357,359,360,361,373,381,396,398],[60,280,342,350,354,357,359,360,361,373],[59,60,280,342,350,354,357,359,360,361,373],[62,63,64,280,342,350,354,357,359,360,361,373],[59,280,342,350,354,357,359,360,361,373]],"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":"c5e64e0c0c8b4f2d83173cd0f72fde473c51db1f4375e5021fd019e8c051bc48","signature":"29b68cc8047a17664483932bbd8d5304b9148468133a293950a4bf66fcfa99df"},{"version":"3c66c61ea4ceadf18c6211177a2e1aaaf7b4e5ce33acbf3d204d460d8cb8ee53","signature":"1c0a4a3ff278c6675c65dea00fa006b88dec7b3c3618145414bfd1886ba8210d"},{"version":"dad5e003bc57c95f6c965ca190075ab79565c6bd462e8aad7b854ec8d4838313","signature":"e534a0d4dc76fed916d8e2d19fdf0b16ba87cb3f22f586ddeeed4d3685762a9e"},{"version":"60918f459b4b31b1febc12e4efb915d2cc332b0b1832864c9155f20e208a8eac","signature":"e5fa96d16e623285b0b15ab53bfbfb8478ec688b75fe5673cd70708065b81b6d"},{"version":"d63f228102e5a6c548ce4ae03a39973572304bf86037982e75b471dabbeb332d","signature":"4dbcca0cd7d5571029b693b8310d1ac0dd2520b05608326c1fa72e2020ab12f1"},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"c2c2a861a338244d7dd700d0c52a78916b4bb75b98fc8ca5e7c501899fc03796","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"adb467429462e3891de5bb4a82a4189b92005d61c7f9367c089baf03997c104e","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":"df10dc6fe1c49e2f94be9d7d1e625aeb66e5eb90b2e0af1f378bfdfa5313155b","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":"b86259ab4b95ebe1aedb03d3eebea647f0bd9a706981220f00210487d70e77a0","impliedFormat":1},{"version":"2f1f7c65e8ee58e3e7358f9b8b3c37d8447549ecc85046f9405a0fc67fbdf54b","impliedFormat":1},{"version":"e3f3964ff78dee11a07ae589f1319ff682f62f3c6c8afa935e3d8616cf21b431","impliedFormat":1},{"version":"2762c2dbee294ffb8fdbcae6db32c3dae09e477d6a348b48578b4145b15d1818","impliedFormat":1},{"version":"78a1eace936ad32ca1c228814f3333cb2e826e1447e60fee181b3c53d43a8d07","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":"b04862a4f44f78fd12ad8ed34ab81f9f254a87398568173694a78dc0bdebcd23","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":"530f4bee13cc07fd4e8bac69eeb728a6270ebafeab886c98624c699725b29755","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":"a9b2562f690a70b18fbe9d6666d9a80e18aefec50cfb153a2b06d99ae52c77dc","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":"b61efdebae3d131b6ad71bd2aa7cc4284e351481339bf66d84ee5ed86465bcc8","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":"7a80da7b14bc7902b1da607c8b3734ad5740f8f5fade9a7bfbf753b9bba22652","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":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","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":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","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":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","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":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"dd0109710de4cd93e245121ab86d8c66d20f3ead80074b68e9c3e349c4f53342","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"435b3711465425770ed2ee2f1cf00ce071835265e0851a7dc4600ab4b007550e","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf83d90d5faf27b994c2e79af02e32b555dbfe42cd9bd1571445f2168d1f4e2d","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"0e28335ac43f4d94dd2fe6d9e6fa6813570640839addd10d309d7985f33a6308","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"b0b69c61b0f0ec8ca15db4c8c41f6e77f4cacb784d42bca948f42dea33e8757e","affectsGlobalScope":true,"impliedFormat":1},{"version":"961cf7535b9c521cd634055b1b6ac49b94d055f0b573ce7fdc4cfaddab080b7c","impliedFormat":1},{"version":"806a8c6daae69e5695e7200d9eca6bc1e4298f38d90edda3ce67a794da31a24f","impliedFormat":1},{"version":"ac86245c2f31335bfd52cbe7fc760f9fc4f165387875869a478a6d9616a95e72","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"9d96a7ce809392ff2cb99691acf7c62e632fe56897356ba013b689277aca3619","impliedFormat":1},{"version":"42a05d8f239f74587d4926aba8cc54792eed8e8a442c7adc9b38b516642aadfe","impliedFormat":1},{"version":"5d21b58d60383cc6ab9ad3d3e265d7d25af24a2c9b506247e0e50b0a884920be","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"ae6757460f37078884b1571a3de3ebaf724d827d7e1d53626c02b3c2a408ac63","affectsGlobalScope":true,"impliedFormat":1},{"version":"27c0a08e343c6a0ae17bd13ba6d44a9758236dc904cd5e4b43456996cd51f520","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"6f80e51ba310608cd71bcdc09a171d7bbfb3b316048601c9ec215ce16a8dcfbc","impliedFormat":1},{"version":"a3bdc774995d56caaac759a424831091bb22450ca3590f34dae53d98323be191","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"af4ab0aa8908fc9a655bb833d3bc28e117c4f0e1038c5a891546158beb25accb","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"2ca2bca6845a7234eff5c3d192727a068fca72ac565f3c819c6b04ccc83dadc0","impliedFormat":1},{"version":"ed4f674fc8c0c993cc7e145069ac44129e03519b910c62be206a0cc777bdc60b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"17d06eb5709839c7ce719f0c38ada6f308fb433f2cd6d8c87b35856e07400950","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"6c00f77f0335ae0c18bd45a6c7c9c97c9625fb7e5dd6d5936eadf70718bce52e","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"14d4bd22d1b05824971b98f7e91b2484c90f1a684805c330476641417c3d9735","impliedFormat":1},{"version":"586eaf66bace2e731cee0ddfbfac326ad74a83c1acfeac4afb2db85ad23226c7","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"d1a14d87cedcf4f0b8173720d6eb29cc02878bf2b6dabf9c9d9cee742f275368","impliedFormat":1},{"version":"e60efae9fe48a2955f66bf4cbf0f082516185b877daf50d9c5e2a009660a7714","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"cd9189eacf0f9143b8830e9d6769335aa6d902c04195f04145bcbf19e7f26fcb","impliedFormat":1},{"version":"e1cb68f3ef3a8dd7b2a9dfb3de482ed6c0f1586ba0db4e7d73c1d2147b6ffc51","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","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":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","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],[418,162],[419,163],[339,164],[340,164],[341,165],[280,166],[342,167],[343,168],[344,169],[278,2],[345,170],[346,171],[347,172],[348,173],[349,174],[350,175],[351,175],[352,176],[353,177],[354,178],[355,179],[281,2],[279,2],[356,180],[357,181],[358,182],[398,183],[359,184],[360,185],[361,184],[362,186],[363,187],[364,188],[365,189],[366,189],[367,189],[368,190],[369,191],[370,192],[371,193],[372,194],[373,195],[374,195],[375,196],[376,2],[377,2],[378,197],[379,198],[380,197],[381,199],[382,200],[383,201],[384,202],[385,203],[386,204],[387,205],[388,206],[389,207],[390,208],[391,209],[392,210],[393,211],[394,212],[395,213],[282,184],[283,2],[284,214],[285,215],[286,2],[287,216],[288,2],[330,217],[331,218],[332,219],[333,219],[334,220],[335,2],[336,167],[337,221],[338,218],[396,222],[397,223],[420,2],[424,224],[421,2],[423,225],[425,2],[417,2],[426,2],[427,226],[77,2],[422,2],[407,227],[405,2],[406,228],[403,2],[404,2],[275,229],[272,230],[271,161],[273,231],[274,2],[401,232],[415,233],[399,2],[400,234],[416,235],[411,236],[412,237],[410,238],[414,239],[408,240],[402,241],[413,242],[409,233],[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],[306,243],[318,244],[304,245],[319,246],[328,247],[295,248],[296,249],[294,250],[327,251],[322,252],[326,253],[298,254],[315,255],[297,256],[325,257],[292,258],[293,252],[299,259],[300,2],[305,260],[303,259],[290,261],[329,262],[320,263],[309,264],[308,259],[310,265],[313,266],[307,267],[311,268],[323,251],[301,269],[302,270],[314,271],[291,246],[317,272],[316,259],[312,273],[321,2],[289,2],[324,274],[59,275],[61,276],[62,275],[63,275],[65,277],[64,275],[60,278]],"latestChangedDtsFile":"./src/providers/index.d.ts","version":"5.9.3"}
|