@aws-amplify/geo 3.0.29-unstable.d0fdfa6.0 → 3.0.29
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/providers/location-service/AmazonLocationServiceProvider.js +4 -4
- package/dist/cjs/providers/location-service/AmazonLocationServiceProvider.js.map +1 -1
- package/dist/esm/providers/location-service/AmazonLocationServiceProvider.mjs +4 -4
- package/dist/esm/providers/location-service/AmazonLocationServiceProvider.mjs.map +1 -1
- package/package.json +89 -89
- package/src/providers/location-service/AmazonLocationServiceProvider.ts +4 -5
|
@@ -77,7 +77,7 @@ class AmazonLocationServiceProvider {
|
|
|
77
77
|
*/
|
|
78
78
|
let locationServiceInput = {
|
|
79
79
|
Text: text,
|
|
80
|
-
IndexName: this._config.
|
|
80
|
+
IndexName: this._config.searchIndices.default,
|
|
81
81
|
};
|
|
82
82
|
/**
|
|
83
83
|
* Map search options to Amazon Location Service input object
|
|
@@ -130,7 +130,7 @@ class AmazonLocationServiceProvider {
|
|
|
130
130
|
*/
|
|
131
131
|
let locationServiceInput = {
|
|
132
132
|
Text: text,
|
|
133
|
-
IndexName: this._config.
|
|
133
|
+
IndexName: this._config.searchIndices.default,
|
|
134
134
|
};
|
|
135
135
|
/**
|
|
136
136
|
* Map search options to Amazon Location Service input object
|
|
@@ -185,7 +185,7 @@ class AmazonLocationServiceProvider {
|
|
|
185
185
|
});
|
|
186
186
|
const searchByPlaceIdInput = {
|
|
187
187
|
PlaceId: placeId,
|
|
188
|
-
IndexName: options?.searchIndexName || this._config.
|
|
188
|
+
IndexName: options?.searchIndexName || this._config.searchIndices.default,
|
|
189
189
|
};
|
|
190
190
|
const command = new client_location_1.GetPlaceCommand(searchByPlaceIdInput);
|
|
191
191
|
let response;
|
|
@@ -215,7 +215,7 @@ class AmazonLocationServiceProvider {
|
|
|
215
215
|
this._verifySearchIndex(options?.searchIndexName);
|
|
216
216
|
const locationServiceInput = {
|
|
217
217
|
Position: coordinates,
|
|
218
|
-
IndexName: this._config.
|
|
218
|
+
IndexName: this._config.searchIndices.default,
|
|
219
219
|
};
|
|
220
220
|
if (options) {
|
|
221
221
|
if (options.searchIndexName) {
|
|
@@ -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 || {};\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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"}
|
|
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.searchIndices.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.searchIndices.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.searchIndices.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.searchIndices.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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"}
|
|
@@ -73,7 +73,7 @@ class AmazonLocationServiceProvider {
|
|
|
73
73
|
*/
|
|
74
74
|
let locationServiceInput = {
|
|
75
75
|
Text: text,
|
|
76
|
-
IndexName: this._config.
|
|
76
|
+
IndexName: this._config.searchIndices.default,
|
|
77
77
|
};
|
|
78
78
|
/**
|
|
79
79
|
* Map search options to Amazon Location Service input object
|
|
@@ -126,7 +126,7 @@ class AmazonLocationServiceProvider {
|
|
|
126
126
|
*/
|
|
127
127
|
let locationServiceInput = {
|
|
128
128
|
Text: text,
|
|
129
|
-
IndexName: this._config.
|
|
129
|
+
IndexName: this._config.searchIndices.default,
|
|
130
130
|
};
|
|
131
131
|
/**
|
|
132
132
|
* Map search options to Amazon Location Service input object
|
|
@@ -181,7 +181,7 @@ class AmazonLocationServiceProvider {
|
|
|
181
181
|
});
|
|
182
182
|
const searchByPlaceIdInput = {
|
|
183
183
|
PlaceId: placeId,
|
|
184
|
-
IndexName: options?.searchIndexName || this._config.
|
|
184
|
+
IndexName: options?.searchIndexName || this._config.searchIndices.default,
|
|
185
185
|
};
|
|
186
186
|
const command = new GetPlaceCommand(searchByPlaceIdInput);
|
|
187
187
|
let response;
|
|
@@ -211,7 +211,7 @@ class AmazonLocationServiceProvider {
|
|
|
211
211
|
this._verifySearchIndex(options?.searchIndexName);
|
|
212
212
|
const locationServiceInput = {
|
|
213
213
|
Position: coordinates,
|
|
214
|
-
IndexName: this._config.
|
|
214
|
+
IndexName: this._config.searchIndices.default,
|
|
215
215
|
};
|
|
216
216
|
if (options) {
|
|
217
217
|
if (options.searchIndexName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonLocationServiceProvider.mjs","sources":["../../../../src/providers/location-service/AmazonLocationServiceProvider.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport camelcaseKeys from 'camelcase-keys';\nimport { Amplify, ConsoleLogger, fetchAuthSession } from '@aws-amplify/core';\nimport { GeoAction } from '@aws-amplify/core/internals/utils';\nimport { BatchDeleteGeofenceCommand, BatchPutGeofenceCommand, GetGeofenceCommand, GetPlaceCommand, ListGeofencesCommand, LocationClient, SearchPlaceIndexForPositionCommand, SearchPlaceIndexForSuggestionsCommand, SearchPlaceIndexForTextCommand, } from '@aws-sdk/client-location';\nimport { getGeoUserAgent, mapSearchOptions, validateGeofenceId, validateGeofencesInput, } from '../../util';\nconst logger = new ConsoleLogger('AmazonLocationServiceProvider');\nexport class 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 ...mapSearchOptions(options, locationServiceInput),\n };\n }\n const client = new LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SearchByText),\n });\n const command = new 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 = camelcaseKeys(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 ...mapSearchOptions(options, locationServiceInput),\n };\n }\n const client = new LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SearchForSuggestions),\n });\n const command = new 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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SearchByPlaceId),\n });\n const searchByPlaceIdInput = {\n PlaceId: placeId,\n IndexName: options?.searchIndexName || this._config.search_indices.default,\n };\n const command = new 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 camelcaseKeys(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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SearchByCoordinates),\n });\n const command = new 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 = camelcaseKeys(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 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 validateGeofenceId(geofenceId);\n // Create Amazon Location Service Client\n const client = new LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(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 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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(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 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 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 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 = 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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SaveGeofences),\n });\n const command = new 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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.DeleteGeofences),\n });\n const command = new BatchDeleteGeofenceCommand(deleteGeofencesInput);\n return client.send(command);\n }\n}\nAmazonLocationServiceProvider.CATEGORY = 'Geo';\nAmazonLocationServiceProvider.PROVIDER_NAME = 'AmazonLocationService';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AmazonLocationServiceProvider.mjs","sources":["../../../../src/providers/location-service/AmazonLocationServiceProvider.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport camelcaseKeys from 'camelcase-keys';\nimport { Amplify, ConsoleLogger, fetchAuthSession } from '@aws-amplify/core';\nimport { GeoAction } from '@aws-amplify/core/internals/utils';\nimport { BatchDeleteGeofenceCommand, BatchPutGeofenceCommand, GetGeofenceCommand, GetPlaceCommand, ListGeofencesCommand, LocationClient, SearchPlaceIndexForPositionCommand, SearchPlaceIndexForSuggestionsCommand, SearchPlaceIndexForTextCommand, } from '@aws-sdk/client-location';\nimport { getGeoUserAgent, mapSearchOptions, validateGeofenceId, validateGeofencesInput, } from '../../util';\nconst logger = new ConsoleLogger('AmazonLocationServiceProvider');\nexport class 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.searchIndices.default,\n };\n /**\n * Map search options to Amazon Location Service input object\n */\n if (options) {\n locationServiceInput = {\n ...locationServiceInput,\n ...mapSearchOptions(options, locationServiceInput),\n };\n }\n const client = new LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SearchByText),\n });\n const command = new 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 = camelcaseKeys(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.searchIndices.default,\n };\n /**\n * Map search options to Amazon Location Service input object\n */\n if (options) {\n locationServiceInput = {\n ...locationServiceInput,\n ...mapSearchOptions(options, locationServiceInput),\n };\n }\n const client = new LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SearchForSuggestions),\n });\n const command = new 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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SearchByPlaceId),\n });\n const searchByPlaceIdInput = {\n PlaceId: placeId,\n IndexName: options?.searchIndexName || this._config.searchIndices.default,\n };\n const command = new 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 camelcaseKeys(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.searchIndices.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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SearchByCoordinates),\n });\n const command = new 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 = camelcaseKeys(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 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 validateGeofenceId(geofenceId);\n // Create Amazon Location Service Client\n const client = new LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(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 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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(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 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 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 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 = 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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.SaveGeofences),\n });\n const command = new 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 LocationClient({\n credentials: this._credentials,\n region: this._config.region,\n customUserAgent: getGeoUserAgent(GeoAction.DeleteGeofences),\n });\n const command = new BatchDeleteGeofenceCommand(deleteGeofencesInput);\n return client.send(command);\n }\n}\nAmazonLocationServiceProvider.CATEGORY = 'Geo';\nAmazonLocationServiceProvider.PROVIDER_NAME = 'AmazonLocationService';\n"],"names":[],"mappings":";;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAC;AAC3D,MAAM,6BAA6B,CAAC;AAC3C;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;AACpC,QAAQ,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,6BAA6B,CAAC,QAAQ,CAAC;AACtD,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,6BAA6B,CAAC,aAAa,CAAC;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACnC,QAAQ,MAAM,SAAS,GAAG,EAAE,CAAC;AAC7B,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACtD,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE;AAC7C,YAAY,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AACrD,YAAY,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,OAAO,SAAS,CAAC;AACzB,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACnC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,QAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3D,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,SAAS;AACT,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC1D;AACA;AACA;AACA,QAAQ,IAAI,oBAAoB,GAAG;AACnC,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO;AACzD,SAAS,CAAC;AACV;AACA;AACA;AACA,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,oBAAoB,GAAG;AACnC,gBAAgB,GAAG,oBAAoB;AACvC,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC;AAClE,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AAC1C,YAAY,WAAW,EAAE,IAAI,CAAC,YAAY;AAC1C,YAAY,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACvC,YAAY,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC;AACpE,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,OAAO,GAAG,IAAI,8BAA8B,CAAC,oBAAoB,CAAC,CAAC;AACjF,QAAQ,IAAI,QAAQ,CAAC;AACrB,QAAQ,IAAI;AACZ,YAAY,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3E,QAAQ,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,EAAE;AACrD,YAAY,IAAI,EAAE,IAAI;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9C,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,SAAS;AACT,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC1D;AACA;AACA;AACA,QAAQ,IAAI,oBAAoB,GAAG;AACnC,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO;AACzD,SAAS,CAAC;AACV;AACA;AACA;AACA,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,oBAAoB,GAAG;AACnC,gBAAgB,GAAG,oBAAoB;AACvC,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC;AAClE,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AAC1C,YAAY,WAAW,EAAE,IAAI,CAAC,YAAY;AAC1C,YAAY,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACvC,YAAY,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,oBAAoB,CAAC;AAC5E,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,OAAO,GAAG,IAAI,qCAAqC,CAAC,oBAAoB,CAAC,CAAC;AACxF,QAAQ,IAAI,QAAQ,CAAC;AACrB,QAAQ,IAAI;AACZ,YAAY,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT;AACA;AACA;AACA,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK;AACxD,YAAY,IAAI,EAAE,MAAM,CAAC,IAAI;AAC7B,YAAY,OAAO,EAAE,MAAM,CAAC,OAAO;AACnC,SAAS,CAAC,CAAC,CAAC;AACZ,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,YAAY,MAAM,WAAW,GAAG,oCAAoC,CAAC;AACrE,YAAY,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACtC,YAAY,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE;AAC5C,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,SAAS;AACT,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AAC1C,YAAY,WAAW,EAAE,IAAI,CAAC,YAAY;AAC1C,YAAY,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACvC,YAAY,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC;AACvE,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,oBAAoB,GAAG;AACrC,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY,SAAS,EAAE,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO;AACrF,SAAS,CAAC;AACV,QAAQ,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAC;AAClE,QAAQ,IAAI,QAAQ,CAAC;AACrB,QAAQ,IAAI;AACZ,YAAY,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACrC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,OAAO,aAAa,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE;AACpD,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,SAAS;AACT,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC1D,QAAQ,MAAM,oBAAoB,GAAG;AACrC,YAAY,QAAQ,EAAE,WAAW;AACjC,YAAY,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO;AACzD,SAAS,CAAC;AACV,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE;AACzC,gBAAgB,oBAAoB,CAAC,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;AACzE,aAAa;AACb,YAAY,oBAAoB,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AACjE,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AAC1C,YAAY,WAAW,EAAE,IAAI,CAAC,YAAY;AAC1C,YAAY,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACvC,YAAY,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,mBAAmB,CAAC;AAC3E,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,OAAO,GAAG,IAAI,kCAAkC,CAAC,oBAAoB,CAAC,CAAC;AACrF,QAAQ,IAAI,QAAQ,CAAC;AACrB,QAAQ,IAAI;AACZ,YAAY,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3E,QAAQ,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;AACxD,YAAY,IAAI,EAAE,IAAI;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5C,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AAC7D,SAAS;AACT,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,SAAS;AACT;AACA,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT,QAAQ,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAC1C;AACA,QAAQ,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK;AACzF,YAAY,OAAO;AACnB,gBAAgB,UAAU,EAAE,UAAU;AACtC,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,OAAO,EAAE,OAAO;AACpC,iBAAiB;AACjB,aAAa,CAAC;AACd,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,SAAS,EAAE,EAAE;AACzB,YAAY,MAAM,EAAE,EAAE;AACtB,SAAS,CAAC;AACV,QAAQ,MAAM,eAAe,GAAG,EAAE,CAAC;AACnC,QAAQ,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C;AACA,YAAY,MAAM,QAAQ,GAAG,EAAE,CAAC;AAChC,YAAY,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtE,SAAS;AACT,QAAQ,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK;AAC/D;AACA,YAAY,IAAI,QAAQ,CAAC;AACzB,YAAY,IAAI;AAChB,gBAAgB,QAAQ,GAAG,MAAM,IAAI,CAAC,0CAA0C,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7J,aAAa;AACb,YAAY,OAAO,KAAK,EAAE;AAC1B;AACA,gBAAgB,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI;AAC1C,oBAAoB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,wBAAwB,UAAU,EAAE,QAAQ,CAAC,UAAU;AACvD,wBAAwB,KAAK,EAAE;AAC/B,4BAA4B,IAAI,EAAE,oBAAoB;AACtD,4BAA4B,OAAO,EAAE,KAAK,CAAC,OAAO;AAClD,yBAAyB;AACzB,qBAAqB,CAAC,CAAC;AACvB,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO;AACvB,aAAa;AACb;AACA,YAAY,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,IAAI;AACnD,gBAAgB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;AACnF,gBAAgB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACvC,oBAAoB,UAAU,EAAE,UAAU;AAC1C,oBAAoB,UAAU,EAAE,UAAU;AAC1C,oBAAoB,UAAU,EAAE,UAAU;AAC1C,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC,CAAC;AACf;AACA,YAAY,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI;AAC9C,gBAAgB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;AAChE,gBAAgB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AAChD,gBAAgB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,IAAI,EAAE,IAAI;AAClC,wBAAwB,OAAO,EAAE,OAAO;AACxC,qBAAqB;AACrB,oBAAoB,UAAU,EAAE,UAAU;AAC1C,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,CAAC,CAAC;AACZ,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE;AAC3C,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,SAAS;AACT;AACA,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT,QAAQ,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACvC;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AAC1C,YAAY,WAAW,EAAE,IAAI,CAAC,YAAY;AAC1C,YAAY,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACvC,YAAY,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC;AACnE,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,MAAM,YAAY,GAAG;AAC7B,YAAY,UAAU,EAAE,UAAU;AAClC,YAAY,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO;AAC/F,SAAS,CAAC;AACV,QAAQ,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC7D;AACA,QAAQ,IAAI,QAAQ,CAAC;AACrB,QAAQ,IAAI;AACZ,YAAY,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT;AACA,QAAQ,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,QAAQ,CAAC;AACvG,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,UAAU,EAAE,UAAU;AAClC,YAAY,UAAU,EAAE,kBAAkB;AAC1C,YAAY,QAAQ,EAAE;AACtB,gBAAgB,OAAO,EAAE,QAAQ,CAAC,OAAO;AACzC,aAAa;AACb,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,UAAU,EAAE,UAAU;AAClC,SAAS,CAAC;AACV,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,OAAO,EAAE;AACjC,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,SAAS;AACT;AACA,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AAC1C,YAAY,WAAW,EAAE,IAAI,CAAC,YAAY;AAC1C,YAAY,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACvC,YAAY,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC;AACrE,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,MAAM,kBAAkB,GAAG;AACnC,YAAY,SAAS,EAAE,OAAO,EAAE,SAAS;AACzC,YAAY,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO;AAC/F,SAAS,CAAC;AACV;AACA,QAAQ,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;AACrE;AACA,QAAQ,IAAI,QAAQ,CAAC;AACrB,QAAQ,IAAI;AACZ,YAAY,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT;AACA,QAAQ,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;AAChD,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAG,KAAK;AAC5G,gBAAgB,OAAO;AACvB,oBAAoB,UAAU,EAAE,UAAU;AAC1C,oBAAoB,UAAU,EAAE,UAAU;AAC1C,oBAAoB,UAAU,EAAE,UAAU;AAC1C,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,OAAO,EAAE,QAAQ,CAAC,OAAO;AACjD,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,aAAa,CAAC;AACd,YAAY,SAAS,EAAE,SAAS;AAChC,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE;AAChD,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,YAAY,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AAC/D,SAAS;AACT,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,SAAS;AACT,QAAQ,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACjE;AACA,QAAQ,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,IAAI;AAChE,YAAY,IAAI;AAChB,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAC/C,aAAa;AACb,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,SAAS,EAAE,EAAE;AACzB,YAAY,MAAM,EAAE,EAAE;AACtB,SAAS,CAAC;AACV,QAAQ,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACrC,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AACtB,QAAQ,OAAO,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE;AAC3C,YAAY,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5E,SAAS;AACT,QAAQ,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK;AACjE,YAAY,IAAI,QAAQ,CAAC;AACzB,YAAY,IAAI;AAChB,gBAAgB,QAAQ,GAAG,MAAM,IAAI,CAAC,6CAA6C,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAChK,aAAa;AACb,YAAY,OAAO,KAAK,EAAE;AAC1B;AACA,gBAAgB,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI;AAC5C,oBAAoB,MAAM,WAAW,GAAG;AACxC,wBAAwB,UAAU;AAClC,wBAAwB,KAAK,EAAE;AAC/B,4BAA4B,IAAI,EAAE,KAAK;AACvC,iCAAiC,OAAO;AACxC,4BAA4B,OAAO,EAAE,KAAK;AAC1C,iCAAiC,OAAO;AACxC,yBAAyB;AACzB,qBAAqB,CAAC;AACtB,oBAAoB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,UAAU,CAAC,CAAC;AAC7F,YAAY,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9F,SAAS,CAAC,CAAC,CAAC;AACZ,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL;AACA;AACA;AACA,IAAI,MAAM,kBAAkB,GAAG;AAC/B,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;AAC7D,YAAY,IAAI,CAAC,WAAW;AAC5B,gBAAgB,OAAO,KAAK,CAAC;AAC7B,YAAY,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,WAAW,CAAC,CAAC;AACvF,YAAY,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AAC5C,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;AAC9E,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC;AAChE,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,YAAY,MAAM,WAAW,GAAG,gHAAgH,CAAC;AACjJ,YAAY,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACtC,YAAY,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAChC,YAAY,MAAM,WAAW,GAAG,4GAA4G,CAAC;AAC7I,YAAY,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACtC,YAAY,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACzC,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;AACxC,YAAY,MAAM,WAAW,GAAG,mHAAmH,CAAC;AACpJ,YAAY,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACtC,YAAY,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,kBAAkB,CAAC,mBAAmB,EAAE;AAC5C,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO;AAC/E,YAAY,CAAC,mBAAmB,EAAE;AAClC,YAAY,MAAM,WAAW,GAAG,mHAAmH,CAAC;AACpJ,YAAY,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACtC,YAAY,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,0BAA0B,CAAC,8BAA8B,EAAE;AAC/D,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB;AAC9C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO;AACrD,YAAY,CAAC,8BAA8B,EAAE;AAC7C,YAAY,MAAM,WAAW,GAAG,yGAAyG,CAAC;AAC1I,YAAY,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACtC,YAAY,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,MAAM,0CAA0C,CAAC,eAAe,EAAE,cAAc,EAAE;AACtF;AACA,QAAQ,MAAM,aAAa,GAAG;AAC9B,YAAY,OAAO,EAAE,eAAe;AACpC,YAAY,cAAc,EAAE,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO;AACtF,SAAS,CAAC;AACV,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AAC1C,YAAY,WAAW,EAAE,IAAI,CAAC,YAAY;AAC1C,YAAY,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACvC,YAAY,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC;AACrE,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,OAAO,GAAG,IAAI,uBAAuB,CAAC,aAAa,CAAC,CAAC;AACnE,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,MAAM,6CAA6C,CAAC,WAAW,EAAE,cAAc,EAAE;AACrF;AACA,QAAQ,MAAM,oBAAoB,GAAG;AACrC,YAAY,WAAW,EAAE,WAAW;AACpC,YAAY,cAAc,EAAE,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO;AACtF,SAAS,CAAC;AACV,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AAC1C,YAAY,WAAW,EAAE,IAAI,CAAC,YAAY;AAC1C,YAAY,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACvC,YAAY,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC;AACvE,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,OAAO,GAAG,IAAI,0BAA0B,CAAC,oBAAoB,CAAC,CAAC;AAC7E,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,KAAK;AACL,CAAC;AACD,6BAA6B,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC/C,6BAA6B,CAAC,aAAa,GAAG,uBAAuB;;;;"}
|
package/package.json
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
2
|
+
"name": "@aws-amplify/geo",
|
|
3
|
+
"version": "3.0.29",
|
|
4
|
+
"description": "Geo category for aws-amplify",
|
|
5
|
+
"main": "./dist/cjs/index.js",
|
|
6
|
+
"module": "./dist/esm/index.mjs",
|
|
7
|
+
"typings": "./dist/esm/index.d.ts",
|
|
8
|
+
"react-native": "./src/index.ts",
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"sideEffects": [
|
|
13
|
+
"./dist/cjs/geo/geo.js",
|
|
14
|
+
"./dist/esm/geo/geo.mjs"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"test": "yarn run lint && jest -w 1 --coverage --logHeapUsage",
|
|
18
|
+
"test:size": "size-limit",
|
|
19
|
+
"build-with-test": "npm test && npm run build",
|
|
20
|
+
"build:umd": "webpack && webpack --config ./webpack.config.dev.js",
|
|
21
|
+
"build:esm-cjs": "rollup -c rollup.config.mjs",
|
|
22
|
+
"build:watch": "npm run build:esm-cjs -- --watch",
|
|
23
|
+
"build": "npm run clean && npm run build:esm-cjs && npm run build:umd",
|
|
24
|
+
"clean": "npm run clean:size && rimraf dist lib lib-esm",
|
|
25
|
+
"clean:size": "rimraf dual-publish-tmp tmp*",
|
|
26
|
+
"format": "echo \"Not implemented\"",
|
|
27
|
+
"lint": "eslint '**/*.{ts,tsx}' && npm run ts-coverage",
|
|
28
|
+
"lint:fix": "eslint '**/*.{ts,tsx}' --fix",
|
|
29
|
+
"ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 84.00"
|
|
30
|
+
},
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./dist/esm/index.d.ts",
|
|
34
|
+
"import": "./dist/esm/index.mjs",
|
|
35
|
+
"require": "./dist/cjs/index.js",
|
|
36
|
+
"react-native": "./src/index.ts"
|
|
37
|
+
},
|
|
38
|
+
"./location-service": {
|
|
39
|
+
"types": "./dist/esm/providers/location-service/AmazonLocationServiceProvider.d.ts",
|
|
40
|
+
"import": "./dist/esm/providers/location-service/AmazonLocationServiceProvider.mjs",
|
|
41
|
+
"require": "./dist/cjs/providers/location-service/AmazonLocationServiceProvider.js",
|
|
42
|
+
"react-native": "./src/providers/location-service/AmazonLocationServiceProvider.ts"
|
|
43
|
+
},
|
|
44
|
+
"./package.json": "./package.json"
|
|
45
|
+
},
|
|
46
|
+
"typesVersions": {
|
|
47
|
+
">=4.2": {
|
|
48
|
+
"location-service": [
|
|
49
|
+
"./dist/esm/providers/location-service/AmazonLocationServiceProvider.d.ts"
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"repository": {
|
|
54
|
+
"type": "git",
|
|
55
|
+
"url": "https://github.com/aws-amplify/amplify-js.git"
|
|
56
|
+
},
|
|
57
|
+
"author": "Amazon Web Services",
|
|
58
|
+
"license": "Apache-2.0",
|
|
59
|
+
"bugs": {
|
|
60
|
+
"url": "https://github.com/aws/aws-amplify/issues"
|
|
61
|
+
},
|
|
62
|
+
"homepage": "https://aws-amplify.github.io/",
|
|
63
|
+
"files": [
|
|
64
|
+
"dist/cjs",
|
|
65
|
+
"dist/esm",
|
|
66
|
+
"location-service",
|
|
67
|
+
"src"
|
|
68
|
+
],
|
|
69
|
+
"dependencies": {
|
|
70
|
+
"@aws-sdk/client-location": "3.398.0",
|
|
71
|
+
"@turf/boolean-clockwise": "6.5.0",
|
|
72
|
+
"camelcase-keys": "6.2.2",
|
|
73
|
+
"tslib": "^2.5.0"
|
|
74
|
+
},
|
|
75
|
+
"peerDependencies": {
|
|
76
|
+
"@aws-amplify/core": "^6.0.0"
|
|
77
|
+
},
|
|
78
|
+
"devDependencies": {
|
|
79
|
+
"@aws-amplify/core": "6.1.0",
|
|
80
|
+
"typescript": "5.0.2"
|
|
81
|
+
},
|
|
82
|
+
"size-limit": [
|
|
83
|
+
{
|
|
84
|
+
"name": "Geo (top-level class)",
|
|
85
|
+
"path": "./dist/esm/index.mjs",
|
|
86
|
+
"import": "{ Amplify, Geo }",
|
|
87
|
+
"limit": "43.9 kB"
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"gitHead": "0cc3ea9027fdb5d35b3c32e183555c51652da62f"
|
|
91
91
|
}
|
|
@@ -151,7 +151,7 @@ export class AmazonLocationServiceProvider implements GeoProvider {
|
|
|
151
151
|
*/
|
|
152
152
|
let locationServiceInput: SearchPlaceIndexForTextCommandInput = {
|
|
153
153
|
Text: text,
|
|
154
|
-
IndexName: this._config.
|
|
154
|
+
IndexName: this._config.searchIndices.default,
|
|
155
155
|
};
|
|
156
156
|
|
|
157
157
|
/**
|
|
@@ -217,7 +217,7 @@ export class AmazonLocationServiceProvider implements GeoProvider {
|
|
|
217
217
|
*/
|
|
218
218
|
let locationServiceInput: SearchPlaceIndexForSuggestionsCommandInput = {
|
|
219
219
|
Text: text,
|
|
220
|
-
IndexName: this._config.
|
|
220
|
+
IndexName: this._config.searchIndices.default,
|
|
221
221
|
};
|
|
222
222
|
|
|
223
223
|
/**
|
|
@@ -286,8 +286,7 @@ export class AmazonLocationServiceProvider implements GeoProvider {
|
|
|
286
286
|
|
|
287
287
|
const searchByPlaceIdInput: GetPlaceCommandInput = {
|
|
288
288
|
PlaceId: placeId,
|
|
289
|
-
IndexName:
|
|
290
|
-
options?.searchIndexName || this._config.search_indices.default,
|
|
289
|
+
IndexName: options?.searchIndexName || this._config.searchIndices.default,
|
|
291
290
|
};
|
|
292
291
|
const command = new GetPlaceCommand(searchByPlaceIdInput);
|
|
293
292
|
|
|
@@ -325,7 +324,7 @@ export class AmazonLocationServiceProvider implements GeoProvider {
|
|
|
325
324
|
|
|
326
325
|
const locationServiceInput: SearchPlaceIndexForPositionCommandInput = {
|
|
327
326
|
Position: coordinates,
|
|
328
|
-
IndexName: this._config.
|
|
327
|
+
IndexName: this._config.searchIndices.default,
|
|
329
328
|
};
|
|
330
329
|
|
|
331
330
|
if (options) {
|