@isvalid-dev/sdk 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -1
- package/dist/index.cjs +121 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +504 -1
- package/dist/index.d.ts +504 -1
- package/dist/index.js +121 -2
- package/dist/index.js.map +1 -1
- package/package.json +37 -4
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ TypeScript SDK for the [isvalid.dev](https://isvalid.dev) validation API.
|
|
|
7
7
|
- **Zero dependencies** — native `fetch` only (Node 18+, browsers)
|
|
8
8
|
- **Full TypeScript types** for every endpoint response
|
|
9
9
|
- **ESM + CJS** dual export
|
|
10
|
-
- **Tiny** — ~
|
|
10
|
+
- **Tiny** — ~2 KB minified + brotli
|
|
11
11
|
- **Automatic retry** with exponential backoff for 429/5xx
|
|
12
12
|
- **Custom error classes** for auth and rate limit errors
|
|
13
13
|
|
|
@@ -62,6 +62,47 @@ const flight = await iv.iata.flight('LH1234');
|
|
|
62
62
|
const airline = await iv.iata.airline('LH');
|
|
63
63
|
const airlines = await iv.iata.airline.list();
|
|
64
64
|
const airport = await iv.iata.airport('WAW');
|
|
65
|
+
|
|
66
|
+
// Timezone
|
|
67
|
+
const tz = await iv.timezone('Europe/Warsaw');
|
|
68
|
+
// => { valid: true, timezone: 'Europe/Warsaw', utcOffset: '+01:00', abbreviation: 'CET', isDST: false }
|
|
69
|
+
const timezones = await iv.timezone.list({ region: 'Europe' });
|
|
70
|
+
|
|
71
|
+
// MIME Type
|
|
72
|
+
const mime = await iv.mimeType('application/json');
|
|
73
|
+
// => { valid: true, mime: 'application/json', type: 'application', subtype: 'json', extensions: ['json'], ... }
|
|
74
|
+
const byExt = await iv.mimeType.ext('pdf');
|
|
75
|
+
const mimes = await iv.mimeType.list({ type: 'image' });
|
|
76
|
+
|
|
77
|
+
// HTTP Status
|
|
78
|
+
const status = await iv.httpStatus('404');
|
|
79
|
+
// => { valid: true, code: 404, reasonPhrase: 'Not Found', category: 'client-error' }
|
|
80
|
+
const statuses = await iv.httpStatus.list();
|
|
81
|
+
|
|
82
|
+
// SWIFT MT
|
|
83
|
+
const mt = await iv.swiftMt('MT103');
|
|
84
|
+
// => { valid: true, type: 'MT103', category: 1, group: 'Customer Payments & Cheques', description: 'Single Customer Credit Transfer' }
|
|
85
|
+
const mtList = await iv.swiftMt.list({ category: 1 });
|
|
86
|
+
|
|
87
|
+
// UN/LOCODE
|
|
88
|
+
const locode = await iv.locode('PLWAW');
|
|
89
|
+
// => { valid: true, locode: 'PLWAW', country: 'PL', name: 'Warszawa', found: true, ... }
|
|
90
|
+
const locodes = await iv.locode.list({ country: 'PL' });
|
|
91
|
+
|
|
92
|
+
// HS Code (Harmonized System)
|
|
93
|
+
const hs = await iv.hsCode('8471');
|
|
94
|
+
// => { valid: true, code: '8471', level: 'heading', description: '...', ... }
|
|
95
|
+
const hsList = await iv.hsCode.list({ chapter: '84', level: 'heading' });
|
|
96
|
+
|
|
97
|
+
// GS1 Prefix
|
|
98
|
+
const gs1 = await iv.gs1Prefix('590');
|
|
99
|
+
// => { valid: true, prefix: '590', country: 'Poland' }
|
|
100
|
+
const gs1List = await iv.gs1Prefix.list();
|
|
101
|
+
|
|
102
|
+
// Industry (NAICS / NACE)
|
|
103
|
+
const ind = await iv.industry('5112', { system: 'naics' });
|
|
104
|
+
// => { valid: true, system: 'NAICS', code: '5112', description: '...', ... }
|
|
105
|
+
const indList = await iv.industry.list({ system: 'naics', level: 'sector' });
|
|
65
106
|
```
|
|
66
107
|
|
|
67
108
|
## Country-Specific Endpoints
|
|
@@ -71,6 +112,8 @@ const airport = await iv.iata.airport('WAW');
|
|
|
71
112
|
await iv.pl.pesel('44051401358');
|
|
72
113
|
await iv.pl.regon('012345678', { lookup: true });
|
|
73
114
|
await iv.pl.krs('0000123456', { lookup: true });
|
|
115
|
+
await iv.pl.ceidg('5252344078', { lookup: true });
|
|
116
|
+
await iv.pl.pkd('62.01.Z');
|
|
74
117
|
|
|
75
118
|
// Brazil
|
|
76
119
|
await iv.br.cnpj('11.222.333/0001-81');
|
|
@@ -90,6 +133,9 @@ await iv.gb.sortCode('12-34-56');
|
|
|
90
133
|
// Network
|
|
91
134
|
await iv.net.ip('192.168.1.1');
|
|
92
135
|
await iv.net.mac('00:1B:44:11:3A:B7');
|
|
136
|
+
await iv.net.port('443');
|
|
137
|
+
// => { valid: true, port: 443, range: 'well-known', serviceName: 'HTTPS', ... }
|
|
138
|
+
const ports = await iv.net.port.list();
|
|
93
139
|
|
|
94
140
|
// Financial
|
|
95
141
|
await iv.isin('US0378331005');
|
|
@@ -113,6 +159,10 @@ iv.color(value) iv.boolean(value) iv.date(value, opts?)
|
|
|
113
159
|
iv.btcAddress(value) iv.postalCode(value, opts?)
|
|
114
160
|
iv.aba(value) iv.containerCode(value) iv.sscc(value)
|
|
115
161
|
iv.gln(value) iv.qr(value) iv.creditCard(number)
|
|
162
|
+
iv.cas(value) iv.eori(value, opts?) iv.orcid(value, opts?)
|
|
163
|
+
iv.doi(value, opts?) iv.barcode(value, opts?) iv.base64(value)
|
|
164
|
+
iv.ethAddress(value) iv.cron(value) iv.domain(value)
|
|
165
|
+
iv.regex(pattern, opts?) iv.duns(value, opts?) iv.timestamp(value)
|
|
116
166
|
```
|
|
117
167
|
|
|
118
168
|
## Configuration
|
package/dist/index.cjs
CHANGED
|
@@ -161,9 +161,12 @@ function createIataNamespace(client) {
|
|
|
161
161
|
|
|
162
162
|
// src/namespaces/net.ts
|
|
163
163
|
function createNetNamespace(client) {
|
|
164
|
+
const port = ((value) => client.get("/v0/net/port", { value }));
|
|
165
|
+
port.list = () => client.get("/v0/net/port/list");
|
|
164
166
|
return {
|
|
165
167
|
ip: (value) => client.get("/v0/net/ip", { value }),
|
|
166
|
-
mac: (value) => client.get("/v0/net/mac", { value })
|
|
168
|
+
mac: (value) => client.get("/v0/net/mac", { value }),
|
|
169
|
+
port
|
|
167
170
|
};
|
|
168
171
|
}
|
|
169
172
|
|
|
@@ -178,7 +181,12 @@ function createPlNamespace(client) {
|
|
|
178
181
|
krs: (value, opts) => client.get("/v0/pl/krs", {
|
|
179
182
|
value,
|
|
180
183
|
lookup: opts?.lookup?.toString()
|
|
181
|
-
})
|
|
184
|
+
}),
|
|
185
|
+
ceidg: (value, opts) => client.get("/v0/pl/ceidg", {
|
|
186
|
+
value,
|
|
187
|
+
lookup: opts?.lookup?.toString()
|
|
188
|
+
}),
|
|
189
|
+
pkd: (value) => client.get("/v0/pl/pkd", { value })
|
|
182
190
|
};
|
|
183
191
|
}
|
|
184
192
|
|
|
@@ -225,6 +233,73 @@ function createGbNamespace(client) {
|
|
|
225
233
|
};
|
|
226
234
|
}
|
|
227
235
|
|
|
236
|
+
// src/namespaces/hsCode.ts
|
|
237
|
+
function createHsCodeNamespace(client) {
|
|
238
|
+
const hsCode = ((value) => client.get("/v0/hs-code", { value }));
|
|
239
|
+
hsCode.list = (opts) => client.get("/v0/hs-code/list", {
|
|
240
|
+
chapter: opts?.chapter,
|
|
241
|
+
level: opts?.level
|
|
242
|
+
});
|
|
243
|
+
return hsCode;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// src/namespaces/gs1Prefix.ts
|
|
247
|
+
function createGs1PrefixNamespace(client) {
|
|
248
|
+
const gs1Prefix = ((value) => client.get("/v0/gs1-prefix", { value }));
|
|
249
|
+
gs1Prefix.list = () => client.get("/v0/gs1-prefix/list");
|
|
250
|
+
return gs1Prefix;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// src/namespaces/industry.ts
|
|
254
|
+
function createIndustryNamespace(client) {
|
|
255
|
+
const industry = ((value, opts) => client.get("/v0/industry", {
|
|
256
|
+
value,
|
|
257
|
+
system: opts?.system
|
|
258
|
+
}));
|
|
259
|
+
industry.list = (opts) => client.get("/v0/industry/list", {
|
|
260
|
+
system: opts.system,
|
|
261
|
+
level: opts?.level,
|
|
262
|
+
parent: opts?.parent
|
|
263
|
+
});
|
|
264
|
+
return industry;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// src/namespaces/timezone.ts
|
|
268
|
+
function createTimezoneNamespace(client) {
|
|
269
|
+
const timezone = ((value) => client.get("/v0/timezone", { value }));
|
|
270
|
+
timezone.list = (opts) => client.get("/v0/timezone/list", { region: opts?.region });
|
|
271
|
+
return timezone;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// src/namespaces/mimeType.ts
|
|
275
|
+
function createMimeTypeNamespace(client) {
|
|
276
|
+
const mimeType = ((value) => client.get("/v0/mime-type", { value }));
|
|
277
|
+
mimeType.ext = (value) => client.get("/v0/mime-type/ext", { value });
|
|
278
|
+
mimeType.list = (opts) => client.get("/v0/mime-type/list", { type: opts?.type });
|
|
279
|
+
return mimeType;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
// src/namespaces/httpStatus.ts
|
|
283
|
+
function createHttpStatusNamespace(client) {
|
|
284
|
+
const httpStatus = ((value) => client.get("/v0/http-status", { value }));
|
|
285
|
+
httpStatus.list = () => client.get("/v0/http-status/list");
|
|
286
|
+
return httpStatus;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
// src/namespaces/swiftMt.ts
|
|
290
|
+
function createSwiftMtNamespace(client) {
|
|
291
|
+
const swiftMt = ((value) => client.get("/v0/swift-mt", { value }));
|
|
292
|
+
swiftMt.list = (opts) => client.get("/v0/swift-mt/list", { category: opts?.category?.toString() });
|
|
293
|
+
return swiftMt;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// src/namespaces/locode.ts
|
|
297
|
+
function createLocodeNamespace(client) {
|
|
298
|
+
const locode = ((value) => client.get("/v0/locode", { value }));
|
|
299
|
+
locode.list = (opts) => client.get("/v0/locode/list", { country: opts.country });
|
|
300
|
+
return locode;
|
|
301
|
+
}
|
|
302
|
+
|
|
228
303
|
// src/index.ts
|
|
229
304
|
var IsValid = class {
|
|
230
305
|
constructor(config) {
|
|
@@ -242,6 +317,14 @@ var IsValid = class {
|
|
|
242
317
|
this.in = createInNamespace(this.client);
|
|
243
318
|
this.us = createUsNamespace(this.client);
|
|
244
319
|
this.gb = createGbNamespace(this.client);
|
|
320
|
+
this.hsCode = createHsCodeNamespace(this.client);
|
|
321
|
+
this.gs1Prefix = createGs1PrefixNamespace(this.client);
|
|
322
|
+
this.industry = createIndustryNamespace(this.client);
|
|
323
|
+
this.timezone = createTimezoneNamespace(this.client);
|
|
324
|
+
this.mimeType = createMimeTypeNamespace(this.client);
|
|
325
|
+
this.httpStatus = createHttpStatusNamespace(this.client);
|
|
326
|
+
this.swiftMt = createSwiftMtNamespace(this.client);
|
|
327
|
+
this.locode = createLocodeNamespace(this.client);
|
|
245
328
|
}
|
|
246
329
|
// --- Simple endpoints ---
|
|
247
330
|
email(value, opts) {
|
|
@@ -344,6 +427,42 @@ var IsValid = class {
|
|
|
344
427
|
creditCard(number) {
|
|
345
428
|
return this.client.post("/v0/credit-card", { number });
|
|
346
429
|
}
|
|
430
|
+
cas(value) {
|
|
431
|
+
return this.client.get("/v0/cas", { value });
|
|
432
|
+
}
|
|
433
|
+
eori(value, opts) {
|
|
434
|
+
return this.client.get("/v0/eori", { value, check: opts?.check?.toString() });
|
|
435
|
+
}
|
|
436
|
+
orcid(value, opts) {
|
|
437
|
+
return this.client.get("/v0/orcid", { value, lookup: opts?.lookup?.toString() });
|
|
438
|
+
}
|
|
439
|
+
doi(value, opts) {
|
|
440
|
+
return this.client.get("/v0/doi", { value, lookup: opts?.lookup?.toString() });
|
|
441
|
+
}
|
|
442
|
+
barcode(value, opts) {
|
|
443
|
+
return this.client.get("/v0/barcode", { value, type: opts?.type });
|
|
444
|
+
}
|
|
445
|
+
base64(value) {
|
|
446
|
+
return this.client.get("/v0/base64", { value });
|
|
447
|
+
}
|
|
448
|
+
ethAddress(value) {
|
|
449
|
+
return this.client.get("/v0/eth-address", { value });
|
|
450
|
+
}
|
|
451
|
+
cron(value) {
|
|
452
|
+
return this.client.get("/v0/cron", { value });
|
|
453
|
+
}
|
|
454
|
+
domain(value) {
|
|
455
|
+
return this.client.get("/v0/domain", { value });
|
|
456
|
+
}
|
|
457
|
+
regex(pattern, opts) {
|
|
458
|
+
return this.client.post("/v0/regex", { pattern, flags: opts?.flags });
|
|
459
|
+
}
|
|
460
|
+
duns(value, opts) {
|
|
461
|
+
return this.client.get("/v0/duns", { value, lookup: opts?.lookup?.toString() });
|
|
462
|
+
}
|
|
463
|
+
timestamp(value) {
|
|
464
|
+
return this.client.get("/v0/timestamp", { value });
|
|
465
|
+
}
|
|
347
466
|
};
|
|
348
467
|
function createClient(config) {
|
|
349
468
|
return new IsValid(config);
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/namespaces/lei.ts","../src/namespaces/country.ts","../src/namespaces/currency.ts","../src/namespaces/language.ts","../src/namespaces/iata.ts","../src/namespaces/net.ts","../src/namespaces/pl.ts","../src/namespaces/br.ts","../src/namespaces/au.ts","../src/namespaces/es.ts","../src/namespaces/in.ts","../src/namespaces/us.ts","../src/namespaces/gb.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["export class IsValidError extends Error {\n readonly status: number;\n readonly body: { error: string };\n\n constructor(status: number, body: { error: string }) {\n super(body.error);\n this.name = 'IsValidError';\n this.status = status;\n this.body = body;\n }\n}\n\nexport class IsValidAuthError extends IsValidError {\n constructor(body: { error: string }) {\n super(401, body);\n this.name = 'IsValidAuthError';\n }\n}\n\nexport class IsValidRateLimitError extends IsValidError {\n readonly retryAfter: number | null;\n\n constructor(body: { error: string }, retryAfter: number | null = null) {\n super(429, body);\n this.name = 'IsValidRateLimitError';\n this.retryAfter = retryAfter;\n }\n}\n","import { IsValidError, IsValidAuthError, IsValidRateLimitError } from './errors.js';\n\nexport interface RetryConfig {\n maxRetries?: number;\n initialDelayMs?: number;\n maxDelayMs?: number;\n retryOn?: number[];\n}\n\nexport interface IsValidConfig {\n apiKey: string;\n baseUrl?: string;\n timeout?: number;\n retry?: RetryConfig | false;\n}\n\nconst DEFAULT_BASE_URL = 'https://api.isvalid.dev';\nconst DEFAULT_TIMEOUT = 10_000;\nconst DEFAULT_RETRY: Required<RetryConfig> = {\n maxRetries: 3,\n initialDelayMs: 500,\n maxDelayMs: 10_000,\n retryOn: [429, 500, 502, 503],\n};\n\nfunction resolveRetry(cfg: RetryConfig | false | undefined): Required<RetryConfig> | false {\n if (cfg === false) return false;\n if (!cfg) return DEFAULT_RETRY;\n return {\n maxRetries: cfg.maxRetries ?? DEFAULT_RETRY.maxRetries,\n initialDelayMs: cfg.initialDelayMs ?? DEFAULT_RETRY.initialDelayMs,\n maxDelayMs: cfg.maxDelayMs ?? DEFAULT_RETRY.maxDelayMs,\n retryOn: cfg.retryOn ?? DEFAULT_RETRY.retryOn,\n };\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((r) => setTimeout(r, ms));\n}\n\nfunction backoffDelay(attempt: number, initial: number, max: number): number {\n const base = initial * 2 ** attempt;\n const jitter = Math.random() * initial;\n return Math.min(base + jitter, max);\n}\n\nexport class HttpClient {\n private readonly baseUrl: string;\n private readonly apiKey: string;\n private readonly retry: Required<RetryConfig> | false;\n private readonly timeout: number;\n\n constructor(config: IsValidConfig) {\n this.baseUrl = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, '');\n this.apiKey = config.apiKey;\n this.retry = resolveRetry(config.retry);\n this.timeout = config.timeout ?? DEFAULT_TIMEOUT;\n }\n\n async get<T>(path: string, params?: Record<string, string | undefined>): Promise<T> {\n const url = this.buildUrl(path, params);\n return this.request<T>(url, { method: 'GET' });\n }\n\n async post<T>(path: string, body: unknown): Promise<T> {\n const url = this.buildUrl(path);\n return this.request<T>(url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: { 'Content-Type': 'application/json' },\n });\n }\n\n private buildUrl(path: string, params?: Record<string, string | undefined>): string {\n let result = this.baseUrl + path;\n if (params) {\n const entries = Object.entries(params).filter((e): e is [string, string] => e[1] !== undefined);\n if (entries.length > 0) {\n result += '?' + entries.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&');\n }\n }\n return result;\n }\n\n private async request<T>(url: string, init: RequestInit): Promise<T> {\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this.apiKey}`,\n Accept: 'application/json',\n ...(init.headers as Record<string, string> | undefined),\n };\n\n const maxAttempts = this.retry ? this.retry.maxRetries + 1 : 1;\n\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n const res = await fetch(url, {\n ...init,\n headers,\n signal: AbortSignal.timeout(this.timeout),\n });\n\n if (res.ok) {\n return (await res.json()) as T;\n }\n\n if (this.retry && attempt < this.retry.maxRetries && this.retry.retryOn.includes(res.status)) {\n const retryAfterHeader = res.headers.get('Retry-After');\n const retryMs = retryAfterHeader\n ? parseInt(retryAfterHeader, 10) * 1000\n : backoffDelay(attempt, this.retry.initialDelayMs, this.retry.maxDelayMs);\n await delay(retryMs);\n continue;\n }\n\n const body = await res.json().catch(() => ({ error: res.statusText })) as { error: string };\n\n if (res.status === 401) throw new IsValidAuthError(body);\n if (res.status === 429) {\n const ra = res.headers.get('Retry-After');\n throw new IsValidRateLimitError(body, ra ? parseInt(ra, 10) : null);\n }\n throw new IsValidError(res.status, body);\n }\n\n throw new IsValidError(0, { error: 'Max retries exceeded' });\n }\n}\n","import type { HttpClient } from '../client.js';\nimport type { LeiResponse, LeiSearchOptions, LeiSearchResponse, LeiLousResponse } from '../types/lei.js';\n\nexport interface LeiNamespace {\n (value: string): Promise<LeiResponse>;\n search(query: string, opts?: LeiSearchOptions): Promise<LeiSearchResponse>;\n lous(): Promise<LeiLousResponse>;\n}\n\nexport function createLeiNamespace(client: HttpClient): LeiNamespace {\n const lei = ((value: string) =>\n client.get<LeiResponse>('/v0/lei', { value })\n ) as LeiNamespace;\n\n lei.search = (query: string, opts?: LeiSearchOptions) =>\n client.get<LeiSearchResponse>('/v0/lei/search', {\n q: query,\n country: opts?.country,\n entityStatus: opts?.entityStatus,\n page: opts?.page?.toString(),\n limit: opts?.limit?.toString(),\n });\n\n lei.lous = () => client.get<LeiLousResponse>('/v0/lei/lous');\n\n return lei;\n}\n","import type { HttpClient } from '../client.js';\nimport type { CountryResponse, CountryListItem } from '../types/country.js';\n\nexport interface CountryNamespace {\n (value: string): Promise<CountryResponse>;\n list(): Promise<CountryListItem[]>;\n}\n\nexport function createCountryNamespace(client: HttpClient): CountryNamespace {\n const country = ((value: string) =>\n client.get<CountryResponse>('/v0/country', { value })\n ) as CountryNamespace;\n\n country.list = () => client.get<CountryListItem[]>('/v0/country/list');\n\n return country;\n}\n","import type { HttpClient } from '../client.js';\nimport type { CurrencyResponse, CurrencyListItem } from '../types/currency.js';\n\nexport interface CurrencyNamespace {\n (value: string): Promise<CurrencyResponse>;\n list(): Promise<CurrencyListItem[]>;\n}\n\nexport function createCurrencyNamespace(client: HttpClient): CurrencyNamespace {\n const currency = ((value: string) =>\n client.get<CurrencyResponse>('/v0/currency', { value })\n ) as CurrencyNamespace;\n\n currency.list = () => client.get<CurrencyListItem[]>('/v0/currency/list');\n\n return currency;\n}\n","import type { HttpClient } from '../client.js';\nimport type { LanguageResponse, LanguageListItem } from '../types/language.js';\n\nexport interface LanguageNamespace {\n (value: string): Promise<LanguageResponse>;\n list(): Promise<LanguageListItem[]>;\n}\n\nexport function createLanguageNamespace(client: HttpClient): LanguageNamespace {\n const language = ((value: string) =>\n client.get<LanguageResponse>('/v0/language', { value })\n ) as LanguageNamespace;\n\n language.list = () => client.get<LanguageListItem[]>('/v0/language/list');\n\n return language;\n}\n","import type { HttpClient } from '../client.js';\nimport type {\n IataFlightResponse, IataAirlineResponse, IataAirlineListItem, IataAirportResponse,\n} from '../types/iata.js';\n\nexport interface IataAirlineNamespace {\n (value: string): Promise<IataAirlineResponse>;\n list(): Promise<IataAirlineListItem[]>;\n}\n\nexport interface IataNamespace {\n flight(value: string): Promise<IataFlightResponse>;\n airline: IataAirlineNamespace;\n airport(value: string): Promise<IataAirportResponse>;\n}\n\nexport function createIataNamespace(client: HttpClient): IataNamespace {\n const airline = ((value: string) =>\n client.get<IataAirlineResponse>('/v0/iata/airline', { value })\n ) as IataAirlineNamespace;\n\n airline.list = () => client.get<IataAirlineListItem[]>('/v0/iata/airline/list');\n\n return {\n flight: (value: string) =>\n client.get<IataFlightResponse>('/v0/iata/flight', { value }),\n airline,\n airport: (value: string) =>\n client.get<IataAirportResponse>('/v0/iata/airport', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { IpResponse, MacResponse } from '../types/net.js';\n\nexport interface NetNamespace {\n ip(value: string): Promise<IpResponse>;\n mac(value: string): Promise<MacResponse>;\n}\n\nexport function createNetNamespace(client: HttpClient): NetNamespace {\n return {\n ip: (value: string) => client.get<IpResponse>('/v0/net/ip', { value }),\n mac: (value: string) => client.get<MacResponse>('/v0/net/mac', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { PeselResponse, RegonResponse, KrsResponse } from '../types/pl.js';\n\nexport interface PlNamespace {\n pesel(value: string): Promise<PeselResponse>;\n regon(value: string, opts?: { lookup?: boolean }): Promise<RegonResponse>;\n krs(value: string, opts?: { lookup?: boolean }): Promise<KrsResponse>;\n}\n\nexport function createPlNamespace(client: HttpClient): PlNamespace {\n return {\n pesel: (value: string) =>\n client.get<PeselResponse>('/v0/pl/pesel', { value }),\n regon: (value: string, opts?) =>\n client.get<RegonResponse>('/v0/pl/regon', {\n value,\n lookup: opts?.lookup?.toString(),\n }),\n krs: (value: string, opts?) =>\n client.get<KrsResponse>('/v0/pl/krs', {\n value,\n lookup: opts?.lookup?.toString(),\n }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { CnpjResponse, CpfResponse } from '../types/br.js';\n\nexport interface BrNamespace {\n cnpj(value: string): Promise<CnpjResponse>;\n cpf(value: string): Promise<CpfResponse>;\n}\n\nexport function createBrNamespace(client: HttpClient): BrNamespace {\n return {\n cnpj: (value: string) => client.get<CnpjResponse>('/v0/br/cnpj', { value }),\n cpf: (value: string) => client.get<CpfResponse>('/v0/br/cpf', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { AbnResponse } from '../types/au.js';\n\nexport interface AuNamespace {\n abn(value: string): Promise<AbnResponse>;\n}\n\nexport function createAuNamespace(client: HttpClient): AuNamespace {\n return {\n abn: (value: string) => client.get<AbnResponse>('/v0/au/abn', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { NifResponse } from '../types/es.js';\n\nexport interface EsNamespace {\n nif(value: string): Promise<NifResponse>;\n}\n\nexport function createEsNamespace(client: HttpClient): EsNamespace {\n return {\n nif: (value: string) => client.get<NifResponse>('/v0/es/nif', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { GstinResponse } from '../types/in.js';\n\nexport interface InNamespace {\n gstin(value: string): Promise<GstinResponse>;\n}\n\nexport function createInNamespace(client: HttpClient): InNamespace {\n return {\n gstin: (value: string) => client.get<GstinResponse>('/v0/in/gstin', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { NpiResponse } from '../types/us.js';\n\nexport interface UsNamespace {\n npi(value: string): Promise<NpiResponse>;\n}\n\nexport function createUsNamespace(client: HttpClient): UsNamespace {\n return {\n npi: (value: string) => client.get<NpiResponse>('/v0/us/npi', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { SortCodeResponse } from '../types/gb.js';\n\nexport interface GbNamespace {\n sortCode(value: string): Promise<SortCodeResponse>;\n}\n\nexport function createGbNamespace(client: HttpClient): GbNamespace {\n return {\n sortCode: (value: string) => client.get<SortCodeResponse>('/v0/gb/sort-code', { value }),\n };\n}\n","import { HttpClient } from './client.js';\nimport type { IsValidConfig } from './client.js';\nimport { createLeiNamespace } from './namespaces/lei.js';\nimport type { LeiNamespace } from './namespaces/lei.js';\nimport { createCountryNamespace } from './namespaces/country.js';\nimport type { CountryNamespace } from './namespaces/country.js';\nimport { createCurrencyNamespace } from './namespaces/currency.js';\nimport type { CurrencyNamespace } from './namespaces/currency.js';\nimport { createLanguageNamespace } from './namespaces/language.js';\nimport type { LanguageNamespace } from './namespaces/language.js';\nimport { createIataNamespace } from './namespaces/iata.js';\nimport type { IataNamespace } from './namespaces/iata.js';\nimport { createNetNamespace } from './namespaces/net.js';\nimport type { NetNamespace } from './namespaces/net.js';\nimport { createPlNamespace } from './namespaces/pl.js';\nimport type { PlNamespace } from './namespaces/pl.js';\nimport { createBrNamespace } from './namespaces/br.js';\nimport type { BrNamespace } from './namespaces/br.js';\nimport { createAuNamespace } from './namespaces/au.js';\nimport type { AuNamespace } from './namespaces/au.js';\nimport { createEsNamespace } from './namespaces/es.js';\nimport type { EsNamespace } from './namespaces/es.js';\nimport { createInNamespace } from './namespaces/in.js';\nimport type { InNamespace } from './namespaces/in.js';\nimport { createUsNamespace } from './namespaces/us.js';\nimport type { UsNamespace } from './namespaces/us.js';\nimport { createGbNamespace } from './namespaces/gb.js';\nimport type { GbNamespace } from './namespaces/gb.js';\nimport type {\n EmailResponse, IbanResponse, IsinResponse, DtiResponse, VatResponse,\n GpsResponse, PhoneResponse, UrlResponse, EanResponse, IsbnResponse,\n IssnResponse, BicResponse, CusipResponse, CfiResponse, MicResponse,\n NutsResponse, UuidResponse, JwtResponse, VinResponse, ImeiResponse,\n SemverResponse, ColorResponse, BooleanResponse, DateResponse,\n BtcAddressResponse, PostalCodeResponse, AbaResponse, ContainerCodeResponse,\n SsccResponse, GlnResponse, QrResponse, CreditCardResponse,\n} from './types/simple.js';\n\nexport class IsValid {\n private readonly client: HttpClient;\n\n readonly lei: LeiNamespace;\n readonly country: CountryNamespace;\n readonly currency: CurrencyNamespace;\n readonly language: LanguageNamespace;\n readonly iata: IataNamespace;\n readonly net: NetNamespace;\n readonly pl: PlNamespace;\n readonly br: BrNamespace;\n readonly au: AuNamespace;\n readonly es: EsNamespace;\n readonly in: InNamespace;\n readonly us: UsNamespace;\n readonly gb: GbNamespace;\n\n constructor(config: IsValidConfig) {\n this.client = new HttpClient(config);\n\n this.lei = createLeiNamespace(this.client);\n this.country = createCountryNamespace(this.client);\n this.currency = createCurrencyNamespace(this.client);\n this.language = createLanguageNamespace(this.client);\n this.iata = createIataNamespace(this.client);\n this.net = createNetNamespace(this.client);\n this.pl = createPlNamespace(this.client);\n this.br = createBrNamespace(this.client);\n this.au = createAuNamespace(this.client);\n this.es = createEsNamespace(this.client);\n this.in = createInNamespace(this.client);\n this.us = createUsNamespace(this.client);\n this.gb = createGbNamespace(this.client);\n }\n\n // --- Simple endpoints ---\n\n email(value: string, opts?: { checkMx?: boolean }): Promise<EmailResponse> {\n return this.client.get('/v0/email', { value, checkMx: opts?.checkMx?.toString() });\n }\n\n iban(value: string, opts?: { countryCode?: string }): Promise<IbanResponse> {\n return this.client.get('/v0/iban', { value, countryCode: opts?.countryCode });\n }\n\n isin(value: string): Promise<IsinResponse> {\n return this.client.get('/v0/isin', { value });\n }\n\n dti(value: string): Promise<DtiResponse> {\n return this.client.get('/v0/dti', { value });\n }\n\n vat(value: string, opts?: { countryCode?: string; checkVies?: boolean }): Promise<VatResponse> {\n return this.client.get('/v0/vat', {\n value,\n countryCode: opts?.countryCode,\n checkVies: opts?.checkVies?.toString(),\n });\n }\n\n gps(value: string): Promise<GpsResponse> {\n return this.client.get('/v0/gps', { value });\n }\n\n phone(value: string, opts?: { countryCode?: string }): Promise<PhoneResponse> {\n return this.client.get('/v0/phone', { value, countryCode: opts?.countryCode });\n }\n\n url(value: string): Promise<UrlResponse> {\n return this.client.get('/v0/url', { value });\n }\n\n ean(value: string): Promise<EanResponse> {\n return this.client.get('/v0/ean', { value });\n }\n\n isbn(value: string): Promise<IsbnResponse> {\n return this.client.get('/v0/isbn', { value });\n }\n\n issn(value: string): Promise<IssnResponse> {\n return this.client.get('/v0/issn', { value });\n }\n\n bic(value: string): Promise<BicResponse> {\n return this.client.get('/v0/bic', { value });\n }\n\n cusip(value: string): Promise<CusipResponse> {\n return this.client.get('/v0/cusip', { value });\n }\n\n cfi(value: string): Promise<CfiResponse> {\n return this.client.get('/v0/cfi', { value });\n }\n\n mic(value: string): Promise<MicResponse> {\n return this.client.get('/v0/mic', { value });\n }\n\n nuts(value: string): Promise<NutsResponse> {\n return this.client.get('/v0/nuts', { value });\n }\n\n uuid(value: string, opts?: { version?: number }): Promise<UuidResponse> {\n return this.client.get('/v0/uuid', { value, version: opts?.version?.toString() });\n }\n\n jwt(value: string): Promise<JwtResponse> {\n return this.client.get('/v0/jwt', { value });\n }\n\n vin(value: string): Promise<VinResponse> {\n return this.client.get('/v0/vin', { value });\n }\n\n imei(value: string): Promise<ImeiResponse> {\n return this.client.get('/v0/imei', { value });\n }\n\n semver(value: string): Promise<SemverResponse> {\n return this.client.get('/v0/semver', { value });\n }\n\n color(value: string): Promise<ColorResponse> {\n return this.client.get('/v0/color', { value });\n }\n\n boolean(value: string): Promise<BooleanResponse> {\n return this.client.get('/v0/boolean', { value });\n }\n\n date(value: string, opts?: { format?: string }): Promise<DateResponse> {\n return this.client.get('/v0/date', { value, format: opts?.format });\n }\n\n btcAddress(value: string): Promise<BtcAddressResponse> {\n return this.client.get('/v0/btc-address', { value });\n }\n\n postalCode(value: string, opts?: { countryCode?: string }): Promise<PostalCodeResponse> {\n return this.client.get('/v0/postal-code', { value, countryCode: opts?.countryCode });\n }\n\n aba(value: string): Promise<AbaResponse> {\n return this.client.get('/v0/aba', { value });\n }\n\n containerCode(value: string): Promise<ContainerCodeResponse> {\n return this.client.get('/v0/container-code', { value });\n }\n\n sscc(value: string): Promise<SsccResponse> {\n return this.client.get('/v0/sscc', { value });\n }\n\n gln(value: string): Promise<GlnResponse> {\n return this.client.get('/v0/gln', { value });\n }\n\n qr(value: string): Promise<QrResponse> {\n return this.client.get('/v0/qr', { value });\n }\n\n creditCard(number: string): Promise<CreditCardResponse> {\n return this.client.post('/v0/credit-card', { number });\n }\n}\n\nexport function createClient(config: IsValidConfig): IsValid {\n return new IsValid(config);\n}\n\nexport { IsValidError, IsValidAuthError, IsValidRateLimitError } from './errors.js';\nexport type { IsValidConfig, RetryConfig } from './client.js';\nexport * from './types/index.js';\n\nexport type { LeiNamespace } from './namespaces/lei.js';\nexport type { CountryNamespace } from './namespaces/country.js';\nexport type { CurrencyNamespace } from './namespaces/currency.js';\nexport type { LanguageNamespace } from './namespaces/language.js';\nexport type { IataNamespace, IataAirlineNamespace } from './namespaces/iata.js';\nexport type { NetNamespace } from './namespaces/net.js';\nexport type { PlNamespace } from './namespaces/pl.js';\nexport type { BrNamespace } from './namespaces/br.js';\nexport type { AuNamespace } from './namespaces/au.js';\nexport type { EsNamespace } from './namespaces/es.js';\nexport type { InNamespace } from './namespaces/in.js';\nexport type { UsNamespace } from './namespaces/us.js';\nexport type { GbNamespace } from './namespaces/gb.js';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/namespaces/lei.ts","../src/namespaces/country.ts","../src/namespaces/currency.ts","../src/namespaces/language.ts","../src/namespaces/iata.ts","../src/namespaces/net.ts","../src/namespaces/pl.ts","../src/namespaces/br.ts","../src/namespaces/au.ts","../src/namespaces/es.ts","../src/namespaces/in.ts","../src/namespaces/us.ts","../src/namespaces/gb.ts","../src/namespaces/hsCode.ts","../src/namespaces/gs1Prefix.ts","../src/namespaces/industry.ts","../src/namespaces/timezone.ts","../src/namespaces/mimeType.ts","../src/namespaces/httpStatus.ts","../src/namespaces/swiftMt.ts","../src/namespaces/locode.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["export class IsValidError extends Error {\n readonly status: number;\n readonly body: { error: string };\n\n constructor(status: number, body: { error: string }) {\n super(body.error);\n this.name = 'IsValidError';\n this.status = status;\n this.body = body;\n }\n}\n\nexport class IsValidAuthError extends IsValidError {\n constructor(body: { error: string }) {\n super(401, body);\n this.name = 'IsValidAuthError';\n }\n}\n\nexport class IsValidRateLimitError extends IsValidError {\n readonly retryAfter: number | null;\n\n constructor(body: { error: string }, retryAfter: number | null = null) {\n super(429, body);\n this.name = 'IsValidRateLimitError';\n this.retryAfter = retryAfter;\n }\n}\n","import { IsValidError, IsValidAuthError, IsValidRateLimitError } from './errors.js';\n\nexport interface RetryConfig {\n maxRetries?: number;\n initialDelayMs?: number;\n maxDelayMs?: number;\n retryOn?: number[];\n}\n\nexport interface IsValidConfig {\n apiKey: string;\n baseUrl?: string;\n timeout?: number;\n retry?: RetryConfig | false;\n}\n\nconst DEFAULT_BASE_URL = 'https://api.isvalid.dev';\nconst DEFAULT_TIMEOUT = 10_000;\nconst DEFAULT_RETRY: Required<RetryConfig> = {\n maxRetries: 3,\n initialDelayMs: 500,\n maxDelayMs: 10_000,\n retryOn: [429, 500, 502, 503],\n};\n\nfunction resolveRetry(cfg: RetryConfig | false | undefined): Required<RetryConfig> | false {\n if (cfg === false) return false;\n if (!cfg) return DEFAULT_RETRY;\n return {\n maxRetries: cfg.maxRetries ?? DEFAULT_RETRY.maxRetries,\n initialDelayMs: cfg.initialDelayMs ?? DEFAULT_RETRY.initialDelayMs,\n maxDelayMs: cfg.maxDelayMs ?? DEFAULT_RETRY.maxDelayMs,\n retryOn: cfg.retryOn ?? DEFAULT_RETRY.retryOn,\n };\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((r) => setTimeout(r, ms));\n}\n\nfunction backoffDelay(attempt: number, initial: number, max: number): number {\n const base = initial * 2 ** attempt;\n const jitter = Math.random() * initial;\n return Math.min(base + jitter, max);\n}\n\nexport class HttpClient {\n private readonly baseUrl: string;\n private readonly apiKey: string;\n private readonly retry: Required<RetryConfig> | false;\n private readonly timeout: number;\n\n constructor(config: IsValidConfig) {\n this.baseUrl = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, '');\n this.apiKey = config.apiKey;\n this.retry = resolveRetry(config.retry);\n this.timeout = config.timeout ?? DEFAULT_TIMEOUT;\n }\n\n async get<T>(path: string, params?: Record<string, string | undefined>): Promise<T> {\n const url = this.buildUrl(path, params);\n return this.request<T>(url, { method: 'GET' });\n }\n\n async post<T>(path: string, body: unknown): Promise<T> {\n const url = this.buildUrl(path);\n return this.request<T>(url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: { 'Content-Type': 'application/json' },\n });\n }\n\n private buildUrl(path: string, params?: Record<string, string | undefined>): string {\n let result = this.baseUrl + path;\n if (params) {\n const entries = Object.entries(params).filter((e): e is [string, string] => e[1] !== undefined);\n if (entries.length > 0) {\n result += '?' + entries.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&');\n }\n }\n return result;\n }\n\n private async request<T>(url: string, init: RequestInit): Promise<T> {\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this.apiKey}`,\n Accept: 'application/json',\n ...(init.headers as Record<string, string> | undefined),\n };\n\n const maxAttempts = this.retry ? this.retry.maxRetries + 1 : 1;\n\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n const res = await fetch(url, {\n ...init,\n headers,\n signal: AbortSignal.timeout(this.timeout),\n });\n\n if (res.ok) {\n return (await res.json()) as T;\n }\n\n if (this.retry && attempt < this.retry.maxRetries && this.retry.retryOn.includes(res.status)) {\n const retryAfterHeader = res.headers.get('Retry-After');\n const retryMs = retryAfterHeader\n ? parseInt(retryAfterHeader, 10) * 1000\n : backoffDelay(attempt, this.retry.initialDelayMs, this.retry.maxDelayMs);\n await delay(retryMs);\n continue;\n }\n\n const body = await res.json().catch(() => ({ error: res.statusText })) as { error: string };\n\n if (res.status === 401) throw new IsValidAuthError(body);\n if (res.status === 429) {\n const ra = res.headers.get('Retry-After');\n throw new IsValidRateLimitError(body, ra ? parseInt(ra, 10) : null);\n }\n throw new IsValidError(res.status, body);\n }\n\n throw new IsValidError(0, { error: 'Max retries exceeded' });\n }\n}\n","import type { HttpClient } from '../client.js';\nimport type { LeiResponse, LeiSearchOptions, LeiSearchResponse, LeiLousResponse } from '../types/lei.js';\n\nexport interface LeiNamespace {\n (value: string): Promise<LeiResponse>;\n search(query: string, opts?: LeiSearchOptions): Promise<LeiSearchResponse>;\n lous(): Promise<LeiLousResponse>;\n}\n\nexport function createLeiNamespace(client: HttpClient): LeiNamespace {\n const lei = ((value: string) =>\n client.get<LeiResponse>('/v0/lei', { value })\n ) as LeiNamespace;\n\n lei.search = (query: string, opts?: LeiSearchOptions) =>\n client.get<LeiSearchResponse>('/v0/lei/search', {\n q: query,\n country: opts?.country,\n entityStatus: opts?.entityStatus,\n page: opts?.page?.toString(),\n limit: opts?.limit?.toString(),\n });\n\n lei.lous = () => client.get<LeiLousResponse>('/v0/lei/lous');\n\n return lei;\n}\n","import type { HttpClient } from '../client.js';\nimport type { CountryResponse, CountryListItem } from '../types/country.js';\n\nexport interface CountryNamespace {\n (value: string): Promise<CountryResponse>;\n list(): Promise<CountryListItem[]>;\n}\n\nexport function createCountryNamespace(client: HttpClient): CountryNamespace {\n const country = ((value: string) =>\n client.get<CountryResponse>('/v0/country', { value })\n ) as CountryNamespace;\n\n country.list = () => client.get<CountryListItem[]>('/v0/country/list');\n\n return country;\n}\n","import type { HttpClient } from '../client.js';\nimport type { CurrencyResponse, CurrencyListItem } from '../types/currency.js';\n\nexport interface CurrencyNamespace {\n (value: string): Promise<CurrencyResponse>;\n list(): Promise<CurrencyListItem[]>;\n}\n\nexport function createCurrencyNamespace(client: HttpClient): CurrencyNamespace {\n const currency = ((value: string) =>\n client.get<CurrencyResponse>('/v0/currency', { value })\n ) as CurrencyNamespace;\n\n currency.list = () => client.get<CurrencyListItem[]>('/v0/currency/list');\n\n return currency;\n}\n","import type { HttpClient } from '../client.js';\nimport type { LanguageResponse, LanguageListItem } from '../types/language.js';\n\nexport interface LanguageNamespace {\n (value: string): Promise<LanguageResponse>;\n list(): Promise<LanguageListItem[]>;\n}\n\nexport function createLanguageNamespace(client: HttpClient): LanguageNamespace {\n const language = ((value: string) =>\n client.get<LanguageResponse>('/v0/language', { value })\n ) as LanguageNamespace;\n\n language.list = () => client.get<LanguageListItem[]>('/v0/language/list');\n\n return language;\n}\n","import type { HttpClient } from '../client.js';\nimport type {\n IataFlightResponse, IataAirlineResponse, IataAirlineListItem, IataAirportResponse,\n} from '../types/iata.js';\n\nexport interface IataAirlineNamespace {\n (value: string): Promise<IataAirlineResponse>;\n list(): Promise<IataAirlineListItem[]>;\n}\n\nexport interface IataNamespace {\n flight(value: string): Promise<IataFlightResponse>;\n airline: IataAirlineNamespace;\n airport(value: string): Promise<IataAirportResponse>;\n}\n\nexport function createIataNamespace(client: HttpClient): IataNamespace {\n const airline = ((value: string) =>\n client.get<IataAirlineResponse>('/v0/iata/airline', { value })\n ) as IataAirlineNamespace;\n\n airline.list = () => client.get<IataAirlineListItem[]>('/v0/iata/airline/list');\n\n return {\n flight: (value: string) =>\n client.get<IataFlightResponse>('/v0/iata/flight', { value }),\n airline,\n airport: (value: string) =>\n client.get<IataAirportResponse>('/v0/iata/airport', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { IpResponse, MacResponse, NetPortResponse, NetPortListItem } from '../types/net.js';\n\nexport interface NetPortNamespace {\n (value: string): Promise<NetPortResponse>;\n list(): Promise<NetPortListItem[]>;\n}\n\nexport interface NetNamespace {\n ip(value: string): Promise<IpResponse>;\n mac(value: string): Promise<MacResponse>;\n port: NetPortNamespace;\n}\n\nexport function createNetNamespace(client: HttpClient): NetNamespace {\n const port = ((value: string) =>\n client.get<NetPortResponse>('/v0/net/port', { value })\n ) as NetPortNamespace;\n\n port.list = () => client.get<NetPortListItem[]>('/v0/net/port/list');\n\n return {\n ip: (value: string) => client.get<IpResponse>('/v0/net/ip', { value }),\n mac: (value: string) => client.get<MacResponse>('/v0/net/mac', { value }),\n port,\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { PeselResponse, RegonResponse, KrsResponse, CeidgResponse, PkdResponse } from '../types/pl.js';\n\nexport interface PlNamespace {\n pesel(value: string): Promise<PeselResponse>;\n regon(value: string, opts?: { lookup?: boolean }): Promise<RegonResponse>;\n krs(value: string, opts?: { lookup?: boolean }): Promise<KrsResponse>;\n ceidg(value: string, opts?: { lookup?: boolean }): Promise<CeidgResponse>;\n pkd(value: string): Promise<PkdResponse>;\n}\n\nexport function createPlNamespace(client: HttpClient): PlNamespace {\n return {\n pesel: (value: string) =>\n client.get<PeselResponse>('/v0/pl/pesel', { value }),\n regon: (value: string, opts?) =>\n client.get<RegonResponse>('/v0/pl/regon', {\n value,\n lookup: opts?.lookup?.toString(),\n }),\n krs: (value: string, opts?) =>\n client.get<KrsResponse>('/v0/pl/krs', {\n value,\n lookup: opts?.lookup?.toString(),\n }),\n ceidg: (value: string, opts?) =>\n client.get<CeidgResponse>('/v0/pl/ceidg', {\n value,\n lookup: opts?.lookup?.toString(),\n }),\n pkd: (value: string) =>\n client.get<PkdResponse>('/v0/pl/pkd', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { CnpjResponse, CpfResponse } from '../types/br.js';\n\nexport interface BrNamespace {\n cnpj(value: string): Promise<CnpjResponse>;\n cpf(value: string): Promise<CpfResponse>;\n}\n\nexport function createBrNamespace(client: HttpClient): BrNamespace {\n return {\n cnpj: (value: string) => client.get<CnpjResponse>('/v0/br/cnpj', { value }),\n cpf: (value: string) => client.get<CpfResponse>('/v0/br/cpf', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { AbnResponse } from '../types/au.js';\n\nexport interface AuNamespace {\n abn(value: string): Promise<AbnResponse>;\n}\n\nexport function createAuNamespace(client: HttpClient): AuNamespace {\n return {\n abn: (value: string) => client.get<AbnResponse>('/v0/au/abn', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { NifResponse } from '../types/es.js';\n\nexport interface EsNamespace {\n nif(value: string): Promise<NifResponse>;\n}\n\nexport function createEsNamespace(client: HttpClient): EsNamespace {\n return {\n nif: (value: string) => client.get<NifResponse>('/v0/es/nif', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { GstinResponse } from '../types/in.js';\n\nexport interface InNamespace {\n gstin(value: string): Promise<GstinResponse>;\n}\n\nexport function createInNamespace(client: HttpClient): InNamespace {\n return {\n gstin: (value: string) => client.get<GstinResponse>('/v0/in/gstin', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { NpiResponse } from '../types/us.js';\n\nexport interface UsNamespace {\n npi(value: string): Promise<NpiResponse>;\n}\n\nexport function createUsNamespace(client: HttpClient): UsNamespace {\n return {\n npi: (value: string) => client.get<NpiResponse>('/v0/us/npi', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { SortCodeResponse } from '../types/gb.js';\n\nexport interface GbNamespace {\n sortCode(value: string): Promise<SortCodeResponse>;\n}\n\nexport function createGbNamespace(client: HttpClient): GbNamespace {\n return {\n sortCode: (value: string) => client.get<SortCodeResponse>('/v0/gb/sort-code', { value }),\n };\n}\n","import type { HttpClient } from '../client.js';\nimport type { HsCodeResponse, HsCodeListResponse } from '../types/hsCode.js';\n\nexport interface HsCodeNamespace {\n (value: string): Promise<HsCodeResponse>;\n list(opts?: { chapter?: string; level?: string }): Promise<HsCodeListResponse>;\n}\n\nexport function createHsCodeNamespace(client: HttpClient): HsCodeNamespace {\n const hsCode = ((value: string) =>\n client.get<HsCodeResponse>('/v0/hs-code', { value })\n ) as HsCodeNamespace;\n\n hsCode.list = (opts?: { chapter?: string; level?: string }) =>\n client.get<HsCodeListResponse>('/v0/hs-code/list', {\n chapter: opts?.chapter,\n level: opts?.level,\n });\n\n return hsCode;\n}\n","import type { HttpClient } from '../client.js';\nimport type { Gs1PrefixResponse, Gs1PrefixListResponse } from '../types/gs1Prefix.js';\n\nexport interface Gs1PrefixNamespace {\n (value: string): Promise<Gs1PrefixResponse>;\n list(): Promise<Gs1PrefixListResponse>;\n}\n\nexport function createGs1PrefixNamespace(client: HttpClient): Gs1PrefixNamespace {\n const gs1Prefix = ((value: string) =>\n client.get<Gs1PrefixResponse>('/v0/gs1-prefix', { value })\n ) as Gs1PrefixNamespace;\n\n gs1Prefix.list = () =>\n client.get<Gs1PrefixListResponse>('/v0/gs1-prefix/list');\n\n return gs1Prefix;\n}\n","import type { HttpClient } from '../client.js';\nimport type { IndustryResponse, IndustryListResponse } from '../types/industry.js';\n\nexport interface IndustryNamespace {\n (value: string, opts?: { system?: string }): Promise<IndustryResponse>;\n list(opts: { system: string; level?: string; parent?: string }): Promise<IndustryListResponse>;\n}\n\nexport function createIndustryNamespace(client: HttpClient): IndustryNamespace {\n const industry = ((value: string, opts?: { system?: string }) =>\n client.get<IndustryResponse>('/v0/industry', {\n value,\n system: opts?.system,\n })\n ) as IndustryNamespace;\n\n industry.list = (opts: { system: string; level?: string; parent?: string }) =>\n client.get<IndustryListResponse>('/v0/industry/list', {\n system: opts.system,\n level: opts?.level,\n parent: opts?.parent,\n });\n\n return industry;\n}\n","import type { HttpClient } from '../client.js';\nimport type { TimezoneResponse, TimezoneListItem } from '../types/timezone.js';\n\nexport interface TimezoneNamespace {\n (value: string): Promise<TimezoneResponse>;\n list(opts?: { region?: string }): Promise<TimezoneListItem[]>;\n}\n\nexport function createTimezoneNamespace(client: HttpClient): TimezoneNamespace {\n const timezone = ((value: string) =>\n client.get<TimezoneResponse>('/v0/timezone', { value })\n ) as TimezoneNamespace;\n\n timezone.list = (opts?: { region?: string }) =>\n client.get<TimezoneListItem[]>('/v0/timezone/list', { region: opts?.region });\n\n return timezone;\n}\n","import type { HttpClient } from '../client.js';\nimport type { MimeTypeResponse, MimeTypeExtResponse, MimeTypeListItem } from '../types/mimeType.js';\n\nexport interface MimeTypeNamespace {\n (value: string): Promise<MimeTypeResponse>;\n ext(value: string): Promise<MimeTypeExtResponse>;\n list(opts?: { type?: string }): Promise<MimeTypeListItem[]>;\n}\n\nexport function createMimeTypeNamespace(client: HttpClient): MimeTypeNamespace {\n const mimeType = ((value: string) =>\n client.get<MimeTypeResponse>('/v0/mime-type', { value })\n ) as MimeTypeNamespace;\n\n mimeType.ext = (value: string) =>\n client.get<MimeTypeExtResponse>('/v0/mime-type/ext', { value });\n\n mimeType.list = (opts?: { type?: string }) =>\n client.get<MimeTypeListItem[]>('/v0/mime-type/list', { type: opts?.type });\n\n return mimeType;\n}\n","import type { HttpClient } from '../client.js';\nimport type { HttpStatusResponse, HttpStatusListItem } from '../types/httpStatus.js';\n\nexport interface HttpStatusNamespace {\n (value: string): Promise<HttpStatusResponse>;\n list(): Promise<HttpStatusListItem[]>;\n}\n\nexport function createHttpStatusNamespace(client: HttpClient): HttpStatusNamespace {\n const httpStatus = ((value: string) =>\n client.get<HttpStatusResponse>('/v0/http-status', { value })\n ) as HttpStatusNamespace;\n\n httpStatus.list = () =>\n client.get<HttpStatusListItem[]>('/v0/http-status/list');\n\n return httpStatus;\n}\n","import type { HttpClient } from '../client.js';\nimport type { SwiftMtResponse, SwiftMtListItem } from '../types/swiftMt.js';\n\nexport interface SwiftMtNamespace {\n (value: string): Promise<SwiftMtResponse>;\n list(opts?: { category?: number }): Promise<SwiftMtListItem[]>;\n}\n\nexport function createSwiftMtNamespace(client: HttpClient): SwiftMtNamespace {\n const swiftMt = ((value: string) =>\n client.get<SwiftMtResponse>('/v0/swift-mt', { value })\n ) as SwiftMtNamespace;\n\n swiftMt.list = (opts?: { category?: number }) =>\n client.get<SwiftMtListItem[]>('/v0/swift-mt/list', { category: opts?.category?.toString() });\n\n return swiftMt;\n}\n","import type { HttpClient } from '../client.js';\nimport type { LocodeResponse, LocodeListItem } from '../types/locode.js';\n\nexport interface LocodeNamespace {\n (value: string): Promise<LocodeResponse>;\n list(opts: { country: string }): Promise<LocodeListItem[]>;\n}\n\nexport function createLocodeNamespace(client: HttpClient): LocodeNamespace {\n const locode = ((value: string) =>\n client.get<LocodeResponse>('/v0/locode', { value })\n ) as LocodeNamespace;\n\n locode.list = (opts: { country: string }) =>\n client.get<LocodeListItem[]>('/v0/locode/list', { country: opts.country });\n\n return locode;\n}\n","import { HttpClient } from './client.js';\nimport type { IsValidConfig } from './client.js';\nimport { createLeiNamespace } from './namespaces/lei.js';\nimport type { LeiNamespace } from './namespaces/lei.js';\nimport { createCountryNamespace } from './namespaces/country.js';\nimport type { CountryNamespace } from './namespaces/country.js';\nimport { createCurrencyNamespace } from './namespaces/currency.js';\nimport type { CurrencyNamespace } from './namespaces/currency.js';\nimport { createLanguageNamespace } from './namespaces/language.js';\nimport type { LanguageNamespace } from './namespaces/language.js';\nimport { createIataNamespace } from './namespaces/iata.js';\nimport type { IataNamespace } from './namespaces/iata.js';\nimport { createNetNamespace } from './namespaces/net.js';\nimport type { NetNamespace } from './namespaces/net.js';\nimport { createPlNamespace } from './namespaces/pl.js';\nimport type { PlNamespace } from './namespaces/pl.js';\nimport { createBrNamespace } from './namespaces/br.js';\nimport type { BrNamespace } from './namespaces/br.js';\nimport { createAuNamespace } from './namespaces/au.js';\nimport type { AuNamespace } from './namespaces/au.js';\nimport { createEsNamespace } from './namespaces/es.js';\nimport type { EsNamespace } from './namespaces/es.js';\nimport { createInNamespace } from './namespaces/in.js';\nimport type { InNamespace } from './namespaces/in.js';\nimport { createUsNamespace } from './namespaces/us.js';\nimport type { UsNamespace } from './namespaces/us.js';\nimport { createGbNamespace } from './namespaces/gb.js';\nimport type { GbNamespace } from './namespaces/gb.js';\nimport { createHsCodeNamespace } from './namespaces/hsCode.js';\nimport type { HsCodeNamespace } from './namespaces/hsCode.js';\nimport { createGs1PrefixNamespace } from './namespaces/gs1Prefix.js';\nimport type { Gs1PrefixNamespace } from './namespaces/gs1Prefix.js';\nimport { createIndustryNamespace } from './namespaces/industry.js';\nimport type { IndustryNamespace } from './namespaces/industry.js';\nimport { createTimezoneNamespace } from './namespaces/timezone.js';\nimport type { TimezoneNamespace } from './namespaces/timezone.js';\nimport { createMimeTypeNamespace } from './namespaces/mimeType.js';\nimport type { MimeTypeNamespace } from './namespaces/mimeType.js';\nimport { createHttpStatusNamespace } from './namespaces/httpStatus.js';\nimport type { HttpStatusNamespace } from './namespaces/httpStatus.js';\nimport { createSwiftMtNamespace } from './namespaces/swiftMt.js';\nimport type { SwiftMtNamespace } from './namespaces/swiftMt.js';\nimport { createLocodeNamespace } from './namespaces/locode.js';\nimport type { LocodeNamespace } from './namespaces/locode.js';\nimport type {\n EmailResponse, IbanResponse, IsinResponse, DtiResponse, VatResponse,\n GpsResponse, PhoneResponse, UrlResponse, EanResponse, IsbnResponse,\n IssnResponse, BicResponse, CusipResponse, CfiResponse, MicResponse,\n NutsResponse, UuidResponse, JwtResponse, VinResponse, ImeiResponse,\n SemverResponse, ColorResponse, BooleanResponse, DateResponse,\n BtcAddressResponse, PostalCodeResponse, AbaResponse, ContainerCodeResponse,\n SsccResponse, GlnResponse, QrResponse, CreditCardResponse,\n CasResponse, EoriResponse, OrcidResponse, DoiResponse, BarcodeResponse,\n Base64Response, EthAddressResponse, CronResponse, DomainResponse, RegexResponse,\n DunsResponse, TimestampResponse,\n} from './types/simple.js';\n\nexport class IsValid {\n private readonly client: HttpClient;\n\n readonly lei: LeiNamespace;\n readonly country: CountryNamespace;\n readonly currency: CurrencyNamespace;\n readonly language: LanguageNamespace;\n readonly iata: IataNamespace;\n readonly net: NetNamespace;\n readonly pl: PlNamespace;\n readonly br: BrNamespace;\n readonly au: AuNamespace;\n readonly es: EsNamespace;\n readonly in: InNamespace;\n readonly us: UsNamespace;\n readonly gb: GbNamespace;\n readonly hsCode: HsCodeNamespace;\n readonly gs1Prefix: Gs1PrefixNamespace;\n readonly industry: IndustryNamespace;\n readonly timezone: TimezoneNamespace;\n readonly mimeType: MimeTypeNamespace;\n readonly httpStatus: HttpStatusNamespace;\n readonly swiftMt: SwiftMtNamespace;\n readonly locode: LocodeNamespace;\n\n constructor(config: IsValidConfig) {\n this.client = new HttpClient(config);\n\n this.lei = createLeiNamespace(this.client);\n this.country = createCountryNamespace(this.client);\n this.currency = createCurrencyNamespace(this.client);\n this.language = createLanguageNamespace(this.client);\n this.iata = createIataNamespace(this.client);\n this.net = createNetNamespace(this.client);\n this.pl = createPlNamespace(this.client);\n this.br = createBrNamespace(this.client);\n this.au = createAuNamespace(this.client);\n this.es = createEsNamespace(this.client);\n this.in = createInNamespace(this.client);\n this.us = createUsNamespace(this.client);\n this.gb = createGbNamespace(this.client);\n this.hsCode = createHsCodeNamespace(this.client);\n this.gs1Prefix = createGs1PrefixNamespace(this.client);\n this.industry = createIndustryNamespace(this.client);\n this.timezone = createTimezoneNamespace(this.client);\n this.mimeType = createMimeTypeNamespace(this.client);\n this.httpStatus = createHttpStatusNamespace(this.client);\n this.swiftMt = createSwiftMtNamespace(this.client);\n this.locode = createLocodeNamespace(this.client);\n }\n\n // --- Simple endpoints ---\n\n email(value: string, opts?: { checkMx?: boolean }): Promise<EmailResponse> {\n return this.client.get('/v0/email', { value, checkMx: opts?.checkMx?.toString() });\n }\n\n iban(value: string, opts?: { countryCode?: string }): Promise<IbanResponse> {\n return this.client.get('/v0/iban', { value, countryCode: opts?.countryCode });\n }\n\n isin(value: string): Promise<IsinResponse> {\n return this.client.get('/v0/isin', { value });\n }\n\n dti(value: string): Promise<DtiResponse> {\n return this.client.get('/v0/dti', { value });\n }\n\n vat(value: string, opts?: { countryCode?: string; checkVies?: boolean }): Promise<VatResponse> {\n return this.client.get('/v0/vat', {\n value,\n countryCode: opts?.countryCode,\n checkVies: opts?.checkVies?.toString(),\n });\n }\n\n gps(value: string): Promise<GpsResponse> {\n return this.client.get('/v0/gps', { value });\n }\n\n phone(value: string, opts?: { countryCode?: string }): Promise<PhoneResponse> {\n return this.client.get('/v0/phone', { value, countryCode: opts?.countryCode });\n }\n\n url(value: string): Promise<UrlResponse> {\n return this.client.get('/v0/url', { value });\n }\n\n ean(value: string): Promise<EanResponse> {\n return this.client.get('/v0/ean', { value });\n }\n\n isbn(value: string): Promise<IsbnResponse> {\n return this.client.get('/v0/isbn', { value });\n }\n\n issn(value: string): Promise<IssnResponse> {\n return this.client.get('/v0/issn', { value });\n }\n\n bic(value: string): Promise<BicResponse> {\n return this.client.get('/v0/bic', { value });\n }\n\n cusip(value: string): Promise<CusipResponse> {\n return this.client.get('/v0/cusip', { value });\n }\n\n cfi(value: string): Promise<CfiResponse> {\n return this.client.get('/v0/cfi', { value });\n }\n\n mic(value: string): Promise<MicResponse> {\n return this.client.get('/v0/mic', { value });\n }\n\n nuts(value: string): Promise<NutsResponse> {\n return this.client.get('/v0/nuts', { value });\n }\n\n uuid(value: string, opts?: { version?: number }): Promise<UuidResponse> {\n return this.client.get('/v0/uuid', { value, version: opts?.version?.toString() });\n }\n\n jwt(value: string): Promise<JwtResponse> {\n return this.client.get('/v0/jwt', { value });\n }\n\n vin(value: string): Promise<VinResponse> {\n return this.client.get('/v0/vin', { value });\n }\n\n imei(value: string): Promise<ImeiResponse> {\n return this.client.get('/v0/imei', { value });\n }\n\n semver(value: string): Promise<SemverResponse> {\n return this.client.get('/v0/semver', { value });\n }\n\n color(value: string): Promise<ColorResponse> {\n return this.client.get('/v0/color', { value });\n }\n\n boolean(value: string): Promise<BooleanResponse> {\n return this.client.get('/v0/boolean', { value });\n }\n\n date(value: string, opts?: { format?: string }): Promise<DateResponse> {\n return this.client.get('/v0/date', { value, format: opts?.format });\n }\n\n btcAddress(value: string): Promise<BtcAddressResponse> {\n return this.client.get('/v0/btc-address', { value });\n }\n\n postalCode(value: string, opts?: { countryCode?: string }): Promise<PostalCodeResponse> {\n return this.client.get('/v0/postal-code', { value, countryCode: opts?.countryCode });\n }\n\n aba(value: string): Promise<AbaResponse> {\n return this.client.get('/v0/aba', { value });\n }\n\n containerCode(value: string): Promise<ContainerCodeResponse> {\n return this.client.get('/v0/container-code', { value });\n }\n\n sscc(value: string): Promise<SsccResponse> {\n return this.client.get('/v0/sscc', { value });\n }\n\n gln(value: string): Promise<GlnResponse> {\n return this.client.get('/v0/gln', { value });\n }\n\n qr(value: string): Promise<QrResponse> {\n return this.client.get('/v0/qr', { value });\n }\n\n creditCard(number: string): Promise<CreditCardResponse> {\n return this.client.post('/v0/credit-card', { number });\n }\n\n cas(value: string): Promise<CasResponse> {\n return this.client.get('/v0/cas', { value });\n }\n\n eori(value: string, opts?: { check?: boolean }): Promise<EoriResponse> {\n return this.client.get('/v0/eori', { value, check: opts?.check?.toString() });\n }\n\n orcid(value: string, opts?: { lookup?: boolean }): Promise<OrcidResponse> {\n return this.client.get('/v0/orcid', { value, lookup: opts?.lookup?.toString() });\n }\n\n doi(value: string, opts?: { lookup?: boolean }): Promise<DoiResponse> {\n return this.client.get('/v0/doi', { value, lookup: opts?.lookup?.toString() });\n }\n\n barcode(value: string, opts?: { type?: string }): Promise<BarcodeResponse> {\n return this.client.get('/v0/barcode', { value, type: opts?.type });\n }\n\n base64(value: string): Promise<Base64Response> {\n return this.client.get('/v0/base64', { value });\n }\n\n ethAddress(value: string): Promise<EthAddressResponse> {\n return this.client.get('/v0/eth-address', { value });\n }\n\n cron(value: string): Promise<CronResponse> {\n return this.client.get('/v0/cron', { value });\n }\n\n domain(value: string): Promise<DomainResponse> {\n return this.client.get('/v0/domain', { value });\n }\n\n regex(pattern: string, opts?: { flags?: string }): Promise<RegexResponse> {\n return this.client.post('/v0/regex', { pattern, flags: opts?.flags });\n }\n\n duns(value: string, opts?: { lookup?: boolean }): Promise<DunsResponse> {\n return this.client.get('/v0/duns', { value, lookup: opts?.lookup?.toString() });\n }\n\n timestamp(value: string): Promise<TimestampResponse> {\n return this.client.get('/v0/timestamp', { value });\n }\n}\n\nexport function createClient(config: IsValidConfig): IsValid {\n return new IsValid(config);\n}\n\nexport { IsValidError, IsValidAuthError, IsValidRateLimitError } from './errors.js';\nexport type { IsValidConfig, RetryConfig } from './client.js';\nexport * from './types/index.js';\n\nexport type { LeiNamespace } from './namespaces/lei.js';\nexport type { CountryNamespace } from './namespaces/country.js';\nexport type { CurrencyNamespace } from './namespaces/currency.js';\nexport type { LanguageNamespace } from './namespaces/language.js';\nexport type { IataNamespace, IataAirlineNamespace } from './namespaces/iata.js';\nexport type { NetNamespace } from './namespaces/net.js';\nexport type { PlNamespace } from './namespaces/pl.js';\nexport type { BrNamespace } from './namespaces/br.js';\nexport type { AuNamespace } from './namespaces/au.js';\nexport type { EsNamespace } from './namespaces/es.js';\nexport type { InNamespace } from './namespaces/in.js';\nexport type { UsNamespace } from './namespaces/us.js';\nexport type { GbNamespace } from './namespaces/gb.js';\nexport type { HsCodeNamespace } from './namespaces/hsCode.js';\nexport type { Gs1PrefixNamespace } from './namespaces/gs1Prefix.js';\nexport type { IndustryNamespace } from './namespaces/industry.js';\nexport type { TimezoneNamespace } from './namespaces/timezone.js';\nexport type { MimeTypeNamespace } from './namespaces/mimeType.js';\nexport type { HttpStatusNamespace } from './namespaces/httpStatus.js';\nexport type { SwiftMtNamespace } from './namespaces/swiftMt.js';\nexport type { LocodeNamespace } from './namespaces/locode.js';\nexport type { NetPortNamespace } from './namespaces/net.js';\n"]}
|