@aws-amplify/geo 3.0.22 → 3.0.23-unstable.701f219.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/dist/cjs/Geo.js CHANGED
@@ -40,13 +40,13 @@ class GeoClass {
40
40
  * @param providerName the name of the plugin
41
41
  */
42
42
  getPluggable(providerName) {
43
- const pluggable = this._pluggables.find(pluggable => pluggable.getProviderName() === providerName);
44
- if (pluggable === undefined) {
43
+ const targetPluggable = this._pluggables.find(pluggable => pluggable.getProviderName() === providerName);
44
+ if (targetPluggable === undefined) {
45
45
  logger.debug('No plugin found with providerName', providerName);
46
46
  throw new Error('No plugin found in Geo for the provider');
47
47
  }
48
48
  else
49
- return pluggable;
49
+ return targetPluggable;
50
50
  }
51
51
  /**
52
52
  * Remove the plugin object
@@ -54,7 +54,6 @@ class GeoClass {
54
54
  */
55
55
  removePluggable(providerName) {
56
56
  this._pluggables = this._pluggables.filter(pluggable => pluggable.getProviderName() !== providerName);
57
- return;
58
57
  }
59
58
  /**
60
59
  * Get the map resources that are currently available through the provider
@@ -95,7 +94,7 @@ class GeoClass {
95
94
  * Search for search term suggestions based on input text
96
95
  * @param {string} text The text string that is to be search for
97
96
  * @param {SearchByTextOptions} options Optional parameters to the search
98
- * @returns {Promise<SearchForSuggestionsResults>} - Resolves to an array of search suggestion strings
97
+ * @returns a `Promise` of {@link SearchForSuggestionsResults} that resolves to an array of search suggestion strings
99
98
  */
100
99
  async searchForSuggestions(text, options) {
101
100
  const { providerName = DEFAULT_PROVIDER } = options || {};
@@ -191,7 +190,7 @@ class GeoClass {
191
190
  /**
192
191
  * List geofences
193
192
  * @param options ListGeofenceOptions
194
- * @returns {Promise<ListGeofencesResults>} - Promise that resolves to an object with:
193
+ * @returns a promise that resolves to an object that conforms to {@link ListGeofenceResults}:
195
194
  * entries: list of geofences - 100 geofences are listed per page
196
195
  * nextToken: token for next page of geofences
197
196
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Geo.js","sources":["../../src/Geo.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Geo = exports.GeoClass = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst core_1 = require(\"@aws-amplify/core\");\nconst AmazonLocationServiceProvider_1 = require(\"./providers/location-service/AmazonLocationServiceProvider\");\nconst util_1 = require(\"./util\");\nconst logger = new core_1.ConsoleLogger('Geo');\nconst DEFAULT_PROVIDER = 'AmazonLocationService';\nclass GeoClass {\n constructor() {\n this._config = undefined;\n this._pluggables = [];\n const amplifyConfig = core_1.Amplify.getConfig() ?? {};\n this._config = Object.assign({}, this._config, amplifyConfig.Geo);\n const locationProvider = new AmazonLocationServiceProvider_1.AmazonLocationServiceProvider(amplifyConfig.Geo);\n this._pluggables.push(locationProvider);\n logger.debug('Geo Options', this._config);\n }\n /**\n * get the name of the module category\n * @returns {string} name of the module category\n */\n getModuleName() {\n return GeoClass.MODULE;\n }\n /**\n * add plugin into Geo category\n * @param {Object} pluggable an instance of the plugin\n */\n addPluggable(pluggable) {\n if (pluggable && pluggable.getCategory() === 'Geo') {\n this._pluggables.push(pluggable);\n }\n }\n /**\n * Get the plugin object\n * @param providerName the name of the plugin\n */\n getPluggable(providerName) {\n const pluggable = this._pluggables.find(pluggable => pluggable.getProviderName() === providerName);\n if (pluggable === undefined) {\n logger.debug('No plugin found with providerName', providerName);\n throw new Error('No plugin found in Geo for the provider');\n }\n else\n return pluggable;\n }\n /**\n * Remove the plugin object\n * @param providerName the name of the plugin\n */\n removePluggable(providerName) {\n this._pluggables = this._pluggables.filter(pluggable => pluggable.getProviderName() !== providerName);\n return;\n }\n /**\n * Get the map resources that are currently available through the provider\n * @param {string} provider\n * @returns - Array of available map resources\n */\n getAvailableMaps(provider = DEFAULT_PROVIDER) {\n const prov = this.getPluggable(provider);\n return prov.getAvailableMaps();\n }\n /**\n * Get the map resource set as default in amplify config\n * @param {string} provider\n * @returns - Map resource set as the default in amplify config\n */\n getDefaultMap(provider = DEFAULT_PROVIDER) {\n const prov = this.getPluggable(provider);\n return prov.getDefaultMap();\n }\n /**\n * Search by text input with optional parameters\n * @param {string} text The text string that is to be searched for\n * @param {SearchByTextOptions} options Optional parameters to the search\n * @returns {Promise<Place[]>} - Promise resolves to a list of Places that match search parameters\n */\n async searchByText(text, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n try {\n return await prov.searchByText(text, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Search for search term suggestions based on input text\n * @param {string} text The text string that is to be search for\n * @param {SearchByTextOptions} options Optional parameters to the search\n * @returns {Promise<SearchForSuggestionsResults>} - Resolves to an array of search suggestion strings\n */\n async searchForSuggestions(text, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n try {\n return await prov.searchForSuggestions(text, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Search for location by unique ID\n * @param {string} placeId Unique ID of the location that is to be searched for\n * @param {searchByPlaceIdOptions} options Optional parameters to the search\n * @returns {Promise<Place>} - Resolves to a place with the given placeId\n */\n async searchByPlaceId(placeId, options) {\n const providerName = DEFAULT_PROVIDER;\n const prov = this.getPluggable(providerName);\n try {\n return await prov.searchByPlaceId(placeId, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Reverse geocoding search via a coordinate point on the map\n * @param coordinates Coordinates array for the search input\n * @param options Options parameters for the search\n * @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates\n */\n async searchByCoordinates(coordinates, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n const [lng, lat] = coordinates;\n try {\n (0, util_1.validateCoordinates)(lng, lat);\n return await prov.searchByCoordinates(coordinates, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Create geofences\n * @param geofences Single or array of geofence objects to create\n * @param options Optional parameters for creating geofences\n * @returns {Promise<SaveGeofencesResults>} - Promise that resolves to an object with:\n * successes: list of geofences successfully created\n * errors: list of geofences that failed to create\n */\n async saveGeofences(geofences, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n // If single geofence input, make it an array for batch call\n let geofenceInputArray;\n if (!Array.isArray(geofences)) {\n geofenceInputArray = [geofences];\n }\n else {\n geofenceInputArray = geofences;\n }\n try {\n return await prov.saveGeofences(geofenceInputArray, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Get a single geofence by geofenceId\n * @param geofenceId The string id of the geofence to get\n * @param options Optional parameters for getting a geofence\n * @returns Promise<Geofence> - Promise that resolves to a geofence object\n */\n async getGeofence(geofenceId, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n try {\n return await prov.getGeofence(geofenceId, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * List geofences\n * @param options ListGeofenceOptions\n * @returns {Promise<ListGeofencesResults>} - Promise that resolves to an object with:\n * entries: list of geofences - 100 geofences are listed per page\n * nextToken: token for next page of geofences\n */\n async listGeofences(options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n try {\n return await prov.listGeofences(options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Delete geofences\n * @param geofenceIds string|string[]\n * @param options GeofenceOptions\n * @returns {Promise<DeleteGeofencesResults>} - Promise that resolves to an object with:\n * successes: list of geofences successfully deleted\n * errors: list of geofences that failed to delete\n */\n async deleteGeofences(geofenceIds, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n // If single geofence input, make it an array for batch call\n let geofenceIdsInputArray;\n if (!Array.isArray(geofenceIds)) {\n geofenceIdsInputArray = [geofenceIds];\n }\n else {\n geofenceIdsInputArray = geofenceIds;\n }\n // Delete geofences\n try {\n return await prov.deleteGeofences(geofenceIdsInputArray, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n}\nexports.GeoClass = GeoClass;\nGeoClass.MODULE = 'Geo';\nexports.Geo = new GeoClass();\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Geo.js","sources":["../../src/Geo.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Geo = exports.GeoClass = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst core_1 = require(\"@aws-amplify/core\");\nconst AmazonLocationServiceProvider_1 = require(\"./providers/location-service/AmazonLocationServiceProvider\");\nconst util_1 = require(\"./util\");\nconst logger = new core_1.ConsoleLogger('Geo');\nconst DEFAULT_PROVIDER = 'AmazonLocationService';\nclass GeoClass {\n constructor() {\n this._config = undefined;\n this._pluggables = [];\n const amplifyConfig = core_1.Amplify.getConfig() ?? {};\n this._config = Object.assign({}, this._config, amplifyConfig.Geo);\n const locationProvider = new AmazonLocationServiceProvider_1.AmazonLocationServiceProvider(amplifyConfig.Geo);\n this._pluggables.push(locationProvider);\n logger.debug('Geo Options', this._config);\n }\n /**\n * get the name of the module category\n * @returns {string} name of the module category\n */\n getModuleName() {\n return GeoClass.MODULE;\n }\n /**\n * add plugin into Geo category\n * @param {Object} pluggable an instance of the plugin\n */\n addPluggable(pluggable) {\n if (pluggable && pluggable.getCategory() === 'Geo') {\n this._pluggables.push(pluggable);\n }\n }\n /**\n * Get the plugin object\n * @param providerName the name of the plugin\n */\n getPluggable(providerName) {\n const targetPluggable = this._pluggables.find(pluggable => pluggable.getProviderName() === providerName);\n if (targetPluggable === undefined) {\n logger.debug('No plugin found with providerName', providerName);\n throw new Error('No plugin found in Geo for the provider');\n }\n else\n return targetPluggable;\n }\n /**\n * Remove the plugin object\n * @param providerName the name of the plugin\n */\n removePluggable(providerName) {\n this._pluggables = this._pluggables.filter(pluggable => pluggable.getProviderName() !== providerName);\n }\n /**\n * Get the map resources that are currently available through the provider\n * @param {string} provider\n * @returns - Array of available map resources\n */\n getAvailableMaps(provider = DEFAULT_PROVIDER) {\n const prov = this.getPluggable(provider);\n return prov.getAvailableMaps();\n }\n /**\n * Get the map resource set as default in amplify config\n * @param {string} provider\n * @returns - Map resource set as the default in amplify config\n */\n getDefaultMap(provider = DEFAULT_PROVIDER) {\n const prov = this.getPluggable(provider);\n return prov.getDefaultMap();\n }\n /**\n * Search by text input with optional parameters\n * @param {string} text The text string that is to be searched for\n * @param {SearchByTextOptions} options Optional parameters to the search\n * @returns {Promise<Place[]>} - Promise resolves to a list of Places that match search parameters\n */\n async searchByText(text, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n try {\n return await prov.searchByText(text, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Search for search term suggestions based on input text\n * @param {string} text The text string that is to be search for\n * @param {SearchByTextOptions} options Optional parameters to the search\n * @returns a `Promise` of {@link SearchForSuggestionsResults} that resolves to an array of search suggestion strings\n */\n async searchForSuggestions(text, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n try {\n return await prov.searchForSuggestions(text, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Search for location by unique ID\n * @param {string} placeId Unique ID of the location that is to be searched for\n * @param {searchByPlaceIdOptions} options Optional parameters to the search\n * @returns {Promise<Place>} - Resolves to a place with the given placeId\n */\n async searchByPlaceId(placeId, options) {\n const providerName = DEFAULT_PROVIDER;\n const prov = this.getPluggable(providerName);\n try {\n return await prov.searchByPlaceId(placeId, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Reverse geocoding search via a coordinate point on the map\n * @param coordinates Coordinates array for the search input\n * @param options Options parameters for the search\n * @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates\n */\n async searchByCoordinates(coordinates, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n const [lng, lat] = coordinates;\n try {\n (0, util_1.validateCoordinates)(lng, lat);\n return await prov.searchByCoordinates(coordinates, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Create geofences\n * @param geofences Single or array of geofence objects to create\n * @param options Optional parameters for creating geofences\n * @returns {Promise<SaveGeofencesResults>} - Promise that resolves to an object with:\n * successes: list of geofences successfully created\n * errors: list of geofences that failed to create\n */\n async saveGeofences(geofences, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n // If single geofence input, make it an array for batch call\n let geofenceInputArray;\n if (!Array.isArray(geofences)) {\n geofenceInputArray = [geofences];\n }\n else {\n geofenceInputArray = geofences;\n }\n try {\n return await prov.saveGeofences(geofenceInputArray, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Get a single geofence by geofenceId\n * @param geofenceId The string id of the geofence to get\n * @param options Optional parameters for getting a geofence\n * @returns Promise<Geofence> - Promise that resolves to a geofence object\n */\n async getGeofence(geofenceId, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n try {\n return await prov.getGeofence(geofenceId, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * List geofences\n * @param options ListGeofenceOptions\n * @returns a promise that resolves to an object that conforms to {@link ListGeofenceResults}:\n * entries: list of geofences - 100 geofences are listed per page\n * nextToken: token for next page of geofences\n */\n async listGeofences(options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n try {\n return await prov.listGeofences(options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n /**\n * Delete geofences\n * @param geofenceIds string|string[]\n * @param options GeofenceOptions\n * @returns {Promise<DeleteGeofencesResults>} - Promise that resolves to an object with:\n * successes: list of geofences successfully deleted\n * errors: list of geofences that failed to delete\n */\n async deleteGeofences(geofenceIds, options) {\n const { providerName = DEFAULT_PROVIDER } = options || {};\n const prov = this.getPluggable(providerName);\n // If single geofence input, make it an array for batch call\n let geofenceIdsInputArray;\n if (!Array.isArray(geofenceIds)) {\n geofenceIdsInputArray = [geofenceIds];\n }\n else {\n geofenceIdsInputArray = geofenceIds;\n }\n // Delete geofences\n try {\n return await prov.deleteGeofences(geofenceIdsInputArray, options);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n }\n}\nexports.GeoClass = GeoClass;\nGeoClass.MODULE = 'Geo';\nexports.Geo = new GeoClass();\n"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ class AmazonLocationServiceProvider {
17
17
  * @param {Object} config - Configuration object for Geo
18
18
  */
19
19
  constructor(config) {
20
- this._config = config ? config : {};
20
+ this._config = config || {};
21
21
  logger.debug('Geo Options', this._config);
22
22
  }
23
23
  /**
@@ -42,9 +42,9 @@ class AmazonLocationServiceProvider {
42
42
  this._verifyMapResources();
43
43
  const mapStyles = [];
44
44
  const availableMaps = this._config.maps.items;
45
- const region = this._config.region;
45
+ const { region } = this._config;
46
46
  for (const mapName in availableMaps) {
47
- const style = availableMaps[mapName].style;
47
+ const { style } = availableMaps[mapName];
48
48
  mapStyles.push({ mapName, style, region });
49
49
  }
50
50
  return mapStyles;
@@ -56,8 +56,8 @@ class AmazonLocationServiceProvider {
56
56
  getDefaultMap() {
57
57
  this._verifyMapResources();
58
58
  const mapName = this._config.maps.default;
59
- const style = this._config.maps.items[mapName].style;
60
- const region = this._config.region;
59
+ const { style } = this._config.maps.items[mapName];
60
+ const { region } = this._config;
61
61
  return { mapName, style, region };
62
62
  }
63
63
  /**
@@ -200,7 +200,6 @@ class AmazonLocationServiceProvider {
200
200
  if (place) {
201
201
  return (0, camelcase_keys_1.default)(place, { deep: true });
202
202
  }
203
- return;
204
203
  }
205
204
  /**
206
205
  * Reverse geocoding search via a coordinate point on the map
@@ -253,7 +252,7 @@ class AmazonLocationServiceProvider {
253
252
  * Create geofences inside of a geofence collection
254
253
  * @param geofences Array of geofence objects to create
255
254
  * @param options Optional parameters for creating geofences
256
- * @returns {Promise<AmazonLocationServiceSaveGeofencesResults>} - Promise that resolves to an object with:
255
+ * @returns a promise that resolves to an object that conforms to {@link SaveGeofencesResults}:
257
256
  * successes: list of geofences successfully created
258
257
  * errors: list of geofences that failed to create
259
258
  */
@@ -314,23 +313,23 @@ class AmazonLocationServiceProvider {
314
313
  }
315
314
  // Push all successes to results
316
315
  response.Successes?.forEach(success => {
317
- const { GeofenceId, CreateTime, UpdateTime } = success;
316
+ const { GeofenceId: geofenceId, CreateTime, UpdateTime } = success;
318
317
  results.successes.push({
319
- geofenceId: GeofenceId,
318
+ geofenceId: geofenceId,
320
319
  createTime: CreateTime,
321
320
  updateTime: UpdateTime,
322
321
  });
323
322
  });
324
323
  // Push all errors to results
325
324
  response.Errors?.forEach(error => {
326
- const { Error, GeofenceId } = error;
325
+ const { Error, GeofenceId: geofenceId } = error;
327
326
  const { Code, Message } = Error;
328
327
  results.errors.push({
329
328
  error: {
330
329
  code: Code,
331
330
  message: Message,
332
331
  },
333
- geofenceId: GeofenceId,
332
+ geofenceId: geofenceId,
334
333
  });
335
334
  });
336
335
  }));
@@ -378,10 +377,10 @@ class AmazonLocationServiceProvider {
378
377
  throw error;
379
378
  }
380
379
  // Convert response to camelCase for return
381
- const { GeofenceId, CreateTime, UpdateTime, Status, Geometry } = response;
380
+ const { GeofenceId: responseGeofenceId, CreateTime, UpdateTime, Status, Geometry, } = response;
382
381
  const geofence = {
383
382
  createTime: CreateTime,
384
- geofenceId: GeofenceId,
383
+ geofenceId: responseGeofenceId,
385
384
  geometry: {
386
385
  polygon: Geometry.Polygon,
387
386
  },
@@ -393,7 +392,7 @@ class AmazonLocationServiceProvider {
393
392
  /**
394
393
  * List geofences from a geofence collection
395
394
  * @param options ListGeofenceOptions
396
- * @returns {Promise<ListGeofencesResults>} - Promise that resolves to an object with:
395
+ * @returns a promise that resolves to an object that conforms to {@link ListGeofenceResults}:
397
396
  * entries: list of geofences - 100 geofences are listed per page
398
397
  * nextToken: token for next page of geofences
399
398
  */
@@ -435,9 +434,9 @@ class AmazonLocationServiceProvider {
435
434
  // Convert response to camelCase for return
436
435
  const { NextToken, Entries } = response;
437
436
  const results = {
438
- entries: Entries.map(({ GeofenceId, CreateTime, UpdateTime, Status, Geometry }) => {
437
+ entries: Entries.map(({ GeofenceId: geofenceId, CreateTime, UpdateTime, Status, Geometry, }) => {
439
438
  return {
440
- geofenceId: GeofenceId,
439
+ geofenceId: geofenceId,
441
440
  createTime: CreateTime,
442
441
  updateTime: UpdateTime,
443
442
  status: Status,
@@ -454,7 +453,7 @@ class AmazonLocationServiceProvider {
454
453
  * Delete geofences from a geofence collection
455
454
  * @param geofenceIds string|string[]
456
455
  * @param options GeofenceOptions
457
- * @returns {Promise<DeleteGeofencesResults>} - Promise that resolves to an object with:
456
+ * @returns a promise that resolves to an object that conforms to {@link AmazonLocationServiceDeleteGeofencesResults}:
458
457
  * successes: list of geofences successfully deleted
459
458
  * errors: list of geofences that failed to delete
460
459
  */
@@ -475,6 +474,7 @@ class AmazonLocationServiceProvider {
475
474
  catch (error) {
476
475
  return true;
477
476
  }
477
+ return false;
478
478
  });
479
479
  if (badGeofenceIds.length > 0) {
480
480
  throw new Error(`Invalid geofence ids: ${badGeofenceIds.join(', ')}`);
@@ -509,8 +509,8 @@ class AmazonLocationServiceProvider {
509
509
  });
510
510
  return;
511
511
  }
512
- const badGeofenceIds = response.Errors.map(({ geofenceId }) => geofenceId);
513
- results.successes.push(...batch.filter(Id => !badGeofenceIds.includes(Id)));
512
+ const targetBadGeofenceIds = response.Errors.map(({ geofenceId }) => geofenceId);
513
+ results.successes.push(...batch.filter(Id => !targetBadGeofenceIds.includes(Id)));
514
514
  }));
515
515
  return results;
516
516
  }
@@ -519,7 +519,7 @@ class AmazonLocationServiceProvider {
519
519
  */
520
520
  async _ensureCredentials() {
521
521
  try {
522
- const credentials = (await (0, core_1.fetchAuthSession)()).credentials;
522
+ const { credentials } = await (0, core_1.fetchAuthSession)();
523
523
  if (!credentials)
524
524
  return false;
525
525
  logger.debug('Set credentials for storage. Credentials are:', credentials);
@@ -583,14 +583,7 @@ class AmazonLocationServiceProvider {
583
583
  customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SaveGeofences),
584
584
  });
585
585
  const command = new client_location_1.BatchPutGeofenceCommand(geofenceInput);
586
- let response;
587
- try {
588
- response = await client.send(command);
589
- }
590
- catch (error) {
591
- throw error;
592
- }
593
- return response;
586
+ return client.send(command);
594
587
  }
595
588
  async _AmazonLocationServiceBatchDeleteGeofenceCall(geofenceIds, collectionName) {
596
589
  // Create the BatchDeleteGeofence input
@@ -604,14 +597,7 @@ class AmazonLocationServiceProvider {
604
597
  customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.DeleteGeofences),
605
598
  });
606
599
  const command = new client_location_1.BatchDeleteGeofenceCommand(deleteGeofencesInput);
607
- let response;
608
- try {
609
- response = await client.send(command);
610
- }
611
- catch (error) {
612
- throw error;
613
- }
614
- return response;
600
+ return client.send(command);
615
601
  }
616
602
  }
617
603
  exports.AmazonLocationServiceProvider = AmazonLocationServiceProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"AmazonLocationServiceProvider.js","sources":["../../../../src/providers/location-service/AmazonLocationServiceProvider.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AmazonLocationServiceProvider = void 0;\nconst tslib_1 = require(\"tslib\");\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst camelcase_keys_1 = tslib_1.__importDefault(require(\"camelcase-keys\"));\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst client_location_1 = require(\"@aws-sdk/client-location\");\nconst util_1 = require(\"../../util\");\nconst logger = new core_1.ConsoleLogger('AmazonLocationServiceProvider');\nclass AmazonLocationServiceProvider {\n /**\n * Initialize Geo with AWS configurations\n * @param {Object} config - Configuration object for Geo\n */\n constructor(config) {\n this._config = config ? config : {};\n logger.debug('Geo Options', this._config);\n }\n /**\n * get the category of the plugin\n * @returns {string} name of the category\n */\n getCategory() {\n return AmazonLocationServiceProvider.CATEGORY;\n }\n /**\n * get provider name of the plugin\n * @returns {string} name of the provider\n */\n getProviderName() {\n return AmazonLocationServiceProvider.PROVIDER_NAME;\n }\n /**\n * Get the map resources that are currently available through the provider\n * @returns {AmazonLocationServiceMapStyle[]}- Array of available map resources\n */\n getAvailableMaps() {\n this._verifyMapResources();\n const mapStyles = [];\n const availableMaps = this._config.maps.items;\n const region = this._config.region;\n for (const mapName in availableMaps) {\n const style = availableMaps[mapName].style;\n mapStyles.push({ mapName, style, region });\n }\n return mapStyles;\n }\n /**\n * Get the map resource set as default in amplify config\n * @returns {AmazonLocationServiceMapStyle} - Map resource set as the default in amplify config\n */\n getDefaultMap() {\n this._verifyMapResources();\n const mapName = this._config.maps.default;\n const style = this._config.maps.items[mapName].style;\n const region = this._config.region;\n return { mapName, style, region };\n }\n /**\n * Search by text input with optional parameters\n * @param {string} text The text string that is to be searched for\n * @param {SearchByTextOptions} options Optional parameters to the search\n * @returns {Promise<Place[]>} - Promise resolves to a list of Places that match search parameters\n */\n async searchByText(text, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options?.searchIndexName);\n /**\n * Setup the searchInput\n */\n let locationServiceInput = {\n Text: text,\n IndexName: this._config.search_indices.default,\n };\n /**\n * Map search options to Amazon Location Service input object\n */\n if (options) {\n locationServiceInput = {\n ...locationServiceInput,\n ...(0, util_1.mapSearchOptions)(options, locationServiceInput),\n };\n }\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SearchByText),\n });\n const command = new client_location_1.SearchPlaceIndexForTextCommand(locationServiceInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n /**\n * The response from Amazon Location Service is a \"Results\" array of objects with a single `Place` item,\n * which are Place objects in PascalCase.\n * Here we want to flatten that to an array of results and change them to camelCase\n */\n const PascalResults = response.Results.map(result => result.Place);\n const results = (0, camelcase_keys_1.default)(PascalResults, {\n deep: true,\n });\n return results;\n }\n /**\n * Search for suggestions based on the input text\n * @param {string} text The text string that is to be searched for\n * @param {SearchByTextOptions} options Optional parameters to the search\n * @returns {Promise<SearchForSuggestionsResults>} - Resolves to an array of search suggestion strings\n */\n async searchForSuggestions(text, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options?.searchIndexName);\n /**\n * Setup the searchInput\n */\n let locationServiceInput = {\n Text: text,\n IndexName: this._config.search_indices.default,\n };\n /**\n * Map search options to Amazon Location Service input object\n */\n if (options) {\n locationServiceInput = {\n ...locationServiceInput,\n ...(0, util_1.mapSearchOptions)(options, locationServiceInput),\n };\n }\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SearchForSuggestions),\n });\n const command = new client_location_1.SearchPlaceIndexForSuggestionsCommand(locationServiceInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n /**\n * The response from Amazon Location Service is a \"Results\" array of objects with `Text` and `PlaceId`.\n */\n const results = response.Results.map(result => ({\n text: result.Text,\n placeId: result.PlaceId,\n }));\n return results;\n }\n _verifyPlaceId(placeId) {\n if (placeId.length === 0) {\n const errorString = 'PlaceId cannot be an empty string.';\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n async searchByPlaceId(placeId, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options?.searchIndexName);\n this._verifyPlaceId(placeId);\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SearchByPlaceId),\n });\n const searchByPlaceIdInput = {\n PlaceId: placeId,\n IndexName: options?.searchIndexName || this._config.search_indices.default,\n };\n const command = new client_location_1.GetPlaceCommand(searchByPlaceIdInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n const place = response.Place;\n if (place) {\n return (0, camelcase_keys_1.default)(place, { deep: true });\n }\n return;\n }\n /**\n * Reverse geocoding search via a coordinate point on the map\n * @param coordinates Coordinates array for the search input\n * @param options Options parameters for the search\n * @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates\n */\n async searchByCoordinates(coordinates, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options?.searchIndexName);\n const locationServiceInput = {\n Position: coordinates,\n IndexName: this._config.search_indices.default,\n };\n if (options) {\n if (options.searchIndexName) {\n locationServiceInput.IndexName = options.searchIndexName;\n }\n locationServiceInput.MaxResults = options.maxResults;\n }\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SearchByCoordinates),\n });\n const command = new client_location_1.SearchPlaceIndexForPositionCommand(locationServiceInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n /**\n * The response from Amazon Location Service is a \"Results\" array with a single `Place` object\n * which are Place objects in PascalCase.\n * Here we want to flatten that to an array of results and change them to camelCase\n */\n const PascalResults = response.Results.map(result => result.Place);\n const results = (0, camelcase_keys_1.default)(PascalResults[0], {\n deep: true,\n });\n return results;\n }\n /**\n * Create geofences inside of a geofence collection\n * @param geofences Array of geofence objects to create\n * @param options Optional parameters for creating geofences\n * @returns {Promise<AmazonLocationServiceSaveGeofencesResults>} - Promise that resolves to an object with:\n * successes: list of geofences successfully created\n * errors: list of geofences that failed to create\n */\n async saveGeofences(geofences, options) {\n if (geofences.length < 1) {\n throw new Error('Geofence input array is empty');\n }\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n // Verify geofence collection exists in aws-config.js\n try {\n this._verifyGeofenceCollections(options?.collectionName);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n (0, util_1.validateGeofencesInput)(geofences);\n // Convert geofences to PascalCase for Amazon Location Service format\n const PascalGeofences = geofences.map(({ geofenceId, geometry: { polygon } }) => {\n return {\n GeofenceId: geofenceId,\n Geometry: {\n Polygon: polygon,\n },\n };\n });\n const results = {\n successes: [],\n errors: [],\n };\n const geofenceBatches = [];\n while (PascalGeofences.length > 0) {\n // Splice off 10 geofences from input clone due to Amazon Location Service API limit\n const apiLimit = 10;\n geofenceBatches.push(PascalGeofences.splice(0, apiLimit));\n }\n await Promise.all(geofenceBatches.map(async (batch) => {\n // Make API call for the 10 geofences\n let response;\n try {\n response = await this._AmazonLocationServiceBatchPutGeofenceCall(batch, options?.collectionName || this._config.geofenceCollections.default);\n }\n catch (error) {\n // If the API call fails, add the geofences to the errors array and move to next batch\n batch.forEach(geofence => {\n results.errors.push({\n geofenceId: geofence.GeofenceId,\n error: {\n code: 'APIConnectionError',\n message: error.message,\n },\n });\n });\n return;\n }\n // Push all successes to results\n response.Successes?.forEach(success => {\n const { GeofenceId, CreateTime, UpdateTime } = success;\n results.successes.push({\n geofenceId: GeofenceId,\n createTime: CreateTime,\n updateTime: UpdateTime,\n });\n });\n // Push all errors to results\n response.Errors?.forEach(error => {\n const { Error, GeofenceId } = error;\n const { Code, Message } = Error;\n results.errors.push({\n error: {\n code: Code,\n message: Message,\n },\n geofenceId: GeofenceId,\n });\n });\n }));\n return results;\n }\n /**\n * Get geofence from a geofence collection\n * @param geofenceId string\n * @param options Optional parameters for getGeofence\n * @returns {Promise<AmazonLocationServiceGeofence>} - Promise that resolves to a geofence object\n */\n async getGeofence(geofenceId, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n // Verify geofence collection exists in aws-config.js\n try {\n this._verifyGeofenceCollections(options?.collectionName);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n (0, util_1.validateGeofenceId)(geofenceId);\n // Create Amazon Location Service Client\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.GetGeofence),\n });\n // Create Amazon Location Service command\n const commandInput = {\n GeofenceId: geofenceId,\n CollectionName: options?.collectionName || this._config.geofenceCollections.default,\n };\n const command = new client_location_1.GetGeofenceCommand(commandInput);\n // Make API call\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n // Convert response to camelCase for return\n const { GeofenceId, CreateTime, UpdateTime, Status, Geometry } = response;\n const geofence = {\n createTime: CreateTime,\n geofenceId: GeofenceId,\n geometry: {\n polygon: Geometry.Polygon,\n },\n status: Status,\n updateTime: UpdateTime,\n };\n return geofence;\n }\n /**\n * List geofences from a geofence collection\n * @param options ListGeofenceOptions\n * @returns {Promise<ListGeofencesResults>} - Promise that resolves to an object with:\n * entries: list of geofences - 100 geofences are listed per page\n * nextToken: token for next page of geofences\n */\n async listGeofences(options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n // Verify geofence collection exists in aws-config.js\n try {\n this._verifyGeofenceCollections(options?.collectionName);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n // Create Amazon Location Service Client\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.ListGeofences),\n });\n // Create Amazon Location Service input\n const listGeofencesInput = {\n NextToken: options?.nextToken,\n CollectionName: options?.collectionName || this._config.geofenceCollections.default,\n };\n // Create Amazon Location Service command\n const command = new client_location_1.ListGeofencesCommand(listGeofencesInput);\n // Make API call\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n // Convert response to camelCase for return\n const { NextToken, Entries } = response;\n const results = {\n entries: Entries.map(({ GeofenceId, CreateTime, UpdateTime, Status, Geometry }) => {\n return {\n geofenceId: GeofenceId,\n createTime: CreateTime,\n updateTime: UpdateTime,\n status: Status,\n geometry: {\n polygon: Geometry.Polygon,\n },\n };\n }),\n nextToken: NextToken,\n };\n return results;\n }\n /**\n * Delete geofences from a geofence collection\n * @param geofenceIds string|string[]\n * @param options GeofenceOptions\n * @returns {Promise<DeleteGeofencesResults>} - Promise that resolves to an object with:\n * successes: list of geofences successfully deleted\n * errors: list of geofences that failed to delete\n */\n async deleteGeofences(geofenceIds, options) {\n if (geofenceIds.length < 1) {\n throw new Error('GeofenceId input array is empty');\n }\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifyGeofenceCollections(options?.collectionName);\n // Validate all geofenceIds are valid\n const badGeofenceIds = geofenceIds.filter(geofenceId => {\n try {\n (0, util_1.validateGeofenceId)(geofenceId);\n }\n catch (error) {\n return true;\n }\n });\n if (badGeofenceIds.length > 0) {\n throw new Error(`Invalid geofence ids: ${badGeofenceIds.join(', ')}`);\n }\n const results = {\n successes: [],\n errors: [],\n };\n const geofenceIdBatches = [];\n let count = 0;\n while (count < geofenceIds.length) {\n geofenceIdBatches.push(geofenceIds.slice(count, (count += 10)));\n }\n await Promise.all(geofenceIdBatches.map(async (batch) => {\n let response;\n try {\n response = await this._AmazonLocationServiceBatchDeleteGeofenceCall(batch, options?.collectionName || this._config.geofenceCollections.default);\n }\n catch (error) {\n // If the API call fails, add the geofences to the errors array and move to next batch\n batch.forEach(geofenceId => {\n const errorObject = {\n geofenceId,\n error: {\n code: error\n .message,\n message: error\n .message,\n },\n };\n results.errors.push(errorObject);\n });\n return;\n }\n const badGeofenceIds = response.Errors.map(({ geofenceId }) => geofenceId);\n results.successes.push(...batch.filter(Id => !badGeofenceIds.includes(Id)));\n }));\n return results;\n }\n /**\n * @private\n */\n async _ensureCredentials() {\n try {\n const credentials = (await (0, core_1.fetchAuthSession)()).credentials;\n if (!credentials)\n return false;\n logger.debug('Set credentials for storage. Credentials are:', credentials);\n this._credentials = credentials;\n return true;\n }\n catch (error) {\n logger.debug('Ensure credentials error. Credentials are:', error);\n return false;\n }\n }\n _refreshConfig() {\n this._config = core_1.Amplify.getConfig().Geo?.LocationService;\n if (!this._config) {\n const errorString = \"No Geo configuration found in amplify config, run 'amplify add geo' to create one and run `amplify push` after\";\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n _verifyMapResources() {\n this._refreshConfig();\n if (!this._config.maps) {\n const errorString = \"No map resources found in amplify config, run 'amplify add geo' to create one and run `amplify push` after\";\n logger.debug(errorString);\n throw new Error(errorString);\n }\n if (!this._config.maps.default) {\n const errorString = \"No default map resource found in amplify config, run 'amplify add geo' to create one and run `amplify push` after\";\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n _verifySearchIndex(optionalSearchIndex) {\n this._refreshConfig();\n if ((!this._config.searchIndices || !this._config.searchIndices.default) &&\n !optionalSearchIndex) {\n const errorString = 'No Search Index found in amplify config, please run `amplify add geo` to create one and run `amplify push` after.';\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n _verifyGeofenceCollections(optionalGeofenceCollectionName) {\n this._refreshConfig();\n if ((!this._config.geofenceCollections ||\n !this._config.geofenceCollections.default) &&\n !optionalGeofenceCollectionName) {\n const errorString = 'No Geofence Collections found, please run `amplify add geo` to create one and run `amplify push` after.';\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n async _AmazonLocationServiceBatchPutGeofenceCall(PascalGeofences, collectionName) {\n // Create the BatchPutGeofence input\n const geofenceInput = {\n Entries: PascalGeofences,\n CollectionName: collectionName || this._config.geofenceCollections.default,\n };\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SaveGeofences),\n });\n const command = new client_location_1.BatchPutGeofenceCommand(geofenceInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n throw error;\n }\n return response;\n }\n async _AmazonLocationServiceBatchDeleteGeofenceCall(geofenceIds, collectionName) {\n // Create the BatchDeleteGeofence input\n const deleteGeofencesInput = {\n GeofenceIds: geofenceIds,\n CollectionName: collectionName || this._config.geofenceCollections.default,\n };\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.DeleteGeofences),\n });\n const command = new client_location_1.BatchDeleteGeofenceCommand(deleteGeofencesInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n throw error;\n }\n return response;\n }\n}\nexports.AmazonLocationServiceProvider = AmazonLocationServiceProvider;\nAmazonLocationServiceProvider.CATEGORY = 'Geo';\nAmazonLocationServiceProvider.PROVIDER_NAME = 'AmazonLocationService';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AmazonLocationServiceProvider.js","sources":["../../../../src/providers/location-service/AmazonLocationServiceProvider.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AmazonLocationServiceProvider = void 0;\nconst tslib_1 = require(\"tslib\");\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst camelcase_keys_1 = tslib_1.__importDefault(require(\"camelcase-keys\"));\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst client_location_1 = require(\"@aws-sdk/client-location\");\nconst util_1 = require(\"../../util\");\nconst logger = new core_1.ConsoleLogger('AmazonLocationServiceProvider');\nclass AmazonLocationServiceProvider {\n /**\n * Initialize Geo with AWS configurations\n * @param {Object} config - Configuration object for Geo\n */\n constructor(config) {\n this._config = config || {};\n logger.debug('Geo Options', this._config);\n }\n /**\n * get the category of the plugin\n * @returns {string} name of the category\n */\n getCategory() {\n return AmazonLocationServiceProvider.CATEGORY;\n }\n /**\n * get provider name of the plugin\n * @returns {string} name of the provider\n */\n getProviderName() {\n return AmazonLocationServiceProvider.PROVIDER_NAME;\n }\n /**\n * Get the map resources that are currently available through the provider\n * @returns {AmazonLocationServiceMapStyle[]}- Array of available map resources\n */\n getAvailableMaps() {\n this._verifyMapResources();\n const mapStyles = [];\n const availableMaps = this._config.maps.items;\n const { region } = this._config;\n for (const mapName in availableMaps) {\n const { style } = availableMaps[mapName];\n mapStyles.push({ mapName, style, region });\n }\n return mapStyles;\n }\n /**\n * Get the map resource set as default in amplify config\n * @returns {AmazonLocationServiceMapStyle} - Map resource set as the default in amplify config\n */\n getDefaultMap() {\n this._verifyMapResources();\n const mapName = this._config.maps.default;\n const { style } = this._config.maps.items[mapName];\n const { region } = this._config;\n return { mapName, style, region };\n }\n /**\n * Search by text input with optional parameters\n * @param {string} text The text string that is to be searched for\n * @param {SearchByTextOptions} options Optional parameters to the search\n * @returns {Promise<Place[]>} - Promise resolves to a list of Places that match search parameters\n */\n async searchByText(text, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options?.searchIndexName);\n /**\n * Setup the searchInput\n */\n let locationServiceInput = {\n Text: text,\n IndexName: this._config.search_indices.default,\n };\n /**\n * Map search options to Amazon Location Service input object\n */\n if (options) {\n locationServiceInput = {\n ...locationServiceInput,\n ...(0, util_1.mapSearchOptions)(options, locationServiceInput),\n };\n }\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SearchByText),\n });\n const command = new client_location_1.SearchPlaceIndexForTextCommand(locationServiceInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n /**\n * The response from Amazon Location Service is a \"Results\" array of objects with a single `Place` item,\n * which are Place objects in PascalCase.\n * Here we want to flatten that to an array of results and change them to camelCase\n */\n const PascalResults = response.Results.map(result => result.Place);\n const results = (0, camelcase_keys_1.default)(PascalResults, {\n deep: true,\n });\n return results;\n }\n /**\n * Search for suggestions based on the input text\n * @param {string} text The text string that is to be searched for\n * @param {SearchByTextOptions} options Optional parameters to the search\n * @returns {Promise<SearchForSuggestionsResults>} - Resolves to an array of search suggestion strings\n */\n async searchForSuggestions(text, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options?.searchIndexName);\n /**\n * Setup the searchInput\n */\n let locationServiceInput = {\n Text: text,\n IndexName: this._config.search_indices.default,\n };\n /**\n * Map search options to Amazon Location Service input object\n */\n if (options) {\n locationServiceInput = {\n ...locationServiceInput,\n ...(0, util_1.mapSearchOptions)(options, locationServiceInput),\n };\n }\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SearchForSuggestions),\n });\n const command = new client_location_1.SearchPlaceIndexForSuggestionsCommand(locationServiceInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n /**\n * The response from Amazon Location Service is a \"Results\" array of objects with `Text` and `PlaceId`.\n */\n const results = response.Results.map(result => ({\n text: result.Text,\n placeId: result.PlaceId,\n }));\n return results;\n }\n _verifyPlaceId(placeId) {\n if (placeId.length === 0) {\n const errorString = 'PlaceId cannot be an empty string.';\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n async searchByPlaceId(placeId, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options?.searchIndexName);\n this._verifyPlaceId(placeId);\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SearchByPlaceId),\n });\n const searchByPlaceIdInput = {\n PlaceId: placeId,\n IndexName: options?.searchIndexName || this._config.search_indices.default,\n };\n const command = new client_location_1.GetPlaceCommand(searchByPlaceIdInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n const place = response.Place;\n if (place) {\n return (0, camelcase_keys_1.default)(place, { deep: true });\n }\n }\n /**\n * Reverse geocoding search via a coordinate point on the map\n * @param coordinates Coordinates array for the search input\n * @param options Options parameters for the search\n * @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates\n */\n async searchByCoordinates(coordinates, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options?.searchIndexName);\n const locationServiceInput = {\n Position: coordinates,\n IndexName: this._config.search_indices.default,\n };\n if (options) {\n if (options.searchIndexName) {\n locationServiceInput.IndexName = options.searchIndexName;\n }\n locationServiceInput.MaxResults = options.maxResults;\n }\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SearchByCoordinates),\n });\n const command = new client_location_1.SearchPlaceIndexForPositionCommand(locationServiceInput);\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n /**\n * The response from Amazon Location Service is a \"Results\" array with a single `Place` object\n * which are Place objects in PascalCase.\n * Here we want to flatten that to an array of results and change them to camelCase\n */\n const PascalResults = response.Results.map(result => result.Place);\n const results = (0, camelcase_keys_1.default)(PascalResults[0], {\n deep: true,\n });\n return results;\n }\n /**\n * Create geofences inside of a geofence collection\n * @param geofences Array of geofence objects to create\n * @param options Optional parameters for creating geofences\n * @returns a promise that resolves to an object that conforms to {@link SaveGeofencesResults}:\n * successes: list of geofences successfully created\n * errors: list of geofences that failed to create\n */\n async saveGeofences(geofences, options) {\n if (geofences.length < 1) {\n throw new Error('Geofence input array is empty');\n }\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n // Verify geofence collection exists in aws-config.js\n try {\n this._verifyGeofenceCollections(options?.collectionName);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n (0, util_1.validateGeofencesInput)(geofences);\n // Convert geofences to PascalCase for Amazon Location Service format\n const PascalGeofences = geofences.map(({ geofenceId, geometry: { polygon } }) => {\n return {\n GeofenceId: geofenceId,\n Geometry: {\n Polygon: polygon,\n },\n };\n });\n const results = {\n successes: [],\n errors: [],\n };\n const geofenceBatches = [];\n while (PascalGeofences.length > 0) {\n // Splice off 10 geofences from input clone due to Amazon Location Service API limit\n const apiLimit = 10;\n geofenceBatches.push(PascalGeofences.splice(0, apiLimit));\n }\n await Promise.all(geofenceBatches.map(async (batch) => {\n // Make API call for the 10 geofences\n let response;\n try {\n response = await this._AmazonLocationServiceBatchPutGeofenceCall(batch, options?.collectionName || this._config.geofenceCollections.default);\n }\n catch (error) {\n // If the API call fails, add the geofences to the errors array and move to next batch\n batch.forEach(geofence => {\n results.errors.push({\n geofenceId: geofence.GeofenceId,\n error: {\n code: 'APIConnectionError',\n message: error.message,\n },\n });\n });\n return;\n }\n // Push all successes to results\n response.Successes?.forEach(success => {\n const { GeofenceId: geofenceId, CreateTime, UpdateTime } = success;\n results.successes.push({\n geofenceId: geofenceId,\n createTime: CreateTime,\n updateTime: UpdateTime,\n });\n });\n // Push all errors to results\n response.Errors?.forEach(error => {\n const { Error, GeofenceId: geofenceId } = error;\n const { Code, Message } = Error;\n results.errors.push({\n error: {\n code: Code,\n message: Message,\n },\n geofenceId: geofenceId,\n });\n });\n }));\n return results;\n }\n /**\n * Get geofence from a geofence collection\n * @param geofenceId string\n * @param options Optional parameters for getGeofence\n * @returns {Promise<AmazonLocationServiceGeofence>} - Promise that resolves to a geofence object\n */\n async getGeofence(geofenceId, options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n // Verify geofence collection exists in aws-config.js\n try {\n this._verifyGeofenceCollections(options?.collectionName);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n (0, util_1.validateGeofenceId)(geofenceId);\n // Create Amazon Location Service Client\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.GetGeofence),\n });\n // Create Amazon Location Service command\n const commandInput = {\n GeofenceId: geofenceId,\n CollectionName: options?.collectionName || this._config.geofenceCollections.default,\n };\n const command = new client_location_1.GetGeofenceCommand(commandInput);\n // Make API call\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n // Convert response to camelCase for return\n const { GeofenceId: responseGeofenceId, CreateTime, UpdateTime, Status, Geometry, } = response;\n const geofence = {\n createTime: CreateTime,\n geofenceId: responseGeofenceId,\n geometry: {\n polygon: Geometry.Polygon,\n },\n status: Status,\n updateTime: UpdateTime,\n };\n return geofence;\n }\n /**\n * List geofences from a geofence collection\n * @param options ListGeofenceOptions\n * @returns a promise that resolves to an object that conforms to {@link ListGeofenceResults}:\n * entries: list of geofences - 100 geofences are listed per page\n * nextToken: token for next page of geofences\n */\n async listGeofences(options) {\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n // Verify geofence collection exists in aws-config.js\n try {\n this._verifyGeofenceCollections(options?.collectionName);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n // Create Amazon Location Service Client\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.ListGeofences),\n });\n // Create Amazon Location Service input\n const listGeofencesInput = {\n NextToken: options?.nextToken,\n CollectionName: options?.collectionName || this._config.geofenceCollections.default,\n };\n // Create Amazon Location Service command\n const command = new client_location_1.ListGeofencesCommand(listGeofencesInput);\n // Make API call\n let response;\n try {\n response = await client.send(command);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n // Convert response to camelCase for return\n const { NextToken, Entries } = response;\n const results = {\n entries: Entries.map(({ GeofenceId: geofenceId, CreateTime, UpdateTime, Status, Geometry, }) => {\n return {\n geofenceId: geofenceId,\n createTime: CreateTime,\n updateTime: UpdateTime,\n status: Status,\n geometry: {\n polygon: Geometry.Polygon,\n },\n };\n }),\n nextToken: NextToken,\n };\n return results;\n }\n /**\n * Delete geofences from a geofence collection\n * @param geofenceIds string|string[]\n * @param options GeofenceOptions\n * @returns a promise that resolves to an object that conforms to {@link AmazonLocationServiceDeleteGeofencesResults}:\n * successes: list of geofences successfully deleted\n * errors: list of geofences that failed to delete\n */\n async deleteGeofences(geofenceIds, options) {\n if (geofenceIds.length < 1) {\n throw new Error('GeofenceId input array is empty');\n }\n const credentialsOK = await this._ensureCredentials();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifyGeofenceCollections(options?.collectionName);\n // Validate all geofenceIds are valid\n const badGeofenceIds = geofenceIds.filter(geofenceId => {\n try {\n (0, util_1.validateGeofenceId)(geofenceId);\n }\n catch (error) {\n return true;\n }\n return false;\n });\n if (badGeofenceIds.length > 0) {\n throw new Error(`Invalid geofence ids: ${badGeofenceIds.join(', ')}`);\n }\n const results = {\n successes: [],\n errors: [],\n };\n const geofenceIdBatches = [];\n let count = 0;\n while (count < geofenceIds.length) {\n geofenceIdBatches.push(geofenceIds.slice(count, (count += 10)));\n }\n await Promise.all(geofenceIdBatches.map(async (batch) => {\n let response;\n try {\n response = await this._AmazonLocationServiceBatchDeleteGeofenceCall(batch, options?.collectionName || this._config.geofenceCollections.default);\n }\n catch (error) {\n // If the API call fails, add the geofences to the errors array and move to next batch\n batch.forEach(geofenceId => {\n const errorObject = {\n geofenceId,\n error: {\n code: error\n .message,\n message: error\n .message,\n },\n };\n results.errors.push(errorObject);\n });\n return;\n }\n const targetBadGeofenceIds = response.Errors.map(({ geofenceId }) => geofenceId);\n results.successes.push(...batch.filter(Id => !targetBadGeofenceIds.includes(Id)));\n }));\n return results;\n }\n /**\n * @private\n */\n async _ensureCredentials() {\n try {\n const { credentials } = await (0, core_1.fetchAuthSession)();\n if (!credentials)\n return false;\n logger.debug('Set credentials for storage. Credentials are:', credentials);\n this._credentials = credentials;\n return true;\n }\n catch (error) {\n logger.debug('Ensure credentials error. Credentials are:', error);\n return false;\n }\n }\n _refreshConfig() {\n this._config = core_1.Amplify.getConfig().Geo?.LocationService;\n if (!this._config) {\n const errorString = \"No Geo configuration found in amplify config, run 'amplify add geo' to create one and run `amplify push` after\";\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n _verifyMapResources() {\n this._refreshConfig();\n if (!this._config.maps) {\n const errorString = \"No map resources found in amplify config, run 'amplify add geo' to create one and run `amplify push` after\";\n logger.debug(errorString);\n throw new Error(errorString);\n }\n if (!this._config.maps.default) {\n const errorString = \"No default map resource found in amplify config, run 'amplify add geo' to create one and run `amplify push` after\";\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n _verifySearchIndex(optionalSearchIndex) {\n this._refreshConfig();\n if ((!this._config.searchIndices || !this._config.searchIndices.default) &&\n !optionalSearchIndex) {\n const errorString = 'No Search Index found in amplify config, please run `amplify add geo` to create one and run `amplify push` after.';\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n _verifyGeofenceCollections(optionalGeofenceCollectionName) {\n this._refreshConfig();\n if ((!this._config.geofenceCollections ||\n !this._config.geofenceCollections.default) &&\n !optionalGeofenceCollectionName) {\n const errorString = 'No Geofence Collections found, please run `amplify add geo` to create one and run `amplify push` after.';\n logger.debug(errorString);\n throw new Error(errorString);\n }\n }\n async _AmazonLocationServiceBatchPutGeofenceCall(PascalGeofences, collectionName) {\n // Create the BatchPutGeofence input\n const geofenceInput = {\n Entries: PascalGeofences,\n CollectionName: collectionName || this._config.geofenceCollections.default,\n };\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.SaveGeofences),\n });\n const command = new client_location_1.BatchPutGeofenceCommand(geofenceInput);\n return client.send(command);\n }\n async _AmazonLocationServiceBatchDeleteGeofenceCall(geofenceIds, collectionName) {\n // Create the BatchDeleteGeofence input\n const deleteGeofencesInput = {\n GeofenceIds: geofenceIds,\n CollectionName: collectionName || this._config.geofenceCollections.default,\n };\n const client = new client_location_1.LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: (0, util_1.getGeoUserAgent)(utils_1.GeoAction.DeleteGeofences),\n });\n const command = new client_location_1.BatchDeleteGeofenceCommand(deleteGeofencesInput);\n return client.send(command);\n }\n}\nexports.AmazonLocationServiceProvider = AmazonLocationServiceProvider;\nAmazonLocationServiceProvider.CATEGORY = 'Geo';\nAmazonLocationServiceProvider.PROVIDER_NAME = 'AmazonLocationService';\n"],"names":[],"mappings":"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"}
package/dist/cjs/util.js CHANGED
@@ -11,10 +11,10 @@ function validateCoordinates(lng, lat) {
11
11
  if (!Number.isFinite(lng) || !Number.isFinite(lat)) {
12
12
  throw new Error(`Invalid coordinates: [${lng},${lat}]`);
13
13
  }
14
- if (lat < -90 || 90 < lat) {
14
+ if (lat < -90 || lat > 90) {
15
15
  throw new Error('Latitude must be between -90 and 90 degrees inclusive.');
16
16
  }
17
- else if (lng < -180 || 180 < lng) {
17
+ else if (lng < -180 || lng > 180) {
18
18
  throw new Error('Longitude must be between -180 and 180 degrees inclusive.');
19
19
  }
20
20
  }
@@ -127,14 +127,14 @@ function mapSearchOptions(options, locationServiceInput) {
127
127
  if (options.searchIndexName) {
128
128
  locationServiceModifiedInput.IndexName = options.searchIndexName;
129
129
  }
130
- if (options['biasPosition'] && options['searchAreaConstraints']) {
130
+ if (options.biasPosition && options.searchAreaConstraints) {
131
131
  throw new Error('BiasPosition and SearchAreaConstraints are mutually exclusive, please remove one or the other from the options object');
132
132
  }
133
- if (options['biasPosition']) {
134
- locationServiceModifiedInput.BiasPosition = options['biasPosition'];
133
+ if (options.biasPosition) {
134
+ locationServiceModifiedInput.BiasPosition = options.biasPosition;
135
135
  }
136
- if (options['searchAreaConstraints']) {
137
- locationServiceModifiedInput.FilterBBox = options['searchAreaConstraints'];
136
+ if (options.searchAreaConstraints) {
137
+ locationServiceModifiedInput.FilterBBox = options.searchAreaConstraints;
138
138
  }
139
139
  return locationServiceModifiedInput;
140
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../src/util.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getGeoUserAgentString = exports.getGeoUserAgent = exports.mapSearchOptions = exports.validateGeofencesInput = exports.validatePolygon = exports.validateLinearRing = exports.validateGeofenceId = exports.validateCoordinates = void 0;\nconst tslib_1 = require(\"tslib\");\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst boolean_clockwise_1 = tslib_1.__importDefault(require(\"@turf/boolean-clockwise\"));\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nfunction validateCoordinates(lng, lat) {\n if (!Number.isFinite(lng) || !Number.isFinite(lat)) {\n throw new Error(`Invalid coordinates: [${lng},${lat}]`);\n }\n if (lat < -90 || 90 < lat) {\n throw new Error('Latitude must be between -90 and 90 degrees inclusive.');\n }\n else if (lng < -180 || 180 < lng) {\n throw new Error('Longitude must be between -180 and 180 degrees inclusive.');\n }\n}\nexports.validateCoordinates = validateCoordinates;\nfunction validateGeofenceId(geofenceId) {\n const geofenceIdRegex = /^[-._\\p{L}\\p{N}]+$/iu;\n // Check if geofenceId is valid\n if (!geofenceIdRegex.test(geofenceId)) {\n throw new Error(`Invalid geofenceId: '${geofenceId}' - IDs can only contain alphanumeric characters, hyphens, underscores and periods.`);\n }\n}\nexports.validateGeofenceId = validateGeofenceId;\nfunction validateLinearRing(linearRing, geofenceId) {\n const errorPrefix = geofenceId ? `${geofenceId}: ` : '';\n // Validate LinearRing size, must be at least 4 points\n if (linearRing.length < 4) {\n throw new Error(`${errorPrefix}LinearRing must contain 4 or more coordinates.`);\n }\n // Validate all coordinates are valid, error with which ones are bad\n const badCoordinates = [];\n linearRing.forEach(coordinates => {\n try {\n validateCoordinates(coordinates[0], coordinates[1]);\n }\n catch (error) {\n badCoordinates.push({ coordinates, error: error.message });\n }\n });\n if (badCoordinates.length > 0) {\n throw new Error(`${errorPrefix}One or more of the coordinates in the Polygon LinearRing are not valid: ${JSON.stringify(badCoordinates)}`);\n }\n // Validate first and last coordinates are the same\n const [lngA, latA] = linearRing[0];\n const [lngB, latB] = linearRing[linearRing.length - 1];\n if (lngA !== lngB || latA !== latB) {\n throw new Error(`${errorPrefix}LinearRing's first and last coordinates are not the same`);\n }\n if ((0, boolean_clockwise_1.default)(linearRing)) {\n throw new Error(`${errorPrefix}LinearRing coordinates must be wound counterclockwise`);\n }\n}\nexports.validateLinearRing = validateLinearRing;\nfunction validatePolygon(polygon, geofenceId) {\n const errorPrefix = geofenceId ? `${geofenceId}: ` : '';\n if (!Array.isArray(polygon)) {\n throw new Error(`${errorPrefix}Polygon is of incorrect structure. It should be an array of LinearRings`);\n }\n if (polygon.length < 1) {\n throw new Error(`${errorPrefix}Polygon must have a single LinearRing array.`);\n }\n if (polygon.length > 1) {\n throw new Error(`${errorPrefix}Polygon must have a single LinearRing array. Note: We do not currently support polygons with holes, multipolygons, polygons that are wound clockwise, or that cross the antimeridian.`);\n }\n const verticesCount = polygon.reduce((prev, linearRing) => prev + linearRing.length, 0);\n if (verticesCount > 1000) {\n throw new Error(`${errorPrefix}Polygon has more than the maximum 1000 vertices.`);\n }\n polygon.forEach(linearRing => {\n validateLinearRing(linearRing, geofenceId);\n });\n}\nexports.validatePolygon = validatePolygon;\nfunction validateGeofencesInput(geofences) {\n const geofenceIds = {};\n geofences.forEach((geofence) => {\n // verify all required properties are present\n // Validate geofenceId exists\n if (!geofence.geofenceId) {\n throw new Error(`Geofence '${geofence}' is missing geofenceId`);\n }\n const { geofenceId } = geofence;\n validateGeofenceId(geofenceId);\n // Validate geofenceId is unique\n if (geofenceIds[geofenceId]) {\n throw new Error(`Duplicate geofenceId: ${geofenceId}`);\n }\n else {\n geofenceIds[geofenceId] = true;\n }\n // Validate geometry exists\n if (!geofence.geometry) {\n throw new Error(`Geofence '${geofenceId}' is missing geometry`);\n }\n const { geometry } = geofence;\n // Validate polygon exists\n if (!geometry.polygon) {\n throw new Error(`Geofence '${geofenceId}' is missing geometry.polygon`);\n }\n const { polygon } = geometry;\n // Validate polygon length and structure\n try {\n validatePolygon(polygon, geofenceId);\n }\n catch (error) {\n if (error.message.includes('Polygon has more than the maximum 1000 vertices.')) {\n throw new Error(`Geofence '${geofenceId}' has more than the maximum of 1000 vertices`);\n }\n }\n // Validate LinearRing length, structure, and coordinates\n const [linearRing] = polygon;\n validateLinearRing(linearRing, geofenceId);\n });\n}\nexports.validateGeofencesInput = validateGeofencesInput;\nfunction mapSearchOptions(options, locationServiceInput) {\n const locationServiceModifiedInput = { ...locationServiceInput };\n locationServiceModifiedInput.FilterCountries = options.countries;\n locationServiceModifiedInput.MaxResults = options.maxResults;\n locationServiceModifiedInput.Language = options.language;\n if (options.searchIndexName) {\n locationServiceModifiedInput.IndexName = options.searchIndexName;\n }\n if (options['biasPosition'] && options['searchAreaConstraints']) {\n throw new Error('BiasPosition and SearchAreaConstraints are mutually exclusive, please remove one or the other from the options object');\n }\n if (options['biasPosition']) {\n locationServiceModifiedInput.BiasPosition = options['biasPosition'];\n }\n if (options['searchAreaConstraints']) {\n locationServiceModifiedInput.FilterBBox = options['searchAreaConstraints'];\n }\n return locationServiceModifiedInput;\n}\nexports.mapSearchOptions = mapSearchOptions;\nfunction getGeoUserAgent(action) {\n return (0, utils_1.getAmplifyUserAgentObject)({\n category: utils_1.Category.Geo,\n action,\n });\n}\nexports.getGeoUserAgent = getGeoUserAgent;\nfunction getGeoUserAgentString(action) {\n return (0, utils_1.getAmplifyUserAgent)({\n category: utils_1.Category.Geo,\n action,\n });\n}\nexports.getGeoUserAgentString = getGeoUserAgentString;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sources":["../../src/util.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getGeoUserAgentString = exports.getGeoUserAgent = exports.mapSearchOptions = exports.validateGeofencesInput = exports.validatePolygon = exports.validateLinearRing = exports.validateGeofenceId = exports.validateCoordinates = void 0;\nconst tslib_1 = require(\"tslib\");\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst boolean_clockwise_1 = tslib_1.__importDefault(require(\"@turf/boolean-clockwise\"));\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nfunction validateCoordinates(lng, lat) {\n if (!Number.isFinite(lng) || !Number.isFinite(lat)) {\n throw new Error(`Invalid coordinates: [${lng},${lat}]`);\n }\n if (lat < -90 || lat > 90) {\n throw new Error('Latitude must be between -90 and 90 degrees inclusive.');\n }\n else if (lng < -180 || lng > 180) {\n throw new Error('Longitude must be between -180 and 180 degrees inclusive.');\n }\n}\nexports.validateCoordinates = validateCoordinates;\nfunction validateGeofenceId(geofenceId) {\n const geofenceIdRegex = /^[-._\\p{L}\\p{N}]+$/iu;\n // Check if geofenceId is valid\n if (!geofenceIdRegex.test(geofenceId)) {\n throw new Error(`Invalid geofenceId: '${geofenceId}' - IDs can only contain alphanumeric characters, hyphens, underscores and periods.`);\n }\n}\nexports.validateGeofenceId = validateGeofenceId;\nfunction validateLinearRing(linearRing, geofenceId) {\n const errorPrefix = geofenceId ? `${geofenceId}: ` : '';\n // Validate LinearRing size, must be at least 4 points\n if (linearRing.length < 4) {\n throw new Error(`${errorPrefix}LinearRing must contain 4 or more coordinates.`);\n }\n // Validate all coordinates are valid, error with which ones are bad\n const badCoordinates = [];\n linearRing.forEach(coordinates => {\n try {\n validateCoordinates(coordinates[0], coordinates[1]);\n }\n catch (error) {\n badCoordinates.push({ coordinates, error: error.message });\n }\n });\n if (badCoordinates.length > 0) {\n throw new Error(`${errorPrefix}One or more of the coordinates in the Polygon LinearRing are not valid: ${JSON.stringify(badCoordinates)}`);\n }\n // Validate first and last coordinates are the same\n const [lngA, latA] = linearRing[0];\n const [lngB, latB] = linearRing[linearRing.length - 1];\n if (lngA !== lngB || latA !== latB) {\n throw new Error(`${errorPrefix}LinearRing's first and last coordinates are not the same`);\n }\n if ((0, boolean_clockwise_1.default)(linearRing)) {\n throw new Error(`${errorPrefix}LinearRing coordinates must be wound counterclockwise`);\n }\n}\nexports.validateLinearRing = validateLinearRing;\nfunction validatePolygon(polygon, geofenceId) {\n const errorPrefix = geofenceId ? `${geofenceId}: ` : '';\n if (!Array.isArray(polygon)) {\n throw new Error(`${errorPrefix}Polygon is of incorrect structure. It should be an array of LinearRings`);\n }\n if (polygon.length < 1) {\n throw new Error(`${errorPrefix}Polygon must have a single LinearRing array.`);\n }\n if (polygon.length > 1) {\n throw new Error(`${errorPrefix}Polygon must have a single LinearRing array. Note: We do not currently support polygons with holes, multipolygons, polygons that are wound clockwise, or that cross the antimeridian.`);\n }\n const verticesCount = polygon.reduce((prev, linearRing) => prev + linearRing.length, 0);\n if (verticesCount > 1000) {\n throw new Error(`${errorPrefix}Polygon has more than the maximum 1000 vertices.`);\n }\n polygon.forEach(linearRing => {\n validateLinearRing(linearRing, geofenceId);\n });\n}\nexports.validatePolygon = validatePolygon;\nfunction validateGeofencesInput(geofences) {\n const geofenceIds = {};\n geofences.forEach((geofence) => {\n // verify all required properties are present\n // Validate geofenceId exists\n if (!geofence.geofenceId) {\n throw new Error(`Geofence '${geofence}' is missing geofenceId`);\n }\n const { geofenceId } = geofence;\n validateGeofenceId(geofenceId);\n // Validate geofenceId is unique\n if (geofenceIds[geofenceId]) {\n throw new Error(`Duplicate geofenceId: ${geofenceId}`);\n }\n else {\n geofenceIds[geofenceId] = true;\n }\n // Validate geometry exists\n if (!geofence.geometry) {\n throw new Error(`Geofence '${geofenceId}' is missing geometry`);\n }\n const { geometry } = geofence;\n // Validate polygon exists\n if (!geometry.polygon) {\n throw new Error(`Geofence '${geofenceId}' is missing geometry.polygon`);\n }\n const { polygon } = geometry;\n // Validate polygon length and structure\n try {\n validatePolygon(polygon, geofenceId);\n }\n catch (error) {\n if (error.message.includes('Polygon has more than the maximum 1000 vertices.')) {\n throw new Error(`Geofence '${geofenceId}' has more than the maximum of 1000 vertices`);\n }\n }\n // Validate LinearRing length, structure, and coordinates\n const [linearRing] = polygon;\n validateLinearRing(linearRing, geofenceId);\n });\n}\nexports.validateGeofencesInput = validateGeofencesInput;\nfunction mapSearchOptions(options, locationServiceInput) {\n const locationServiceModifiedInput = { ...locationServiceInput };\n locationServiceModifiedInput.FilterCountries = options.countries;\n locationServiceModifiedInput.MaxResults = options.maxResults;\n locationServiceModifiedInput.Language = options.language;\n if (options.searchIndexName) {\n locationServiceModifiedInput.IndexName = options.searchIndexName;\n }\n if (options.biasPosition && options.searchAreaConstraints) {\n throw new Error('BiasPosition and SearchAreaConstraints are mutually exclusive, please remove one or the other from the options object');\n }\n if (options.biasPosition) {\n locationServiceModifiedInput.BiasPosition = options.biasPosition;\n }\n if (options.searchAreaConstraints) {\n locationServiceModifiedInput.FilterBBox = options.searchAreaConstraints;\n }\n return locationServiceModifiedInput;\n}\nexports.mapSearchOptions = mapSearchOptions;\nfunction getGeoUserAgent(action) {\n return (0, utils_1.getAmplifyUserAgentObject)({\n category: utils_1.Category.Geo,\n action,\n });\n}\nexports.getGeoUserAgent = getGeoUserAgent;\nfunction getGeoUserAgentString(action) {\n return (0, utils_1.getAmplifyUserAgent)({\n category: utils_1.Category.Geo,\n action,\n });\n}\nexports.getGeoUserAgentString = getGeoUserAgentString;\n"],"names":[],"mappings":"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"}