quantaroute-geocoding 1.0.4 β†’ 1.1.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 CHANGED
@@ -4,13 +4,19 @@ A **unique** Node.js/TypeScript library for geocoding addresses to DigiPin codes
4
4
 
5
5
  ## πŸš€ Unique Features
6
6
 
7
+ ### πŸ”’ **Enterprise-Grade Security** - *Runtime Protection & Code Security*
8
+ - πŸ›‘οΈ **RASP Protection**: Runtime Application Self-Protection with anti-debugging, integrity checks, and behavior monitoring
9
+ - πŸ” **Secure API Key Storage**: Encrypted storage with Symbol-based properties
10
+ - πŸ” **Request Signing**: HMAC-SHA256 signatures prevent tampering
11
+ - πŸ”’ **Code Obfuscation**: Production builds are automatically obfuscated
12
+
7
13
  ### 🎯 **NEW: Location Lookup API** - *Service that even government doesn't provide!*
8
14
  - πŸ—ΊοΈ **Administrative Boundary Lookup**: Get state, division, locality, pincode, district, delivery status from coordinates
9
- - πŸ“Š **Population Density Data**: Mean, min, and max population density from Meta's 30-meter gridded data
10
- - πŸ“ **36,000+ Postal Boundaries**: Complete coverage across India
15
+ - πŸ“ **19,000+ Pincode Boundaries (with 154,000 post offices)**: Complete coverage across India
11
16
  - ⚑ **Sub-100ms Response**: Cached responses with database fallback
12
17
  - 🎯 **Government-Level Precision**: Accuracy that official services don't offer
13
18
  - πŸ”„ **Batch Processing**: Up to 100 locations per request
19
+ - πŸ“Š **Population Density Data**: Mean, min, and max population density from Meta's 30-meter gridded data. [Deprecated]
14
20
 
15
21
  ### 🌟 **Core Features**
16
22
  - 🌐 **Online API Integration**: Full access to QuantaRoute Geocoding API
@@ -53,7 +59,6 @@ console.log(`Division: ${result.administrative_info.division}`); // New
53
59
  console.log(`Locality: ${result.administrative_info.locality}`); // Nirman Bhawan SO
54
60
  console.log(`District: ${result.administrative_info.district}`); // New Delhi
55
61
  console.log(`Delivery: ${result.administrative_info.delivery}`); // Delivery
56
- console.log(`Pop Density: ${result.administrative_info.mean_population_density}`); // 11234.56
57
62
  console.log(`DigiPin: ${result.digipin}`); // 39J-438-TJC7
58
63
  console.log(`Response Time: ${result.response_time_ms}ms`); // <100ms
59
64
 
@@ -65,7 +70,7 @@ console.log(`Division: ${digipinResult.administrative_info.division}`);
65
70
  console.log(`Locality: ${digipinResult.administrative_info.locality}`);
66
71
  console.log(`District: ${digipinResult.administrative_info.district}`);
67
72
 
68
- // πŸ“Š Get live statistics (36,000+ boundaries)
73
+ // πŸ“Š Get live statistics (19,000+ boundaries with 154,000 post offices)
69
74
  const stats = await client.getLocationStatistics();
70
75
  console.log(`Total Boundaries: ${stats.totalBoundaries.toLocaleString()}`);
71
76
  console.log(`Total States: ${stats.totalStates}`);
@@ -263,9 +268,6 @@ interface LocationLookupResult {
263
268
  country: string; // "India"
264
269
  delivery?: string; // "Delivery"
265
270
  district?: string; // "New Delhi"
266
- mean_population_density?: number; // 11234.56
267
- min_population_density?: number; // 5678.90
268
- max_population_density?: number; // 15234.67
269
271
  };
270
272
  coordinates: {
271
273
  latitude: number; // 28.6139
@@ -282,7 +284,7 @@ interface LocationLookupResult {
282
284
 
283
285
  🎯 **Government-Level Precision**: Access to administrative boundaries that even government APIs don't provide at this level of detail and accessibility.
284
286
 
285
- πŸ“ **36,000+ Boundaries**: Complete coverage of Indian postal boundaries with sub-district level precision.
287
+ πŸ“ **19,000+ Boundaries (with 154,000 post offices)**: Complete coverage of Indian postal boundaries with sub-district level precision.
286
288
 
287
289
  ⚑ **Performance**: Sub-100ms cached responses, <500ms database queries.
288
290
 
@@ -404,9 +406,9 @@ const result: LocationLookupResult = await client.lookupLocationFromCoordinates(
404
406
 
405
407
  | Tier | Requests/Minute | Monthly Limit | Batch Size | Boundaries |
406
408
  |------|----------------|---------------|------------|------------|
407
- | Free | 20 | 2,000 | 50 | 36,000+ |
408
- | Paid | 200 | 20,000 | 100 | 36,000+ |
409
- | Enterprise | 2,000 | Unlimited | 100 | 36,000+ |
409
+ | Free | 20 | 25,000 | 50 | 19,000+ (with 154,000 post offices) |
410
+ | Paid | 200 | 50,000 | 100 | 19,000+ (with 154,000 post offices) |
411
+ | Enterprise | 10,000,000 | Unlimited | 100 | 19,000+ (with 154,000 post offices) |
410
412
 
411
413
  **Performance Guarantees:**
412
414
  - ⚑ Cached responses: <100ms
@@ -438,7 +440,7 @@ Check out the `examples/` directory for more comprehensive examples:
438
440
 
439
441
  ✨ **Government-Level Precision**: Administrative boundary data that even government APIs don't provide at this level of detail and accessibility.
440
442
 
441
- πŸ“ **Complete Coverage**: 36,000+ postal boundaries across India with sub-district precision.
443
+ πŸ“ **Complete Coverage**: 19,000+ postal boundaries (with 154,000 post offices) across India with sub-district precision.
442
444
 
443
445
  ⚑ **Blazing Performance**: Sub-100ms cached responses, guaranteed <500ms database queries.
444
446
 
@@ -450,6 +452,19 @@ Check out the `examples/` directory for more comprehensive examples:
450
452
 
451
453
  ## Changelog
452
454
 
455
+ ### [1.1.0] - 2025-11-25
456
+ #### πŸ”’ Security Enhancements (Major Update)
457
+ - πŸ›‘οΈ **RASP Protection**: Runtime Application Self-Protection with anti-debugging, integrity checks, and behavior monitoring
458
+ - πŸ” **Secure API Key Storage**: Encrypted storage with Symbol-based properties
459
+ - πŸ” **Request Signing**: HMAC-SHA256 signatures prevent tampering
460
+ - πŸ”’ **Code Obfuscation**: Production builds automatically obfuscated
461
+ - 🚫 **Source Map Removal**: Prevents reverse engineering
462
+
463
+ ### [1.0.4] - 2025-11-23
464
+ #### Added
465
+ - Enhanced reverse geocoding with detailed address components
466
+ - `address`, `displayName`, and `addressComponents` fields
467
+
453
468
  ### [1.0.3] - 2025-11-10
454
469
  #### Added
455
470
  - πŸ”” **Webhook Management**: Register, list, delete, and test webhook endpoints
@@ -463,14 +478,13 @@ Check out the `examples/` directory for more comprehensive examples:
463
478
 
464
479
  ### [1.0.2] - 2025-11-01
465
480
  #### Added
466
- - πŸŽ‰ **Population Density Data**: Added mean, min, and max population density fields from Meta's 30-meter gridded data
481
+ - πŸŽ‰ **Population Density Data**: Added mean, min, and max population density fields from Meta's 30-meter gridded data [Deprecated]
467
482
  - πŸ“ **District Information**: Added district field for Indian district division as per official records
468
483
  - βœ… **Delivery Status**: Added delivery field for pincode delivery status
469
484
  - 🌍 **Complete Geographic Data**: Added state and country fields for comprehensive location information
470
485
 
471
486
  #### Enhanced
472
- - Improved administrative boundary data with complete coverage (36,000+ postal boundaries)
473
- - All Location Lookup API responses now include population density and district information
487
+ - Improved administrative boundary data with complete coverage (19,000+ postal boundaries with 154,000 post offices)
474
488
 
475
489
  ### [1.0.1] - Previous Release
476
490
  - Initial stable release with Location Lookup API
package/dist/client.d.ts CHANGED
@@ -1,72 +1,29 @@
1
1
  import { ClientConfig, GeocodeResult, ReverseGeocodeResult, LocationLookupResult, LocationStatistics, BatchLocationRequest, BatchLocationResult, WebhookEndpoint, CreateWebhookRequest, CreateWebhookResponse, TestWebhookResponse } from './types';
2
- /**
3
- * QuantaRoute Geocoding Client
4
- *
5
- * Revolutionary Node.js SDK for QuantaRoute Geocoding API with Location Lookup
6
- */
2
+ declare const CONFIG_SYMBOL: unique symbol;
3
+ declare const KEY_STORAGE_SYMBOL: unique symbol;
7
4
  export declare class QuantaRouteClient {
8
5
  private client;
9
- private config;
6
+ private [CONFIG_SYMBOL];
7
+ private [KEY_STORAGE_SYMBOL];
10
8
  constructor(config: ClientConfig);
11
9
  private setupInterceptors;
10
+ private setupRequestSigning;
12
11
  private makeRequest;
13
- /**
14
- * Geocode an address to DigiPin
15
- */
16
12
  geocode(address: string): Promise<GeocodeResult>;
17
- /**
18
- * Convert coordinates to DigiPin
19
- */
20
13
  coordinatesToDigiPin(latitude: number, longitude: number): Promise<GeocodeResult>;
21
- /**
22
- * Reverse geocode DigiPin to coordinates
23
- */
24
14
  reverseGeocode(digipin: string): Promise<ReverseGeocodeResult>;
25
- /**
26
- * πŸš€ REVOLUTIONARY: Get administrative boundaries from coordinates
27
- */
28
15
  lookupLocationFromCoordinates(latitude: number, longitude: number): Promise<LocationLookupResult>;
29
- /**
30
- * πŸš€ REVOLUTIONARY: Get administrative boundaries from DigiPin
31
- */
32
16
  lookupLocationFromDigiPin(digipin: string): Promise<LocationLookupResult>;
33
- /**
34
- * πŸš€ REVOLUTIONARY: Batch location lookup
35
- */
36
17
  batchLocationLookup(locations: BatchLocationRequest[]): Promise<BatchLocationResult>;
37
- /**
38
- * πŸ“Š Get live location statistics
39
- */
40
18
  getLocationStatistics(): Promise<LocationStatistics>;
41
- /**
42
- * Check API usage and limits
43
- */
44
19
  getUsage(): Promise<any>;
45
- /**
46
- * Get API health status
47
- */
48
20
  getHealth(): Promise<any>;
49
- /**
50
- * πŸ”” Register a webhook endpoint
51
- */
52
21
  registerWebhook(webhook: CreateWebhookRequest): Promise<CreateWebhookResponse>;
53
- /**
54
- * πŸ”” List all webhook endpoints
55
- */
56
22
  listWebhooks(): Promise<WebhookEndpoint[]>;
57
- /**
58
- * πŸ”” Get a specific webhook endpoint (by finding it in the list)
59
- */
60
23
  getWebhook(webhookId: string): Promise<WebhookEndpoint>;
61
- /**
62
- * πŸ”” Delete a webhook endpoint
63
- */
64
24
  deleteWebhook(webhookId: string): Promise<void>;
65
- /**
66
- * πŸ”” Test a webhook endpoint
67
- */
68
25
  testWebhook(webhookId: string): Promise<TestWebhookResponse>;
69
26
  private validateCoordinates;
70
27
  private validateDigiPin;
71
28
  }
72
- //# sourceMappingURL=client.d.ts.map
29
+ export {};