mapnests-browser-sdk 1.0.4 → 1.0.6

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
@@ -2,7 +2,6 @@
2
2
 
3
3
  ##### Readme Top
4
4
 
5
-
6
5
  <br />
7
6
  <div align="center">
8
7
  <a href="#">
@@ -16,25 +15,25 @@ Map Nests
16
15
  </p>
17
16
  </div>
18
17
 
19
-
20
18
  A secure and efficient TS SDK for the **Mapnests Platform**, enabling powerful geospatial capabilities such as **Search (Geocoding)**, **Reverse (Reverse Geocoding)**, and **Distance Matrix**.
21
19
 
22
-
23
20
  ---
24
21
 
25
22
  ## 📚 Table of Contents
26
23
 
27
- * [Installation](#installation)
28
- * [Quick Start](#quick-start)
29
- * [Core Features](#core-features)
24
+ - [Installation](#installation)
25
+ - [Quick Start](#quick-start)
26
+ - [Core Features](#core-features)
27
+
28
+ - [Distance Matrix](#distance-matrix)
29
+ - [Pairwise Route Summary](#pairwise-route-summary)
30
+ - [Multi Source Route Summary](#multi-source-route-summary)
31
+ - [Distance Matrix Details](#distance-matrix-details)
32
+ - [Search (Geocoding)](#search-geocoding)
33
+ - [Reverse Geocoding](#reverse-geocoding)
30
34
 
31
- * [Distance Matrix](#distance-matrix)
32
- * [Pairwise Route Summary](#pairwise-route-summary)
33
- * [Distance Matrix Details](#distance-matrix-details)
34
- * [Search (Geocoding)](#search-geocoding)
35
- * [Reverse Geocoding](#reverse-geocoding)
36
- * [License](#license)
37
- * [Contact](#contact)
35
+ - [License](#license)
36
+ - [Contact](#contact)
38
37
 
39
38
  <p align="right">(<a href="#readme-top">back to top</a>)</p>
40
39
 
@@ -43,13 +42,13 @@ A secure and efficient TS SDK for the **Mapnests Platform**, enabling powerful g
43
42
  ## Installation
44
43
 
45
44
  ```bash
46
- npm install mapnests-sdk
45
+ npm install mapnests-browser-sdk"
47
46
  ```
48
47
 
49
48
  Import into your project:
50
49
 
51
50
  ```ts
52
- import { Client, Mode } from 'mapnests-sdk';
51
+ import { Client, Mode } from "mapnests-browser-sdk"";
53
52
  ```
54
53
 
55
54
  <p align="right">(<a href="#readme-top">back to top</a>)</p>
@@ -59,13 +58,13 @@ import { Client, Mode } from 'mapnests-sdk';
59
58
  ## Quick Start
60
59
 
61
60
  ```ts
62
- import { Client, Mode } from 'mapnests-sdk';
61
+ import { Client, Mode } from "mapnests-browser-sdk"";
63
62
 
64
63
  (async function () {
65
- const client = new Client("YOUR_API_KEY", "your.package.name");
64
+ const client = new Client("YOUR_API_KEY", "your.package.name");
66
65
 
67
- const result = await client.search({ Query: "Dhaka" });
68
- console.log("Search result:", result);
66
+ const result = await client.search({ Query: "Dhaka" });
67
+ console.log("Search result:", result);
69
68
  })();
70
69
  ```
71
70
 
@@ -83,11 +82,11 @@ import { Client, Mode } from 'mapnests-sdk';
83
82
 
84
83
  ```ts
85
84
  const res = await client.distanceMatrix({
86
- OriginLat: 23.8103,
87
- OriginLon: 90.4125,
88
- DestLat: 23.7500,
89
- DestLon: 90.4200,
90
- Mode: Mode.Walking,
85
+ OriginLat: 23.8103,
86
+ OriginLon: 90.4125,
87
+ DestLat: 23.75,
88
+ DestLon: 90.42,
89
+ Mode: Mode.Walking,
91
90
  });
92
91
  console.log(res);
93
92
  ```
@@ -96,10 +95,10 @@ console.log(res);
96
95
 
97
96
  ```json
98
97
  {
99
- "data": {
100
- "distanceInMetres": 8900,
101
- "etaInSeconds": 1300
102
- }
98
+ "data": {
99
+ "distanceInMetres": 8900,
100
+ "etaInSeconds": 1300
101
+ }
103
102
  }
104
103
  ```
105
104
 
@@ -107,51 +106,142 @@ console.log(res);
107
106
 
108
107
  ### Pairwise Route Summary
109
108
 
110
- > Computes distances, ETAs and geometries for multiple source-destination pairs in a single request. This is ideal for optimizing batch operations and comparing route statistics efficiently.
109
+ > Computes distances, ETAs and geometries for multiple source-destination pairs in a single request. This is ideal for optimizing batch operations and comparing route statistics efficiently.
111
110
 
112
111
  **Example Input:**
113
112
 
114
113
  ```ts
115
114
  const summary = await client.pairwiseRouteSummary({
116
- pairs: [
117
- {
118
- id: 1,
119
- src: { lat: 23.8103, lon: 90.4125 },
120
- dest: { lat: 23.7500, lon: 90.4200 },
121
- mode: Mode.Walking,
122
- },
123
- {
124
- id: 2,
125
- src: { lat: 23.7806, lon: 90.3984 },
126
- dest: { lat: 23.7740, lon: 90.3681 },
127
- mode: Mode.Car,
128
- },
129
- ]
115
+ pairs: [
116
+ {
117
+ id: 1,
118
+ src: { lat: 23.8103, lon: 90.4125 },
119
+ dest: { lat: 23.75, lon: 90.42 },
120
+ mode: Mode.Walking,
121
+ },
122
+ {
123
+ id: 2,
124
+ src: { lat: 23.7806, lon: 90.3984 },
125
+ dest: { lat: 23.774, lon: 90.3681 },
126
+ mode: Mode.Car,
127
+ },
128
+ ],
130
129
  });
131
130
  console.log(summary);
131
+ ```
132
132
 
133
+ **Example Output:**
134
+
135
+ ```json
136
+ {
137
+ "status": true,
138
+ "message": "success",
139
+ "data": [
140
+ {
141
+ "id": 1,
142
+ "distanceInMeters": 8900,
143
+ "etaInSeconds": 1300,
144
+ "geometry": "encoded_polyline_string"
145
+ },
146
+ {
147
+ "id": 2,
148
+ "distanceInMeters": 4800,
149
+ "etaInSeconds": 700,
150
+ "geometry": "another_encoded_polyline"
151
+ }
152
+ ]
153
+ }
154
+ ```
155
+
156
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
157
+
158
+ ### Multi Source Route Summary
159
+
160
+ > Computes distances, ETAs and geometries for multiple source-destination pairs in a single request. This is ideal for optimizing batch operations and comparing route statistics efficiently.
161
+
162
+ **Example Input:**
163
+
164
+ ```ts
165
+ const summary = await client.multiSourceRouteSummary({
166
+ sources: [
167
+ {
168
+ id: 1,
169
+ lat: 23.7805733,
170
+ lon: 90.2792399,
171
+ mode: "car",
172
+ },
173
+ {
174
+ id: 2,
175
+ lat: 23.75,
176
+ lon: 90.36,
177
+ mode: "car",
178
+ },
179
+ {
180
+ id: 3,
181
+ lat: 23.7,
182
+ lon: 90.42,
183
+ mode: "car",
184
+ },
185
+ {
186
+ id: 4,
187
+ lat: 23.7654321,
188
+ lon: 90.3456789,
189
+ mode: "car",
190
+ },
191
+ {
192
+ id: 5,
193
+ lat: 23.7123456,
194
+ lon: 90.3765432,
195
+ mode: "car",
196
+ },
197
+ ],
198
+ destination: {
199
+ lat: 23.810332,
200
+ lon: 90.412518,
201
+ },
202
+ });
133
203
  ```
134
204
 
135
205
  **Example Output:**
136
206
 
137
207
  ```json
138
208
  {
139
- "status": true,
140
- "message": "success",
141
- "data": [
142
- {
143
- "id": 1,
144
- "distanceInMeters": 8900,
145
- "etaInSeconds": 1300,
146
- "geometry": "encoded_polyline_string"
209
+ "data": {
210
+ "routeSummaries": [
211
+ {
212
+ "id": 1,
213
+ "distanceInMeters": 23782.9,
214
+ "etaInSeconds": 1720,
215
+ "geometry": "encoded_polyline_string"
216
+ },
217
+ {
218
+ "id": 2,
219
+ "distanceInMeters": 13421.9,
220
+ "etaInSeconds": 1084.9,
221
+ "geometry": "encoded_polyline_string"
222
+ },
223
+ {
224
+ "id": 3,
225
+ "distanceInMeters": 15212.3,
226
+ "etaInSeconds": 1285.3,
227
+ "geometry": "encoded_polyline_string"
228
+ },
229
+ {
230
+ "id": 4,
231
+ "distanceInMeters": 14120.2,
232
+ "etaInSeconds": 1129.3,
233
+ "geometry": "encoded_polyline_string"
234
+ },
235
+ {
236
+ "id": 5,
237
+ "distanceInMeters": 16555.4,
238
+ "etaInSeconds": 1388,
239
+ "geometry": "encoded_polyline_string"
240
+ }
241
+ ]
147
242
  },
148
- {
149
- "id": 2,
150
- "distanceInMeters": 4800,
151
- "etaInSeconds": 700,
152
- "geometry": "another_encoded_polyline"
153
- }
154
- ]
243
+ "message": "Success",
244
+ "status": true
155
245
  }
156
246
  ```
157
247
 
@@ -165,11 +255,11 @@ console.log(summary);
165
255
 
166
256
  ```ts
167
257
  const details = await client.distanceMatrixDetails({
168
- OriginLat: 23.7806,
169
- OriginLon: 90.3984,
170
- DestLat: 23.7740,
171
- DestLon: 90.3681,
172
- Mode: Mode.Car,
258
+ OriginLat: 23.7806,
259
+ OriginLon: 90.3984,
260
+ DestLat: 23.774,
261
+ DestLon: 90.3681,
262
+ Mode: Mode.Car,
173
263
  });
174
264
  console.log(details);
175
265
  ```
@@ -206,7 +296,9 @@ console.log(details);
206
296
  **Example Input:**
207
297
 
208
298
  ```ts
209
- const searchRes = await client.search({ Query: "Bashundhara Residential Area, Dhaka" });
299
+ const searchRes = await client.search({
300
+ Query: "Bashundhara Residential Area, Dhaka",
301
+ });
210
302
  console.log(searchRes);
211
303
  ```
212
304
 
@@ -214,16 +306,16 @@ console.log(searchRes);
214
306
 
215
307
  ```json
216
308
  {
217
- "data": [
218
- {
219
- "place_id": "123456",
220
- "lat": "23.8156",
221
- "lon": "90.4287",
222
- "display_name": "Bashundhara Residential Area, Dhaka, Bangladesh"
223
- }
224
- ],
225
- "status": true,
226
- "message": "success"
309
+ "data": [
310
+ {
311
+ "place_id": "123456",
312
+ "lat": "23.8156",
313
+ "lon": "90.4287",
314
+ "display_name": "Bashundhara Residential Area, Dhaka, Bangladesh"
315
+ }
316
+ ],
317
+ "status": true,
318
+ "message": "success"
227
319
  }
228
320
  ```
229
321
 
@@ -244,16 +336,16 @@ console.log(revRes);
244
336
 
245
337
  ```json
246
338
  {
247
- "data": {
248
- "displayName": "Farmgate, Tejgaon, Dhaka, Bangladesh",
249
- "address": {
250
- "country": "Bangladesh",
251
- "state": "Dhaka Division",
252
- "city": "Dhaka"
253
- }
254
- },
255
- "status": true,
256
- "message": "success"
339
+ "data": {
340
+ "displayName": "Farmgate, Tejgaon, Dhaka, Bangladesh",
341
+ "address": {
342
+ "country": "Bangladesh",
343
+ "state": "Dhaka Division",
344
+ "city": "Dhaka"
345
+ }
346
+ },
347
+ "status": true,
348
+ "message": "success"
257
349
  }
258
350
  ```
259
351
 
@@ -270,4 +362,4 @@ This project is licensed under the [MIT License](LICENSE).
270
362
  ## Contact
271
363
 
272
364
  📧 [support@example.com](mailto:support@example.com)
273
- Explain
365
+ Explain
@@ -1 +1,2 @@
1
+ export declare const BASE_URL = "https://engine.mapnests.com";
1
2
  export declare function buildURLFromJSON(label: string, baseUrl: string, jsonStr: string): string;
package/dist/build_url.js CHANGED
@@ -1,14 +1,12 @@
1
- const BASE_URL = 'https://engine.mapnests.com';
2
- export function buildURLFromJSON(label, baseUrl, jsonStr) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BASE_URL = void 0;
4
+ exports.buildURLFromJSON = buildURLFromJSON;
5
+ exports.BASE_URL = 'https://engine.mapnests.com';
6
+ function buildURLFromJSON(label, baseUrl, jsonStr) {
3
7
  const data = JSON.parse(jsonStr);
4
8
  switch (label) {
5
- case 'geocode': {
6
- const query = encodeURIComponent(data.Query);
7
- const lang = encodeURIComponent(data.Language);
8
- const limit = data.Limit;
9
- return `${baseUrl}/geomap/api/v1/geocode?q=${query}&language=${lang}&limit=${limit}`;
10
- }
11
- case 'reverseGeocode': {
9
+ case 'reverse': {
12
10
  return `${baseUrl}/geomap/api/v1/reverse?lat=${data.Lat}&lon=${data.Lon}`;
13
11
  }
14
12
  case 'distanceMatrix':
@@ -24,6 +22,9 @@ export function buildURLFromJSON(label, baseUrl, jsonStr) {
24
22
  case 'pairwiseRouteSummary': {
25
23
  return `${baseUrl}/routemap/api/v1/routes/pairwise-summary`;
26
24
  }
25
+ case 'multiSourceSummary': {
26
+ return `${baseUrl}/routemap/api/v1/routes/multi-source-summary`;
27
+ }
27
28
  case 'search': {
28
29
  const query = encodeURIComponent(data.Query);
29
30
  return `${baseUrl}/geomap/api/v1/search?q=${query}`;
package/dist/client.d.ts CHANGED
@@ -1,11 +1,13 @@
1
- import { SearchRequest, SearchResponse } from './modules/search';
2
- import { ReverseRequest, ReverseResponse } from './modules/reverse';
3
- import { DistanceMatrixRequest, DistanceMatrixResponse } from './modules/distance_matrix';
4
- import { PairwiseRouteSummaryRequest, PairwiseRouteSummaryResponse } from './modules/pairwise_summary';
5
- import { DistanceMatrixDetailsRequest, DistanceMatrixDetailsResponse } from './modules/distance_matrix_details';
1
+ import { SearchRequest, SearchResponse } from "./modules/search";
2
+ import { ReverseRequest, ReverseResponse } from "./modules/reverse";
3
+ import { DistanceMatrixRequest, DistanceMatrixResponse } from "./modules/distance_matrix";
4
+ import { PairwiseRouteSummaryRequest, PairwiseRouteSummaryResponse } from "./modules/pairwise_route_summary";
5
+ import { DistanceMatrixDetailsRequest, DistanceMatrixDetailsResponse } from "./modules/distance_matrix_details";
6
+ import { MultiSourceRouteSummaryRequest, MultiSourceRouteSummaryResponse } from "./modules/multi_source_route_summary";
6
7
  export interface IClient {
7
8
  distanceMatrix(request: DistanceMatrixRequest): Promise<DistanceMatrixResponse>;
8
9
  pairwiseRouteSummary(request: PairwiseRouteSummaryRequest): Promise<PairwiseRouteSummaryResponse>;
10
+ multiSourceRouteSummary(request: MultiSourceRouteSummaryRequest): Promise<MultiSourceRouteSummaryResponse>;
9
11
  distanceMatrixDetails(request: DistanceMatrixDetailsRequest): Promise<DistanceMatrixDetailsResponse>;
10
12
  reverse(request: ReverseRequest): Promise<ReverseResponse>;
11
13
  search(request: SearchRequest): Promise<SearchResponse>;
@@ -17,6 +19,7 @@ export declare class Client implements IClient {
17
19
  private makeRequest;
18
20
  distanceMatrix(request: DistanceMatrixRequest): Promise<DistanceMatrixResponse>;
19
21
  pairwiseRouteSummary(request: PairwiseRouteSummaryRequest): Promise<PairwiseRouteSummaryResponse>;
22
+ multiSourceRouteSummary(request: MultiSourceRouteSummaryRequest): Promise<MultiSourceRouteSummaryResponse>;
20
23
  distanceMatrixDetails(request: DistanceMatrixDetailsRequest): Promise<DistanceMatrixDetailsResponse>;
21
24
  reverse(request: ReverseRequest): Promise<ReverseResponse>;
22
25
  search(request: SearchRequest): Promise<SearchResponse>;
package/dist/client.js CHANGED
@@ -1,11 +1,14 @@
1
- import { callSecureRequest } from './secure_req';
2
- export class Client {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Client = void 0;
4
+ const secure_req_1 = require("./secure_req");
5
+ class Client {
3
6
  constructor(apiKey, packageName) {
4
7
  this.apiKey = apiKey;
5
8
  this.packageName = packageName;
6
9
  }
7
10
  async makeRequest(label, request) {
8
- const { statusCode, response, errorMessage } = await callSecureRequest(label, this.apiKey, this.packageName, request);
11
+ const { statusCode, response, errorMessage } = await (0, secure_req_1.callSecureRequest)(label, this.apiKey, this.packageName, request);
9
12
  if (errorMessage) {
10
13
  throw new Error(`[${label}] native error: ${errorMessage}`);
11
14
  }
@@ -15,31 +18,36 @@ export class Client {
15
18
  return response;
16
19
  }
17
20
  async distanceMatrix(request) {
18
- console.log('📍 DistanceMatrix request:', request);
19
- const response = await this.makeRequest('distanceMatrix', request);
20
- console.log('📍 DistanceMatrix response:', response);
21
+ console.log("📍 DistanceMatrix request:", request);
22
+ const response = await this.makeRequest("distanceMatrix", request);
23
+ console.log("📍 DistanceMatrix response:", response);
21
24
  return response;
22
25
  }
23
26
  async pairwiseRouteSummary(request) {
24
- console.log('📍 PairwiseRouteSummary request:', request);
25
- return this.makeRequest('pairwiseRouteSummary', request);
27
+ console.log("📍 PairwiseRouteSummary request:", request);
28
+ return this.makeRequest("pairwiseRouteSummary", request);
29
+ }
30
+ async multiSourceRouteSummary(request) {
31
+ console.log("📍 MultiSourceSummary request:", request);
32
+ return this.makeRequest("multiSourceSummary", request);
26
33
  }
27
34
  async distanceMatrixDetails(request) {
28
- console.log('📍 DistanceMatrixDetails request:', request);
29
- const response = await this.makeRequest('distanceMatrixDetails', request);
30
- console.log('📍 DistanceMatrixDetails response:', response);
35
+ console.log("📍 DistanceMatrixDetails request:", request);
36
+ const response = await this.makeRequest("distanceMatrixDetails", request);
37
+ console.log("📍 DistanceMatrixDetails response:", response);
31
38
  return response;
32
39
  }
33
40
  async reverse(request) {
34
- console.log('📍 Reverse request:', request);
35
- const response = await this.makeRequest('reverseGeocode', request);
36
- console.log('📍 Reverse response:', response);
41
+ console.log("📍 Reverse request:", request);
42
+ const response = await this.makeRequest("reverse", request);
43
+ console.log("📍 Reverse response:", response);
37
44
  return response;
38
45
  }
39
46
  async search(request) {
40
- console.log('📍 Search request:', request);
41
- const response = await this.makeRequest('search', request);
42
- console.log('📍 Search response:', response);
47
+ console.log("📍 Search request:", request);
48
+ const response = await this.makeRequest("search", request);
49
+ console.log("📍 Search response:", response);
43
50
  return response;
44
51
  }
45
52
  }
53
+ exports.Client = Client;
@@ -0,0 +1 @@
1
+ export declare const fetchRemoteTime: () => Promise<number>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchRemoteTime = void 0;
4
+ const build_url_1 = require("./build_url");
5
+ const fetchRemoteTime = async () => {
6
+ const res = await fetch(`${build_url_1.BASE_URL}/system-meta`);
7
+ if (!res.ok) {
8
+ throw new Error(`Failed to fetch remote time: ${res.status}`);
9
+ }
10
+ const { utc_time } = await res.json();
11
+ return utc_time;
12
+ };
13
+ exports.fetchRemoteTime = fetchRemoteTime;
@@ -1,20 +1,21 @@
1
- export async function generateToken(apiKey) {
2
- if (typeof window === 'undefined' || !window.crypto?.subtle) {
3
- throw new Error('Web Crypto API not available. This SDK must be used in a browser environment.');
4
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateToken = generateToken;
4
+ async function generateToken(apiKey) {
5
5
  const randInt = Math.floor(Math.random() * 1000000);
6
6
  const expires = Math.floor(Date.now() / 1000) + 30;
7
7
  const input = `${expires}:${randInt}:${apiKey}`;
8
8
  const encoder = new TextEncoder();
9
9
  const data = encoder.encode(input);
10
- const hashBuffer = await window.crypto.subtle.digest('SHA-256', data);
10
+ const hashBuffer = await crypto.subtle.digest('SHA-256', data);
11
11
  const hashArray = Array.from(new Uint8Array(hashBuffer));
12
12
  const hash = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
13
13
  const jsonPayload = {
14
14
  random: randInt,
15
- expires,
15
+ expires: expires,
16
16
  sign: hash,
17
17
  };
18
- const base64 = btoa(JSON.stringify(jsonPayload));
18
+ const jsonStr = JSON.stringify(jsonPayload);
19
+ const base64 = btoa(jsonStr);
19
20
  return base64;
20
21
  }
package/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
- export * from './modules/distance_matrix.js';
2
- export * from './modules/pairwise_summary.js';
3
- export * from './modules/distance_matrix_details.js';
4
- export * from './modules/reverse.js';
5
- export * from './modules/search.js';
6
- export { Client } from './client.js';
1
+ export * from "./modules/distance_matrix";
2
+ export * from "./modules/pairwise_route_summary";
3
+ export * from "./modules/distance_matrix_details";
4
+ export * from "./modules/reverse";
5
+ export * from "./modules/search";
6
+ export * from "./modules/multi_source_route_summary";
7
+ export * from "./modules/pairwise_route_summary";
8
+ export * from "./fetch_remote_time";
9
+ export { Client } from "./client";
package/dist/index.js CHANGED
@@ -1,6 +1,27 @@
1
- export * from './modules/distance_matrix.js';
2
- export * from './modules/pairwise_summary.js';
3
- export * from './modules/distance_matrix_details.js';
4
- export * from './modules/reverse.js';
5
- export * from './modules/search.js';
6
- export { Client } from './client.js';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Client = void 0;
18
+ __exportStar(require("./modules/distance_matrix"), exports);
19
+ __exportStar(require("./modules/pairwise_route_summary"), exports);
20
+ __exportStar(require("./modules/distance_matrix_details"), exports);
21
+ __exportStar(require("./modules/reverse"), exports);
22
+ __exportStar(require("./modules/search"), exports);
23
+ __exportStar(require("./modules/multi_source_route_summary"), exports);
24
+ __exportStar(require("./modules/pairwise_route_summary"), exports);
25
+ __exportStar(require("./fetch_remote_time"), exports);
26
+ var client_1 = require("./client");
27
+ Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return client_1.Client; } });
package/dist/main.js CHANGED
@@ -1,46 +1,116 @@
1
- import { Client, Mode } from './index';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("./index");
2
4
  (async function () {
3
5
  try {
4
- const cl = new Client("", "");
6
+ const cl = new index_1.Client("", "");
5
7
  const res = await cl.distanceMatrix({
6
8
  OriginLat: 23.8103,
7
9
  OriginLon: 90.4125,
8
10
  DestLat: 23.7805,
9
11
  DestLon: 90.4113,
10
- Mode: Mode.Walking
12
+ Mode: index_1.Mode.Walking,
11
13
  });
12
- console.log("============================> ", res);
13
- const pairwiseSummaryRes = await cl.pairwiseRouteSummary({
14
+ console.log("============================> DistanceMatrix:", res);
15
+ const deRes = await cl.distanceMatrixDetails({
16
+ OriginLat: 23.8103,
17
+ OriginLon: 90.4125,
18
+ DestLat: 23.7805,
19
+ DestLon: 90.4113,
20
+ Mode: index_1.Mode.Walking,
21
+ });
22
+ console.log("============================> DistanceMatrixDetails:", deRes);
23
+ const searchRes = await cl.search({ Query: "uttara" });
24
+ console.log("============================> Search:", searchRes);
25
+ const revRes = await cl.reverse({
26
+ Lat: 23.8103,
27
+ Lon: 90.4125,
28
+ });
29
+ console.log("============================> Reverse Geocode:", revRes);
30
+ // ✅ PairwiseRouteSummaryRequest Example
31
+ const pairwiseRes = await cl.pairwiseRouteSummary({
14
32
  pairs: [
15
33
  {
16
34
  id: 1,
17
- src: { lat: 23.8103, lon: 90.4125 },
18
- dest: { lat: 23.7805, lon: 90.4113 },
19
- mode: Mode.Bicycle,
35
+ src: {
36
+ lat: 23.8113,
37
+ lon: 90.4135,
38
+ },
39
+ dest: {
40
+ lat: 23.7815,
41
+ lon: 90.4123,
42
+ },
43
+ mode: "bicycle",
20
44
  },
21
45
  {
22
46
  id: 2,
23
- src: { lat: 23.8120, lon: 90.4140 },
24
- dest: { lat: 23.7820, lon: 90.4170 },
25
- mode: Mode.Bicycle,
47
+ src: {
48
+ lat: 23.8123,
49
+ lon: 90.4145,
50
+ },
51
+ dest: {
52
+ lat: 23.7825,
53
+ lon: 90.4133,
54
+ },
55
+ mode: "bicycle",
56
+ },
57
+ {
58
+ id: 3,
59
+ src: {
60
+ lat: 23.8133,
61
+ lon: 90.4155,
62
+ },
63
+ dest: {
64
+ lat: 23.7835,
65
+ lon: 90.4143,
66
+ },
67
+ mode: "bicycle",
26
68
  },
27
69
  ],
28
70
  });
29
- console.log("==================================> ", JSON.stringify(pairwiseSummaryRes));
30
- const deRes = await cl.distanceMatrixDetails({
31
- OriginLat: 23.8103,
32
- OriginLon: 90.4125,
33
- DestLat: 23.7805,
34
- DestLon: 90.4113,
35
- Mode: Mode.Walking
71
+ console.log("============================> PairwiseRouteSummary:", pairwiseRes);
72
+ // MultiSourceRouteSummaryRequest Example
73
+ const multiSourceRes = await cl.multiSourceRouteSummary({
74
+ sources: [
75
+ {
76
+ id: 1,
77
+ lat: 23.7805733,
78
+ lon: 90.2792399,
79
+ mode: "car",
80
+ },
81
+ {
82
+ id: 2,
83
+ lat: 23.75,
84
+ lon: 90.36,
85
+ mode: "car",
86
+ },
87
+ {
88
+ id: 3,
89
+ lat: 23.7,
90
+ lon: 90.42,
91
+ mode: "car",
92
+ },
93
+ {
94
+ id: 4,
95
+ lat: 23.7654321,
96
+ lon: 90.3456789,
97
+ mode: "car",
98
+ },
99
+ {
100
+ id: 5,
101
+ lat: 23.7123456,
102
+ lon: 90.3765432,
103
+ mode: "car",
104
+ },
105
+ ],
106
+ destination: {
107
+ lat: 23.810332,
108
+ lon: 90.412518,
109
+ },
36
110
  });
37
- console.log("============================> ", deRes);
38
- const searchRes = await cl.search({ Query: "uttara" });
39
- console.log("============================> ", searchRes);
40
- const revRes = await cl.reverse({ Lat: 23.8103, Lon: 90.4125 });
41
- console.log("============================> ", revRes);
111
+ console.log("============================> MultiSourceRouteSummary:", multiSourceRes);
42
112
  }
43
113
  catch (err) {
44
- console.log(err);
114
+ console.error("🔥 Error:", err);
45
115
  }
46
116
  })();
@@ -16,4 +16,6 @@ export interface DistanceMatrixData {
16
16
  }
17
17
  export interface DistanceMatrixResponse {
18
18
  data: DistanceMatrixData;
19
+ message: string;
20
+ status: boolean;
19
21
  }
@@ -1,6 +1,9 @@
1
- export var Mode;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mode = void 0;
4
+ var Mode;
2
5
  (function (Mode) {
3
6
  Mode["Walking"] = "walking";
4
7
  Mode["Bicycle"] = "bicycle";
5
8
  Mode["Car"] = "car";
6
- })(Mode || (Mode = {}));
9
+ })(Mode || (exports.Mode = Mode = {}));
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,20 @@
1
+ import { RouteSummary } from "./pairwise_route_summary";
2
+ export type Source = {
3
+ id: number;
4
+ lat: number;
5
+ lon: number;
6
+ mode: string;
7
+ };
8
+ export type Destination = {
9
+ lat: number;
10
+ lon: number;
11
+ };
12
+ export type MultiSourceRouteSummaryRequest = {
13
+ sources: Source[];
14
+ destination: Destination;
15
+ };
16
+ export type MultiSourceRouteSummaryResponse = {
17
+ data: RouteSummary[];
18
+ message: string;
19
+ status: boolean;
20
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/request.js CHANGED
@@ -1,11 +1,14 @@
1
- import { callSecureRequest } from './secure_req';
2
- export class Client {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Client = void 0;
4
+ const secure_req_1 = require("./secure_req");
5
+ class Client {
3
6
  constructor(apiKey, packageName) {
4
7
  this.apiKey = apiKey;
5
8
  this.packageName = packageName;
6
9
  }
7
10
  async request(label, request) {
8
- const { statusCode, response, errorMessage } = await callSecureRequest(label, this.apiKey, this.packageName, request);
11
+ const { statusCode, response, errorMessage } = await (0, secure_req_1.callSecureRequest)(label, this.apiKey, this.packageName, request);
9
12
  if (errorMessage) {
10
13
  throw new Error(`[${label}] native error: ${errorMessage}`);
11
14
  }
@@ -15,3 +18,4 @@ export class Client {
15
18
  return new TextEncoder().encode(response); // Similar to []byte in Go
16
19
  }
17
20
  }
21
+ exports.Client = Client;
@@ -1,8 +1,11 @@
1
- import { performSecureRequest } from './secure_request';
2
- export async function callSecureRequest(label, apiKey, origin, request) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callSecureRequest = callSecureRequest;
4
+ const secure_request_1 = require("./secure_request");
5
+ async function callSecureRequest(label, apiKey, origin, request) {
3
6
  try {
4
7
  const jsonRequest = JSON.stringify(request);
5
- const result = await performSecureRequest(label, apiKey, origin, jsonRequest);
8
+ const result = await (0, secure_request_1.performSecureRequest)(label, apiKey, origin, jsonRequest);
6
9
  if (!result.success) {
7
10
  return {
8
11
  statusCode: result.statusCode,
@@ -1,27 +1,34 @@
1
- import axios from 'axios';
2
- import { generateToken } from './generate_token';
3
- import { buildURLFromJSON } from './build_url';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.performSecureRequest = performSecureRequest;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const generate_token_1 = require("./generate_token");
9
+ const build_url_1 = require("./build_url");
4
10
  const BASE_URL = 'https://engine.mapnests.com';
5
11
  const HTTP_METHOD_MAP = {
6
- geocode: 'GET',
7
- reverseGeocode: 'GET',
12
+ reverse: 'GET',
8
13
  search: 'GET',
9
14
  distanceMatrix: 'GET',
10
15
  distanceMatrixDetails: 'GET',
11
16
  pairwiseRouteSummary: 'POST',
17
+ multiSourceSummary: 'POST',
12
18
  };
13
- export async function performSecureRequest(label, apiKey, origin, jsonRequest) {
19
+ async function performSecureRequest(label, apiKey, origin, jsonRequest) {
14
20
  let urlStr;
15
21
  try {
16
- urlStr = buildURLFromJSON(label, BASE_URL, jsonRequest);
22
+ urlStr = (0, build_url_1.buildURLFromJSON)(label, BASE_URL, jsonRequest);
17
23
  }
18
24
  catch (err) {
19
25
  return { success: false, statusCode: 0, response: '', errorMessage: err.message };
20
26
  }
21
- let tokenHeader = await generateToken(apiKey);
27
+ let tokenHeader = await (0, generate_token_1.generateToken)(apiKey);
22
28
  const method = HTTP_METHOD_MAP[label] || 'GET';
23
29
  const headers = {
24
30
  'X-API-KEY': apiKey,
31
+ 'Origin': origin,
25
32
  'fxsrf': tokenHeader,
26
33
  'Content-Type': 'application/json',
27
34
  };
@@ -31,8 +38,8 @@ export async function performSecureRequest(label, apiKey, origin, jsonRequest) {
31
38
  };
32
39
  try {
33
40
  const response = method === 'POST'
34
- ? await axios.post(urlStr, JSON.parse(jsonRequest), axiosConfig)
35
- : await axios.get(urlStr, axiosConfig);
41
+ ? await axios_1.default.post(urlStr, JSON.parse(jsonRequest), axiosConfig)
42
+ : await axios_1.default.get(urlStr, axiosConfig);
36
43
  return {
37
44
  success: response.status >= 200 && response.status < 300,
38
45
  statusCode: response.status,
@@ -41,12 +48,12 @@ export async function performSecureRequest(label, apiKey, origin, jsonRequest) {
41
48
  }
42
49
  catch (err) {
43
50
  if (err.response?.status === 401 && err.response.headers['cf-ray-status-id-tn']) {
44
- tokenHeader = await generateToken(apiKey);
51
+ tokenHeader = await (0, generate_token_1.generateToken)(apiKey);
45
52
  headers.fxsrf = tokenHeader;
46
53
  try {
47
54
  const retryResponse = method === 'POST'
48
- ? await axios.post(urlStr, JSON.parse(jsonRequest), axiosConfig)
49
- : await axios.get(urlStr, axiosConfig);
55
+ ? await axios_1.default.post(urlStr, JSON.parse(jsonRequest), axiosConfig)
56
+ : await axios_1.default.get(urlStr, axiosConfig);
50
57
  return {
51
58
  success: retryResponse.status >= 200 && retryResponse.status < 300,
52
59
  statusCode: retryResponse.status,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mapnests-browser-sdk",
3
- "description": "TypeScript Browser Supported SDK for Mapnests API integration (Distance Matrix, Distance Matrix Details, Geocode, Reverse Geocode)",
4
- "version": "1.0.4",
3
+ "description": "TypeScript SDK for Mapnests API integration (Distance Matrix, Distance Matrix Details, Geocode, Reverse Geocode)",
4
+ "version": "1.0.6",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -28,7 +28,6 @@
28
28
  "mapnests",
29
29
  "typescript",
30
30
  "sdk",
31
- "geocode",
32
31
  "reverse-geocode",
33
32
  "distance-matrix",
34
33
  "distance-matrix-details"
@@ -1 +0,0 @@
1
- export {};