@parseapi/sdk 0.3.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/LICENSE +1 -1
- package/README.md +120 -4
- package/dist/index.cjs +72 -25
- package/dist/index.d.cts +544 -216
- package/dist/index.d.ts +544 -216
- package/dist/index.js +72 -25
- package/package.json +7 -4
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @parseapi/sdk
|
|
2
2
|
|
|
3
|
-
Official
|
|
3
|
+
Official ParseAPI client for Node and TypeScript.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
npm install @parseapi/sdk
|
|
@@ -15,6 +15,34 @@ const country = await parse.country('US');
|
|
|
15
15
|
|
|
16
16
|
Get a key at [parseapi.com](https://parseapi.com). The client also reads `PARSEAPI_KEY` from the environment.
|
|
17
17
|
|
|
18
|
+
## API versions
|
|
19
|
+
|
|
20
|
+
Choose your team's API version in [Dashboard → API version](https://parseapi.com/dashboard/versions). One setting applies to every key, including new and replacement keys. Existing teams keep `1.0.0`; new teams start on `2.0.0`. Keep the same keys and lookup URLs. Installing or upgrading the package does not change the team's setting.
|
|
21
|
+
|
|
22
|
+
Published SDK `0.3.2` matches API `1.0.0`. The examples and response types in this source tree target API `2.0.0`, including changes that are not in `0.3.2`. Use a package release documented for your team's version. These types do not model every historical response; moving to `2.0.0` may require updating code that reads renamed, moved or removed fields.
|
|
23
|
+
|
|
24
|
+
Test the target contract in a separate development team before changing your production team's version. A change applies to every integration in that team. See [API versions and migration](https://parseapi.com/docs/versioning).
|
|
25
|
+
|
|
26
|
+
## Weather from a postal code
|
|
27
|
+
|
|
28
|
+
Start with the postal code, then pass its coordinates to weather. Reuse the client from the example above.
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
const place = await parse.postal('28202', { country: 'US' });
|
|
32
|
+
if (place.latitude != null && place.longitude != null) {
|
|
33
|
+
const weather = await parse.weather(place.latitude, place.longitude);
|
|
34
|
+
console.log(weather);
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The coordinates represent the postal area. Weather is for that point. Missing coordinates skip the weather lookup. This composition performs two ordinary lookups when coordinates are available, with the retry policy below.
|
|
39
|
+
|
|
40
|
+
## Supply the context you know
|
|
41
|
+
|
|
42
|
+
Pass `country` when a postal code or national phone number needs disambiguation. A complete international phone number already carries its country context. For a numeric date such as `03/04/2026`, supply the intended `format`. Defaults resolve what the input establishes. Ambiguous input needs your context.
|
|
43
|
+
|
|
44
|
+
Results are plain data. Pass a returned code or coordinate to another operation when the task needs it. Check nullable values before composing the next call.
|
|
45
|
+
|
|
18
46
|
## Calls
|
|
19
47
|
|
|
20
48
|
One method per endpoint, named after the route.
|
|
@@ -25,6 +53,7 @@ await parse.ip.self();
|
|
|
25
53
|
await parse.email('hello@gmail.com');
|
|
26
54
|
await parse.vat('DE136695976');
|
|
27
55
|
await parse.iban('DE89370400440532013000');
|
|
56
|
+
await parse.bin('424242');
|
|
28
57
|
await parse.npi('1881018208');
|
|
29
58
|
await parse.phone('+14155552671');
|
|
30
59
|
await parse.carrier('+14155552671');
|
|
@@ -57,8 +86,11 @@ await parse.currency('USD');
|
|
|
57
86
|
await parse.currency.rate('USD', 'EUR');
|
|
58
87
|
await parse.language('en');
|
|
59
88
|
await parse.name('BILLY OSHALL');
|
|
60
|
-
await parse.
|
|
61
|
-
await parse.
|
|
89
|
+
await parse.name('Andrea', { country: 'IT', deep: true });
|
|
90
|
+
await parse.time(); // UTC now
|
|
91
|
+
await parse.time('America/New_York');
|
|
92
|
+
await parse.time('America/New_York', { at: '2026-09-05T15:00:00', to: 'Asia/Tokyo' });
|
|
93
|
+
await parse.time.at(40.7128, -74.006);
|
|
62
94
|
await parse.date('03/04/2026', { format: 'mdy' });
|
|
63
95
|
await parse.date.today();
|
|
64
96
|
await parse.holiday('US', { year: 2026 });
|
|
@@ -70,19 +102,90 @@ await parse.domain('example.com');
|
|
|
70
102
|
await parse.asn('AS13335');
|
|
71
103
|
await parse.mac('00:1B:63:84:45:E6');
|
|
72
104
|
await parse.mx('example.com');
|
|
105
|
+
await parse.dns('example.com');
|
|
106
|
+
await parse.dns('_dmarc.example.com', { type: 'TXT' });
|
|
73
107
|
await parse.useragent(uaString);
|
|
74
108
|
await parse.vin('1HGCM82633A004352');
|
|
109
|
+
await parse.naics('541511');
|
|
110
|
+
await parse.naics.search('coffee shop', { limit: 5 });
|
|
75
111
|
await parse.tariff('8471.30.01.00');
|
|
76
112
|
await parse.tariff.search('sunglasses');
|
|
77
113
|
await parse.emoji('rocket');
|
|
78
114
|
await parse.emoji.search('fire');
|
|
79
115
|
```
|
|
80
116
|
|
|
117
|
+
NAICS paid deep records include classification `deep.exclusions`, each with a description and linked codes. Generic exclusions can have no linked codes. Omitted or null exclusions in older responses remain unknown. Search results also include `match`: the matched `field` (`name`, `term` or `naics`) and `text`, plus `corrections` with `from` and `to` tokens for typo fallback. Corrections are empty for exact, plural and prefix matches. Direct code lookups omit `match`. Older responses may omit it.
|
|
118
|
+
|
|
81
119
|
Responses are typed, plain JSON data. `country.states('US')` requests the states directly; it does not fetch a country first. Optional arguments go in the final options object, so new options can be added without changing your existing calls.
|
|
82
120
|
|
|
121
|
+
DNS uses pooled requests on every plan. Omit `type` to check A, AAAA, CNAME, MX, NS, TXT, SOA, CAA, SRV and PTR. Records contain `name`, `type`, `ttl` in seconds and a DNS presentation `value`. TXT values retain quoting and chunk boundaries. A selected question can include its CNAME chain. Empty records mean no records. Lookup failures remain errors.
|
|
122
|
+
|
|
123
|
+
## Time
|
|
124
|
+
|
|
125
|
+
`time` returns local ISO `at` with its UTC offset and integer Unix seconds in `unix`. The core `offset` preserves exact precision. Optional `deep.offset_seconds` gives the numeric offset, while `deep.offset_minutes` gives whole minutes. Historical offsets and ISO times can include offset seconds. Omitted `at` means now. With `to`, an offsetless `at` is source wall time. Otherwise it is UTC. Include an offset for repeated local times around a clock change. Current time and conversion use pooled requests on every plan. Coordinate clock fields can be null when the timezone is unknown. Existing `timezone` methods remain supported.
|
|
126
|
+
|
|
127
|
+
## Measurements
|
|
128
|
+
|
|
129
|
+
```ts
|
|
130
|
+
const result = await parse.measure('5 ft 11 in', { to: 'cm' });
|
|
131
|
+
const units = await parse.measure.units({ unit: 'm' });
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
`amount` is a decimal string, such as `"180.34"`. Without `to`, the API returns the canonical unit for the measurement type. Pass `locale` for number formatting and `system` (`us` or `imperial`) when a customary unit needs context. Ambiguous input returns `valid: false`, a `reason`, and available `choices`. Invalid or incompatible target units use the normal API error.
|
|
135
|
+
|
|
136
|
+
Unit discovery accepts optional `query`, `type`, and `unit` filters. `unit` selects compatible targets. Omit the filters for the reviewed catalog. Both operations use pooled requests.
|
|
137
|
+
|
|
138
|
+
## Place statistics and optional detail
|
|
139
|
+
|
|
140
|
+
Postal and District paid profiles include `deep.property_tax` where supported. It contains `annual_median`, `currency` and `period`: median annual property tax payable on owner-occupied homes in the statistical area. The amount is adjusted to the final year of the reporting period (`YYYY-YYYY`). This is an area statistic, not a rate or an individual property bill. Unsupported, missing and censored estimates are null.
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
const place = await parse.postal('28202', { country: 'US', deep: true });
|
|
144
|
+
const propertyTax = place.deep?.property_tax;
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Read `population_period` alongside `population`: a reporting year (`YYYY`) or period (`YYYY-YYYY`), null when unknown or unverifiable. Keep missing or null values unknown and preserve a known zero. These fields belong to full place profiles. State district lists include each district's population and period. Postal nearby and distance detail remains metropolitan associations only. Continent population and its period remain in core.
|
|
148
|
+
|
|
149
|
+
Point returns the timezone ID with the core location. Its optional deep detail adds terrain and compact nearest-city context on every plan. A nearest city is null when none is within 200 km.
|
|
150
|
+
|
|
151
|
+
Weather returns current conditions by default. Paid deep adds specialist current measurements, forecasts and related detail. A past `date` is a UTC day and requires deep: it adds `deep.history` alongside current conditions. Date alone does not request history.
|
|
152
|
+
|
|
153
|
+
```ts
|
|
154
|
+
await parse.weather(40.7128, -74.006, { deep: true, date: '2026-08-15' });
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Tariff starts with the general schedule line. Paid deep adds units and the special and other schedule columns. An optional origin then resolves country-specific measures. The three calls below show those successive choices. Without origin, schedule detail is still returned and origin-dependent fields are null. A null effective rate is not a zero rate.
|
|
158
|
+
|
|
159
|
+
```ts
|
|
160
|
+
await parse.tariff('8471.30.01.00');
|
|
161
|
+
await parse.tariff('8471.30.01.00', { deep: true });
|
|
162
|
+
await parse.tariff('8471.30.01.00', { deep: true, origin: 'CN' });
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Address search uses context from the form: prefer postal, or city and state. An optional end-user `ip` is a locality hint for server-side calls. An empty result explains itself with `reason`: `more_input`, `missing_context` or `no_matches`. With suggestions, reason is null. Older responses may omit it, and future reasons remain strings. Catalog and lookup failures use the existing API errors.
|
|
166
|
+
|
|
167
|
+
HLR reports status at the last check. `live` means assigned and `connected` means reachable at that check. Cached results may be returned. Null means unconfirmed. Deep diagnostics stay within the same metered lookup.
|
|
168
|
+
|
|
83
169
|
## Deep
|
|
84
170
|
|
|
85
|
-
|
|
171
|
+
Choose enrichment for the question you need answered.
|
|
172
|
+
|
|
173
|
+
| Operation | What `deep` requests |
|
|
174
|
+
|---|---|
|
|
175
|
+
| IP | Richer IP fields included with a paid plan. No separate check meter. |
|
|
176
|
+
| Domain | Registration dates, registrar, status and DNSSEC, included with a paid plan. Use `dns` for DNS records and `mx` for mail routing. |
|
|
177
|
+
| Email | A metered deliverability check, using included email checks or enabled on-demand usage. |
|
|
178
|
+
| VAT | A metered registry check where supported, using included VAT checks or enabled on-demand usage. |
|
|
179
|
+
| Phone, Time, Date, Currency, Language, Emoji, IBAN, Point | Optional detail in the same pooled request on every plan. |
|
|
180
|
+
| Country, State, District, City, Postal | The place profile on paid plans, including demographic and tax facts where held. |
|
|
181
|
+
| Name, NAICS | Name evidence or the industry definition profile on paid plans. |
|
|
182
|
+
| VIN, NPI, Tariff, Company | The complete product detail bag on paid plans. |
|
|
183
|
+
| Weather | Specialist current measurements and the existing forecast, alert, air and history bag on paid plans. |
|
|
184
|
+
| Carrier, HLR | Optional diagnostic detail within the same metered core unit, including Free allowance units. No second gate or additional check. |
|
|
185
|
+
|
|
186
|
+
Carrier, caller, and HLR are separate metered operations. Choose them explicitly when you need their answers. Ordinary lookups retry twice by default. Metered checks use one attempt by default. Setting retries explicitly can repeat paid usage.
|
|
187
|
+
|
|
188
|
+
Without `deep`, the response omits that key. When requested, it is an empty object if access is locked or the operation has no deep fields. Otherwise it contains the available fields. A missing or null field means unknown.
|
|
86
189
|
|
|
87
190
|
```ts
|
|
88
191
|
const ip = await parse.ip('52.94.76.10', { deep: true });
|
|
@@ -131,3 +234,16 @@ An explicit `retries` setting on the client or call overrides those defaults. An
|
|
|
131
234
|
## Docs
|
|
132
235
|
|
|
133
236
|
Full field reference for every endpoint: [parseapi.com/docs](https://parseapi.com/docs)
|
|
237
|
+
|
|
238
|
+
BIN lookup accepts 6-11 digits as a string, including leading zeros. Spaces and hyphens are accepted. `prefix` is the actual longest match and can be shorter than the input. Unknown reference fields are null. `deep` adds an empty object on every plan.
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
## Optional detail
|
|
242
|
+
|
|
243
|
+
The default response answers the common task. Ask for `deep` when you need more detail about that same result. Core fields stay equal. City, NAICS and Emoji searches put detail inside each result. Postal nearby and distance put metropolitan detail beside the entity it describes. Time conversion keeps target detail in `to.deep`; only the source has `deep.next_dst`.
|
|
244
|
+
|
|
245
|
+
```ts
|
|
246
|
+
const basic = await parse.time('America/New_York');
|
|
247
|
+
const detail = await parse.time('America/New_York', { deep: true });
|
|
248
|
+
console.log(basic.at, detail.deep?.next_dst);
|
|
249
|
+
```
|
package/dist/index.cjs
CHANGED
|
@@ -24,7 +24,7 @@ __export(index_exports, {
|
|
|
24
24
|
parseAPI: () => parseAPI
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(index_exports);
|
|
27
|
-
var VERSION = "0.
|
|
27
|
+
var VERSION = "0.4.0";
|
|
28
28
|
var DEFAULT_BASE_URL = "https://api.parseapi.com";
|
|
29
29
|
var DEFAULT_TIMEOUT_MS = 1e4;
|
|
30
30
|
var DEFAULT_RETRIES = 2;
|
|
@@ -179,9 +179,11 @@ function parseAPI(apiKey, options = {}) {
|
|
|
179
179
|
const enc = encodeURIComponent;
|
|
180
180
|
const deepQuery = (opts) => opts?.deep ? { deep: true } : {};
|
|
181
181
|
return {
|
|
182
|
+
/** Look up an IP. `deep: true` adds enrichment included with a paid plan, without a separate check meter. */
|
|
182
183
|
ip: Object.assign(
|
|
183
184
|
(ip, opts) => request(`/ip/${enc(ip)}`, deepQuery(opts), void 0, opts),
|
|
184
185
|
{
|
|
186
|
+
/** Look up the public IP making this request. On a server, this is the server's IP. */
|
|
185
187
|
self: (opts) => request("/ip", deepQuery(opts), void 0, opts)
|
|
186
188
|
}
|
|
187
189
|
),
|
|
@@ -198,69 +200,104 @@ function parseAPI(apiKey, options = {}) {
|
|
|
198
200
|
}
|
|
199
201
|
),
|
|
200
202
|
country: Object.assign(
|
|
201
|
-
(code, opts) => request(`/country/${enc(code)}`,
|
|
203
|
+
(code, opts) => request(`/country/${enc(code)}`, deepQuery(opts), void 0, opts),
|
|
202
204
|
{
|
|
203
205
|
states: (code, opts) => request(`/country/${enc(code)}/states`, void 0, void 0, opts)
|
|
204
206
|
}
|
|
205
207
|
),
|
|
206
208
|
state: Object.assign(
|
|
207
|
-
(code, opts) => request(`/state/${enc(code)}`, { country: opts?.country }, void 0, opts),
|
|
209
|
+
(code, opts) => request(`/state/${enc(code)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts),
|
|
208
210
|
{
|
|
209
|
-
districts: (code, opts) => request(`/state/${enc(code)}/districts`, { country: opts?.country }, void 0, opts)
|
|
211
|
+
districts: (code, opts) => request(`/state/${enc(code)}/districts`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts)
|
|
210
212
|
}
|
|
211
213
|
),
|
|
212
|
-
district: (code, opts) => request(`/district/${enc(code)}`, { country: opts?.country, state: opts?.state }, void 0, opts),
|
|
214
|
+
district: (code, opts) => request(`/district/${enc(code)}`, { country: opts?.country, state: opts?.state, ...deepQuery(opts) }, void 0, opts),
|
|
213
215
|
city: Object.assign(
|
|
214
|
-
(name, opts) => request(`/city/${enc(name)}`, { country: opts?.country, state: opts?.state }, void 0, opts),
|
|
216
|
+
(name, opts) => request(`/city/${enc(name)}`, { country: opts?.country, state: opts?.state, ...deepQuery(opts) }, void 0, opts),
|
|
215
217
|
{
|
|
216
|
-
id: (id, opts) => request(`/city/id/${enc(id)}`,
|
|
217
|
-
search: (query, opts) => request("/city", { q: query, country: opts?.country, state: opts?.state, limit: opts?.limit }, void 0, opts),
|
|
218
|
-
nearest: (lat, lon, opts) => request("/city", { lat, lon }, void 0, opts),
|
|
218
|
+
id: (id, opts) => request(`/city/id/${enc(id)}`, deepQuery(opts), void 0, opts),
|
|
219
|
+
search: (query, opts) => request("/city", { q: query, country: opts?.country, state: opts?.state, limit: opts?.limit, ...deepQuery(opts) }, void 0, opts),
|
|
220
|
+
nearest: (lat, lon, opts) => request("/city", { lat, lon, ...deepQuery(opts) }, void 0, opts),
|
|
219
221
|
nearby: (name, opts) => request(`/city/${enc(name)}/nearby`, {
|
|
220
222
|
radius: opts?.radius,
|
|
221
223
|
unit: opts?.unit,
|
|
222
224
|
country: opts?.country,
|
|
223
225
|
state: opts?.state,
|
|
224
|
-
limit: opts?.limit
|
|
226
|
+
limit: opts?.limit,
|
|
227
|
+
...deepQuery(opts)
|
|
225
228
|
}, void 0, opts)
|
|
226
229
|
}
|
|
227
230
|
),
|
|
231
|
+
/** Look up a postal area. Pass country when known. Check nullable latitude/longitude before another location lookup. */
|
|
228
232
|
postal: Object.assign(
|
|
229
|
-
(code, opts) => request(`/postal/${enc(code)}`, { country: opts?.country }, void 0, opts),
|
|
233
|
+
(code, opts) => request(`/postal/${enc(code)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts),
|
|
230
234
|
{
|
|
231
235
|
nearby: (code, opts) => request(`/postal/${enc(code)}/nearby`, {
|
|
232
236
|
country: opts?.country,
|
|
233
237
|
radius: opts?.radius,
|
|
234
|
-
unit: opts?.unit
|
|
238
|
+
unit: opts?.unit,
|
|
239
|
+
...deepQuery(opts)
|
|
235
240
|
}, void 0, opts),
|
|
236
|
-
distance: (from, to, opts) => request(`/postal/${enc(from)}/distance/${enc(to)}`, { country: opts?.country }, void 0, opts)
|
|
241
|
+
distance: (from, to, opts) => request(`/postal/${enc(from)}/distance/${enc(to)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts)
|
|
237
242
|
}
|
|
238
243
|
),
|
|
239
244
|
address: Object.assign(
|
|
240
245
|
(address, opts) => request(`/address/${enc(address)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts),
|
|
241
246
|
{
|
|
247
|
+
/** Find address suggestions using the context supplied. Prefer postal, or city and state, from the form. ip is an optional end-user locality hint for server-side calls. An empty result has reason more_input, missing_context or no_matches. Suggestions have reason null. Operational failures are errors. */
|
|
242
248
|
search: (query, opts) => request("/address", { q: query, country: opts?.country, postal: opts?.postal, city: opts?.city, state: opts?.state, ip: opts?.ip }, void 0, opts)
|
|
243
249
|
}
|
|
244
250
|
),
|
|
245
251
|
company: (number, opts) => request(`/company/${enc(number)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts),
|
|
252
|
+
/**
|
|
253
|
+
* Parse an email and check its format and domain.
|
|
254
|
+
* `deep: true` explicitly requests a metered deliverability check using included checks or enabled on-demand usage.
|
|
255
|
+
* Deep checks default to one attempt. An explicit retry count can repeat paid usage.
|
|
256
|
+
*/
|
|
246
257
|
email: (email, opts) => request(`/email/${enc(email)}`, deepQuery(opts), void 0, opts),
|
|
258
|
+
/** Check VAT format and checksum. `deep: true` requests a metered registry check where supported, with no automatic retries by default. */
|
|
247
259
|
vat: (number, opts) => request(`/vat/${enc(number)}`, {
|
|
248
260
|
country: opts?.country,
|
|
249
261
|
from: opts?.from,
|
|
250
262
|
...deepQuery(opts)
|
|
251
263
|
}, void 0, opts),
|
|
252
|
-
iban: (iban, opts) => request(`/iban/${enc(iban)}`, { country: opts?.country }, void 0, opts),
|
|
264
|
+
iban: (iban, opts) => request(`/iban/${enc(iban)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts),
|
|
253
265
|
npi: (npi, opts) => request(`/npi/${enc(npi)}`, deepQuery(opts), void 0, opts),
|
|
266
|
+
/** Parse a phone number and its formats. Pass country for national numbers when needed. Deep adds numbering-plan geography. */
|
|
254
267
|
phone: (number, opts) => request(`/phone/${enc(number)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts),
|
|
255
|
-
|
|
268
|
+
/** Request a metered carrier lookup. No automatic retries by default. */
|
|
269
|
+
carrier: (number, opts) => request(`/carrier/${enc(number)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts),
|
|
270
|
+
/** Request a metered caller-name lookup for a NANP number. No automatic retries by default. */
|
|
256
271
|
caller: (number, opts) => request(`/caller/${enc(number)}`, { country: opts?.country }, void 0, opts),
|
|
257
|
-
|
|
272
|
+
/** Look up phone status at the last check. Live means assigned and connected means reachable at that check. Cached results may be returned. Null means unconfirmed. Deep adds network diagnostics within the same metered lookup. No automatic retries by default. */
|
|
273
|
+
hlr: (number, opts) => request(`/hlr/${enc(number)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts),
|
|
274
|
+
/** Check whether a domain is registered. Deep adds registration dates, registrar, status and DNSSEC on paid plans. */
|
|
258
275
|
domain: (domain, opts) => request(`/domain/${enc(domain)}`, deepQuery(opts), void 0, opts),
|
|
259
276
|
asn: (asn, opts) => request(`/asn/${enc(asn)}`, void 0, void 0, opts),
|
|
260
277
|
mac: (mac, opts) => request(`/mac/${enc(mac)}`, void 0, void 0, opts),
|
|
278
|
+
/** Look up a 6-11 digit card prefix. Keep leading zeros in the input string. */
|
|
279
|
+
bin: (bin, opts) => request(`/bin/${enc(bin)}`, { deep: opts?.deep }, void 0, opts),
|
|
280
|
+
/** Parse a measurement or convert it to `to`. Without `to`, use its type's canonical unit. Invalid input is plain data with `valid: false`. */
|
|
281
|
+
measure: Object.assign(
|
|
282
|
+
(measure, opts) => request(`/measure/${enc(measure)}`, { to: opts?.to, locale: opts?.locale, system: opts?.system }, void 0, opts),
|
|
283
|
+
{
|
|
284
|
+
/** Discover reviewed units. Pass `unit` to find compatible conversion targets. */
|
|
285
|
+
units: (opts) => request("/measure/units", { q: opts?.query, type: opts?.type, unit: opts?.unit }, void 0, opts)
|
|
286
|
+
}
|
|
287
|
+
),
|
|
288
|
+
/** Look up DNS records with TTLs. Type selects the question and may include its CNAME chain. Pooled on every plan. */
|
|
289
|
+
dns: (domain, opts) => request(`/dns/${enc(domain)}`, { type: opts?.type }, void 0, opts),
|
|
261
290
|
mx: (domain, opts) => request(`/mx/${enc(domain)}`, void 0, void 0, opts),
|
|
262
291
|
useragent: (ua, opts) => request("/useragent", deepQuery(opts), { "User-Agent": ua }, opts),
|
|
263
292
|
vin: (vin, opts) => request(`/vin/${enc(vin)}`, deepQuery(opts), void 0, opts),
|
|
293
|
+
/** US NAICS 2022 definitions and hierarchy. */
|
|
294
|
+
naics: Object.assign(
|
|
295
|
+
(code, opts) => request(`/naics/${enc(code)}`, deepQuery(opts), void 0, opts),
|
|
296
|
+
{
|
|
297
|
+
search: (query, opts) => request("/naics", { q: query, limit: opts?.limit, ...deepQuery(opts) }, void 0, opts)
|
|
298
|
+
}
|
|
299
|
+
),
|
|
300
|
+
/** Look up the general US duty schedule line. Paid deep adds units and the special and other schedule columns. Add origin with deep to resolve country-specific measures. Without origin, schedule detail remains available and origin-dependent fields are null. A null effective rate is not a zero rate. */
|
|
264
301
|
tariff: Object.assign(
|
|
265
302
|
(code, opts) => request(`/tariff/${enc(code)}`, { origin: opts?.origin, ...deepQuery(opts) }, void 0, opts),
|
|
266
303
|
{
|
|
@@ -268,7 +305,7 @@ function parseAPI(apiKey, options = {}) {
|
|
|
268
305
|
}
|
|
269
306
|
),
|
|
270
307
|
currency: Object.assign(
|
|
271
|
-
(code, opts) => request(`/currency/${enc(code)}`,
|
|
308
|
+
(code, opts) => request(`/currency/${enc(code)}`, deepQuery(opts), void 0, opts),
|
|
272
309
|
{
|
|
273
310
|
rate: (base, quote, opts) => request(`/currency/${enc(base)}/${enc(quote)}`, {
|
|
274
311
|
date: opts?.date,
|
|
@@ -276,18 +313,25 @@ function parseAPI(apiKey, options = {}) {
|
|
|
276
313
|
}, void 0, opts)
|
|
277
314
|
}
|
|
278
315
|
),
|
|
279
|
-
language: (code, opts) => request(`/language/${enc(code)}`,
|
|
280
|
-
name: (name, opts) => request(`/name/${enc(name)}`,
|
|
316
|
+
language: (code, opts) => request(`/language/${enc(code)}`, deepQuery(opts), void 0, opts),
|
|
317
|
+
name: (name, opts) => request(`/name/${enc(name)}`, { country: opts?.country, ...deepQuery(opts) }, void 0, opts),
|
|
318
|
+
/** Current local time, UTC by default. With to, offsetless at is source wall time. */
|
|
319
|
+
time: Object.assign(
|
|
320
|
+
(timezone, opts) => request(timezone === void 0 ? "/time" : `/time/${enc(timezone)}`, { at: opts?.at, to: opts?.to, ...deepQuery(opts) }, void 0, opts),
|
|
321
|
+
{
|
|
322
|
+
at: (lat, lon, opts) => request("/time", { lat, lon, at: opts?.at, to: opts?.to, ...deepQuery(opts) }, void 0, opts)
|
|
323
|
+
}
|
|
324
|
+
),
|
|
281
325
|
timezone: Object.assign(
|
|
282
|
-
(id, opts) => request(`/timezone/${enc(id)}`, { at: opts?.at, to: opts?.to }, void 0, opts),
|
|
326
|
+
(id, opts) => request(`/timezone/${enc(id)}`, { at: opts?.at, to: opts?.to, ...deepQuery(opts) }, void 0, opts),
|
|
283
327
|
{
|
|
284
|
-
at: (lat, lon, opts) => request("/timezone", { lat, lon, at: opts?.at }, void 0, opts)
|
|
328
|
+
at: (lat, lon, opts) => request("/timezone", { lat, lon, at: opts?.at, ...deepQuery(opts) }, void 0, opts)
|
|
285
329
|
}
|
|
286
330
|
),
|
|
287
331
|
date: Object.assign(
|
|
288
|
-
(date, opts) => request(`/date/${enc(date)}`, { format: opts?.format, to: opts?.to }, void 0, opts),
|
|
332
|
+
(date, opts) => request(`/date/${enc(date)}`, { format: opts?.format, to: opts?.to, ...deepQuery(opts) }, void 0, opts),
|
|
289
333
|
{
|
|
290
|
-
today: (opts) => request("/date", { to: opts?.to }, void 0, opts)
|
|
334
|
+
today: (opts) => request("/date", { to: opts?.to, ...deepQuery(opts) }, void 0, opts)
|
|
291
335
|
}
|
|
292
336
|
),
|
|
293
337
|
holiday: Object.assign(
|
|
@@ -297,12 +341,14 @@ function parseAPI(apiKey, options = {}) {
|
|
|
297
341
|
}
|
|
298
342
|
),
|
|
299
343
|
elevation: (lat, lon, opts) => request("/elevation", { lat, lon }, void 0, opts),
|
|
344
|
+
/** Resolve the country, state, district and timezone at coordinates. Deep adds terrain and compact nearest-city context on every plan. The timezone ID stays in core. The nearest city is null when none is within 200 km. */
|
|
300
345
|
point: (lat, lon, opts) => request("/point", { lat, lon, ...deepQuery(opts) }, void 0, opts),
|
|
346
|
+
/** Get current conditions in metric and imperial units. Paid deep adds specialist current measurements, forecasts and related detail. With deep, date selects a past UTC day (YYYY-MM-DD) in deep.history alongside current conditions. Date alone does not request history. */
|
|
301
347
|
weather: (lat, lon, opts) => request("/weather", { lat, lon, date: opts?.date, ...deepQuery(opts) }, void 0, opts),
|
|
302
348
|
emoji: Object.assign(
|
|
303
|
-
(emoji, opts) => request(`/emoji/${enc(emoji)}`,
|
|
349
|
+
(emoji, opts) => request(`/emoji/${enc(emoji)}`, deepQuery(opts), void 0, opts),
|
|
304
350
|
{
|
|
305
|
-
search: (query, opts) => request("/emoji", { q: query, limit: opts?.limit }, void 0, opts)
|
|
351
|
+
search: (query, opts) => request("/emoji", { q: query, limit: opts?.limit, ...deepQuery(opts) }, void 0, opts)
|
|
306
352
|
}
|
|
307
353
|
)
|
|
308
354
|
};
|
|
@@ -312,3 +358,4 @@ function parseAPI(apiKey, options = {}) {
|
|
|
312
358
|
ParseAPIError,
|
|
313
359
|
parseAPI
|
|
314
360
|
});
|
|
361
|
+
/*! You found Dev. https://parseapi.com/dev */
|