@aws-amplify/geo 3.0.17 → 3.0.18-experimental-lerna-test.d2b0b08.55
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 +1 -0
- package/dist/cjs/Geo.js +23 -24
- package/dist/cjs/Geo.js.map +1 -1
- package/dist/cjs/providers/location-service/AmazonLocationServiceProvider.js +35 -49
- package/dist/cjs/providers/location-service/AmazonLocationServiceProvider.js.map +1 -1
- package/dist/cjs/util.js +7 -7
- package/dist/cjs/util.js.map +1 -1
- package/dist/esm/Geo.d.ts +22 -22
- package/dist/esm/Geo.mjs +23 -24
- package/dist/esm/Geo.mjs.map +1 -1
- package/dist/esm/providers/location-service/AmazonLocationServiceProvider.d.ts +17 -17
- package/dist/esm/providers/location-service/AmazonLocationServiceProvider.mjs +35 -49
- package/dist/esm/providers/location-service/AmazonLocationServiceProvider.mjs.map +1 -1
- package/dist/esm/types/AmazonLocationServiceProvider.d.ts +1 -1
- package/dist/esm/types/Geo.d.ts +24 -24
- package/dist/esm/types/Provider.d.ts +1 -1
- package/dist/esm/util.d.ts +1 -1
- package/dist/esm/util.mjs +7 -7
- package/dist/esm/util.mjs.map +1 -1
- package/package.json +89 -88
- package/src/Geo.ts +34 -34
- package/src/providers/location-service/AmazonLocationServiceProvider.ts +82 -78
- package/src/types/AmazonLocationServiceProvider.ts +4 -4
- package/src/types/Geo.ts +24 -24
- package/src/types/Provider.ts +6 -6
- package/src/util.ts +10 -9
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the [Amplify Dev Center](https://docs.amplify.aws/javascript/build-a-backend/more-features/geo/).
|
package/dist/cjs/Geo.js
CHANGED
|
@@ -28,7 +28,7 @@ class GeoClass {
|
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* add plugin into Geo category
|
|
31
|
-
* @param {Object} pluggable
|
|
31
|
+
* @param {Object} pluggable an instance of the plugin
|
|
32
32
|
*/
|
|
33
33
|
addPluggable(pluggable) {
|
|
34
34
|
if (pluggable && pluggable.getCategory() === 'Geo') {
|
|
@@ -37,24 +37,23 @@ class GeoClass {
|
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Get the plugin object
|
|
40
|
-
* @param providerName
|
|
40
|
+
* @param providerName the name of the plugin
|
|
41
41
|
*/
|
|
42
42
|
getPluggable(providerName) {
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
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
|
|
49
|
+
return targetPluggable;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* Remove the plugin object
|
|
53
|
-
* @param providerName
|
|
53
|
+
* @param providerName the name of the plugin
|
|
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
|
|
@@ -76,8 +75,8 @@ class GeoClass {
|
|
|
76
75
|
}
|
|
77
76
|
/**
|
|
78
77
|
* Search by text input with optional parameters
|
|
79
|
-
* @param {string} text
|
|
80
|
-
* @param {SearchByTextOptions} options
|
|
78
|
+
* @param {string} text The text string that is to be searched for
|
|
79
|
+
* @param {SearchByTextOptions} options Optional parameters to the search
|
|
81
80
|
* @returns {Promise<Place[]>} - Promise resolves to a list of Places that match search parameters
|
|
82
81
|
*/
|
|
83
82
|
async searchByText(text, options) {
|
|
@@ -93,9 +92,9 @@ class GeoClass {
|
|
|
93
92
|
}
|
|
94
93
|
/**
|
|
95
94
|
* Search for search term suggestions based on input text
|
|
96
|
-
* @param {string} text
|
|
97
|
-
* @param {SearchByTextOptions} options
|
|
98
|
-
* @returns {
|
|
95
|
+
* @param {string} text The text string that is to be search for
|
|
96
|
+
* @param {SearchByTextOptions} options Optional parameters to the search
|
|
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 || {};
|
|
@@ -110,8 +109,8 @@ class GeoClass {
|
|
|
110
109
|
}
|
|
111
110
|
/**
|
|
112
111
|
* Search for location by unique ID
|
|
113
|
-
* @param {string} placeId
|
|
114
|
-
* @param {searchByPlaceIdOptions} options
|
|
112
|
+
* @param {string} placeId Unique ID of the location that is to be searched for
|
|
113
|
+
* @param {searchByPlaceIdOptions} options Optional parameters to the search
|
|
115
114
|
* @returns {Promise<Place>} - Resolves to a place with the given placeId
|
|
116
115
|
*/
|
|
117
116
|
async searchByPlaceId(placeId, options) {
|
|
@@ -127,8 +126,8 @@ class GeoClass {
|
|
|
127
126
|
}
|
|
128
127
|
/**
|
|
129
128
|
* Reverse geocoding search via a coordinate point on the map
|
|
130
|
-
* @param coordinates
|
|
131
|
-
* @param options
|
|
129
|
+
* @param coordinates Coordinates array for the search input
|
|
130
|
+
* @param options Options parameters for the search
|
|
132
131
|
* @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates
|
|
133
132
|
*/
|
|
134
133
|
async searchByCoordinates(coordinates, options) {
|
|
@@ -146,8 +145,8 @@ class GeoClass {
|
|
|
146
145
|
}
|
|
147
146
|
/**
|
|
148
147
|
* Create geofences
|
|
149
|
-
* @param geofences
|
|
150
|
-
* @param options
|
|
148
|
+
* @param geofences Single or array of geofence objects to create
|
|
149
|
+
* @param options Optional parameters for creating geofences
|
|
151
150
|
* @returns {Promise<SaveGeofencesResults>} - Promise that resolves to an object with:
|
|
152
151
|
* successes: list of geofences successfully created
|
|
153
152
|
* errors: list of geofences that failed to create
|
|
@@ -173,8 +172,8 @@ class GeoClass {
|
|
|
173
172
|
}
|
|
174
173
|
/**
|
|
175
174
|
* Get a single geofence by geofenceId
|
|
176
|
-
* @param geofenceId
|
|
177
|
-
* @param options
|
|
175
|
+
* @param geofenceId The string id of the geofence to get
|
|
176
|
+
* @param options Optional parameters for getting a geofence
|
|
178
177
|
* @returns Promise<Geofence> - Promise that resolves to a geofence object
|
|
179
178
|
*/
|
|
180
179
|
async getGeofence(geofenceId, options) {
|
|
@@ -190,8 +189,8 @@ class GeoClass {
|
|
|
190
189
|
}
|
|
191
190
|
/**
|
|
192
191
|
* List geofences
|
|
193
|
-
* @param options
|
|
194
|
-
* @returns
|
|
192
|
+
* @param options ListGeofenceOptions
|
|
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
|
*/
|
|
@@ -208,8 +207,8 @@ class GeoClass {
|
|
|
208
207
|
}
|
|
209
208
|
/**
|
|
210
209
|
* Delete geofences
|
|
211
|
-
* @param geofenceIds
|
|
212
|
-
* @param options
|
|
210
|
+
* @param geofenceIds string|string[]
|
|
211
|
+
* @param options GeofenceOptions
|
|
213
212
|
* @returns {Promise<DeleteGeofencesResults>} - Promise that resolves to an object with:
|
|
214
213
|
* successes: list of geofences successfully deleted
|
|
215
214
|
* errors: list of geofences that failed to delete
|
package/dist/cjs/Geo.js.map
CHANGED
|
@@ -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: GeofenceId - The string id of the geofence to get\n * @param options?: GeofenceOptions - 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
|
|
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
|
|
45
|
+
const { region } = this._config;
|
|
46
46
|
for (const mapName in availableMaps) {
|
|
47
|
-
const style = availableMaps[mapName]
|
|
47
|
+
const { style } = availableMaps[mapName];
|
|
48
48
|
mapStyles.push({ mapName, style, region });
|
|
49
49
|
}
|
|
50
50
|
return mapStyles;
|
|
@@ -56,14 +56,14 @@ 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]
|
|
60
|
-
const region = this._config
|
|
59
|
+
const { style } = this._config.maps.items[mapName];
|
|
60
|
+
const { region } = this._config;
|
|
61
61
|
return { mapName, style, region };
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* Search by text input with optional parameters
|
|
65
|
-
* @param {string} text
|
|
66
|
-
* @param {SearchByTextOptions} options
|
|
65
|
+
* @param {string} text The text string that is to be searched for
|
|
66
|
+
* @param {SearchByTextOptions} options Optional parameters to the search
|
|
67
67
|
* @returns {Promise<Place[]>} - Promise resolves to a list of Places that match search parameters
|
|
68
68
|
*/
|
|
69
69
|
async searchByText(text, options) {
|
|
@@ -115,8 +115,8 @@ class AmazonLocationServiceProvider {
|
|
|
115
115
|
}
|
|
116
116
|
/**
|
|
117
117
|
* Search for suggestions based on the input text
|
|
118
|
-
* @param {string} text
|
|
119
|
-
* @param {SearchByTextOptions} options
|
|
118
|
+
* @param {string} text The text string that is to be searched for
|
|
119
|
+
* @param {SearchByTextOptions} options Optional parameters to the search
|
|
120
120
|
* @returns {Promise<SearchForSuggestionsResults>} - Resolves to an array of search suggestion strings
|
|
121
121
|
*/
|
|
122
122
|
async searchForSuggestions(text, options) {
|
|
@@ -200,12 +200,11 @@ 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
|
|
207
|
-
* @param coordinates
|
|
208
|
-
* @param options
|
|
206
|
+
* @param coordinates Coordinates array for the search input
|
|
207
|
+
* @param options Options parameters for the search
|
|
209
208
|
* @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates
|
|
210
209
|
*/
|
|
211
210
|
async searchByCoordinates(coordinates, options) {
|
|
@@ -251,9 +250,9 @@ class AmazonLocationServiceProvider {
|
|
|
251
250
|
}
|
|
252
251
|
/**
|
|
253
252
|
* Create geofences inside of a geofence collection
|
|
254
|
-
* @param geofences
|
|
255
|
-
* @param options
|
|
256
|
-
* @returns
|
|
253
|
+
* @param geofences Array of geofence objects to create
|
|
254
|
+
* @param options Optional parameters for creating geofences
|
|
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:
|
|
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:
|
|
332
|
+
geofenceId: geofenceId,
|
|
334
333
|
});
|
|
335
334
|
});
|
|
336
335
|
}));
|
|
@@ -338,8 +337,8 @@ class AmazonLocationServiceProvider {
|
|
|
338
337
|
}
|
|
339
338
|
/**
|
|
340
339
|
* Get geofence from a geofence collection
|
|
341
|
-
* @param geofenceId
|
|
342
|
-
* @param options
|
|
340
|
+
* @param geofenceId string
|
|
341
|
+
* @param options Optional parameters for getGeofence
|
|
343
342
|
* @returns {Promise<AmazonLocationServiceGeofence>} - Promise that resolves to a geofence object
|
|
344
343
|
*/
|
|
345
344
|
async getGeofence(geofenceId, options) {
|
|
@@ -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:
|
|
383
|
+
geofenceId: responseGeofenceId,
|
|
385
384
|
geometry: {
|
|
386
385
|
polygon: Geometry.Polygon,
|
|
387
386
|
},
|
|
@@ -392,8 +391,8 @@ class AmazonLocationServiceProvider {
|
|
|
392
391
|
}
|
|
393
392
|
/**
|
|
394
393
|
* List geofences from a geofence collection
|
|
395
|
-
* @param options
|
|
396
|
-
* @returns
|
|
394
|
+
* @param options ListGeofenceOptions
|
|
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:
|
|
439
|
+
geofenceId: geofenceId,
|
|
441
440
|
createTime: CreateTime,
|
|
442
441
|
updateTime: UpdateTime,
|
|
443
442
|
status: Status,
|
|
@@ -452,9 +451,9 @@ class AmazonLocationServiceProvider {
|
|
|
452
451
|
}
|
|
453
452
|
/**
|
|
454
453
|
* Delete geofences from a geofence collection
|
|
455
|
-
* @param geofenceIds
|
|
456
|
-
* @param options
|
|
457
|
-
* @returns
|
|
454
|
+
* @param geofenceIds string|string[]
|
|
455
|
+
* @param options GeofenceOptions
|
|
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
|
|
513
|
-
results.successes.push(...batch.filter(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 =
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|