@urbankitstudio/atlas 0.5.2 → 0.5.3
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 +36 -0
- package/dist/index.cjs +4 -0
- package/dist/index.d.cts +26 -1
- package/dist/index.d.ts +26 -1
- package/dist/index.js +4 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -92,6 +92,42 @@ atlas.totals; // { states, counties, endpoints }
|
|
|
92
92
|
atlas.byStateSlug; // Map<stateSlug, StateFile>
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
+
## `status` is a publish-time claim, not a live signal
|
|
96
|
+
|
|
97
|
+
This package ships static JSON and makes no network calls, so `status` and
|
|
98
|
+
`lastVerified` on every endpoint describe what was true **when the version you
|
|
99
|
+
installed was published**. `status: "live"` means a check passed before publish —
|
|
100
|
+
not that the endpoint is up right now. A county can go down the day after a
|
|
101
|
+
release and every installed copy keeps saying `"live"` until the next one.
|
|
102
|
+
|
|
103
|
+
The distinction is not hypothetical: on 2026-08-04 a county was being served as
|
|
104
|
+
`"live"` from its registry entry while the liveness probe had it down that same
|
|
105
|
+
afternoon.
|
|
106
|
+
|
|
107
|
+
For the current answer, ask the health endpoint — no API key, refreshed every
|
|
108
|
+
two hours:
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
import { LIVE_STATUS_URL } from "@urbankitstudio/atlas";
|
|
112
|
+
|
|
113
|
+
const res = await fetch(`${LIVE_STATUS_URL}?fips=17089`);
|
|
114
|
+
const health = await res.json();
|
|
115
|
+
// { ok: true, found: true, county_fips: "17089",
|
|
116
|
+
// status: "ok" | "degraded" | "down" | "unknown",
|
|
117
|
+
// consecutive_failures, last_ok_at, checked_at }
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Two cases to handle rather than ignore:
|
|
121
|
+
|
|
122
|
+
- **`found: false`** means no observation exists — the county may be untracked or
|
|
123
|
+
never probed. It is *not* a statement that the endpoint is healthy.
|
|
124
|
+
- **A `503`** means the health store itself was unreachable. Also not a health
|
|
125
|
+
claim.
|
|
126
|
+
|
|
127
|
+
Treat both as *unknown*. Neither should render as "up".
|
|
128
|
+
|
|
129
|
+
Omit `?fips=` to get every tracked county in one call.
|
|
130
|
+
|
|
95
131
|
## Coverage today
|
|
96
132
|
|
|
97
133
|
The atlas currently bundles **155 counties across all 50 US states**, covering the largest counties in each. Call `listStates()` to enumerate the full set; every state is now populated with at least one verified county endpoint.
|
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
// src/types.ts
|
|
4
|
+
var LIVE_STATUS_URL = "https://urbankitstudio.com/api/atlas/status";
|
|
5
|
+
|
|
3
6
|
// data/index.json
|
|
4
7
|
var data_default = {
|
|
5
8
|
version: "0.3.0",
|
|
@@ -8225,6 +8228,7 @@ function countyPath(stateSlug, countySlug) {
|
|
|
8225
8228
|
return `/parcel-atlas/${stateSlug}/${countySlug}`;
|
|
8226
8229
|
}
|
|
8227
8230
|
|
|
8231
|
+
exports.LIVE_STATUS_URL = LIVE_STATUS_URL;
|
|
8228
8232
|
exports.atlas = atlas;
|
|
8229
8233
|
exports.atlasIndex = atlasIndex;
|
|
8230
8234
|
exports.buildParcelLookupDeepLink = buildParcelLookupDeepLink;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,29 @@
|
|
|
1
1
|
type ServiceType = "FeatureServer" | "MapServer";
|
|
2
2
|
type LicenseType = "public" | "open-data" | "restricted" | "unknown";
|
|
3
|
+
/**
|
|
4
|
+
* The registry's curation stamp for an endpoint, AS OF THE MOMENT THIS PACKAGE
|
|
5
|
+
* WAS PUBLISHED. It is not a live signal and cannot be — this package ships
|
|
6
|
+
* static JSON and makes no network calls.
|
|
7
|
+
*
|
|
8
|
+
* So `"live"` here means "a check passed before publish", not "this endpoint is
|
|
9
|
+
* up right now". A county can go down the day after a release and every
|
|
10
|
+
* installed copy will keep reporting `"live"` until the next one.
|
|
11
|
+
*
|
|
12
|
+
* For the current answer, query the public health endpoint, which reports what
|
|
13
|
+
* the liveness probe last observed (every two hours) and requires no API key:
|
|
14
|
+
*
|
|
15
|
+
* GET https://urbankitstudio.com/api/atlas/status?fips=17089
|
|
16
|
+
*
|
|
17
|
+
* A `found: false` there means no observation exists — which is not the same as
|
|
18
|
+
* healthy. See LIVE_STATUS_URL below.
|
|
19
|
+
*/
|
|
3
20
|
type EndpointStatus = "live" | "stale" | "unreachable" | "unverified";
|
|
4
21
|
type VerifiedBy = "manual" | "arcgis-hub-seed" | "automated";
|
|
22
|
+
/**
|
|
23
|
+
* Where to ask whether an endpoint is actually up right now. Keyless.
|
|
24
|
+
* Omit the query string for every tracked county.
|
|
25
|
+
*/
|
|
26
|
+
declare const LIVE_STATUS_URL = "https://urbankitstudio.com/api/atlas/status";
|
|
5
27
|
interface SearchField {
|
|
6
28
|
name: string;
|
|
7
29
|
label: string;
|
|
@@ -18,7 +40,10 @@ interface EndpointRecord {
|
|
|
18
40
|
sampleQuery: string | null;
|
|
19
41
|
license: LicenseType;
|
|
20
42
|
licenseUrl: string | null;
|
|
43
|
+
/** Publish-time claim, NOT live. See {@link EndpointStatus}. */
|
|
21
44
|
status: EndpointStatus;
|
|
45
|
+
/** ISO date this entry was last verified before publish — a human curation
|
|
46
|
+
* date, not a probe result, and always at least as old as this release. */
|
|
22
47
|
lastVerified: string;
|
|
23
48
|
verifiedBy: VerifiedBy;
|
|
24
49
|
}
|
|
@@ -121,4 +146,4 @@ interface Atlas {
|
|
|
121
146
|
}
|
|
122
147
|
declare const atlas: Atlas;
|
|
123
148
|
|
|
124
|
-
export { type Atlas, type AtlasIndex, type ContactInfo, type CountyRecord, type EndpointRecord, type EndpointStatus, type LicenseType, type SearchField, type ServiceType, type StateFile, type StateIndexEntry, type VerifiedBy, atlas, atlasIndex, buildParcelLookupDeepLink, countyPath, countySlugFromName, findCounty, findCountyByFips, findState, listCountiesByState, listStates, slugify, statePath };
|
|
149
|
+
export { type Atlas, type AtlasIndex, type ContactInfo, type CountyRecord, type EndpointRecord, type EndpointStatus, LIVE_STATUS_URL, type LicenseType, type SearchField, type ServiceType, type StateFile, type StateIndexEntry, type VerifiedBy, atlas, atlasIndex, buildParcelLookupDeepLink, countyPath, countySlugFromName, findCounty, findCountyByFips, findState, listCountiesByState, listStates, slugify, statePath };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,29 @@
|
|
|
1
1
|
type ServiceType = "FeatureServer" | "MapServer";
|
|
2
2
|
type LicenseType = "public" | "open-data" | "restricted" | "unknown";
|
|
3
|
+
/**
|
|
4
|
+
* The registry's curation stamp for an endpoint, AS OF THE MOMENT THIS PACKAGE
|
|
5
|
+
* WAS PUBLISHED. It is not a live signal and cannot be — this package ships
|
|
6
|
+
* static JSON and makes no network calls.
|
|
7
|
+
*
|
|
8
|
+
* So `"live"` here means "a check passed before publish", not "this endpoint is
|
|
9
|
+
* up right now". A county can go down the day after a release and every
|
|
10
|
+
* installed copy will keep reporting `"live"` until the next one.
|
|
11
|
+
*
|
|
12
|
+
* For the current answer, query the public health endpoint, which reports what
|
|
13
|
+
* the liveness probe last observed (every two hours) and requires no API key:
|
|
14
|
+
*
|
|
15
|
+
* GET https://urbankitstudio.com/api/atlas/status?fips=17089
|
|
16
|
+
*
|
|
17
|
+
* A `found: false` there means no observation exists — which is not the same as
|
|
18
|
+
* healthy. See LIVE_STATUS_URL below.
|
|
19
|
+
*/
|
|
3
20
|
type EndpointStatus = "live" | "stale" | "unreachable" | "unverified";
|
|
4
21
|
type VerifiedBy = "manual" | "arcgis-hub-seed" | "automated";
|
|
22
|
+
/**
|
|
23
|
+
* Where to ask whether an endpoint is actually up right now. Keyless.
|
|
24
|
+
* Omit the query string for every tracked county.
|
|
25
|
+
*/
|
|
26
|
+
declare const LIVE_STATUS_URL = "https://urbankitstudio.com/api/atlas/status";
|
|
5
27
|
interface SearchField {
|
|
6
28
|
name: string;
|
|
7
29
|
label: string;
|
|
@@ -18,7 +40,10 @@ interface EndpointRecord {
|
|
|
18
40
|
sampleQuery: string | null;
|
|
19
41
|
license: LicenseType;
|
|
20
42
|
licenseUrl: string | null;
|
|
43
|
+
/** Publish-time claim, NOT live. See {@link EndpointStatus}. */
|
|
21
44
|
status: EndpointStatus;
|
|
45
|
+
/** ISO date this entry was last verified before publish — a human curation
|
|
46
|
+
* date, not a probe result, and always at least as old as this release. */
|
|
22
47
|
lastVerified: string;
|
|
23
48
|
verifiedBy: VerifiedBy;
|
|
24
49
|
}
|
|
@@ -121,4 +146,4 @@ interface Atlas {
|
|
|
121
146
|
}
|
|
122
147
|
declare const atlas: Atlas;
|
|
123
148
|
|
|
124
|
-
export { type Atlas, type AtlasIndex, type ContactInfo, type CountyRecord, type EndpointRecord, type EndpointStatus, type LicenseType, type SearchField, type ServiceType, type StateFile, type StateIndexEntry, type VerifiedBy, atlas, atlasIndex, buildParcelLookupDeepLink, countyPath, countySlugFromName, findCounty, findCountyByFips, findState, listCountiesByState, listStates, slugify, statePath };
|
|
149
|
+
export { type Atlas, type AtlasIndex, type ContactInfo, type CountyRecord, type EndpointRecord, type EndpointStatus, LIVE_STATUS_URL, type LicenseType, type SearchField, type ServiceType, type StateFile, type StateIndexEntry, type VerifiedBy, atlas, atlasIndex, buildParcelLookupDeepLink, countyPath, countySlugFromName, findCounty, findCountyByFips, findState, listCountiesByState, listStates, slugify, statePath };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// src/types.ts
|
|
2
|
+
var LIVE_STATUS_URL = "https://urbankitstudio.com/api/atlas/status";
|
|
3
|
+
|
|
1
4
|
// data/index.json
|
|
2
5
|
var data_default = {
|
|
3
6
|
version: "0.3.0",
|
|
@@ -8223,4 +8226,4 @@ function countyPath(stateSlug, countySlug) {
|
|
|
8223
8226
|
return `/parcel-atlas/${stateSlug}/${countySlug}`;
|
|
8224
8227
|
}
|
|
8225
8228
|
|
|
8226
|
-
export { atlas, atlasIndex, buildParcelLookupDeepLink, countyPath, countySlugFromName, findCounty, findCountyByFips, findState, listCountiesByState, listStates, slugify, statePath };
|
|
8229
|
+
export { LIVE_STATUS_URL, atlas, atlasIndex, buildParcelLookupDeepLink, countyPath, countySlugFromName, findCounty, findCountyByFips, findState, listCountiesByState, listStates, slugify, statePath };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@urbankitstudio/atlas",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "JS SDK for the UrbanKit County Parcel REST API Atlas — public ArcGIS REST endpoints for US county parcel data, with searchable field metadata, sample queries, and license info.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"parcel",
|