@urbankitstudio/atlas 0.5.1 → 0.5.2

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.
Files changed (56) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +110 -110
  3. package/data/alabama.json +103 -103
  4. package/data/alaska.json +51 -51
  5. package/data/arizona.json +149 -148
  6. package/data/arkansas.json +143 -143
  7. package/data/california.json +435 -435
  8. package/data/colorado.json +150 -150
  9. package/data/connecticut.json +164 -164
  10. package/data/delaware.json +46 -46
  11. package/data/florida.json +455 -455
  12. package/data/georgia.json +176 -175
  13. package/data/hawaii.json +82 -82
  14. package/data/idaho.json +54 -54
  15. package/data/illinois.json +337 -337
  16. package/data/index.json +411 -411
  17. package/data/indiana.json +132 -132
  18. package/data/iowa.json +51 -51
  19. package/data/kansas.json +49 -49
  20. package/data/kentucky.json +52 -52
  21. package/data/louisiana.json +102 -102
  22. package/data/maine.json +138 -138
  23. package/data/maryland.json +94 -94
  24. package/data/massachusetts.json +78 -78
  25. package/data/michigan.json +92 -92
  26. package/data/minnesota.json +94 -94
  27. package/data/mississippi.json +98 -98
  28. package/data/missouri.json +99 -99
  29. package/data/montana.json +196 -196
  30. package/data/nebraska.json +137 -137
  31. package/data/nevada.json +98 -98
  32. package/data/new-hampshire.json +42 -42
  33. package/data/new-jersey.json +493 -493
  34. package/data/new-mexico.json +49 -49
  35. package/data/new-york.json +318 -318
  36. package/data/north-carolina.json +303 -303
  37. package/data/north-dakota.json +57 -57
  38. package/data/ohio.json +304 -304
  39. package/data/oklahoma.json +49 -49
  40. package/data/oregon.json +144 -144
  41. package/data/pennsylvania.json +86 -86
  42. package/data/rhode-island.json +25 -25
  43. package/data/south-carolina.json +101 -101
  44. package/data/south-dakota.json +58 -58
  45. package/data/tennessee.json +154 -154
  46. package/data/texas.json +430 -430
  47. package/data/utah.json +193 -193
  48. package/data/vermont.json +59 -59
  49. package/data/virginia.json +88 -88
  50. package/data/washington.json +183 -183
  51. package/data/west-virginia.json +172 -176
  52. package/data/wisconsin.json +374 -374
  53. package/data/wyoming.json +58 -58
  54. package/dist/index.cjs +40 -42
  55. package/dist/index.js +40 -42
  56. package/package.json +68 -68
package/data/wyoming.json CHANGED
@@ -1,58 +1,58 @@
1
- {
2
- "stateSlug": "wyoming",
3
- "stateName": "Wyoming",
4
- "stateAbbrev": "WY",
5
- "lastUpdated": "2026-06-20",
6
- "counties": [
7
- {
8
- "id": "wy-laramie",
9
- "state": "WY",
10
- "stateName": "Wyoming",
11
- "stateSlug": "wyoming",
12
- "county": "Laramie",
13
- "countySlug": "laramie-county",
14
- "countyFips": "56021",
15
- "hasPublicRest": true,
16
- "endpoints": [
17
- {
18
- "url": "https://maps.laramiecounty.com/arcgis/rest/services/Planning/SmartGovParcels/MapServer/1",
19
- "serviceType": "MapServer",
20
- "layerIndex": 1,
21
- "layerName": "SmartGovParcels",
22
- "supportsQuery": true,
23
- "corsEnabled": null,
24
- "searchFields": [
25
- { "name": "statepidn", "label": "State Parcel ID Number", "searchable": true },
26
- { "name": "accountno", "label": "Account Number", "searchable": true },
27
- { "name": "owner_name1", "label": "Owner Name 1", "searchable": true },
28
- { "name": "owner_name2", "label": "Owner Name 2", "searchable": false },
29
- { "name": "owner_address", "label": "Owner Address", "searchable": false },
30
- { "name": "owner_town", "label": "Owner Town", "searchable": false },
31
- { "name": "owner_state", "label": "Owner State", "searchable": false },
32
- { "name": "owner_zip", "label": "Owner ZIP", "searchable": false },
33
- { "name": "site_address1", "label": "Site Address", "searchable": true },
34
- { "name": "site_address2", "label": "Site Address 2", "searchable": false },
35
- { "name": "site_town", "label": "Site Town", "searchable": false },
36
- { "name": "site_state", "label": "Site State", "searchable": false },
37
- { "name": "site_zip", "label": "Site ZIP", "searchable": false },
38
- { "name": "trsec", "label": "Township/Range/Section", "searchable": false },
39
- { "name": "fema_zone", "label": "FEMA Flood Zone", "searchable": false },
40
- { "name": "latitude", "label": "Latitude", "searchable": false }
41
- ],
42
- "sampleQuery": "https://maps.laramiecounty.com/arcgis/rest/services/Planning/SmartGovParcels/MapServer/1/query?where=UPPER(owner_name1)+LIKE+UPPER('%25SMITH%25')&outFields=statepidn,owner_name1,owner_name2,owner_address,owner_town,site_address1,site_town&returnGeometry=false&f=json&resultRecordCount=10",
43
- "license": "public",
44
- "licenseUrl": "https://maps.laramiecounty.com/",
45
- "status": "live",
46
- "lastVerified": "2026-06-20",
47
- "verifiedBy": "automated"
48
- }
49
- ],
50
- "contact": {
51
- "department": "Laramie County GIS / Laramie County Planning and Development",
52
- "url": "https://www.laramiecounty.com/171/GIS",
53
- "email": null
54
- },
55
- "notes": "Laramie County WY (Cheyenne; county seat Cheyenne; state capital; FIPS 56021; most populous county in WY, pop. 100,000) provides parcel data via maps.laramiecounty.com. The Planning/SmartGovParcels/MapServer layer at layerIndex=1 (NOT layer 0) exposes 20 fields: objectid, statepidn (14-digit state parcel ID, e.g., '12600210000200'), accountno, fema_zone, trsec, site_address1/2, site_town, site_state, site_zip, owner_name1, owner_name2, owner_address, owner_town, owner_state, owner_zip, latitude, and shape fields. CRITICAL: use layerIndex=1 (the /1 suffix). Layer 0 is a different geometry layer. Owner search via UPPER(owner_name1) LIKE works well. Verified 2026-06-20: SMITH query returns Cheyenne-area addresses (e.g., owner_name1 'BAKER, KATHARINE M LIVING TR' at '261 ROAD 164' Pine Bluffs). Laramie County WY (FIPS 56021) must not be confused with the City of Laramie (Albany County WY). The county seat is Cheyenne, not Laramie city."
56
- }
57
- ]
58
- }
1
+ {
2
+ "stateSlug": "wyoming",
3
+ "stateName": "Wyoming",
4
+ "stateAbbrev": "WY",
5
+ "lastUpdated": "2026-06-20",
6
+ "counties": [
7
+ {
8
+ "id": "wy-laramie",
9
+ "state": "WY",
10
+ "stateName": "Wyoming",
11
+ "stateSlug": "wyoming",
12
+ "county": "Laramie",
13
+ "countySlug": "laramie-county",
14
+ "countyFips": "56021",
15
+ "hasPublicRest": true,
16
+ "endpoints": [
17
+ {
18
+ "url": "https://maps.laramiecounty.com/arcgis/rest/services/Planning/SmartGovParcels/MapServer/1",
19
+ "serviceType": "MapServer",
20
+ "layerIndex": 1,
21
+ "layerName": "SmartGovParcels",
22
+ "supportsQuery": true,
23
+ "corsEnabled": null,
24
+ "searchFields": [
25
+ { "name": "statepidn", "label": "State Parcel ID Number", "searchable": true },
26
+ { "name": "accountno", "label": "Account Number", "searchable": true },
27
+ { "name": "owner_name1", "label": "Owner Name 1", "searchable": true },
28
+ { "name": "owner_name2", "label": "Owner Name 2", "searchable": false },
29
+ { "name": "owner_address", "label": "Owner Address", "searchable": false },
30
+ { "name": "owner_town", "label": "Owner Town", "searchable": false },
31
+ { "name": "owner_state", "label": "Owner State", "searchable": false },
32
+ { "name": "owner_zip", "label": "Owner ZIP", "searchable": false },
33
+ { "name": "site_address1", "label": "Site Address", "searchable": true },
34
+ { "name": "site_address2", "label": "Site Address 2", "searchable": false },
35
+ { "name": "site_town", "label": "Site Town", "searchable": false },
36
+ { "name": "site_state", "label": "Site State", "searchable": false },
37
+ { "name": "site_zip", "label": "Site ZIP", "searchable": false },
38
+ { "name": "trsec", "label": "Township/Range/Section", "searchable": false },
39
+ { "name": "fema_zone", "label": "FEMA Flood Zone", "searchable": false },
40
+ { "name": "latitude", "label": "Latitude", "searchable": false }
41
+ ],
42
+ "sampleQuery": "https://maps.laramiecounty.com/arcgis/rest/services/Planning/SmartGovParcels/MapServer/1/query?where=UPPER(owner_name1)+LIKE+UPPER('%25SMITH%25')&outFields=statepidn,owner_name1,owner_name2,owner_address,owner_town,site_address1,site_town&returnGeometry=false&f=json&resultRecordCount=10",
43
+ "license": "public",
44
+ "licenseUrl": "https://maps.laramiecounty.com/",
45
+ "status": "live",
46
+ "lastVerified": "2026-06-20",
47
+ "verifiedBy": "automated"
48
+ }
49
+ ],
50
+ "contact": {
51
+ "department": "Laramie County GIS / Laramie County Planning and Development",
52
+ "url": "https://www.laramiecounty.com/171/GIS",
53
+ "email": null
54
+ },
55
+ "notes": "Laramie County WY (Cheyenne; county seat Cheyenne; state capital; FIPS 56021; most populous county in WY, pop. 100,000) provides parcel data via maps.laramiecounty.com. The Planning/SmartGovParcels/MapServer layer at layerIndex=1 (NOT layer 0) exposes 20 fields: objectid, statepidn (14-digit state parcel ID, e.g., '12600210000200'), accountno, fema_zone, trsec, site_address1/2, site_town, site_state, site_zip, owner_name1, owner_name2, owner_address, owner_town, owner_state, owner_zip, latitude, and shape fields. CRITICAL: use layerIndex=1 (the /1 suffix). Layer 0 is a different geometry layer. Owner search via UPPER(owner_name1) LIKE works well. Verified 2026-06-20: SMITH query returns Cheyenne-area addresses (e.g., owner_name1 'BAKER, KATHARINE M LIVING TR' at '261 ROAD 164' Pine Bluffs). Laramie County WY (FIPS 56021) must not be confused with the City of Laramie (Albany County WY). The county seat is Cheyenne, not Laramie city."
56
+ }
57
+ ]
58
+ }
package/dist/index.cjs CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  // data/index.json
4
4
  var data_default = {
5
- version: "0.5.1",
6
- lastUpdated: "2026-06-20",
5
+ version: "0.3.0",
6
+ lastUpdated: "2026-08-04",
7
7
  totals: {
8
8
  states: 50,
9
9
  counties: 155,
@@ -585,6 +585,7 @@ var arizona_default = {
585
585
  stateSlug: "arizona",
586
586
  county: "Maricopa",
587
587
  countySlug: "maricopa-county",
588
+ relatedPropertyCitySlug: "phoenix",
588
589
  countyFips: "04013",
589
590
  hasPublicRest: true,
590
591
  endpoints: [
@@ -2139,6 +2140,7 @@ var georgia_default = {
2139
2140
  stateSlug: "georgia",
2140
2141
  county: "Fulton",
2141
2142
  countySlug: "fulton-county",
2143
+ relatedPropertyCitySlug: "atlanta",
2142
2144
  countyFips: "13121",
2143
2145
  hasPublicRest: true,
2144
2146
  endpoints: [
@@ -3078,7 +3080,7 @@ var louisiana_default = {
3078
3080
  stateSlug: "louisiana",
3079
3081
  stateName: "Louisiana",
3080
3082
  stateAbbrev: "LA",
3081
- lastUpdated: "2026-05-15",
3083
+ lastUpdated: "2026-08-04",
3082
3084
  counties: [
3083
3085
  {
3084
3086
  id: "la-east-baton-rouge-parish",
@@ -3172,7 +3174,7 @@ var louisiana_default = {
3172
3174
  url: "https://gis.nola.gov/",
3173
3175
  email: null
3174
3176
  },
3175
- notes: "Orleans Parish (New Orleans, pop. 383,000) Property Information layer at index 15 of the apps/property3 composite MapServer. Note: the 'LandBase/Parcels' MapServer at gis.nola.gov only exposes GEOPIN (parcel geometry key, no attributes). For owner + address data, use apps/property3/MapServer/15 which is an assessor join. 20 fields confirmed: OBJECTID, BUILDING, UNIT, SITEADDRESS, OWNERNME1/2, PSTLADDRESS/CITY/STATE/ZIP5/ZIP4, USECD, PRPRTYDSCRP, PARCELID, TAXBILLID, LOT, SQUARE, BLOCK, PARID. New Orleans uses a Square/Lot system (not typical street address) for legal parcel identification. NOTE 2026-06-27: the liveness check 'fetch failed' was transient (metadata at /MapServer/15?f=json now returns 200). However, this ArcGIS Server 10.4 instance has two persistent query limitations: (1) LIKE/UPPER() queries return HTTP 400; (2) count-all queries (where=1=1&returnCountOnly=true) timeout >35s. PARCELID equality queries (where=PARCELID='...') return valid JSON structure. OWNERNME1 and SITEADDRESS marked searchable:false accordingly; sampleQuery changed to IS NOT NULL filter. For PARCELID-based lookups use the PARCELID or PARID fields. The countySlug 'orleans-parish' matches countySlugFromName('Orleans Parish') per atlas slugify rules."
3177
+ notes: "Orleans Parish's public parcel layer still serves metadata, but its attribute-query operation is currently failing on the county's ArcGIS server. Owner and address searches are unavailable while the county repairs the service; automatic probes continue to check for recovery. New Orleans uses Square/Lot identifiers for legal parcels. The city also publishes a weekly situs-and-geometry dataset on data.nola.gov, but it does not include owner names. An older 2018 parcel snapshot was not substituted because its ownership data is dated and the service was unstable during verification. LIVENESS 2026-08-04: the layer's metadata still loads, but EVERY query against it times out, including a bare returnCountOnly count. 161 consecutive failed checks and last_ok_at has never been set. This is a county-side outage, not a schema drift; there is nothing to fix on our side and the endpoint stays honestly degraded until New Orleans repairs it."
3176
3178
  }
3177
3179
  ]
3178
3180
  };
@@ -3889,7 +3891,7 @@ var montana_default = {
3889
3891
  stateSlug: "montana",
3890
3892
  stateName: "Montana",
3891
3893
  stateAbbrev: "MT",
3892
- lastUpdated: "2026-06-20",
3894
+ lastUpdated: "2026-08-04",
3893
3895
  counties: [
3894
3896
  {
3895
3897
  id: "mt-yellowstone",
@@ -3902,10 +3904,10 @@ var montana_default = {
3902
3904
  hasPublicRest: true,
3903
3905
  endpoints: [
3904
3906
  {
3905
- url: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0",
3907
+ url: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1",
3906
3908
  serviceType: "MapServer",
3907
- layerIndex: 0,
3908
- layerName: "Parcels",
3909
+ layerIndex: 1,
3910
+ layerName: "Montana Parcels",
3909
3911
  supportsQuery: true,
3910
3912
  corsEnabled: null,
3911
3913
  searchFields: [
@@ -3923,9 +3925,9 @@ var montana_default = {
3923
3925
  { name: "TotalValue", label: "Total Assessed Value", searchable: false },
3924
3926
  { name: "TaxYear", label: "Tax Year", searchable: false }
3925
3927
  ],
3926
- sampleQuery: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0/query?where=CountyName%3D'Yellowstone'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
3928
+ sampleQuery: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Yellowstone'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
3927
3929
  license: "public",
3928
- licenseUrl: "https://gisservicemt.gov/",
3930
+ licenseUrl: "https://gisservice.mt.gov/",
3929
3931
  status: "live",
3930
3932
  lastVerified: "2026-06-20",
3931
3933
  verifiedBy: "automated"
@@ -3949,10 +3951,10 @@ var montana_default = {
3949
3951
  hasPublicRest: true,
3950
3952
  endpoints: [
3951
3953
  {
3952
- url: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0",
3954
+ url: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1",
3953
3955
  serviceType: "MapServer",
3954
- layerIndex: 0,
3955
- layerName: "Parcels",
3956
+ layerIndex: 1,
3957
+ layerName: "Montana Parcels",
3956
3958
  supportsQuery: true,
3957
3959
  corsEnabled: null,
3958
3960
  searchFields: [
@@ -3970,9 +3972,9 @@ var montana_default = {
3970
3972
  { name: "TotalValue", label: "Total Assessed Value", searchable: false },
3971
3973
  { name: "TaxYear", label: "Tax Year", searchable: false }
3972
3974
  ],
3973
- sampleQuery: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0/query?where=CountyName%3D'Missoula'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
3975
+ sampleQuery: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Missoula'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
3974
3976
  license: "public",
3975
- licenseUrl: "https://gisservicemt.gov/",
3977
+ licenseUrl: "https://gisservice.mt.gov/",
3976
3978
  status: "live",
3977
3979
  lastVerified: "2026-06-20",
3978
3980
  verifiedBy: "automated"
@@ -3996,10 +3998,10 @@ var montana_default = {
3996
3998
  hasPublicRest: true,
3997
3999
  endpoints: [
3998
4000
  {
3999
- url: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0",
4001
+ url: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1",
4000
4002
  serviceType: "MapServer",
4001
- layerIndex: 0,
4002
- layerName: "Parcels",
4003
+ layerIndex: 1,
4004
+ layerName: "Montana Parcels",
4003
4005
  supportsQuery: true,
4004
4006
  corsEnabled: null,
4005
4007
  searchFields: [
@@ -4017,9 +4019,9 @@ var montana_default = {
4017
4019
  { name: "TotalValue", label: "Total Assessed Value", searchable: false },
4018
4020
  { name: "TaxYear", label: "Tax Year", searchable: false }
4019
4021
  ],
4020
- sampleQuery: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0/query?where=CountyName%3D'Cascade'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
4022
+ sampleQuery: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Cascade'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
4021
4023
  license: "public",
4022
- licenseUrl: "https://gisservicemt.gov/",
4024
+ licenseUrl: "https://gisservice.mt.gov/",
4023
4025
  status: "live",
4024
4026
  lastVerified: "2026-06-20",
4025
4027
  verifiedBy: "automated"
@@ -4043,10 +4045,10 @@ var montana_default = {
4043
4045
  hasPublicRest: true,
4044
4046
  endpoints: [
4045
4047
  {
4046
- url: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0",
4048
+ url: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1",
4047
4049
  serviceType: "MapServer",
4048
- layerIndex: 0,
4049
- layerName: "Parcels",
4050
+ layerIndex: 1,
4051
+ layerName: "Montana Parcels",
4050
4052
  supportsQuery: true,
4051
4053
  corsEnabled: null,
4052
4054
  searchFields: [
@@ -4064,9 +4066,9 @@ var montana_default = {
4064
4066
  { name: "TotalValue", label: "Total Assessed Value", searchable: false },
4065
4067
  { name: "TaxYear", label: "Tax Year", searchable: false }
4066
4068
  ],
4067
- sampleQuery: "https://gisservicemt.gov/arcgis/rest/services/MSDI_Framework/Parcels/MapServer/0/query?where=CountyName%3D'Flathead'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
4069
+ sampleQuery: "https://gisservice.mt.gov/arcgis/rest/services/msdi_cadastral_map_v1/MapServer/1/query?where=CountyName%3D'Flathead'+AND+UPPER(OwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=PARCELID,OwnerName,AddressLine1,CityStateZip,CountyName&returnGeometry=false&f=json&resultRecordCount=10",
4068
4070
  license: "public",
4069
- licenseUrl: "https://gisservicemt.gov/",
4071
+ licenseUrl: "https://gisservice.mt.gov/",
4070
4072
  status: "live",
4071
4073
  lastVerified: "2026-06-20",
4072
4074
  verifiedBy: "automated"
@@ -6320,7 +6322,7 @@ var south_dakota_default = {
6320
6322
  stateSlug: "south-dakota",
6321
6323
  stateName: "South Dakota",
6322
6324
  stateAbbrev: "SD",
6323
- lastUpdated: "2026-06-20",
6325
+ lastUpdated: "2026-08-04",
6324
6326
  counties: [
6325
6327
  {
6326
6328
  id: "sd-minnehaha",
@@ -6333,7 +6335,7 @@ var south_dakota_default = {
6333
6335
  hasPublicRest: true,
6334
6336
  endpoints: [
6335
6337
  {
6336
- url: "https://gis.minnehahacounty.org/minnemap/rest/services/Parcels/MapServer/0",
6338
+ url: "https://gis.minnehahacounty.gov/minnemap/rest/services/Parcels/MapServer/0",
6337
6339
  serviceType: "MapServer",
6338
6340
  layerIndex: 0,
6339
6341
  layerName: "Parcels",
@@ -6357,9 +6359,9 @@ var south_dakota_default = {
6357
6359
  { name: "TRACT", label: "Tract", searchable: false },
6358
6360
  { name: "SUBDIVISION", label: "Subdivision", searchable: false }
6359
6361
  ],
6360
- sampleQuery: "https://gis.minnehahacounty.org/minnemap/rest/services/Parcels/MapServer/0/query?where=UPPER(MRTNM1)+LIKE+UPPER('%25SMITH%25')&outFields=TAG,MRTNM1,MRTNM2,MRTCTY,FULL_ADDRESS&returnGeometry=false&f=json&resultRecordCount=10",
6362
+ sampleQuery: "https://gis.minnehahacounty.gov/minnemap/rest/services/Parcels/MapServer/0/query?where=UPPER(MRTNM1)+LIKE+UPPER('%25SMITH%25')&outFields=TAG,MRTNM1,MRTNM2,MRTCTY,FULL_ADDRESS&returnGeometry=false&f=json&resultRecordCount=10",
6361
6363
  license: "public",
6362
- licenseUrl: "https://gis.minnehahacounty.org/",
6364
+ licenseUrl: "https://gis.minnehahacounty.gov/",
6363
6365
  status: "live",
6364
6366
  lastVerified: "2026-06-20",
6365
6367
  verifiedBy: "automated"
@@ -6370,7 +6372,7 @@ var south_dakota_default = {
6370
6372
  url: "https://www.minnehahacounty.org/dept/eq/eq.php",
6371
6373
  email: null
6372
6374
  },
6373
- notes: "Minnehaha County SD (Sioux Falls metro; county seat Sioux Falls; FIPS 46099; most populous county in SD, pop. 210,000) provides parcel data via gis.minnehahacounty.org. The Parcels/MapServer/0 layer exposes 20 fields: OBJECTID, FULL_ADDRESS, TAG (parcel ID), MAP_ID, MRRDID, MRTNM1 (owner name 1), MRTNM2 (owner name 2), MRTCTY (owner city), MRTSTATE, MRTZPC (ZIP), MRTZPC2, NWLOCN, NWPRED, NWLOCS (street name), NWSTYP, NWPOSD, LOT, BLOCK, TRACT, SUBDIVISION. Owner search via UPPER(MRTNM1) LIKE on MRTNM1. To get both owners, also query MRTNM2. Verified 2026-06-20: SMITH query returns Sioux Falls addresses. Minnehaha County SD (FIPS 46099) must not be confused with Minnehaha County in any other state."
6375
+ notes: "Minnehaha County SD (Sioux Falls metro; county seat Sioux Falls; FIPS 46099; most populous county in SD, pop. 210,000) provides parcel data via gis.minnehahacounty.gov. The Parcels/MapServer/0 layer exposes 20 fields: OBJECTID, FULL_ADDRESS, TAG (parcel ID), MAP_ID, MRRDID, MRTNM1 (owner name 1), MRTNM2 (owner name 2), MRTCTY (owner city), MRTSTATE, MRTZPC (ZIP), MRTZPC2, NWLOCN, NWPRED, NWLOCS (street name), NWSTYP, NWPOSD, LOT, BLOCK, TRACT, SUBDIVISION. Owner search via UPPER(MRTNM1) LIKE on MRTNM1. To get both owners, also query MRTNM2. Verified 2026-06-20: SMITH query returns Sioux Falls addresses. Minnehaha County SD (FIPS 46099) must not be confused with Minnehaha County in any other state."
6374
6376
  }
6375
6377
  ]
6376
6378
  };
@@ -6483,7 +6485,7 @@ var tennessee_default = {
6483
6485
  url: "https://www.shelbycountytn.gov/467/REGIS-Regional-GIS",
6484
6486
  email: null
6485
6487
  },
6486
- notes: "Shelby County (Memphis and suburbs, pop. 934,000) hosts parcel data through ReGIS (Regional Geographic Information Systems), a multi-jurisdictional GIS consortium established by the Shelby County Commission in 2004. The CurrentParcels MapServer at scgis.shelbycountytn.gov exposes 47 confirmed fields. Parcel identifiers: PARCELID (primary display key) and PARID (the CAMA account ID used by the Shelby County Assessor of Property). Owner field is OWNER; OWNER_EXT holds overflow text. Mailing address is split across OWN_ADRNO, ADRPREDIR, ADRSTR, ADRSUF, ADRPOSTDIR for the street component, plus OWN_CITY, OWN_STATE, OWN_ZIP/ZIP4; also available concatenated as OWN_ADDR1/2/3. The MUNI field identifies the municipality -- Memphis, Bartlett, Collierville, Germantown, Lakeland, Millington, or blank for unincorporated Shelby County. That distinction carries real workflow consequences: Memphis's Division of Planning handles incorporated parcels, while the Shelby County Land Use Control Board handles unincorporated ones. Verified 2026-05-15: SMITH returns results from Germantown, Arlington, and unincorporated areas. Last countywide reappraisal was 2025; next scheduled 2029. LEGACY TLS (first documented 2026-06-06, confirmed 2026-06-27): scgis.shelbycountytn.gov requires legacy TLS renegotiation (UNSAFE_LEGACY_RENEGOTIATION). Modern runtimes (Node.js 18+, undici fetch, Python 3.10+ ssl, standard curl) reject the handshake; curl --legacy-server-connect or OpenSSL OP_LEGACY_SERVER_CONNECT succeeds. The endpoint itself is live (353,448 parcels). The atlas liveness check will always flag this endpoint FAIL because Node's native fetch rejects the TLS handshake. This is expected behavior, NOT a server outage. FIX NEEDED (flagged for lead): add a narrow per-host legacy-TLS fetch path in atlas-liveness-check.mjs and in the server-side parcel fetch for this specific host. Weakening TLS globally is not an option."
6488
+ notes: "Shelby County (Memphis and suburbs, pop. 934,000) hosts parcel data through ReGIS (Regional Geographic Information Systems), a multi-jurisdictional GIS consortium established by the Shelby County Commission in 2004. The CurrentParcels MapServer at scgis.shelbycountytn.gov exposes 47 confirmed fields. Parcel identifiers: PARCELID (primary display key) and PARID (the CAMA account ID used by the Shelby County Assessor of Property). Owner field is OWNER; OWNER_EXT holds overflow text. Mailing address is split across OWN_ADRNO, ADRPREDIR, ADRSTR, ADRSUF, ADRPOSTDIR for the street component, plus OWN_CITY, OWN_STATE, OWN_ZIP/ZIP4; also available concatenated as OWN_ADDR1/2/3. The MUNI field identifies the municipality -- Memphis, Bartlett, Collierville, Germantown, Lakeland, Millington, or blank for unincorporated Shelby County. That distinction carries real workflow consequences: Memphis's Division of Planning handles incorporated parcels, while the Shelby County Land Use Control Board handles unincorporated ones. Verified 2026-05-15: SMITH returns results from Germantown, Arlington, and unincorporated areas. Last countywide reappraisal was 2025; next scheduled 2029. LEGACY TLS (first documented 2026-06-06, confirmed 2026-06-27): scgis.shelbycountytn.gov requires legacy TLS renegotiation (UNSAFE_LEGACY_RENEGOTIATION). Modern runtimes (Node.js 18+, undici fetch, Python 3.10+ ssl, standard curl) reject the handshake; curl --legacy-server-connect or OpenSSL OP_LEGACY_SERVER_CONNECT succeeds. The endpoint itself is live (353,448 parcels). RESOLVED (2026-07-21): the canonical liveness prober (api/cron/liveness.ts) and the server-side parcel fetch (api/_lib/atlas-resilient-fetch.ts) both use a narrow legacy-TLS path scoped to this hostname alone, so the endpoint probes and fetches correctly; global TLS behavior is unchanged."
6487
6489
  },
6488
6490
  {
6489
6491
  id: "tn-hamilton",
@@ -7222,7 +7224,7 @@ var virginia_default = {
7222
7224
  stateSlug: "virginia",
7223
7225
  stateName: "Virginia",
7224
7226
  stateAbbrev: "VA",
7225
- lastUpdated: "2026-06-20",
7227
+ lastUpdated: "2026-08-04",
7226
7228
  counties: [
7227
7229
  {
7228
7230
  id: "va-fairfax",
@@ -7302,7 +7304,7 @@ var virginia_default = {
7302
7304
  url: "https://www.pwcva.gov/department/geographic-information-systems-gis",
7303
7305
  email: null
7304
7306
  },
7305
- notes: "Prince William County (Northern Virginia, pop. ~490,000; county seat unincorporated, courts in Manassas) publishes an Open Data parcel MapServer at gisweb.pwcva.gov (note the host is gisweb.pwcva.gov, NOT pwcgov.org). Layer 0 exposes 49 fields and -- unlike neighboring Fairfax County -- includes owner name directly: CAMA_OWNER_CUR (current owner from the CAMA system) and CAMA_DEEDOWNER (deed owner). Parcel identifier is GPIN, a hyphenated geographic id (e.g. '7201-09-8851'). Site address is split across ST_NO / ST_NAME / ST_TYPE / CITY / ZIP. Verified 2026-06-20: 159,174 parcels; UPPER(CAMA_OWNER_CUR) LIKE '%SMITH%' returns real owners with Haymarket/Manassas-area addresses and ZIPs. IMPORTANT: this entry covers Prince William COUNTY only. The independent cities of Manassas (FIPS 51683) and Manassas Park (FIPS 51685) sit within the county's geographic bounds but are separate Census FIPS jurisdictions, governed and assessed independently. For authoritative assessment records use the PWC Real Estate Assessments office."
7307
+ notes: "Prince William County (Northern Virginia, pop. ~490,000; county seat unincorporated, courts in Manassas) publishes an Open Data parcel MapServer at gisweb.pwcva.gov (note the host is gisweb.pwcva.gov, NOT pwcgov.org). Layer 0 exposes 49 fields and -- unlike neighboring Fairfax County -- includes owner name directly: CAMA_OWNER_CUR (current owner from the CAMA system) and CAMA_DEEDOWNER (deed owner). Parcel identifier is GPIN, a hyphenated geographic id (e.g. '7201-09-8851'). Site address is split across ST_NO / ST_NAME / ST_TYPE / CITY / ZIP. Verified 2026-06-20: 159,174 parcels; UPPER(CAMA_OWNER_CUR) LIKE '%SMITH%' returns real owners with Haymarket/Manassas-area addresses and ZIPs. IMPORTANT: this entry covers Prince William COUNTY only. The independent cities of Manassas (FIPS 51683) and Manassas Park (FIPS 51685) sit within the county's geographic bounds but are separate Census FIPS jurisdictions, governed and assessed independently. For authoritative assessment records use the PWC Real Estate Assessments office. LIVENESS 2026-08-04: answers a home-network probe in ~2.6s with 10 correct parcel rows, but exceeds even the raised 15s host budget from the Vercel probe region on 112 consecutive checks. That pattern reads as datacenter-IP throttling rather than a slow server, so raising the budget further would risk the 60s shard ceiling for no gain. Stays honestly degraded."
7306
7308
  }
7307
7309
  ]
7308
7310
  };
@@ -7497,7 +7499,7 @@ var west_virginia_default = {
7497
7499
  stateSlug: "west-virginia",
7498
7500
  stateName: "West Virginia",
7499
7501
  stateAbbrev: "WV",
7500
- lastUpdated: "2026-06-20",
7502
+ lastUpdated: "2026-08-04",
7501
7503
  counties: [
7502
7504
  {
7503
7505
  id: "wv-kanawha",
@@ -7523,8 +7525,7 @@ var west_virginia_default = {
7523
7525
  { name: "FullOwnerAddress", label: "Owner Mailing Address", searchable: false },
7524
7526
  { name: "FullLegalDescription", label: "Legal Description", searchable: false },
7525
7527
  { name: "CountyID", label: "County ID string ('20' = Kanawha)", searchable: false },
7526
- { name: "GISPID", label: "GIS Parcel ID", searchable: false },
7527
- { name: "Acres_C", label: "Calculated Acres", searchable: false }
7528
+ { name: "GISPID", label: "GIS Parcel ID", searchable: false }
7528
7529
  ],
7529
7530
  sampleQuery: "https://services.wvgis.wvu.edu/arcgis/rest/services/Planning_Cadastre/WV_Parcels/MapServer/0/query?where=CountyID%3D'20'+AND+UPPER(FullOwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=CleanParcelID,FullOwnerName,FullPhysicalAddress,FullOwnerAddress,CountyID&returnGeometry=false&f=json&resultRecordCount=10",
7530
7531
  license: "public",
@@ -7565,8 +7566,7 @@ var west_virginia_default = {
7565
7566
  { name: "FullOwnerAddress", label: "Owner Mailing Address", searchable: false },
7566
7567
  { name: "FullLegalDescription", label: "Legal Description", searchable: false },
7567
7568
  { name: "CountyID", label: "County ID string ('31' = Monongalia)", searchable: false },
7568
- { name: "GISPID", label: "GIS Parcel ID", searchable: false },
7569
- { name: "Acres_C", label: "Calculated Acres", searchable: false }
7569
+ { name: "GISPID", label: "GIS Parcel ID", searchable: false }
7570
7570
  ],
7571
7571
  sampleQuery: "https://services.wvgis.wvu.edu/arcgis/rest/services/Planning_Cadastre/WV_Parcels/MapServer/0/query?where=CountyID%3D'31'+AND+UPPER(FullOwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=CleanParcelID,FullOwnerName,FullPhysicalAddress,FullOwnerAddress,CountyID&returnGeometry=false&f=json&resultRecordCount=10",
7572
7572
  license: "public",
@@ -7607,8 +7607,7 @@ var west_virginia_default = {
7607
7607
  { name: "FullOwnerAddress", label: "Owner Mailing Address", searchable: false },
7608
7608
  { name: "FullLegalDescription", label: "Legal Description", searchable: false },
7609
7609
  { name: "CountyID", label: "County ID string ('40' = Raleigh)", searchable: false },
7610
- { name: "GISPID", label: "GIS Parcel ID", searchable: false },
7611
- { name: "Acres_C", label: "Calculated Acres", searchable: false }
7610
+ { name: "GISPID", label: "GIS Parcel ID", searchable: false }
7612
7611
  ],
7613
7612
  sampleQuery: "https://services.wvgis.wvu.edu/arcgis/rest/services/Planning_Cadastre/WV_Parcels/MapServer/0/query?where=CountyID%3D'40'+AND+UPPER(FullOwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=CleanParcelID,FullOwnerName,FullPhysicalAddress,FullOwnerAddress,CountyID&returnGeometry=false&f=json&resultRecordCount=10",
7614
7613
  license: "public",
@@ -7649,8 +7648,7 @@ var west_virginia_default = {
7649
7648
  { name: "FullOwnerAddress", label: "Owner Mailing Address", searchable: false },
7650
7649
  { name: "FullLegalDescription", label: "Legal Description", searchable: false },
7651
7650
  { name: "CountyID", label: "County ID string ('06' = Cabell)", searchable: false },
7652
- { name: "GISPID", label: "GIS Parcel ID", searchable: false },
7653
- { name: "Acres_C", label: "Calculated Acres", searchable: false }
7651
+ { name: "GISPID", label: "GIS Parcel ID", searchable: false }
7654
7652
  ],
7655
7653
  sampleQuery: "https://services.wvgis.wvu.edu/arcgis/rest/services/Planning_Cadastre/WV_Parcels/MapServer/0/query?where=CountyID%3D'06'+AND+UPPER(FullOwnerName)+LIKE+UPPER('%25SMITH%25')&outFields=CleanParcelID,FullOwnerName,FullPhysicalAddress,FullOwnerAddress,CountyID&returnGeometry=false&f=json&resultRecordCount=10",
7656
7654
  license: "public",