@aws-amplify/geo 1.2.2-geo.4 → 1.2.2-unstable.5
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/aws-amplify-geo.js +134 -2147
- package/dist/aws-amplify-geo.js.map +1 -1
- package/dist/aws-amplify-geo.min.js +6 -6
- package/dist/aws-amplify-geo.min.js.map +1 -1
- package/lib/Geo.d.ts +4 -37
- package/lib/Geo.js +5 -153
- package/lib/Geo.js.map +1 -1
- package/lib/Providers/AmazonLocationServiceProvider.d.ts +1 -37
- package/lib/Providers/AmazonLocationServiceProvider.js +8 -417
- package/lib/Providers/AmazonLocationServiceProvider.js.map +1 -1
- package/lib/types/AmazonLocationServiceProvider.d.ts +1 -21
- package/lib/types/Geo.d.ts +1 -48
- package/lib/types/Provider.d.ts +1 -5
- package/lib/types/Provider.js +12 -0
- package/lib/types/Provider.js.map +1 -1
- package/lib-esm/Geo.d.ts +4 -37
- package/lib-esm/Geo.js +5 -153
- package/lib-esm/Geo.js.map +1 -1
- package/lib-esm/Providers/AmazonLocationServiceProvider.d.ts +1 -37
- package/lib-esm/Providers/AmazonLocationServiceProvider.js +9 -418
- package/lib-esm/Providers/AmazonLocationServiceProvider.js.map +1 -1
- package/lib-esm/types/AmazonLocationServiceProvider.d.ts +1 -21
- package/lib-esm/types/Geo.d.ts +1 -48
- package/lib-esm/types/Provider.d.ts +1 -5
- package/lib-esm/types/Provider.js +12 -0
- package/lib-esm/types/Provider.js.map +1 -1
- package/package.json +4 -6
- package/src/Geo.ts +3 -122
- package/src/Providers/AmazonLocationServiceProvider.ts +6 -423
- package/src/types/AmazonLocationServiceProvider.ts +1 -56
- package/src/types/Geo.ts +2 -72
- package/src/types/Provider.ts +1 -31
- package/lib/util.d.ts +0 -6
- package/lib/util.js +0 -144
- package/lib/util.js.map +0 -1
- package/lib-esm/util.d.ts +0 -6
- package/lib-esm/util.js +0 -134
- package/lib-esm/util.js.map +0 -1
- package/src/util.ts +0 -175
package/dist/aws-amplify-geo.js
CHANGED
|
@@ -24843,1035 +24843,6 @@ function locateWindow() {
|
|
|
24843
24843
|
}
|
|
24844
24844
|
|
|
24845
24845
|
|
|
24846
|
-
/***/ }),
|
|
24847
|
-
|
|
24848
|
-
/***/ "../../node_modules/@turf/boolean-clockwise/dist/es/index.js":
|
|
24849
|
-
/*!******************************************************************************!*\
|
|
24850
|
-
!*** /root/amplify-js/node_modules/@turf/boolean-clockwise/dist/es/index.js ***!
|
|
24851
|
-
\******************************************************************************/
|
|
24852
|
-
/*! exports provided: default */
|
|
24853
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
24854
|
-
|
|
24855
|
-
"use strict";
|
|
24856
|
-
__webpack_require__.r(__webpack_exports__);
|
|
24857
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return booleanClockwise; });
|
|
24858
|
-
/* harmony import */ var _turf_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @turf/invariant */ "../../node_modules/@turf/invariant/dist/es/index.js");
|
|
24859
|
-
|
|
24860
|
-
/**
|
|
24861
|
-
* Takes a ring and return true or false whether or not the ring is clockwise or counter-clockwise.
|
|
24862
|
-
*
|
|
24863
|
-
* @name booleanClockwise
|
|
24864
|
-
* @param {Feature<LineString>|LineString|Array<Array<number>>} line to be evaluated
|
|
24865
|
-
* @returns {boolean} true/false
|
|
24866
|
-
* @example
|
|
24867
|
-
* var clockwiseRing = turf.lineString([[0,0],[1,1],[1,0],[0,0]]);
|
|
24868
|
-
* var counterClockwiseRing = turf.lineString([[0,0],[1,0],[1,1],[0,0]]);
|
|
24869
|
-
*
|
|
24870
|
-
* turf.booleanClockwise(clockwiseRing)
|
|
24871
|
-
* //=true
|
|
24872
|
-
* turf.booleanClockwise(counterClockwiseRing)
|
|
24873
|
-
* //=false
|
|
24874
|
-
*/
|
|
24875
|
-
function booleanClockwise(line) {
|
|
24876
|
-
var ring = Object(_turf_invariant__WEBPACK_IMPORTED_MODULE_0__["getCoords"])(line);
|
|
24877
|
-
var sum = 0;
|
|
24878
|
-
var i = 1;
|
|
24879
|
-
var prev;
|
|
24880
|
-
var cur;
|
|
24881
|
-
while (i < ring.length) {
|
|
24882
|
-
prev = cur || ring[0];
|
|
24883
|
-
cur = ring[i];
|
|
24884
|
-
sum += (cur[0] - prev[0]) * (cur[1] + prev[1]);
|
|
24885
|
-
i++;
|
|
24886
|
-
}
|
|
24887
|
-
return sum > 0;
|
|
24888
|
-
}
|
|
24889
|
-
|
|
24890
|
-
|
|
24891
|
-
/***/ }),
|
|
24892
|
-
|
|
24893
|
-
/***/ "../../node_modules/@turf/helpers/dist/es/index.js":
|
|
24894
|
-
/*!********************************************************************!*\
|
|
24895
|
-
!*** /root/amplify-js/node_modules/@turf/helpers/dist/es/index.js ***!
|
|
24896
|
-
\********************************************************************/
|
|
24897
|
-
/*! exports provided: earthRadius, factors, unitsFactors, areaFactors, feature, geometry, point, points, polygon, polygons, lineString, lineStrings, featureCollection, multiLineString, multiPoint, multiPolygon, geometryCollection, round, radiansToLength, lengthToRadians, lengthToDegrees, bearingToAzimuth, radiansToDegrees, degreesToRadians, convertLength, convertArea, isNumber, isObject, validateBBox, validateId */
|
|
24898
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
24899
|
-
|
|
24900
|
-
"use strict";
|
|
24901
|
-
__webpack_require__.r(__webpack_exports__);
|
|
24902
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "earthRadius", function() { return earthRadius; });
|
|
24903
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "factors", function() { return factors; });
|
|
24904
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unitsFactors", function() { return unitsFactors; });
|
|
24905
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areaFactors", function() { return areaFactors; });
|
|
24906
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "feature", function() { return feature; });
|
|
24907
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "geometry", function() { return geometry; });
|
|
24908
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "point", function() { return point; });
|
|
24909
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "points", function() { return points; });
|
|
24910
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polygon", function() { return polygon; });
|
|
24911
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polygons", function() { return polygons; });
|
|
24912
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineString", function() { return lineString; });
|
|
24913
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineStrings", function() { return lineStrings; });
|
|
24914
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "featureCollection", function() { return featureCollection; });
|
|
24915
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "multiLineString", function() { return multiLineString; });
|
|
24916
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "multiPoint", function() { return multiPoint; });
|
|
24917
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "multiPolygon", function() { return multiPolygon; });
|
|
24918
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "geometryCollection", function() { return geometryCollection; });
|
|
24919
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "round", function() { return round; });
|
|
24920
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "radiansToLength", function() { return radiansToLength; });
|
|
24921
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lengthToRadians", function() { return lengthToRadians; });
|
|
24922
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lengthToDegrees", function() { return lengthToDegrees; });
|
|
24923
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bearingToAzimuth", function() { return bearingToAzimuth; });
|
|
24924
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "radiansToDegrees", function() { return radiansToDegrees; });
|
|
24925
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "degreesToRadians", function() { return degreesToRadians; });
|
|
24926
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertLength", function() { return convertLength; });
|
|
24927
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertArea", function() { return convertArea; });
|
|
24928
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumber", function() { return isNumber; });
|
|
24929
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObject", function() { return isObject; });
|
|
24930
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateBBox", function() { return validateBBox; });
|
|
24931
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateId", function() { return validateId; });
|
|
24932
|
-
/**
|
|
24933
|
-
* @module helpers
|
|
24934
|
-
*/
|
|
24935
|
-
/**
|
|
24936
|
-
* Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.
|
|
24937
|
-
*
|
|
24938
|
-
* @memberof helpers
|
|
24939
|
-
* @type {number}
|
|
24940
|
-
*/
|
|
24941
|
-
var earthRadius = 6371008.8;
|
|
24942
|
-
/**
|
|
24943
|
-
* Unit of measurement factors using a spherical (non-ellipsoid) earth radius.
|
|
24944
|
-
*
|
|
24945
|
-
* @memberof helpers
|
|
24946
|
-
* @type {Object}
|
|
24947
|
-
*/
|
|
24948
|
-
var factors = {
|
|
24949
|
-
centimeters: earthRadius * 100,
|
|
24950
|
-
centimetres: earthRadius * 100,
|
|
24951
|
-
degrees: earthRadius / 111325,
|
|
24952
|
-
feet: earthRadius * 3.28084,
|
|
24953
|
-
inches: earthRadius * 39.37,
|
|
24954
|
-
kilometers: earthRadius / 1000,
|
|
24955
|
-
kilometres: earthRadius / 1000,
|
|
24956
|
-
meters: earthRadius,
|
|
24957
|
-
metres: earthRadius,
|
|
24958
|
-
miles: earthRadius / 1609.344,
|
|
24959
|
-
millimeters: earthRadius * 1000,
|
|
24960
|
-
millimetres: earthRadius * 1000,
|
|
24961
|
-
nauticalmiles: earthRadius / 1852,
|
|
24962
|
-
radians: 1,
|
|
24963
|
-
yards: earthRadius * 1.0936,
|
|
24964
|
-
};
|
|
24965
|
-
/**
|
|
24966
|
-
* Units of measurement factors based on 1 meter.
|
|
24967
|
-
*
|
|
24968
|
-
* @memberof helpers
|
|
24969
|
-
* @type {Object}
|
|
24970
|
-
*/
|
|
24971
|
-
var unitsFactors = {
|
|
24972
|
-
centimeters: 100,
|
|
24973
|
-
centimetres: 100,
|
|
24974
|
-
degrees: 1 / 111325,
|
|
24975
|
-
feet: 3.28084,
|
|
24976
|
-
inches: 39.37,
|
|
24977
|
-
kilometers: 1 / 1000,
|
|
24978
|
-
kilometres: 1 / 1000,
|
|
24979
|
-
meters: 1,
|
|
24980
|
-
metres: 1,
|
|
24981
|
-
miles: 1 / 1609.344,
|
|
24982
|
-
millimeters: 1000,
|
|
24983
|
-
millimetres: 1000,
|
|
24984
|
-
nauticalmiles: 1 / 1852,
|
|
24985
|
-
radians: 1 / earthRadius,
|
|
24986
|
-
yards: 1.0936133,
|
|
24987
|
-
};
|
|
24988
|
-
/**
|
|
24989
|
-
* Area of measurement factors based on 1 square meter.
|
|
24990
|
-
*
|
|
24991
|
-
* @memberof helpers
|
|
24992
|
-
* @type {Object}
|
|
24993
|
-
*/
|
|
24994
|
-
var areaFactors = {
|
|
24995
|
-
acres: 0.000247105,
|
|
24996
|
-
centimeters: 10000,
|
|
24997
|
-
centimetres: 10000,
|
|
24998
|
-
feet: 10.763910417,
|
|
24999
|
-
hectares: 0.0001,
|
|
25000
|
-
inches: 1550.003100006,
|
|
25001
|
-
kilometers: 0.000001,
|
|
25002
|
-
kilometres: 0.000001,
|
|
25003
|
-
meters: 1,
|
|
25004
|
-
metres: 1,
|
|
25005
|
-
miles: 3.86e-7,
|
|
25006
|
-
millimeters: 1000000,
|
|
25007
|
-
millimetres: 1000000,
|
|
25008
|
-
yards: 1.195990046,
|
|
25009
|
-
};
|
|
25010
|
-
/**
|
|
25011
|
-
* Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.
|
|
25012
|
-
*
|
|
25013
|
-
* @name feature
|
|
25014
|
-
* @param {Geometry} geometry input geometry
|
|
25015
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25016
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25017
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25018
|
-
* @param {string|number} [options.id] Identifier associated with the Feature
|
|
25019
|
-
* @returns {Feature} a GeoJSON Feature
|
|
25020
|
-
* @example
|
|
25021
|
-
* var geometry = {
|
|
25022
|
-
* "type": "Point",
|
|
25023
|
-
* "coordinates": [110, 50]
|
|
25024
|
-
* };
|
|
25025
|
-
*
|
|
25026
|
-
* var feature = turf.feature(geometry);
|
|
25027
|
-
*
|
|
25028
|
-
* //=feature
|
|
25029
|
-
*/
|
|
25030
|
-
function feature(geom, properties, options) {
|
|
25031
|
-
if (options === void 0) { options = {}; }
|
|
25032
|
-
var feat = { type: "Feature" };
|
|
25033
|
-
if (options.id === 0 || options.id) {
|
|
25034
|
-
feat.id = options.id;
|
|
25035
|
-
}
|
|
25036
|
-
if (options.bbox) {
|
|
25037
|
-
feat.bbox = options.bbox;
|
|
25038
|
-
}
|
|
25039
|
-
feat.properties = properties || {};
|
|
25040
|
-
feat.geometry = geom;
|
|
25041
|
-
return feat;
|
|
25042
|
-
}
|
|
25043
|
-
/**
|
|
25044
|
-
* Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.
|
|
25045
|
-
* For GeometryCollection type use `helpers.geometryCollection`
|
|
25046
|
-
*
|
|
25047
|
-
* @name geometry
|
|
25048
|
-
* @param {string} type Geometry Type
|
|
25049
|
-
* @param {Array<any>} coordinates Coordinates
|
|
25050
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25051
|
-
* @returns {Geometry} a GeoJSON Geometry
|
|
25052
|
-
* @example
|
|
25053
|
-
* var type = "Point";
|
|
25054
|
-
* var coordinates = [110, 50];
|
|
25055
|
-
* var geometry = turf.geometry(type, coordinates);
|
|
25056
|
-
* // => geometry
|
|
25057
|
-
*/
|
|
25058
|
-
function geometry(type, coordinates, _options) {
|
|
25059
|
-
if (_options === void 0) { _options = {}; }
|
|
25060
|
-
switch (type) {
|
|
25061
|
-
case "Point":
|
|
25062
|
-
return point(coordinates).geometry;
|
|
25063
|
-
case "LineString":
|
|
25064
|
-
return lineString(coordinates).geometry;
|
|
25065
|
-
case "Polygon":
|
|
25066
|
-
return polygon(coordinates).geometry;
|
|
25067
|
-
case "MultiPoint":
|
|
25068
|
-
return multiPoint(coordinates).geometry;
|
|
25069
|
-
case "MultiLineString":
|
|
25070
|
-
return multiLineString(coordinates).geometry;
|
|
25071
|
-
case "MultiPolygon":
|
|
25072
|
-
return multiPolygon(coordinates).geometry;
|
|
25073
|
-
default:
|
|
25074
|
-
throw new Error(type + " is invalid");
|
|
25075
|
-
}
|
|
25076
|
-
}
|
|
25077
|
-
/**
|
|
25078
|
-
* Creates a {@link Point} {@link Feature} from a Position.
|
|
25079
|
-
*
|
|
25080
|
-
* @name point
|
|
25081
|
-
* @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)
|
|
25082
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25083
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25084
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25085
|
-
* @param {string|number} [options.id] Identifier associated with the Feature
|
|
25086
|
-
* @returns {Feature<Point>} a Point feature
|
|
25087
|
-
* @example
|
|
25088
|
-
* var point = turf.point([-75.343, 39.984]);
|
|
25089
|
-
*
|
|
25090
|
-
* //=point
|
|
25091
|
-
*/
|
|
25092
|
-
function point(coordinates, properties, options) {
|
|
25093
|
-
if (options === void 0) { options = {}; }
|
|
25094
|
-
if (!coordinates) {
|
|
25095
|
-
throw new Error("coordinates is required");
|
|
25096
|
-
}
|
|
25097
|
-
if (!Array.isArray(coordinates)) {
|
|
25098
|
-
throw new Error("coordinates must be an Array");
|
|
25099
|
-
}
|
|
25100
|
-
if (coordinates.length < 2) {
|
|
25101
|
-
throw new Error("coordinates must be at least 2 numbers long");
|
|
25102
|
-
}
|
|
25103
|
-
if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {
|
|
25104
|
-
throw new Error("coordinates must contain numbers");
|
|
25105
|
-
}
|
|
25106
|
-
var geom = {
|
|
25107
|
-
type: "Point",
|
|
25108
|
-
coordinates: coordinates,
|
|
25109
|
-
};
|
|
25110
|
-
return feature(geom, properties, options);
|
|
25111
|
-
}
|
|
25112
|
-
/**
|
|
25113
|
-
* Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.
|
|
25114
|
-
*
|
|
25115
|
-
* @name points
|
|
25116
|
-
* @param {Array<Array<number>>} coordinates an array of Points
|
|
25117
|
-
* @param {Object} [properties={}] Translate these properties to each Feature
|
|
25118
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25119
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]
|
|
25120
|
-
* associated with the FeatureCollection
|
|
25121
|
-
* @param {string|number} [options.id] Identifier associated with the FeatureCollection
|
|
25122
|
-
* @returns {FeatureCollection<Point>} Point Feature
|
|
25123
|
-
* @example
|
|
25124
|
-
* var points = turf.points([
|
|
25125
|
-
* [-75, 39],
|
|
25126
|
-
* [-80, 45],
|
|
25127
|
-
* [-78, 50]
|
|
25128
|
-
* ]);
|
|
25129
|
-
*
|
|
25130
|
-
* //=points
|
|
25131
|
-
*/
|
|
25132
|
-
function points(coordinates, properties, options) {
|
|
25133
|
-
if (options === void 0) { options = {}; }
|
|
25134
|
-
return featureCollection(coordinates.map(function (coords) {
|
|
25135
|
-
return point(coords, properties);
|
|
25136
|
-
}), options);
|
|
25137
|
-
}
|
|
25138
|
-
/**
|
|
25139
|
-
* Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.
|
|
25140
|
-
*
|
|
25141
|
-
* @name polygon
|
|
25142
|
-
* @param {Array<Array<Array<number>>>} coordinates an array of LinearRings
|
|
25143
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25144
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25145
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25146
|
-
* @param {string|number} [options.id] Identifier associated with the Feature
|
|
25147
|
-
* @returns {Feature<Polygon>} Polygon Feature
|
|
25148
|
-
* @example
|
|
25149
|
-
* var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });
|
|
25150
|
-
*
|
|
25151
|
-
* //=polygon
|
|
25152
|
-
*/
|
|
25153
|
-
function polygon(coordinates, properties, options) {
|
|
25154
|
-
if (options === void 0) { options = {}; }
|
|
25155
|
-
for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {
|
|
25156
|
-
var ring = coordinates_1[_i];
|
|
25157
|
-
if (ring.length < 4) {
|
|
25158
|
-
throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");
|
|
25159
|
-
}
|
|
25160
|
-
for (var j = 0; j < ring[ring.length - 1].length; j++) {
|
|
25161
|
-
// Check if first point of Polygon contains two numbers
|
|
25162
|
-
if (ring[ring.length - 1][j] !== ring[0][j]) {
|
|
25163
|
-
throw new Error("First and last Position are not equivalent.");
|
|
25164
|
-
}
|
|
25165
|
-
}
|
|
25166
|
-
}
|
|
25167
|
-
var geom = {
|
|
25168
|
-
type: "Polygon",
|
|
25169
|
-
coordinates: coordinates,
|
|
25170
|
-
};
|
|
25171
|
-
return feature(geom, properties, options);
|
|
25172
|
-
}
|
|
25173
|
-
/**
|
|
25174
|
-
* Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.
|
|
25175
|
-
*
|
|
25176
|
-
* @name polygons
|
|
25177
|
-
* @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates
|
|
25178
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25179
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25180
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25181
|
-
* @param {string|number} [options.id] Identifier associated with the FeatureCollection
|
|
25182
|
-
* @returns {FeatureCollection<Polygon>} Polygon FeatureCollection
|
|
25183
|
-
* @example
|
|
25184
|
-
* var polygons = turf.polygons([
|
|
25185
|
-
* [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],
|
|
25186
|
-
* [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],
|
|
25187
|
-
* ]);
|
|
25188
|
-
*
|
|
25189
|
-
* //=polygons
|
|
25190
|
-
*/
|
|
25191
|
-
function polygons(coordinates, properties, options) {
|
|
25192
|
-
if (options === void 0) { options = {}; }
|
|
25193
|
-
return featureCollection(coordinates.map(function (coords) {
|
|
25194
|
-
return polygon(coords, properties);
|
|
25195
|
-
}), options);
|
|
25196
|
-
}
|
|
25197
|
-
/**
|
|
25198
|
-
* Creates a {@link LineString} {@link Feature} from an Array of Positions.
|
|
25199
|
-
*
|
|
25200
|
-
* @name lineString
|
|
25201
|
-
* @param {Array<Array<number>>} coordinates an array of Positions
|
|
25202
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25203
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25204
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25205
|
-
* @param {string|number} [options.id] Identifier associated with the Feature
|
|
25206
|
-
* @returns {Feature<LineString>} LineString Feature
|
|
25207
|
-
* @example
|
|
25208
|
-
* var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});
|
|
25209
|
-
* var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});
|
|
25210
|
-
*
|
|
25211
|
-
* //=linestring1
|
|
25212
|
-
* //=linestring2
|
|
25213
|
-
*/
|
|
25214
|
-
function lineString(coordinates, properties, options) {
|
|
25215
|
-
if (options === void 0) { options = {}; }
|
|
25216
|
-
if (coordinates.length < 2) {
|
|
25217
|
-
throw new Error("coordinates must be an array of two or more positions");
|
|
25218
|
-
}
|
|
25219
|
-
var geom = {
|
|
25220
|
-
type: "LineString",
|
|
25221
|
-
coordinates: coordinates,
|
|
25222
|
-
};
|
|
25223
|
-
return feature(geom, properties, options);
|
|
25224
|
-
}
|
|
25225
|
-
/**
|
|
25226
|
-
* Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.
|
|
25227
|
-
*
|
|
25228
|
-
* @name lineStrings
|
|
25229
|
-
* @param {Array<Array<Array<number>>>} coordinates an array of LinearRings
|
|
25230
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25231
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25232
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]
|
|
25233
|
-
* associated with the FeatureCollection
|
|
25234
|
-
* @param {string|number} [options.id] Identifier associated with the FeatureCollection
|
|
25235
|
-
* @returns {FeatureCollection<LineString>} LineString FeatureCollection
|
|
25236
|
-
* @example
|
|
25237
|
-
* var linestrings = turf.lineStrings([
|
|
25238
|
-
* [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],
|
|
25239
|
-
* [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]
|
|
25240
|
-
* ]);
|
|
25241
|
-
*
|
|
25242
|
-
* //=linestrings
|
|
25243
|
-
*/
|
|
25244
|
-
function lineStrings(coordinates, properties, options) {
|
|
25245
|
-
if (options === void 0) { options = {}; }
|
|
25246
|
-
return featureCollection(coordinates.map(function (coords) {
|
|
25247
|
-
return lineString(coords, properties);
|
|
25248
|
-
}), options);
|
|
25249
|
-
}
|
|
25250
|
-
/**
|
|
25251
|
-
* Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.
|
|
25252
|
-
*
|
|
25253
|
-
* @name featureCollection
|
|
25254
|
-
* @param {Feature[]} features input features
|
|
25255
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25256
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25257
|
-
* @param {string|number} [options.id] Identifier associated with the Feature
|
|
25258
|
-
* @returns {FeatureCollection} FeatureCollection of Features
|
|
25259
|
-
* @example
|
|
25260
|
-
* var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});
|
|
25261
|
-
* var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});
|
|
25262
|
-
* var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});
|
|
25263
|
-
*
|
|
25264
|
-
* var collection = turf.featureCollection([
|
|
25265
|
-
* locationA,
|
|
25266
|
-
* locationB,
|
|
25267
|
-
* locationC
|
|
25268
|
-
* ]);
|
|
25269
|
-
*
|
|
25270
|
-
* //=collection
|
|
25271
|
-
*/
|
|
25272
|
-
function featureCollection(features, options) {
|
|
25273
|
-
if (options === void 0) { options = {}; }
|
|
25274
|
-
var fc = { type: "FeatureCollection" };
|
|
25275
|
-
if (options.id) {
|
|
25276
|
-
fc.id = options.id;
|
|
25277
|
-
}
|
|
25278
|
-
if (options.bbox) {
|
|
25279
|
-
fc.bbox = options.bbox;
|
|
25280
|
-
}
|
|
25281
|
-
fc.features = features;
|
|
25282
|
-
return fc;
|
|
25283
|
-
}
|
|
25284
|
-
/**
|
|
25285
|
-
* Creates a {@link Feature<MultiLineString>} based on a
|
|
25286
|
-
* coordinate array. Properties can be added optionally.
|
|
25287
|
-
*
|
|
25288
|
-
* @name multiLineString
|
|
25289
|
-
* @param {Array<Array<Array<number>>>} coordinates an array of LineStrings
|
|
25290
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25291
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25292
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25293
|
-
* @param {string|number} [options.id] Identifier associated with the Feature
|
|
25294
|
-
* @returns {Feature<MultiLineString>} a MultiLineString feature
|
|
25295
|
-
* @throws {Error} if no coordinates are passed
|
|
25296
|
-
* @example
|
|
25297
|
-
* var multiLine = turf.multiLineString([[[0,0],[10,10]]]);
|
|
25298
|
-
*
|
|
25299
|
-
* //=multiLine
|
|
25300
|
-
*/
|
|
25301
|
-
function multiLineString(coordinates, properties, options) {
|
|
25302
|
-
if (options === void 0) { options = {}; }
|
|
25303
|
-
var geom = {
|
|
25304
|
-
type: "MultiLineString",
|
|
25305
|
-
coordinates: coordinates,
|
|
25306
|
-
};
|
|
25307
|
-
return feature(geom, properties, options);
|
|
25308
|
-
}
|
|
25309
|
-
/**
|
|
25310
|
-
* Creates a {@link Feature<MultiPoint>} based on a
|
|
25311
|
-
* coordinate array. Properties can be added optionally.
|
|
25312
|
-
*
|
|
25313
|
-
* @name multiPoint
|
|
25314
|
-
* @param {Array<Array<number>>} coordinates an array of Positions
|
|
25315
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25316
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25317
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25318
|
-
* @param {string|number} [options.id] Identifier associated with the Feature
|
|
25319
|
-
* @returns {Feature<MultiPoint>} a MultiPoint feature
|
|
25320
|
-
* @throws {Error} if no coordinates are passed
|
|
25321
|
-
* @example
|
|
25322
|
-
* var multiPt = turf.multiPoint([[0,0],[10,10]]);
|
|
25323
|
-
*
|
|
25324
|
-
* //=multiPt
|
|
25325
|
-
*/
|
|
25326
|
-
function multiPoint(coordinates, properties, options) {
|
|
25327
|
-
if (options === void 0) { options = {}; }
|
|
25328
|
-
var geom = {
|
|
25329
|
-
type: "MultiPoint",
|
|
25330
|
-
coordinates: coordinates,
|
|
25331
|
-
};
|
|
25332
|
-
return feature(geom, properties, options);
|
|
25333
|
-
}
|
|
25334
|
-
/**
|
|
25335
|
-
* Creates a {@link Feature<MultiPolygon>} based on a
|
|
25336
|
-
* coordinate array. Properties can be added optionally.
|
|
25337
|
-
*
|
|
25338
|
-
* @name multiPolygon
|
|
25339
|
-
* @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons
|
|
25340
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25341
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25342
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25343
|
-
* @param {string|number} [options.id] Identifier associated with the Feature
|
|
25344
|
-
* @returns {Feature<MultiPolygon>} a multipolygon feature
|
|
25345
|
-
* @throws {Error} if no coordinates are passed
|
|
25346
|
-
* @example
|
|
25347
|
-
* var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);
|
|
25348
|
-
*
|
|
25349
|
-
* //=multiPoly
|
|
25350
|
-
*
|
|
25351
|
-
*/
|
|
25352
|
-
function multiPolygon(coordinates, properties, options) {
|
|
25353
|
-
if (options === void 0) { options = {}; }
|
|
25354
|
-
var geom = {
|
|
25355
|
-
type: "MultiPolygon",
|
|
25356
|
-
coordinates: coordinates,
|
|
25357
|
-
};
|
|
25358
|
-
return feature(geom, properties, options);
|
|
25359
|
-
}
|
|
25360
|
-
/**
|
|
25361
|
-
* Creates a {@link Feature<GeometryCollection>} based on a
|
|
25362
|
-
* coordinate array. Properties can be added optionally.
|
|
25363
|
-
*
|
|
25364
|
-
* @name geometryCollection
|
|
25365
|
-
* @param {Array<Geometry>} geometries an array of GeoJSON Geometries
|
|
25366
|
-
* @param {Object} [properties={}] an Object of key-value pairs to add as properties
|
|
25367
|
-
* @param {Object} [options={}] Optional Parameters
|
|
25368
|
-
* @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
|
|
25369
|
-
* @param {string|number} [options.id] Identifier associated with the Feature
|
|
25370
|
-
* @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature
|
|
25371
|
-
* @example
|
|
25372
|
-
* var pt = turf.geometry("Point", [100, 0]);
|
|
25373
|
-
* var line = turf.geometry("LineString", [[101, 0], [102, 1]]);
|
|
25374
|
-
* var collection = turf.geometryCollection([pt, line]);
|
|
25375
|
-
*
|
|
25376
|
-
* // => collection
|
|
25377
|
-
*/
|
|
25378
|
-
function geometryCollection(geometries, properties, options) {
|
|
25379
|
-
if (options === void 0) { options = {}; }
|
|
25380
|
-
var geom = {
|
|
25381
|
-
type: "GeometryCollection",
|
|
25382
|
-
geometries: geometries,
|
|
25383
|
-
};
|
|
25384
|
-
return feature(geom, properties, options);
|
|
25385
|
-
}
|
|
25386
|
-
/**
|
|
25387
|
-
* Round number to precision
|
|
25388
|
-
*
|
|
25389
|
-
* @param {number} num Number
|
|
25390
|
-
* @param {number} [precision=0] Precision
|
|
25391
|
-
* @returns {number} rounded number
|
|
25392
|
-
* @example
|
|
25393
|
-
* turf.round(120.4321)
|
|
25394
|
-
* //=120
|
|
25395
|
-
*
|
|
25396
|
-
* turf.round(120.4321, 2)
|
|
25397
|
-
* //=120.43
|
|
25398
|
-
*/
|
|
25399
|
-
function round(num, precision) {
|
|
25400
|
-
if (precision === void 0) { precision = 0; }
|
|
25401
|
-
if (precision && !(precision >= 0)) {
|
|
25402
|
-
throw new Error("precision must be a positive number");
|
|
25403
|
-
}
|
|
25404
|
-
var multiplier = Math.pow(10, precision || 0);
|
|
25405
|
-
return Math.round(num * multiplier) / multiplier;
|
|
25406
|
-
}
|
|
25407
|
-
/**
|
|
25408
|
-
* Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.
|
|
25409
|
-
* Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
|
|
25410
|
-
*
|
|
25411
|
-
* @name radiansToLength
|
|
25412
|
-
* @param {number} radians in radians across the sphere
|
|
25413
|
-
* @param {string} [units="kilometers"] can be degrees, radians, miles, inches, yards, metres,
|
|
25414
|
-
* meters, kilometres, kilometers.
|
|
25415
|
-
* @returns {number} distance
|
|
25416
|
-
*/
|
|
25417
|
-
function radiansToLength(radians, units) {
|
|
25418
|
-
if (units === void 0) { units = "kilometers"; }
|
|
25419
|
-
var factor = factors[units];
|
|
25420
|
-
if (!factor) {
|
|
25421
|
-
throw new Error(units + " units is invalid");
|
|
25422
|
-
}
|
|
25423
|
-
return radians * factor;
|
|
25424
|
-
}
|
|
25425
|
-
/**
|
|
25426
|
-
* Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians
|
|
25427
|
-
* Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
|
|
25428
|
-
*
|
|
25429
|
-
* @name lengthToRadians
|
|
25430
|
-
* @param {number} distance in real units
|
|
25431
|
-
* @param {string} [units="kilometers"] can be degrees, radians, miles, inches, yards, metres,
|
|
25432
|
-
* meters, kilometres, kilometers.
|
|
25433
|
-
* @returns {number} radians
|
|
25434
|
-
*/
|
|
25435
|
-
function lengthToRadians(distance, units) {
|
|
25436
|
-
if (units === void 0) { units = "kilometers"; }
|
|
25437
|
-
var factor = factors[units];
|
|
25438
|
-
if (!factor) {
|
|
25439
|
-
throw new Error(units + " units is invalid");
|
|
25440
|
-
}
|
|
25441
|
-
return distance / factor;
|
|
25442
|
-
}
|
|
25443
|
-
/**
|
|
25444
|
-
* Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees
|
|
25445
|
-
* Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet
|
|
25446
|
-
*
|
|
25447
|
-
* @name lengthToDegrees
|
|
25448
|
-
* @param {number} distance in real units
|
|
25449
|
-
* @param {string} [units="kilometers"] can be degrees, radians, miles, inches, yards, metres,
|
|
25450
|
-
* meters, kilometres, kilometers.
|
|
25451
|
-
* @returns {number} degrees
|
|
25452
|
-
*/
|
|
25453
|
-
function lengthToDegrees(distance, units) {
|
|
25454
|
-
return radiansToDegrees(lengthToRadians(distance, units));
|
|
25455
|
-
}
|
|
25456
|
-
/**
|
|
25457
|
-
* Converts any bearing angle from the north line direction (positive clockwise)
|
|
25458
|
-
* and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line
|
|
25459
|
-
*
|
|
25460
|
-
* @name bearingToAzimuth
|
|
25461
|
-
* @param {number} bearing angle, between -180 and +180 degrees
|
|
25462
|
-
* @returns {number} angle between 0 and 360 degrees
|
|
25463
|
-
*/
|
|
25464
|
-
function bearingToAzimuth(bearing) {
|
|
25465
|
-
var angle = bearing % 360;
|
|
25466
|
-
if (angle < 0) {
|
|
25467
|
-
angle += 360;
|
|
25468
|
-
}
|
|
25469
|
-
return angle;
|
|
25470
|
-
}
|
|
25471
|
-
/**
|
|
25472
|
-
* Converts an angle in radians to degrees
|
|
25473
|
-
*
|
|
25474
|
-
* @name radiansToDegrees
|
|
25475
|
-
* @param {number} radians angle in radians
|
|
25476
|
-
* @returns {number} degrees between 0 and 360 degrees
|
|
25477
|
-
*/
|
|
25478
|
-
function radiansToDegrees(radians) {
|
|
25479
|
-
var degrees = radians % (2 * Math.PI);
|
|
25480
|
-
return (degrees * 180) / Math.PI;
|
|
25481
|
-
}
|
|
25482
|
-
/**
|
|
25483
|
-
* Converts an angle in degrees to radians
|
|
25484
|
-
*
|
|
25485
|
-
* @name degreesToRadians
|
|
25486
|
-
* @param {number} degrees angle between 0 and 360 degrees
|
|
25487
|
-
* @returns {number} angle in radians
|
|
25488
|
-
*/
|
|
25489
|
-
function degreesToRadians(degrees) {
|
|
25490
|
-
var radians = degrees % 360;
|
|
25491
|
-
return (radians * Math.PI) / 180;
|
|
25492
|
-
}
|
|
25493
|
-
/**
|
|
25494
|
-
* Converts a length to the requested unit.
|
|
25495
|
-
* Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
|
|
25496
|
-
*
|
|
25497
|
-
* @param {number} length to be converted
|
|
25498
|
-
* @param {Units} [originalUnit="kilometers"] of the length
|
|
25499
|
-
* @param {Units} [finalUnit="kilometers"] returned unit
|
|
25500
|
-
* @returns {number} the converted length
|
|
25501
|
-
*/
|
|
25502
|
-
function convertLength(length, originalUnit, finalUnit) {
|
|
25503
|
-
if (originalUnit === void 0) { originalUnit = "kilometers"; }
|
|
25504
|
-
if (finalUnit === void 0) { finalUnit = "kilometers"; }
|
|
25505
|
-
if (!(length >= 0)) {
|
|
25506
|
-
throw new Error("length must be a positive number");
|
|
25507
|
-
}
|
|
25508
|
-
return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);
|
|
25509
|
-
}
|
|
25510
|
-
/**
|
|
25511
|
-
* Converts a area to the requested unit.
|
|
25512
|
-
* Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares
|
|
25513
|
-
* @param {number} area to be converted
|
|
25514
|
-
* @param {Units} [originalUnit="meters"] of the distance
|
|
25515
|
-
* @param {Units} [finalUnit="kilometers"] returned unit
|
|
25516
|
-
* @returns {number} the converted area
|
|
25517
|
-
*/
|
|
25518
|
-
function convertArea(area, originalUnit, finalUnit) {
|
|
25519
|
-
if (originalUnit === void 0) { originalUnit = "meters"; }
|
|
25520
|
-
if (finalUnit === void 0) { finalUnit = "kilometers"; }
|
|
25521
|
-
if (!(area >= 0)) {
|
|
25522
|
-
throw new Error("area must be a positive number");
|
|
25523
|
-
}
|
|
25524
|
-
var startFactor = areaFactors[originalUnit];
|
|
25525
|
-
if (!startFactor) {
|
|
25526
|
-
throw new Error("invalid original units");
|
|
25527
|
-
}
|
|
25528
|
-
var finalFactor = areaFactors[finalUnit];
|
|
25529
|
-
if (!finalFactor) {
|
|
25530
|
-
throw new Error("invalid final units");
|
|
25531
|
-
}
|
|
25532
|
-
return (area / startFactor) * finalFactor;
|
|
25533
|
-
}
|
|
25534
|
-
/**
|
|
25535
|
-
* isNumber
|
|
25536
|
-
*
|
|
25537
|
-
* @param {*} num Number to validate
|
|
25538
|
-
* @returns {boolean} true/false
|
|
25539
|
-
* @example
|
|
25540
|
-
* turf.isNumber(123)
|
|
25541
|
-
* //=true
|
|
25542
|
-
* turf.isNumber('foo')
|
|
25543
|
-
* //=false
|
|
25544
|
-
*/
|
|
25545
|
-
function isNumber(num) {
|
|
25546
|
-
return !isNaN(num) && num !== null && !Array.isArray(num);
|
|
25547
|
-
}
|
|
25548
|
-
/**
|
|
25549
|
-
* isObject
|
|
25550
|
-
*
|
|
25551
|
-
* @param {*} input variable to validate
|
|
25552
|
-
* @returns {boolean} true/false
|
|
25553
|
-
* @example
|
|
25554
|
-
* turf.isObject({elevation: 10})
|
|
25555
|
-
* //=true
|
|
25556
|
-
* turf.isObject('foo')
|
|
25557
|
-
* //=false
|
|
25558
|
-
*/
|
|
25559
|
-
function isObject(input) {
|
|
25560
|
-
return !!input && input.constructor === Object;
|
|
25561
|
-
}
|
|
25562
|
-
/**
|
|
25563
|
-
* Validate BBox
|
|
25564
|
-
*
|
|
25565
|
-
* @private
|
|
25566
|
-
* @param {Array<number>} bbox BBox to validate
|
|
25567
|
-
* @returns {void}
|
|
25568
|
-
* @throws Error if BBox is not valid
|
|
25569
|
-
* @example
|
|
25570
|
-
* validateBBox([-180, -40, 110, 50])
|
|
25571
|
-
* //=OK
|
|
25572
|
-
* validateBBox([-180, -40])
|
|
25573
|
-
* //=Error
|
|
25574
|
-
* validateBBox('Foo')
|
|
25575
|
-
* //=Error
|
|
25576
|
-
* validateBBox(5)
|
|
25577
|
-
* //=Error
|
|
25578
|
-
* validateBBox(null)
|
|
25579
|
-
* //=Error
|
|
25580
|
-
* validateBBox(undefined)
|
|
25581
|
-
* //=Error
|
|
25582
|
-
*/
|
|
25583
|
-
function validateBBox(bbox) {
|
|
25584
|
-
if (!bbox) {
|
|
25585
|
-
throw new Error("bbox is required");
|
|
25586
|
-
}
|
|
25587
|
-
if (!Array.isArray(bbox)) {
|
|
25588
|
-
throw new Error("bbox must be an Array");
|
|
25589
|
-
}
|
|
25590
|
-
if (bbox.length !== 4 && bbox.length !== 6) {
|
|
25591
|
-
throw new Error("bbox must be an Array of 4 or 6 numbers");
|
|
25592
|
-
}
|
|
25593
|
-
bbox.forEach(function (num) {
|
|
25594
|
-
if (!isNumber(num)) {
|
|
25595
|
-
throw new Error("bbox must only contain numbers");
|
|
25596
|
-
}
|
|
25597
|
-
});
|
|
25598
|
-
}
|
|
25599
|
-
/**
|
|
25600
|
-
* Validate Id
|
|
25601
|
-
*
|
|
25602
|
-
* @private
|
|
25603
|
-
* @param {string|number} id Id to validate
|
|
25604
|
-
* @returns {void}
|
|
25605
|
-
* @throws Error if Id is not valid
|
|
25606
|
-
* @example
|
|
25607
|
-
* validateId([-180, -40, 110, 50])
|
|
25608
|
-
* //=Error
|
|
25609
|
-
* validateId([-180, -40])
|
|
25610
|
-
* //=Error
|
|
25611
|
-
* validateId('Foo')
|
|
25612
|
-
* //=OK
|
|
25613
|
-
* validateId(5)
|
|
25614
|
-
* //=OK
|
|
25615
|
-
* validateId(null)
|
|
25616
|
-
* //=Error
|
|
25617
|
-
* validateId(undefined)
|
|
25618
|
-
* //=Error
|
|
25619
|
-
*/
|
|
25620
|
-
function validateId(id) {
|
|
25621
|
-
if (!id) {
|
|
25622
|
-
throw new Error("id is required");
|
|
25623
|
-
}
|
|
25624
|
-
if (["string", "number"].indexOf(typeof id) === -1) {
|
|
25625
|
-
throw new Error("id must be a number or a string");
|
|
25626
|
-
}
|
|
25627
|
-
}
|
|
25628
|
-
|
|
25629
|
-
|
|
25630
|
-
/***/ }),
|
|
25631
|
-
|
|
25632
|
-
/***/ "../../node_modules/@turf/invariant/dist/es/index.js":
|
|
25633
|
-
/*!**********************************************************************!*\
|
|
25634
|
-
!*** /root/amplify-js/node_modules/@turf/invariant/dist/es/index.js ***!
|
|
25635
|
-
\**********************************************************************/
|
|
25636
|
-
/*! exports provided: getCoord, getCoords, containsNumber, geojsonType, featureOf, collectionOf, getGeom, getType */
|
|
25637
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
25638
|
-
|
|
25639
|
-
"use strict";
|
|
25640
|
-
__webpack_require__.r(__webpack_exports__);
|
|
25641
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCoord", function() { return getCoord; });
|
|
25642
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCoords", function() { return getCoords; });
|
|
25643
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "containsNumber", function() { return containsNumber; });
|
|
25644
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "geojsonType", function() { return geojsonType; });
|
|
25645
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "featureOf", function() { return featureOf; });
|
|
25646
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "collectionOf", function() { return collectionOf; });
|
|
25647
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getGeom", function() { return getGeom; });
|
|
25648
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getType", function() { return getType; });
|
|
25649
|
-
/* harmony import */ var _turf_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @turf/helpers */ "../../node_modules/@turf/helpers/dist/es/index.js");
|
|
25650
|
-
|
|
25651
|
-
/**
|
|
25652
|
-
* Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.
|
|
25653
|
-
*
|
|
25654
|
-
* @name getCoord
|
|
25655
|
-
* @param {Array<number>|Geometry<Point>|Feature<Point>} coord GeoJSON Point or an Array of numbers
|
|
25656
|
-
* @returns {Array<number>} coordinates
|
|
25657
|
-
* @example
|
|
25658
|
-
* var pt = turf.point([10, 10]);
|
|
25659
|
-
*
|
|
25660
|
-
* var coord = turf.getCoord(pt);
|
|
25661
|
-
* //= [10, 10]
|
|
25662
|
-
*/
|
|
25663
|
-
function getCoord(coord) {
|
|
25664
|
-
if (!coord) {
|
|
25665
|
-
throw new Error("coord is required");
|
|
25666
|
-
}
|
|
25667
|
-
if (!Array.isArray(coord)) {
|
|
25668
|
-
if (coord.type === "Feature" &&
|
|
25669
|
-
coord.geometry !== null &&
|
|
25670
|
-
coord.geometry.type === "Point") {
|
|
25671
|
-
return coord.geometry.coordinates;
|
|
25672
|
-
}
|
|
25673
|
-
if (coord.type === "Point") {
|
|
25674
|
-
return coord.coordinates;
|
|
25675
|
-
}
|
|
25676
|
-
}
|
|
25677
|
-
if (Array.isArray(coord) &&
|
|
25678
|
-
coord.length >= 2 &&
|
|
25679
|
-
!Array.isArray(coord[0]) &&
|
|
25680
|
-
!Array.isArray(coord[1])) {
|
|
25681
|
-
return coord;
|
|
25682
|
-
}
|
|
25683
|
-
throw new Error("coord must be GeoJSON Point or an Array of numbers");
|
|
25684
|
-
}
|
|
25685
|
-
/**
|
|
25686
|
-
* Unwrap coordinates from a Feature, Geometry Object or an Array
|
|
25687
|
-
*
|
|
25688
|
-
* @name getCoords
|
|
25689
|
-
* @param {Array<any>|Geometry|Feature} coords Feature, Geometry Object or an Array
|
|
25690
|
-
* @returns {Array<any>} coordinates
|
|
25691
|
-
* @example
|
|
25692
|
-
* var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);
|
|
25693
|
-
*
|
|
25694
|
-
* var coords = turf.getCoords(poly);
|
|
25695
|
-
* //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]
|
|
25696
|
-
*/
|
|
25697
|
-
function getCoords(coords) {
|
|
25698
|
-
if (Array.isArray(coords)) {
|
|
25699
|
-
return coords;
|
|
25700
|
-
}
|
|
25701
|
-
// Feature
|
|
25702
|
-
if (coords.type === "Feature") {
|
|
25703
|
-
if (coords.geometry !== null) {
|
|
25704
|
-
return coords.geometry.coordinates;
|
|
25705
|
-
}
|
|
25706
|
-
}
|
|
25707
|
-
else {
|
|
25708
|
-
// Geometry
|
|
25709
|
-
if (coords.coordinates) {
|
|
25710
|
-
return coords.coordinates;
|
|
25711
|
-
}
|
|
25712
|
-
}
|
|
25713
|
-
throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array");
|
|
25714
|
-
}
|
|
25715
|
-
/**
|
|
25716
|
-
* Checks if coordinates contains a number
|
|
25717
|
-
*
|
|
25718
|
-
* @name containsNumber
|
|
25719
|
-
* @param {Array<any>} coordinates GeoJSON Coordinates
|
|
25720
|
-
* @returns {boolean} true if Array contains a number
|
|
25721
|
-
*/
|
|
25722
|
-
function containsNumber(coordinates) {
|
|
25723
|
-
if (coordinates.length > 1 &&
|
|
25724
|
-
Object(_turf_helpers__WEBPACK_IMPORTED_MODULE_0__["isNumber"])(coordinates[0]) &&
|
|
25725
|
-
Object(_turf_helpers__WEBPACK_IMPORTED_MODULE_0__["isNumber"])(coordinates[1])) {
|
|
25726
|
-
return true;
|
|
25727
|
-
}
|
|
25728
|
-
if (Array.isArray(coordinates[0]) && coordinates[0].length) {
|
|
25729
|
-
return containsNumber(coordinates[0]);
|
|
25730
|
-
}
|
|
25731
|
-
throw new Error("coordinates must only contain numbers");
|
|
25732
|
-
}
|
|
25733
|
-
/**
|
|
25734
|
-
* Enforce expectations about types of GeoJSON objects for Turf.
|
|
25735
|
-
*
|
|
25736
|
-
* @name geojsonType
|
|
25737
|
-
* @param {GeoJSON} value any GeoJSON object
|
|
25738
|
-
* @param {string} type expected GeoJSON type
|
|
25739
|
-
* @param {string} name name of calling function
|
|
25740
|
-
* @throws {Error} if value is not the expected type.
|
|
25741
|
-
*/
|
|
25742
|
-
function geojsonType(value, type, name) {
|
|
25743
|
-
if (!type || !name) {
|
|
25744
|
-
throw new Error("type and name required");
|
|
25745
|
-
}
|
|
25746
|
-
if (!value || value.type !== type) {
|
|
25747
|
-
throw new Error("Invalid input to " +
|
|
25748
|
-
name +
|
|
25749
|
-
": must be a " +
|
|
25750
|
-
type +
|
|
25751
|
-
", given " +
|
|
25752
|
-
value.type);
|
|
25753
|
-
}
|
|
25754
|
-
}
|
|
25755
|
-
/**
|
|
25756
|
-
* Enforce expectations about types of {@link Feature} inputs for Turf.
|
|
25757
|
-
* Internally this uses {@link geojsonType} to judge geometry types.
|
|
25758
|
-
*
|
|
25759
|
-
* @name featureOf
|
|
25760
|
-
* @param {Feature} feature a feature with an expected geometry type
|
|
25761
|
-
* @param {string} type expected GeoJSON type
|
|
25762
|
-
* @param {string} name name of calling function
|
|
25763
|
-
* @throws {Error} error if value is not the expected type.
|
|
25764
|
-
*/
|
|
25765
|
-
function featureOf(feature, type, name) {
|
|
25766
|
-
if (!feature) {
|
|
25767
|
-
throw new Error("No feature passed");
|
|
25768
|
-
}
|
|
25769
|
-
if (!name) {
|
|
25770
|
-
throw new Error(".featureOf() requires a name");
|
|
25771
|
-
}
|
|
25772
|
-
if (!feature || feature.type !== "Feature" || !feature.geometry) {
|
|
25773
|
-
throw new Error("Invalid input to " + name + ", Feature with geometry required");
|
|
25774
|
-
}
|
|
25775
|
-
if (!feature.geometry || feature.geometry.type !== type) {
|
|
25776
|
-
throw new Error("Invalid input to " +
|
|
25777
|
-
name +
|
|
25778
|
-
": must be a " +
|
|
25779
|
-
type +
|
|
25780
|
-
", given " +
|
|
25781
|
-
feature.geometry.type);
|
|
25782
|
-
}
|
|
25783
|
-
}
|
|
25784
|
-
/**
|
|
25785
|
-
* Enforce expectations about types of {@link FeatureCollection} inputs for Turf.
|
|
25786
|
-
* Internally this uses {@link geojsonType} to judge geometry types.
|
|
25787
|
-
*
|
|
25788
|
-
* @name collectionOf
|
|
25789
|
-
* @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged
|
|
25790
|
-
* @param {string} type expected GeoJSON type
|
|
25791
|
-
* @param {string} name name of calling function
|
|
25792
|
-
* @throws {Error} if value is not the expected type.
|
|
25793
|
-
*/
|
|
25794
|
-
function collectionOf(featureCollection, type, name) {
|
|
25795
|
-
if (!featureCollection) {
|
|
25796
|
-
throw new Error("No featureCollection passed");
|
|
25797
|
-
}
|
|
25798
|
-
if (!name) {
|
|
25799
|
-
throw new Error(".collectionOf() requires a name");
|
|
25800
|
-
}
|
|
25801
|
-
if (!featureCollection || featureCollection.type !== "FeatureCollection") {
|
|
25802
|
-
throw new Error("Invalid input to " + name + ", FeatureCollection required");
|
|
25803
|
-
}
|
|
25804
|
-
for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {
|
|
25805
|
-
var feature = _a[_i];
|
|
25806
|
-
if (!feature || feature.type !== "Feature" || !feature.geometry) {
|
|
25807
|
-
throw new Error("Invalid input to " + name + ", Feature with geometry required");
|
|
25808
|
-
}
|
|
25809
|
-
if (!feature.geometry || feature.geometry.type !== type) {
|
|
25810
|
-
throw new Error("Invalid input to " +
|
|
25811
|
-
name +
|
|
25812
|
-
": must be a " +
|
|
25813
|
-
type +
|
|
25814
|
-
", given " +
|
|
25815
|
-
feature.geometry.type);
|
|
25816
|
-
}
|
|
25817
|
-
}
|
|
25818
|
-
}
|
|
25819
|
-
/**
|
|
25820
|
-
* Get Geometry from Feature or Geometry Object
|
|
25821
|
-
*
|
|
25822
|
-
* @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object
|
|
25823
|
-
* @returns {Geometry|null} GeoJSON Geometry Object
|
|
25824
|
-
* @throws {Error} if geojson is not a Feature or Geometry Object
|
|
25825
|
-
* @example
|
|
25826
|
-
* var point = {
|
|
25827
|
-
* "type": "Feature",
|
|
25828
|
-
* "properties": {},
|
|
25829
|
-
* "geometry": {
|
|
25830
|
-
* "type": "Point",
|
|
25831
|
-
* "coordinates": [110, 40]
|
|
25832
|
-
* }
|
|
25833
|
-
* }
|
|
25834
|
-
* var geom = turf.getGeom(point)
|
|
25835
|
-
* //={"type": "Point", "coordinates": [110, 40]}
|
|
25836
|
-
*/
|
|
25837
|
-
function getGeom(geojson) {
|
|
25838
|
-
if (geojson.type === "Feature") {
|
|
25839
|
-
return geojson.geometry;
|
|
25840
|
-
}
|
|
25841
|
-
return geojson;
|
|
25842
|
-
}
|
|
25843
|
-
/**
|
|
25844
|
-
* Get GeoJSON object's type, Geometry type is prioritize.
|
|
25845
|
-
*
|
|
25846
|
-
* @param {GeoJSON} geojson GeoJSON object
|
|
25847
|
-
* @param {string} [name="geojson"] name of the variable to display in error message (unused)
|
|
25848
|
-
* @returns {string} GeoJSON type
|
|
25849
|
-
* @example
|
|
25850
|
-
* var point = {
|
|
25851
|
-
* "type": "Feature",
|
|
25852
|
-
* "properties": {},
|
|
25853
|
-
* "geometry": {
|
|
25854
|
-
* "type": "Point",
|
|
25855
|
-
* "coordinates": [110, 40]
|
|
25856
|
-
* }
|
|
25857
|
-
* }
|
|
25858
|
-
* var geom = turf.getType(point)
|
|
25859
|
-
* //="Point"
|
|
25860
|
-
*/
|
|
25861
|
-
function getType(geojson, _name) {
|
|
25862
|
-
if (geojson.type === "FeatureCollection") {
|
|
25863
|
-
return "FeatureCollection";
|
|
25864
|
-
}
|
|
25865
|
-
if (geojson.type === "GeometryCollection") {
|
|
25866
|
-
return "GeometryCollection";
|
|
25867
|
-
}
|
|
25868
|
-
if (geojson.type === "Feature" && geojson.geometry !== null) {
|
|
25869
|
-
return geojson.geometry.type;
|
|
25870
|
-
}
|
|
25871
|
-
return geojson.type;
|
|
25872
|
-
}
|
|
25873
|
-
|
|
25874
|
-
|
|
25875
24846
|
/***/ }),
|
|
25876
24847
|
|
|
25877
24848
|
/***/ "../../node_modules/base64-js/index.js":
|
|
@@ -28585,7 +27556,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
28585
27556
|
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
|
|
28586
27557
|
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__);
|
|
28587
27558
|
/* harmony import */ var _Providers_AmazonLocationServiceProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Providers/AmazonLocationServiceProvider */ "./lib-esm/Providers/AmazonLocationServiceProvider.js");
|
|
28588
|
-
/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ "./lib-esm/util.js");
|
|
28589
27559
|
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
28590
27560
|
function adopt(value) {
|
|
28591
27561
|
return value instanceof P ? value : new P(function (resolve) {
|
|
@@ -28728,33 +27698,6 @@ var __generator = undefined && undefined.__generator || function (thisArg, body)
|
|
|
28728
27698
|
};
|
|
28729
27699
|
}
|
|
28730
27700
|
};
|
|
28731
|
-
|
|
28732
|
-
var __read = undefined && undefined.__read || function (o, n) {
|
|
28733
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
28734
|
-
if (!m) return o;
|
|
28735
|
-
var i = m.call(o),
|
|
28736
|
-
r,
|
|
28737
|
-
ar = [],
|
|
28738
|
-
e;
|
|
28739
|
-
|
|
28740
|
-
try {
|
|
28741
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
|
|
28742
|
-
ar.push(r.value);
|
|
28743
|
-
}
|
|
28744
|
-
} catch (error) {
|
|
28745
|
-
e = {
|
|
28746
|
-
error: error
|
|
28747
|
-
};
|
|
28748
|
-
} finally {
|
|
28749
|
-
try {
|
|
28750
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
28751
|
-
} finally {
|
|
28752
|
-
if (e) throw e.error;
|
|
28753
|
-
}
|
|
28754
|
-
}
|
|
28755
|
-
|
|
28756
|
-
return ar;
|
|
28757
|
-
};
|
|
28758
27701
|
/*
|
|
28759
27702
|
* Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
28760
27703
|
*
|
|
@@ -28771,7 +27714,6 @@ var __read = undefined && undefined.__read || function (o, n) {
|
|
|
28771
27714
|
|
|
28772
27715
|
|
|
28773
27716
|
|
|
28774
|
-
|
|
28775
27717
|
var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('Geo');
|
|
28776
27718
|
var DEFAULT_PROVIDER = 'AmazonLocationService';
|
|
28777
27719
|
|
|
@@ -28987,210 +27929,13 @@ function () {
|
|
|
28987
27929
|
|
|
28988
27930
|
GeoClass.prototype.searchByCoordinates = function (coordinates, options) {
|
|
28989
27931
|
return __awaiter(this, void 0, void 0, function () {
|
|
28990
|
-
var _a, providerName, prov,
|
|
28991
|
-
|
|
28992
|
-
return __generator(this, function (_c) {
|
|
28993
|
-
switch (_c.label) {
|
|
28994
|
-
case 0:
|
|
28995
|
-
_a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
|
|
28996
|
-
prov = this.getPluggable(providerName);
|
|
28997
|
-
_b = __read(coordinates, 2), lng = _b[0], lat = _b[1];
|
|
28998
|
-
_c.label = 1;
|
|
28999
|
-
|
|
29000
|
-
case 1:
|
|
29001
|
-
_c.trys.push([1, 3,, 4]);
|
|
29002
|
-
|
|
29003
|
-
Object(_util__WEBPACK_IMPORTED_MODULE_2__["validateCoordinates"])(lng, lat);
|
|
29004
|
-
return [4
|
|
29005
|
-
/*yield*/
|
|
29006
|
-
, prov.searchByCoordinates(coordinates, options)];
|
|
29007
|
-
|
|
29008
|
-
case 2:
|
|
29009
|
-
return [2
|
|
29010
|
-
/*return*/
|
|
29011
|
-
, _c.sent()];
|
|
29012
|
-
|
|
29013
|
-
case 3:
|
|
29014
|
-
error_3 = _c.sent();
|
|
29015
|
-
logger.debug(error_3);
|
|
29016
|
-
throw error_3;
|
|
29017
|
-
|
|
29018
|
-
case 4:
|
|
29019
|
-
return [2
|
|
29020
|
-
/*return*/
|
|
29021
|
-
];
|
|
29022
|
-
}
|
|
29023
|
-
});
|
|
29024
|
-
});
|
|
29025
|
-
};
|
|
29026
|
-
/**
|
|
29027
|
-
* Create geofences
|
|
29028
|
-
* @param geofences - Single or array of geofence objects to create
|
|
29029
|
-
* @param options? - Optional parameters for creating geofences
|
|
29030
|
-
* @returns {Promise<SaveGeofencesResults>} - Promise that resolves to an object with:
|
|
29031
|
-
* successes: list of geofences successfully created
|
|
29032
|
-
* errors: list of geofences that failed to create
|
|
29033
|
-
*/
|
|
29034
|
-
|
|
29035
|
-
|
|
29036
|
-
GeoClass.prototype.saveGeofences = function (geofences, options) {
|
|
29037
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
29038
|
-
var _a, providerName, prov, geofenceInputArray, error_4;
|
|
29039
|
-
|
|
29040
|
-
return __generator(this, function (_b) {
|
|
29041
|
-
switch (_b.label) {
|
|
29042
|
-
case 0:
|
|
29043
|
-
_a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
|
|
29044
|
-
prov = this.getPluggable(providerName);
|
|
29045
|
-
|
|
29046
|
-
if (!Array.isArray(geofences)) {
|
|
29047
|
-
geofenceInputArray = [geofences];
|
|
29048
|
-
} else {
|
|
29049
|
-
geofenceInputArray = geofences;
|
|
29050
|
-
}
|
|
29051
|
-
|
|
29052
|
-
_b.label = 1;
|
|
29053
|
-
|
|
29054
|
-
case 1:
|
|
29055
|
-
_b.trys.push([1, 3,, 4]);
|
|
29056
|
-
|
|
29057
|
-
return [4
|
|
29058
|
-
/*yield*/
|
|
29059
|
-
, prov.saveGeofences(geofenceInputArray, options)];
|
|
29060
|
-
|
|
29061
|
-
case 2:
|
|
29062
|
-
return [2
|
|
29063
|
-
/*return*/
|
|
29064
|
-
, _b.sent()];
|
|
29065
|
-
|
|
29066
|
-
case 3:
|
|
29067
|
-
error_4 = _b.sent();
|
|
29068
|
-
logger.debug(error_4);
|
|
29069
|
-
throw error_4;
|
|
29070
|
-
|
|
29071
|
-
case 4:
|
|
29072
|
-
return [2
|
|
29073
|
-
/*return*/
|
|
29074
|
-
];
|
|
29075
|
-
}
|
|
29076
|
-
});
|
|
29077
|
-
});
|
|
29078
|
-
};
|
|
29079
|
-
/**
|
|
29080
|
-
* Get a single geofence by geofenceId
|
|
29081
|
-
* @param geofenceId: string
|
|
29082
|
-
* @param options?: GeofenceOptions
|
|
29083
|
-
* @returns Promise<Geofence> - Promise that resolves to a geofence object
|
|
29084
|
-
*/
|
|
29085
|
-
|
|
29086
|
-
|
|
29087
|
-
GeoClass.prototype.getGeofence = function (geofenceId, options) {
|
|
29088
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
29089
|
-
var _a, providerName, prov, error_5;
|
|
29090
|
-
|
|
29091
|
-
return __generator(this, function (_b) {
|
|
29092
|
-
switch (_b.label) {
|
|
29093
|
-
case 0:
|
|
29094
|
-
_a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
|
|
29095
|
-
prov = this.getPluggable(providerName);
|
|
29096
|
-
_b.label = 1;
|
|
29097
|
-
|
|
29098
|
-
case 1:
|
|
29099
|
-
_b.trys.push([1, 3,, 4]);
|
|
29100
|
-
|
|
29101
|
-
return [4
|
|
29102
|
-
/*yield*/
|
|
29103
|
-
, prov.getGeofence(geofenceId, options)];
|
|
29104
|
-
|
|
29105
|
-
case 2:
|
|
29106
|
-
return [2
|
|
29107
|
-
/*return*/
|
|
29108
|
-
, _b.sent()];
|
|
29109
|
-
|
|
29110
|
-
case 3:
|
|
29111
|
-
error_5 = _b.sent();
|
|
29112
|
-
logger.debug(error_5);
|
|
29113
|
-
throw error_5;
|
|
29114
|
-
|
|
29115
|
-
case 4:
|
|
29116
|
-
return [2
|
|
29117
|
-
/*return*/
|
|
29118
|
-
];
|
|
29119
|
-
}
|
|
29120
|
-
});
|
|
29121
|
-
});
|
|
29122
|
-
};
|
|
29123
|
-
/**
|
|
29124
|
-
* List geofences
|
|
29125
|
-
* @param options?: ListGeofenceOptions
|
|
29126
|
-
* @returns {Promise<ListGeofencesResults>} - Promise that resolves to an object with:
|
|
29127
|
-
* entries: list of geofences - 100 geofences are listed per page
|
|
29128
|
-
* nextToken: token for next page of geofences
|
|
29129
|
-
*/
|
|
29130
|
-
|
|
29131
|
-
|
|
29132
|
-
GeoClass.prototype.listGeofences = function (options) {
|
|
29133
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
29134
|
-
var _a, providerName, prov, error_6;
|
|
29135
|
-
|
|
29136
|
-
return __generator(this, function (_b) {
|
|
29137
|
-
switch (_b.label) {
|
|
29138
|
-
case 0:
|
|
29139
|
-
_a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
|
|
29140
|
-
prov = this.getPluggable(providerName);
|
|
29141
|
-
_b.label = 1;
|
|
29142
|
-
|
|
29143
|
-
case 1:
|
|
29144
|
-
_b.trys.push([1, 3,, 4]);
|
|
29145
|
-
|
|
29146
|
-
return [4
|
|
29147
|
-
/*yield*/
|
|
29148
|
-
, prov.listGeofences(options)];
|
|
29149
|
-
|
|
29150
|
-
case 2:
|
|
29151
|
-
return [2
|
|
29152
|
-
/*return*/
|
|
29153
|
-
, _b.sent()];
|
|
29154
|
-
|
|
29155
|
-
case 3:
|
|
29156
|
-
error_6 = _b.sent();
|
|
29157
|
-
logger.debug(error_6);
|
|
29158
|
-
throw error_6;
|
|
29159
|
-
|
|
29160
|
-
case 4:
|
|
29161
|
-
return [2
|
|
29162
|
-
/*return*/
|
|
29163
|
-
];
|
|
29164
|
-
}
|
|
29165
|
-
});
|
|
29166
|
-
});
|
|
29167
|
-
};
|
|
29168
|
-
/**
|
|
29169
|
-
* Delete geofences
|
|
29170
|
-
* @param geofenceIds: string|string[]
|
|
29171
|
-
* @param options?: GeofenceOptions
|
|
29172
|
-
* @returns {Promise<DeleteGeofencesResults>} - Promise that resolves to an object with:
|
|
29173
|
-
* successes: list of geofences successfully deleted
|
|
29174
|
-
* errors: list of geofences that failed to delete
|
|
29175
|
-
*/
|
|
29176
|
-
|
|
29177
|
-
|
|
29178
|
-
GeoClass.prototype.deleteGeofences = function (geofenceIds, options) {
|
|
29179
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
29180
|
-
var _a, providerName, prov, geofenceIdsInputArray, error_7;
|
|
27932
|
+
var _a, providerName, prov, error_3;
|
|
29181
27933
|
|
|
29182
27934
|
return __generator(this, function (_b) {
|
|
29183
27935
|
switch (_b.label) {
|
|
29184
27936
|
case 0:
|
|
29185
27937
|
_a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
|
|
29186
27938
|
prov = this.getPluggable(providerName);
|
|
29187
|
-
|
|
29188
|
-
if (!Array.isArray(geofenceIds)) {
|
|
29189
|
-
geofenceIdsInputArray = [geofenceIds];
|
|
29190
|
-
} else {
|
|
29191
|
-
geofenceIdsInputArray = geofenceIds;
|
|
29192
|
-
}
|
|
29193
|
-
|
|
29194
27939
|
_b.label = 1;
|
|
29195
27940
|
|
|
29196
27941
|
case 1:
|
|
@@ -29198,7 +27943,7 @@ function () {
|
|
|
29198
27943
|
|
|
29199
27944
|
return [4
|
|
29200
27945
|
/*yield*/
|
|
29201
|
-
, prov.
|
|
27946
|
+
, prov.searchByCoordinates(coordinates, options)];
|
|
29202
27947
|
|
|
29203
27948
|
case 2:
|
|
29204
27949
|
return [2
|
|
@@ -29206,9 +27951,9 @@ function () {
|
|
|
29206
27951
|
, _b.sent()];
|
|
29207
27952
|
|
|
29208
27953
|
case 3:
|
|
29209
|
-
|
|
29210
|
-
logger.debug(
|
|
29211
|
-
throw
|
|
27954
|
+
error_3 = _b.sent();
|
|
27955
|
+
logger.debug(error_3);
|
|
27956
|
+
throw error_3;
|
|
29212
27957
|
|
|
29213
27958
|
case 4:
|
|
29214
27959
|
return [2
|
|
@@ -29244,7 +27989,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
29244
27989
|
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
|
|
29245
27990
|
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
|
|
29246
27991
|
/* harmony import */ var _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/client-location */ "../../node_modules/@aws-sdk/client-location/dist-es/index.js");
|
|
29247
|
-
/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util */ "./lib-esm/util.js");
|
|
29248
27992
|
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
29249
27993
|
function adopt(value) {
|
|
29250
27994
|
return value instanceof P ? value : new P(function (resolve) {
|
|
@@ -29387,41 +28131,6 @@ var __generator = undefined && undefined.__generator || function (thisArg, body)
|
|
|
29387
28131
|
};
|
|
29388
28132
|
}
|
|
29389
28133
|
};
|
|
29390
|
-
|
|
29391
|
-
var __read = undefined && undefined.__read || function (o, n) {
|
|
29392
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
29393
|
-
if (!m) return o;
|
|
29394
|
-
var i = m.call(o),
|
|
29395
|
-
r,
|
|
29396
|
-
ar = [],
|
|
29397
|
-
e;
|
|
29398
|
-
|
|
29399
|
-
try {
|
|
29400
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
|
|
29401
|
-
ar.push(r.value);
|
|
29402
|
-
}
|
|
29403
|
-
} catch (error) {
|
|
29404
|
-
e = {
|
|
29405
|
-
error: error
|
|
29406
|
-
};
|
|
29407
|
-
} finally {
|
|
29408
|
-
try {
|
|
29409
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
29410
|
-
} finally {
|
|
29411
|
-
if (e) throw e.error;
|
|
29412
|
-
}
|
|
29413
|
-
}
|
|
29414
|
-
|
|
29415
|
-
return ar;
|
|
29416
|
-
};
|
|
29417
|
-
|
|
29418
|
-
var __spread = undefined && undefined.__spread || function () {
|
|
29419
|
-
for (var ar = [], i = 0; i < arguments.length; i++) {
|
|
29420
|
-
ar = ar.concat(__read(arguments[i]));
|
|
29421
|
-
}
|
|
29422
|
-
|
|
29423
|
-
return ar;
|
|
29424
|
-
};
|
|
29425
28134
|
/*
|
|
29426
28135
|
* Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
29427
28136
|
*
|
|
@@ -29439,7 +28148,6 @@ var __spread = undefined && undefined.__spread || function () {
|
|
|
29439
28148
|
|
|
29440
28149
|
|
|
29441
28150
|
|
|
29442
|
-
|
|
29443
28151
|
var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('AmazonLocationServiceProvider');
|
|
29444
28152
|
|
|
29445
28153
|
var AmazonLocationServiceProvider =
|
|
@@ -29493,146 +28201,50 @@ function () {
|
|
|
29493
28201
|
AmazonLocationServiceProvider.prototype.getAvailableMaps = function () {
|
|
29494
28202
|
this._verifyMapResources();
|
|
29495
28203
|
|
|
29496
|
-
var mapStyles = [];
|
|
29497
|
-
var availableMaps = this._config.maps.items;
|
|
29498
|
-
var region = this._config.region;
|
|
29499
|
-
|
|
29500
|
-
for (var mapName in availableMaps) {
|
|
29501
|
-
var style = availableMaps[mapName].style;
|
|
29502
|
-
mapStyles.push({
|
|
29503
|
-
mapName: mapName,
|
|
29504
|
-
style: style,
|
|
29505
|
-
region: region
|
|
29506
|
-
});
|
|
29507
|
-
}
|
|
29508
|
-
|
|
29509
|
-
return mapStyles;
|
|
29510
|
-
};
|
|
29511
|
-
/**
|
|
29512
|
-
* Get the map resource set as default in amplify config
|
|
29513
|
-
* @returns {AmazonLocationServiceMapStyle} - Map resource set as the default in amplify config
|
|
29514
|
-
*/
|
|
29515
|
-
|
|
29516
|
-
|
|
29517
|
-
AmazonLocationServiceProvider.prototype.getDefaultMap = function () {
|
|
29518
|
-
this._verifyMapResources();
|
|
29519
|
-
|
|
29520
|
-
var mapName = this._config.maps["default"];
|
|
29521
|
-
var style = this._config.maps.items[mapName].style;
|
|
29522
|
-
var region = this._config.region;
|
|
29523
|
-
return {
|
|
29524
|
-
mapName: mapName,
|
|
29525
|
-
style: style,
|
|
29526
|
-
region: region
|
|
29527
|
-
};
|
|
29528
|
-
};
|
|
29529
|
-
/**
|
|
29530
|
-
* Search by text input with optional parameters
|
|
29531
|
-
* @param {string} text - The text string that is to be searched for
|
|
29532
|
-
* @param {SearchByTextOptions} options? - Optional parameters to the search
|
|
29533
|
-
* @returns {Promise<Place[]>} - Promise resolves to a list of Places that match search parameters
|
|
29534
|
-
*/
|
|
29535
|
-
|
|
29536
|
-
|
|
29537
|
-
AmazonLocationServiceProvider.prototype.searchByText = function (text, options) {
|
|
29538
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
29539
|
-
var credentialsOK, locationServiceInput, client, command, response, error_1, PascalResults, results;
|
|
29540
|
-
return __generator(this, function (_a) {
|
|
29541
|
-
switch (_a.label) {
|
|
29542
|
-
case 0:
|
|
29543
|
-
return [4
|
|
29544
|
-
/*yield*/
|
|
29545
|
-
, this._ensureCredentials()];
|
|
29546
|
-
|
|
29547
|
-
case 1:
|
|
29548
|
-
credentialsOK = _a.sent();
|
|
29549
|
-
|
|
29550
|
-
if (!credentialsOK) {
|
|
29551
|
-
throw new Error('No credentials');
|
|
29552
|
-
}
|
|
29553
|
-
|
|
29554
|
-
this._verifySearchIndex(options === null || options === void 0 ? void 0 : options.searchIndexName);
|
|
29555
|
-
|
|
29556
|
-
locationServiceInput = {
|
|
29557
|
-
Text: text,
|
|
29558
|
-
IndexName: this._config.search_indices["default"]
|
|
29559
|
-
};
|
|
29560
|
-
/**
|
|
29561
|
-
* Map search options to Amazon Location Service input object
|
|
29562
|
-
*/
|
|
29563
|
-
|
|
29564
|
-
if (options) {
|
|
29565
|
-
locationServiceInput.FilterCountries = options.countries;
|
|
29566
|
-
locationServiceInput.MaxResults = options.maxResults;
|
|
29567
|
-
|
|
29568
|
-
if (options.searchIndexName) {
|
|
29569
|
-
locationServiceInput.IndexName = options.searchIndexName;
|
|
29570
|
-
}
|
|
29571
|
-
|
|
29572
|
-
if (options['biasPosition'] && options['searchAreaConstraints']) {
|
|
29573
|
-
throw new Error('BiasPosition and SearchAreaConstraints are mutually exclusive, please remove one or the other from the options object');
|
|
29574
|
-
}
|
|
29575
|
-
|
|
29576
|
-
if (options['biasPosition']) {
|
|
29577
|
-
locationServiceInput.BiasPosition = options['biasPosition'];
|
|
29578
|
-
}
|
|
29579
|
-
|
|
29580
|
-
if (options['searchAreaConstraints']) {
|
|
29581
|
-
locationServiceInput.FilterBBox = options['searchAreaConstraints'];
|
|
29582
|
-
}
|
|
29583
|
-
}
|
|
29584
|
-
|
|
29585
|
-
client = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["LocationClient"]({
|
|
29586
|
-
credentials: this._config.credentials,
|
|
29587
|
-
region: this._config.region,
|
|
29588
|
-
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["getAmplifyUserAgent"])()
|
|
29589
|
-
});
|
|
29590
|
-
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["SearchPlaceIndexForTextCommand"](locationServiceInput);
|
|
29591
|
-
_a.label = 2;
|
|
29592
|
-
|
|
29593
|
-
case 2:
|
|
29594
|
-
_a.trys.push([2, 4,, 5]);
|
|
28204
|
+
var mapStyles = [];
|
|
28205
|
+
var availableMaps = this._config.maps.items;
|
|
28206
|
+
var region = this._config.region;
|
|
29595
28207
|
|
|
29596
|
-
|
|
29597
|
-
|
|
29598
|
-
|
|
28208
|
+
for (var mapName in availableMaps) {
|
|
28209
|
+
var style = availableMaps[mapName].style;
|
|
28210
|
+
mapStyles.push({
|
|
28211
|
+
mapName: mapName,
|
|
28212
|
+
style: style,
|
|
28213
|
+
region: region
|
|
28214
|
+
});
|
|
28215
|
+
}
|
|
29599
28216
|
|
|
29600
|
-
|
|
29601
|
-
|
|
29602
|
-
|
|
29603
|
-
|
|
29604
|
-
|
|
28217
|
+
return mapStyles;
|
|
28218
|
+
};
|
|
28219
|
+
/**
|
|
28220
|
+
* Get the map resource set as default in amplify config
|
|
28221
|
+
* @returns {AmazonLocationServiceMapStyle} - Map resource set as the default in amplify config
|
|
28222
|
+
*/
|
|
29605
28223
|
|
|
29606
|
-
case 4:
|
|
29607
|
-
error_1 = _a.sent();
|
|
29608
|
-
logger.debug(error_1);
|
|
29609
|
-
throw error_1;
|
|
29610
28224
|
|
|
29611
|
-
|
|
29612
|
-
|
|
29613
|
-
|
|
29614
|
-
|
|
29615
|
-
|
|
29616
|
-
|
|
29617
|
-
|
|
29618
|
-
|
|
29619
|
-
|
|
29620
|
-
|
|
29621
|
-
|
|
29622
|
-
});
|
|
29623
|
-
});
|
|
28225
|
+
AmazonLocationServiceProvider.prototype.getDefaultMap = function () {
|
|
28226
|
+
this._verifyMapResources();
|
|
28227
|
+
|
|
28228
|
+
var mapName = this._config.maps["default"];
|
|
28229
|
+
var style = this._config.maps.items[mapName].style;
|
|
28230
|
+
var region = this._config.region;
|
|
28231
|
+
return {
|
|
28232
|
+
mapName: mapName,
|
|
28233
|
+
style: style,
|
|
28234
|
+
region: region
|
|
28235
|
+
};
|
|
29624
28236
|
};
|
|
29625
28237
|
/**
|
|
29626
|
-
* Search
|
|
28238
|
+
* Search by text input with optional parameters
|
|
29627
28239
|
* @param {string} text - The text string that is to be searched for
|
|
29628
28240
|
* @param {SearchByTextOptions} options? - Optional parameters to the search
|
|
29629
|
-
* @returns {Promise<
|
|
28241
|
+
* @returns {Promise<Place[]>} - Promise resolves to a list of Places that match search parameters
|
|
29630
28242
|
*/
|
|
29631
28243
|
|
|
29632
28244
|
|
|
29633
|
-
AmazonLocationServiceProvider.prototype.
|
|
28245
|
+
AmazonLocationServiceProvider.prototype.searchByText = function (text, options) {
|
|
29634
28246
|
return __awaiter(this, void 0, void 0, function () {
|
|
29635
|
-
var credentialsOK, locationServiceInput, client, command, response,
|
|
28247
|
+
var credentialsOK, locationServiceInput, client, command, response, error_1, PascalResults, results;
|
|
29636
28248
|
return __generator(this, function (_a) {
|
|
29637
28249
|
switch (_a.label) {
|
|
29638
28250
|
case 0:
|
|
@@ -29683,84 +28295,7 @@ function () {
|
|
|
29683
28295
|
region: this._config.region,
|
|
29684
28296
|
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["getAmplifyUserAgent"])()
|
|
29685
28297
|
});
|
|
29686
|
-
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["
|
|
29687
|
-
_a.label = 2;
|
|
29688
|
-
|
|
29689
|
-
case 2:
|
|
29690
|
-
_a.trys.push([2, 4,, 5]);
|
|
29691
|
-
|
|
29692
|
-
return [4
|
|
29693
|
-
/*yield*/
|
|
29694
|
-
, client.send(command)];
|
|
29695
|
-
|
|
29696
|
-
case 3:
|
|
29697
|
-
response = _a.sent();
|
|
29698
|
-
return [3
|
|
29699
|
-
/*break*/
|
|
29700
|
-
, 5];
|
|
29701
|
-
|
|
29702
|
-
case 4:
|
|
29703
|
-
error_2 = _a.sent();
|
|
29704
|
-
logger.debug(error_2);
|
|
29705
|
-
throw error_2;
|
|
29706
|
-
|
|
29707
|
-
case 5:
|
|
29708
|
-
results = response.Results.map(function (result) {
|
|
29709
|
-
return result.Text;
|
|
29710
|
-
});
|
|
29711
|
-
return [2
|
|
29712
|
-
/*return*/
|
|
29713
|
-
, results];
|
|
29714
|
-
}
|
|
29715
|
-
});
|
|
29716
|
-
});
|
|
29717
|
-
};
|
|
29718
|
-
/**
|
|
29719
|
-
* Reverse geocoding search via a coordinate point on the map
|
|
29720
|
-
* @param coordinates - Coordinates array for the search input
|
|
29721
|
-
* @param options - Options parameters for the search
|
|
29722
|
-
* @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates
|
|
29723
|
-
*/
|
|
29724
|
-
|
|
29725
|
-
|
|
29726
|
-
AmazonLocationServiceProvider.prototype.searchByCoordinates = function (coordinates, options) {
|
|
29727
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
29728
|
-
var credentialsOK, locationServiceInput, client, command, response, error_3, PascalResults, results;
|
|
29729
|
-
return __generator(this, function (_a) {
|
|
29730
|
-
switch (_a.label) {
|
|
29731
|
-
case 0:
|
|
29732
|
-
return [4
|
|
29733
|
-
/*yield*/
|
|
29734
|
-
, this._ensureCredentials()];
|
|
29735
|
-
|
|
29736
|
-
case 1:
|
|
29737
|
-
credentialsOK = _a.sent();
|
|
29738
|
-
|
|
29739
|
-
if (!credentialsOK) {
|
|
29740
|
-
throw new Error('No credentials');
|
|
29741
|
-
}
|
|
29742
|
-
|
|
29743
|
-
this._verifySearchIndex(options === null || options === void 0 ? void 0 : options.searchIndexName);
|
|
29744
|
-
|
|
29745
|
-
locationServiceInput = {
|
|
29746
|
-
Position: coordinates,
|
|
29747
|
-
IndexName: this._config.search_indices["default"]
|
|
29748
|
-
};
|
|
29749
|
-
|
|
29750
|
-
if (options) {
|
|
29751
|
-
if (options.searchIndexName) {
|
|
29752
|
-
locationServiceInput.IndexName = options.searchIndexName;
|
|
29753
|
-
}
|
|
29754
|
-
|
|
29755
|
-
locationServiceInput.MaxResults = options.maxResults;
|
|
29756
|
-
}
|
|
29757
|
-
|
|
29758
|
-
client = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["LocationClient"]({
|
|
29759
|
-
credentials: this._config.credentials,
|
|
29760
|
-
region: this._config.region,
|
|
29761
|
-
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["getAmplifyUserAgent"])()
|
|
29762
|
-
});
|
|
29763
|
-
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["SearchPlaceIndexForPositionCommand"](locationServiceInput);
|
|
28298
|
+
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["SearchPlaceIndexForTextCommand"](locationServiceInput);
|
|
29764
28299
|
_a.label = 2;
|
|
29765
28300
|
|
|
29766
28301
|
case 2:
|
|
@@ -29777,15 +28312,15 @@ function () {
|
|
|
29777
28312
|
, 5];
|
|
29778
28313
|
|
|
29779
28314
|
case 4:
|
|
29780
|
-
|
|
29781
|
-
logger.debug(
|
|
29782
|
-
throw
|
|
28315
|
+
error_1 = _a.sent();
|
|
28316
|
+
logger.debug(error_1);
|
|
28317
|
+
throw error_1;
|
|
29783
28318
|
|
|
29784
28319
|
case 5:
|
|
29785
28320
|
PascalResults = response.Results.map(function (result) {
|
|
29786
28321
|
return result.Place;
|
|
29787
28322
|
});
|
|
29788
|
-
results = camelcase_keys__WEBPACK_IMPORTED_MODULE_0___default()(PascalResults
|
|
28323
|
+
results = camelcase_keys__WEBPACK_IMPORTED_MODULE_0___default()(PascalResults, {
|
|
29789
28324
|
deep: true
|
|
29790
28325
|
});
|
|
29791
28326
|
return [2
|
|
@@ -29796,239 +28331,16 @@ function () {
|
|
|
29796
28331
|
});
|
|
29797
28332
|
};
|
|
29798
28333
|
/**
|
|
29799
|
-
*
|
|
29800
|
-
* @param
|
|
29801
|
-
* @param options? - Optional parameters
|
|
29802
|
-
* @returns {Promise<
|
|
29803
|
-
* successes: list of geofences successfully created
|
|
29804
|
-
* errors: list of geofences that failed to create
|
|
29805
|
-
*/
|
|
29806
|
-
|
|
29807
|
-
|
|
29808
|
-
AmazonLocationServiceProvider.prototype.saveGeofences = function (geofences, options) {
|
|
29809
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
29810
|
-
var credentialsOK, PascalGeofences, results, batches;
|
|
29811
|
-
|
|
29812
|
-
var _this = this;
|
|
29813
|
-
|
|
29814
|
-
return __generator(this, function (_a) {
|
|
29815
|
-
switch (_a.label) {
|
|
29816
|
-
case 0:
|
|
29817
|
-
return [4
|
|
29818
|
-
/*yield*/
|
|
29819
|
-
, this._ensureCredentials()];
|
|
29820
|
-
|
|
29821
|
-
case 1:
|
|
29822
|
-
credentialsOK = _a.sent();
|
|
29823
|
-
|
|
29824
|
-
if (!credentialsOK) {
|
|
29825
|
-
throw new Error('No credentials');
|
|
29826
|
-
} // Verify geofence collection exists in aws-config.js
|
|
29827
|
-
|
|
29828
|
-
|
|
29829
|
-
try {
|
|
29830
|
-
this._verifyGeofenceCollections(options === null || options === void 0 ? void 0 : options.collectionName);
|
|
29831
|
-
} catch (error) {
|
|
29832
|
-
logger.debug(error);
|
|
29833
|
-
throw error;
|
|
29834
|
-
}
|
|
29835
|
-
|
|
29836
|
-
Object(_util__WEBPACK_IMPORTED_MODULE_3__["validateGeofencesInput"])(geofences);
|
|
29837
|
-
PascalGeofences = geofences.map(function (_a) {
|
|
29838
|
-
var geofenceId = _a.geofenceId,
|
|
29839
|
-
polygon = _a.geometry.polygon;
|
|
29840
|
-
return {
|
|
29841
|
-
GeofenceId: geofenceId,
|
|
29842
|
-
Geometry: {
|
|
29843
|
-
Polygon: polygon
|
|
29844
|
-
}
|
|
29845
|
-
};
|
|
29846
|
-
});
|
|
29847
|
-
results = {
|
|
29848
|
-
successes: [],
|
|
29849
|
-
errors: []
|
|
29850
|
-
};
|
|
29851
|
-
batches = [];
|
|
29852
|
-
|
|
29853
|
-
while (PascalGeofences.length > 0) {
|
|
29854
|
-
// Splice off 10 geofences from input clone due to Amazon Location Service API limit
|
|
29855
|
-
batches.push(PascalGeofences.splice(0, 10));
|
|
29856
|
-
}
|
|
29857
|
-
|
|
29858
|
-
return [4
|
|
29859
|
-
/*yield*/
|
|
29860
|
-
, Promise.all(batches.map(function (batch) {
|
|
29861
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
29862
|
-
var response, error_4;
|
|
29863
|
-
return __generator(this, function (_a) {
|
|
29864
|
-
switch (_a.label) {
|
|
29865
|
-
case 0:
|
|
29866
|
-
_a.trys.push([0, 2,, 3]);
|
|
29867
|
-
|
|
29868
|
-
return [4
|
|
29869
|
-
/*yield*/
|
|
29870
|
-
, this._AmazonLocationServiceBatchPutGeofenceCall(batch, (options === null || options === void 0 ? void 0 : options.collectionName) || this._config.geofenceCollections["default"])];
|
|
29871
|
-
|
|
29872
|
-
case 1:
|
|
29873
|
-
response = _a.sent();
|
|
29874
|
-
return [3
|
|
29875
|
-
/*break*/
|
|
29876
|
-
, 3];
|
|
29877
|
-
|
|
29878
|
-
case 2:
|
|
29879
|
-
error_4 = _a.sent(); // If the API call fails, add the geofences to the errors array and move to next batch
|
|
29880
|
-
|
|
29881
|
-
batch.forEach(function (geofence) {
|
|
29882
|
-
results.errors.push({
|
|
29883
|
-
geofenceId: geofence.GeofenceId,
|
|
29884
|
-
error: {
|
|
29885
|
-
code: 'APIConnectionError',
|
|
29886
|
-
message: error_4.message
|
|
29887
|
-
}
|
|
29888
|
-
});
|
|
29889
|
-
});
|
|
29890
|
-
return [2
|
|
29891
|
-
/*return*/
|
|
29892
|
-
];
|
|
29893
|
-
|
|
29894
|
-
case 3:
|
|
29895
|
-
// Push all successes to results
|
|
29896
|
-
response.Successes.forEach(function (success) {
|
|
29897
|
-
var GeofenceId = success.GeofenceId,
|
|
29898
|
-
CreateTime = success.CreateTime,
|
|
29899
|
-
UpdateTime = success.UpdateTime;
|
|
29900
|
-
results.successes.push({
|
|
29901
|
-
geofenceId: GeofenceId,
|
|
29902
|
-
createTime: CreateTime,
|
|
29903
|
-
updateTime: UpdateTime
|
|
29904
|
-
});
|
|
29905
|
-
}); // Push all errors to results
|
|
29906
|
-
|
|
29907
|
-
response.Errors.forEach(function (error) {
|
|
29908
|
-
var _a = error.Error,
|
|
29909
|
-
Code = _a.Code,
|
|
29910
|
-
Message = _a.Message,
|
|
29911
|
-
GeofenceId = error.GeofenceId;
|
|
29912
|
-
results.errors.push({
|
|
29913
|
-
error: {
|
|
29914
|
-
code: Code,
|
|
29915
|
-
message: Message
|
|
29916
|
-
},
|
|
29917
|
-
geofenceId: GeofenceId
|
|
29918
|
-
});
|
|
29919
|
-
});
|
|
29920
|
-
return [2
|
|
29921
|
-
/*return*/
|
|
29922
|
-
];
|
|
29923
|
-
}
|
|
29924
|
-
});
|
|
29925
|
-
});
|
|
29926
|
-
}))];
|
|
29927
|
-
|
|
29928
|
-
case 2:
|
|
29929
|
-
_a.sent();
|
|
29930
|
-
|
|
29931
|
-
return [2
|
|
29932
|
-
/*return*/
|
|
29933
|
-
, results];
|
|
29934
|
-
}
|
|
29935
|
-
});
|
|
29936
|
-
});
|
|
29937
|
-
};
|
|
29938
|
-
/**
|
|
29939
|
-
* Get geofence from a geofence collection
|
|
29940
|
-
* @param geofenceId:string
|
|
29941
|
-
* @param options?: Optional parameters for getGeofence
|
|
29942
|
-
* @returns {Promise<AmazonLocationServiceGeofence>} - Promise that resolves to a geofence object
|
|
29943
|
-
*/
|
|
29944
|
-
|
|
29945
|
-
|
|
29946
|
-
AmazonLocationServiceProvider.prototype.getGeofence = function (geofenceId, options) {
|
|
29947
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
29948
|
-
var credentialsOK, client, commandInput, command, response, error_5, GeofenceId, CreateTime, UpdateTime, Status, Geometry, geofence;
|
|
29949
|
-
return __generator(this, function (_a) {
|
|
29950
|
-
switch (_a.label) {
|
|
29951
|
-
case 0:
|
|
29952
|
-
return [4
|
|
29953
|
-
/*yield*/
|
|
29954
|
-
, this._ensureCredentials()];
|
|
29955
|
-
|
|
29956
|
-
case 1:
|
|
29957
|
-
credentialsOK = _a.sent();
|
|
29958
|
-
|
|
29959
|
-
if (!credentialsOK) {
|
|
29960
|
-
throw new Error('No credentials');
|
|
29961
|
-
} // Verify geofence collection exists in aws-config.js
|
|
29962
|
-
|
|
29963
|
-
|
|
29964
|
-
try {
|
|
29965
|
-
this._verifyGeofenceCollections(options === null || options === void 0 ? void 0 : options.collectionName);
|
|
29966
|
-
} catch (error) {
|
|
29967
|
-
logger.debug(error);
|
|
29968
|
-
throw error;
|
|
29969
|
-
}
|
|
29970
|
-
|
|
29971
|
-
Object(_util__WEBPACK_IMPORTED_MODULE_3__["validateGeofenceId"])(geofenceId);
|
|
29972
|
-
client = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["LocationClient"]({
|
|
29973
|
-
credentials: this._config.credentials,
|
|
29974
|
-
region: this._config.region,
|
|
29975
|
-
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["getAmplifyUserAgent"])()
|
|
29976
|
-
});
|
|
29977
|
-
commandInput = {
|
|
29978
|
-
GeofenceId: geofenceId,
|
|
29979
|
-
CollectionName: (options === null || options === void 0 ? void 0 : options.collectionName) || this._config.geofenceCollections["default"]
|
|
29980
|
-
};
|
|
29981
|
-
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["GetGeofenceCommand"](commandInput);
|
|
29982
|
-
_a.label = 2;
|
|
29983
|
-
|
|
29984
|
-
case 2:
|
|
29985
|
-
_a.trys.push([2, 4,, 5]);
|
|
29986
|
-
|
|
29987
|
-
return [4
|
|
29988
|
-
/*yield*/
|
|
29989
|
-
, client.send(command)];
|
|
29990
|
-
|
|
29991
|
-
case 3:
|
|
29992
|
-
response = _a.sent();
|
|
29993
|
-
return [3
|
|
29994
|
-
/*break*/
|
|
29995
|
-
, 5];
|
|
29996
|
-
|
|
29997
|
-
case 4:
|
|
29998
|
-
error_5 = _a.sent();
|
|
29999
|
-
logger.debug(error_5);
|
|
30000
|
-
throw error_5;
|
|
30001
|
-
|
|
30002
|
-
case 5:
|
|
30003
|
-
GeofenceId = response.GeofenceId, CreateTime = response.CreateTime, UpdateTime = response.UpdateTime, Status = response.Status, Geometry = response.Geometry;
|
|
30004
|
-
geofence = {
|
|
30005
|
-
createTime: CreateTime,
|
|
30006
|
-
geofenceId: GeofenceId,
|
|
30007
|
-
geometry: {
|
|
30008
|
-
polygon: Geometry.Polygon
|
|
30009
|
-
},
|
|
30010
|
-
status: Status,
|
|
30011
|
-
updateTime: UpdateTime
|
|
30012
|
-
};
|
|
30013
|
-
return [2
|
|
30014
|
-
/*return*/
|
|
30015
|
-
, geofence];
|
|
30016
|
-
}
|
|
30017
|
-
});
|
|
30018
|
-
});
|
|
30019
|
-
};
|
|
30020
|
-
/**
|
|
30021
|
-
* List geofences from a geofence collection
|
|
30022
|
-
* @param options?: ListGeofenceOptions
|
|
30023
|
-
* @returns {Promise<ListGeofencesResults>} - Promise that resolves to an object with:
|
|
30024
|
-
* entries: list of geofences - 100 geofences are listed per page
|
|
30025
|
-
* nextToken: token for next page of geofences
|
|
28334
|
+
* Search for suggestions based on the input text
|
|
28335
|
+
* @param {string} text - The text string that is to be searched for
|
|
28336
|
+
* @param {SearchByTextOptions} options? - Optional parameters to the search
|
|
28337
|
+
* @returns {Promise<SearchForSuggestionsResults>} - Resolves to an array of search suggestion strings
|
|
30026
28338
|
*/
|
|
30027
28339
|
|
|
30028
28340
|
|
|
30029
|
-
AmazonLocationServiceProvider.prototype.
|
|
28341
|
+
AmazonLocationServiceProvider.prototype.searchForSuggestions = function (text, options) {
|
|
30030
28342
|
return __awaiter(this, void 0, void 0, function () {
|
|
30031
|
-
var credentialsOK,
|
|
28343
|
+
var credentialsOK, locationServiceInput, client, command, response, error_2, results;
|
|
30032
28344
|
return __generator(this, function (_a) {
|
|
30033
28345
|
switch (_a.label) {
|
|
30034
28346
|
case 0:
|
|
@@ -30041,14 +28353,37 @@ function () {
|
|
|
30041
28353
|
|
|
30042
28354
|
if (!credentialsOK) {
|
|
30043
28355
|
throw new Error('No credentials');
|
|
30044
|
-
}
|
|
28356
|
+
}
|
|
30045
28357
|
|
|
28358
|
+
this._verifySearchIndex(options === null || options === void 0 ? void 0 : options.searchIndexName);
|
|
30046
28359
|
|
|
30047
|
-
|
|
30048
|
-
|
|
30049
|
-
|
|
30050
|
-
|
|
30051
|
-
|
|
28360
|
+
locationServiceInput = {
|
|
28361
|
+
Text: text,
|
|
28362
|
+
IndexName: this._config.search_indices["default"]
|
|
28363
|
+
};
|
|
28364
|
+
/**
|
|
28365
|
+
* Map search options to Amazon Location Service input object
|
|
28366
|
+
*/
|
|
28367
|
+
|
|
28368
|
+
if (options) {
|
|
28369
|
+
locationServiceInput.FilterCountries = options.countries;
|
|
28370
|
+
locationServiceInput.MaxResults = options.maxResults;
|
|
28371
|
+
|
|
28372
|
+
if (options.searchIndexName) {
|
|
28373
|
+
locationServiceInput.IndexName = options.searchIndexName;
|
|
28374
|
+
}
|
|
28375
|
+
|
|
28376
|
+
if (options['biasPosition'] && options['searchAreaConstraints']) {
|
|
28377
|
+
throw new Error('BiasPosition and SearchAreaConstraints are mutually exclusive, please remove one or the other from the options object');
|
|
28378
|
+
}
|
|
28379
|
+
|
|
28380
|
+
if (options['biasPosition']) {
|
|
28381
|
+
locationServiceInput.BiasPosition = options['biasPosition'];
|
|
28382
|
+
}
|
|
28383
|
+
|
|
28384
|
+
if (options['searchAreaConstraints']) {
|
|
28385
|
+
locationServiceInput.FilterBBox = options['searchAreaConstraints'];
|
|
28386
|
+
}
|
|
30052
28387
|
}
|
|
30053
28388
|
|
|
30054
28389
|
client = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["LocationClient"]({
|
|
@@ -30056,11 +28391,7 @@ function () {
|
|
|
30056
28391
|
region: this._config.region,
|
|
30057
28392
|
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["getAmplifyUserAgent"])()
|
|
30058
28393
|
});
|
|
30059
|
-
|
|
30060
|
-
NextToken: options === null || options === void 0 ? void 0 : options.nextToken,
|
|
30061
|
-
CollectionName: (options === null || options === void 0 ? void 0 : options.collectionName) || this._config.geofenceCollections["default"]
|
|
30062
|
-
};
|
|
30063
|
-
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["ListGeofencesCommand"](listGeofencesInput);
|
|
28394
|
+
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["SearchPlaceIndexForSuggestionsCommand"](locationServiceInput);
|
|
30064
28395
|
_a.label = 2;
|
|
30065
28396
|
|
|
30066
28397
|
case 2:
|
|
@@ -30077,31 +28408,14 @@ function () {
|
|
|
30077
28408
|
, 5];
|
|
30078
28409
|
|
|
30079
28410
|
case 4:
|
|
30080
|
-
|
|
30081
|
-
logger.debug(
|
|
30082
|
-
throw
|
|
28411
|
+
error_2 = _a.sent();
|
|
28412
|
+
logger.debug(error_2);
|
|
28413
|
+
throw error_2;
|
|
30083
28414
|
|
|
30084
28415
|
case 5:
|
|
30085
|
-
|
|
30086
|
-
|
|
30087
|
-
|
|
30088
|
-
var GeofenceId = _a.GeofenceId,
|
|
30089
|
-
CreateTime = _a.CreateTime,
|
|
30090
|
-
UpdateTime = _a.UpdateTime,
|
|
30091
|
-
Status = _a.Status,
|
|
30092
|
-
Polygon = _a.Geometry.Polygon;
|
|
30093
|
-
return {
|
|
30094
|
-
geofenceId: GeofenceId,
|
|
30095
|
-
createTime: CreateTime,
|
|
30096
|
-
updateTime: UpdateTime,
|
|
30097
|
-
status: Status,
|
|
30098
|
-
geometry: {
|
|
30099
|
-
polygon: Polygon
|
|
30100
|
-
}
|
|
30101
|
-
};
|
|
30102
|
-
}),
|
|
30103
|
-
nextToken: NextToken
|
|
30104
|
-
};
|
|
28416
|
+
results = response.Results.map(function (result) {
|
|
28417
|
+
return result.Text;
|
|
28418
|
+
});
|
|
30105
28419
|
return [2
|
|
30106
28420
|
/*return*/
|
|
30107
28421
|
, results];
|
|
@@ -30110,21 +28424,16 @@ function () {
|
|
|
30110
28424
|
});
|
|
30111
28425
|
};
|
|
30112
28426
|
/**
|
|
30113
|
-
*
|
|
30114
|
-
* @param
|
|
30115
|
-
* @param options
|
|
30116
|
-
* @returns {Promise<
|
|
30117
|
-
* successes: list of geofences successfully deleted
|
|
30118
|
-
* errors: list of geofences that failed to delete
|
|
28427
|
+
* Reverse geocoding search via a coordinate point on the map
|
|
28428
|
+
* @param coordinates - Coordinates array for the search input
|
|
28429
|
+
* @param options - Options parameters for the search
|
|
28430
|
+
* @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates
|
|
30119
28431
|
*/
|
|
30120
28432
|
|
|
30121
28433
|
|
|
30122
|
-
AmazonLocationServiceProvider.prototype.
|
|
28434
|
+
AmazonLocationServiceProvider.prototype.searchByCoordinates = function (coordinates, options) {
|
|
30123
28435
|
return __awaiter(this, void 0, void 0, function () {
|
|
30124
|
-
var credentialsOK,
|
|
30125
|
-
|
|
30126
|
-
var _this = this;
|
|
30127
|
-
|
|
28436
|
+
var credentialsOK, locationServiceInput, client, command, response, error_3, PascalResults, results;
|
|
30128
28437
|
return __generator(this, function (_a) {
|
|
30129
28438
|
switch (_a.label) {
|
|
30130
28439
|
case 0:
|
|
@@ -30139,92 +28448,54 @@ function () {
|
|
|
30139
28448
|
throw new Error('No credentials');
|
|
30140
28449
|
}
|
|
30141
28450
|
|
|
30142
|
-
this.
|
|
28451
|
+
this._verifySearchIndex(options === null || options === void 0 ? void 0 : options.searchIndexName);
|
|
30143
28452
|
|
|
30144
|
-
|
|
30145
|
-
|
|
30146
|
-
|
|
30147
|
-
|
|
30148
|
-
|
|
28453
|
+
locationServiceInput = {
|
|
28454
|
+
Position: coordinates,
|
|
28455
|
+
IndexName: this._config.search_indices["default"]
|
|
28456
|
+
};
|
|
28457
|
+
|
|
28458
|
+
if (options) {
|
|
28459
|
+
if (options.searchIndexName) {
|
|
28460
|
+
locationServiceInput.IndexName = options.searchIndexName;
|
|
30149
28461
|
}
|
|
30150
|
-
});
|
|
30151
28462
|
|
|
30152
|
-
|
|
30153
|
-
throw new Error("Invalid geofence ids: " + badGeofenceIds.join(', '));
|
|
28463
|
+
locationServiceInput.MaxResults = options.maxResults;
|
|
30154
28464
|
}
|
|
30155
28465
|
|
|
30156
|
-
|
|
30157
|
-
|
|
30158
|
-
|
|
30159
|
-
|
|
30160
|
-
|
|
30161
|
-
|
|
28466
|
+
client = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["LocationClient"]({
|
|
28467
|
+
credentials: this._config.credentials,
|
|
28468
|
+
region: this._config.region,
|
|
28469
|
+
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["getAmplifyUserAgent"])()
|
|
28470
|
+
});
|
|
28471
|
+
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["SearchPlaceIndexForPositionCommand"](locationServiceInput);
|
|
28472
|
+
_a.label = 2;
|
|
30162
28473
|
|
|
30163
|
-
|
|
30164
|
-
|
|
30165
|
-
}
|
|
28474
|
+
case 2:
|
|
28475
|
+
_a.trys.push([2, 4,, 5]);
|
|
30166
28476
|
|
|
30167
28477
|
return [4
|
|
30168
28478
|
/*yield*/
|
|
30169
|
-
,
|
|
30170
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
30171
|
-
var response, error_7, badGeofenceIds;
|
|
30172
|
-
|
|
30173
|
-
var _a;
|
|
30174
|
-
|
|
30175
|
-
return __generator(this, function (_b) {
|
|
30176
|
-
switch (_b.label) {
|
|
30177
|
-
case 0:
|
|
30178
|
-
_b.trys.push([0, 2,, 3]);
|
|
30179
|
-
|
|
30180
|
-
return [4
|
|
30181
|
-
/*yield*/
|
|
30182
|
-
, this._AmazonLocationServiceBatchDeleteGeofenceCall(batch, (options === null || options === void 0 ? void 0 : options.collectionName) || this._config.geofenceCollections["default"])];
|
|
30183
|
-
|
|
30184
|
-
case 1:
|
|
30185
|
-
response = _b.sent();
|
|
30186
|
-
return [3
|
|
30187
|
-
/*break*/
|
|
30188
|
-
, 3];
|
|
30189
|
-
|
|
30190
|
-
case 2:
|
|
30191
|
-
error_7 = _b.sent(); // If the API call fails, add the geofences to the errors array and move to next batch
|
|
30192
|
-
|
|
30193
|
-
batch.forEach(function (geofenceId) {
|
|
30194
|
-
var errorObject = {
|
|
30195
|
-
geofenceId: geofenceId,
|
|
30196
|
-
error: {
|
|
30197
|
-
code: error_7.message,
|
|
30198
|
-
message: error_7.message
|
|
30199
|
-
}
|
|
30200
|
-
};
|
|
30201
|
-
results.errors.push(errorObject);
|
|
30202
|
-
});
|
|
30203
|
-
return [2
|
|
30204
|
-
/*return*/
|
|
30205
|
-
];
|
|
28479
|
+
, client.send(command)];
|
|
30206
28480
|
|
|
30207
|
-
|
|
30208
|
-
|
|
30209
|
-
|
|
30210
|
-
|
|
30211
|
-
|
|
30212
|
-
|
|
30213
|
-
(_a = results.successes).push.apply(_a, __spread(batch.filter(function (Id) {
|
|
30214
|
-
return !badGeofenceIds.includes(Id);
|
|
30215
|
-
})));
|
|
30216
|
-
|
|
30217
|
-
return [2
|
|
30218
|
-
/*return*/
|
|
30219
|
-
];
|
|
30220
|
-
}
|
|
30221
|
-
});
|
|
30222
|
-
});
|
|
30223
|
-
}))];
|
|
28481
|
+
case 3:
|
|
28482
|
+
response = _a.sent();
|
|
28483
|
+
return [3
|
|
28484
|
+
/*break*/
|
|
28485
|
+
, 5];
|
|
30224
28486
|
|
|
30225
|
-
case
|
|
30226
|
-
_a.sent();
|
|
28487
|
+
case 4:
|
|
28488
|
+
error_3 = _a.sent();
|
|
28489
|
+
logger.debug(error_3);
|
|
28490
|
+
throw error_3;
|
|
30227
28491
|
|
|
28492
|
+
case 5:
|
|
28493
|
+
PascalResults = response.Results.map(function (result) {
|
|
28494
|
+
return result.Place;
|
|
28495
|
+
});
|
|
28496
|
+
results = camelcase_keys__WEBPACK_IMPORTED_MODULE_0___default()(PascalResults[0], {
|
|
28497
|
+
deep: true
|
|
28498
|
+
});
|
|
30228
28499
|
return [2
|
|
30229
28500
|
/*return*/
|
|
30230
28501
|
, results];
|
|
@@ -30239,7 +28510,7 @@ function () {
|
|
|
30239
28510
|
|
|
30240
28511
|
AmazonLocationServiceProvider.prototype._ensureCredentials = function () {
|
|
30241
28512
|
return __awaiter(this, void 0, void 0, function () {
|
|
30242
|
-
var credentials, cred,
|
|
28513
|
+
var credentials, cred, error_4;
|
|
30243
28514
|
return __generator(this, function (_a) {
|
|
30244
28515
|
switch (_a.label) {
|
|
30245
28516
|
case 0:
|
|
@@ -30262,8 +28533,8 @@ function () {
|
|
|
30262
28533
|
, true];
|
|
30263
28534
|
|
|
30264
28535
|
case 2:
|
|
30265
|
-
|
|
30266
|
-
logger.
|
|
28536
|
+
error_4 = _a.sent();
|
|
28537
|
+
logger.warn('Ensure credentials error. Credentials are:', error_4);
|
|
30267
28538
|
return [2
|
|
30268
28539
|
/*return*/
|
|
30269
28540
|
, false];
|
|
@@ -30279,122 +28550,26 @@ function () {
|
|
|
30279
28550
|
|
|
30280
28551
|
AmazonLocationServiceProvider.prototype._verifyMapResources = function () {
|
|
30281
28552
|
if (!this._config.maps) {
|
|
30282
|
-
var errorString = "No map resources found in amplify config, run 'amplify add geo' to create
|
|
30283
|
-
logger.
|
|
28553
|
+
var errorString = "No map resources found in amplify config, run 'amplify add geo' to create them and run `amplify push` after";
|
|
28554
|
+
logger.warn(errorString);
|
|
30284
28555
|
throw new Error(errorString);
|
|
30285
28556
|
}
|
|
30286
28557
|
|
|
30287
28558
|
if (!this._config.maps["default"]) {
|
|
30288
28559
|
var errorString = "No default map resource found in amplify config, run 'amplify add geo' to create one and run `amplify push` after";
|
|
30289
|
-
logger.
|
|
28560
|
+
logger.warn(errorString);
|
|
30290
28561
|
throw new Error(errorString);
|
|
30291
28562
|
}
|
|
30292
28563
|
};
|
|
30293
28564
|
|
|
30294
28565
|
AmazonLocationServiceProvider.prototype._verifySearchIndex = function (optionalSearchIndex) {
|
|
30295
28566
|
if ((!this._config.search_indices || !this._config.search_indices["default"]) && !optionalSearchIndex) {
|
|
30296
|
-
var errorString = 'No Search Index found
|
|
30297
|
-
logger.
|
|
28567
|
+
var errorString = 'No Search Index found, please run `amplify add geo` to add one and run `amplify push` after.';
|
|
28568
|
+
logger.warn(errorString);
|
|
30298
28569
|
throw new Error(errorString);
|
|
30299
28570
|
}
|
|
30300
28571
|
};
|
|
30301
28572
|
|
|
30302
|
-
AmazonLocationServiceProvider.prototype._verifyGeofenceCollections = function (optionalGeofenceCollectionName) {
|
|
30303
|
-
if ((!this._config.geofenceCollections || !this._config.geofenceCollections["default"]) && !optionalGeofenceCollectionName) {
|
|
30304
|
-
var errorString = 'No Geofence Collections found, please run `amplify add geo` to create one and run `amplify push` after.';
|
|
30305
|
-
logger.debug(errorString);
|
|
30306
|
-
throw new Error(errorString);
|
|
30307
|
-
}
|
|
30308
|
-
};
|
|
30309
|
-
|
|
30310
|
-
AmazonLocationServiceProvider.prototype._AmazonLocationServiceBatchPutGeofenceCall = function (PascalGeofences, collectionName) {
|
|
30311
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
30312
|
-
var geofenceInput, client, command, response, error_9;
|
|
30313
|
-
return __generator(this, function (_a) {
|
|
30314
|
-
switch (_a.label) {
|
|
30315
|
-
case 0:
|
|
30316
|
-
geofenceInput = {
|
|
30317
|
-
Entries: PascalGeofences,
|
|
30318
|
-
CollectionName: collectionName || this._config.geofenceCollections["default"]
|
|
30319
|
-
};
|
|
30320
|
-
client = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["LocationClient"]({
|
|
30321
|
-
credentials: this._config.credentials,
|
|
30322
|
-
region: this._config.region,
|
|
30323
|
-
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["getAmplifyUserAgent"])()
|
|
30324
|
-
});
|
|
30325
|
-
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["BatchPutGeofenceCommand"](geofenceInput);
|
|
30326
|
-
_a.label = 1;
|
|
30327
|
-
|
|
30328
|
-
case 1:
|
|
30329
|
-
_a.trys.push([1, 3,, 4]);
|
|
30330
|
-
|
|
30331
|
-
return [4
|
|
30332
|
-
/*yield*/
|
|
30333
|
-
, client.send(command)];
|
|
30334
|
-
|
|
30335
|
-
case 2:
|
|
30336
|
-
response = _a.sent();
|
|
30337
|
-
return [3
|
|
30338
|
-
/*break*/
|
|
30339
|
-
, 4];
|
|
30340
|
-
|
|
30341
|
-
case 3:
|
|
30342
|
-
error_9 = _a.sent();
|
|
30343
|
-
throw error_9;
|
|
30344
|
-
|
|
30345
|
-
case 4:
|
|
30346
|
-
return [2
|
|
30347
|
-
/*return*/
|
|
30348
|
-
, response];
|
|
30349
|
-
}
|
|
30350
|
-
});
|
|
30351
|
-
});
|
|
30352
|
-
};
|
|
30353
|
-
|
|
30354
|
-
AmazonLocationServiceProvider.prototype._AmazonLocationServiceBatchDeleteGeofenceCall = function (geofenceIds, collectionName) {
|
|
30355
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
30356
|
-
var deleteGeofencesInput, client, command, response, error_10;
|
|
30357
|
-
return __generator(this, function (_a) {
|
|
30358
|
-
switch (_a.label) {
|
|
30359
|
-
case 0:
|
|
30360
|
-
deleteGeofencesInput = {
|
|
30361
|
-
GeofenceIds: geofenceIds,
|
|
30362
|
-
CollectionName: collectionName || this._config.geofenceCollections["default"]
|
|
30363
|
-
};
|
|
30364
|
-
client = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["LocationClient"]({
|
|
30365
|
-
credentials: this._config.credentials,
|
|
30366
|
-
region: this._config.region,
|
|
30367
|
-
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["getAmplifyUserAgent"])()
|
|
30368
|
-
});
|
|
30369
|
-
command = new _aws_sdk_client_location__WEBPACK_IMPORTED_MODULE_2__["BatchDeleteGeofenceCommand"](deleteGeofencesInput);
|
|
30370
|
-
_a.label = 1;
|
|
30371
|
-
|
|
30372
|
-
case 1:
|
|
30373
|
-
_a.trys.push([1, 3,, 4]);
|
|
30374
|
-
|
|
30375
|
-
return [4
|
|
30376
|
-
/*yield*/
|
|
30377
|
-
, client.send(command)];
|
|
30378
|
-
|
|
30379
|
-
case 2:
|
|
30380
|
-
response = _a.sent();
|
|
30381
|
-
return [3
|
|
30382
|
-
/*break*/
|
|
30383
|
-
, 4];
|
|
30384
|
-
|
|
30385
|
-
case 3:
|
|
30386
|
-
error_10 = _a.sent();
|
|
30387
|
-
throw error_10;
|
|
30388
|
-
|
|
30389
|
-
case 4:
|
|
30390
|
-
return [2
|
|
30391
|
-
/*return*/
|
|
30392
|
-
, response];
|
|
30393
|
-
}
|
|
30394
|
-
});
|
|
30395
|
-
});
|
|
30396
|
-
};
|
|
30397
|
-
|
|
30398
28573
|
AmazonLocationServiceProvider.CATEGORY = 'Geo';
|
|
30399
28574
|
AmazonLocationServiceProvider.PROVIDER_NAME = 'AmazonLocationService';
|
|
30400
28575
|
return AmazonLocationServiceProvider;
|
|
@@ -30418,194 +28593,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30418
28593
|
|
|
30419
28594
|
|
|
30420
28595
|
|
|
30421
|
-
/***/ }),
|
|
30422
|
-
|
|
30423
|
-
/***/ "./lib-esm/util.js":
|
|
30424
|
-
/*!*************************!*\
|
|
30425
|
-
!*** ./lib-esm/util.js ***!
|
|
30426
|
-
\*************************/
|
|
30427
|
-
/*! exports provided: validateCoordinates, validateGeofenceId, validateLinearRing, validatePolygon, validateGeofencesInput */
|
|
30428
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
30429
|
-
|
|
30430
|
-
"use strict";
|
|
30431
|
-
__webpack_require__.r(__webpack_exports__);
|
|
30432
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateCoordinates", function() { return validateCoordinates; });
|
|
30433
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateGeofenceId", function() { return validateGeofenceId; });
|
|
30434
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateLinearRing", function() { return validateLinearRing; });
|
|
30435
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validatePolygon", function() { return validatePolygon; });
|
|
30436
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateGeofencesInput", function() { return validateGeofencesInput; });
|
|
30437
|
-
/* harmony import */ var _turf_boolean_clockwise__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @turf/boolean-clockwise */ "../../node_modules/@turf/boolean-clockwise/dist/es/index.js");
|
|
30438
|
-
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
|
|
30439
|
-
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
|
|
30440
|
-
var __read = undefined && undefined.__read || function (o, n) {
|
|
30441
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
30442
|
-
if (!m) return o;
|
|
30443
|
-
var i = m.call(o),
|
|
30444
|
-
r,
|
|
30445
|
-
ar = [],
|
|
30446
|
-
e;
|
|
30447
|
-
|
|
30448
|
-
try {
|
|
30449
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
|
|
30450
|
-
ar.push(r.value);
|
|
30451
|
-
}
|
|
30452
|
-
} catch (error) {
|
|
30453
|
-
e = {
|
|
30454
|
-
error: error
|
|
30455
|
-
};
|
|
30456
|
-
} finally {
|
|
30457
|
-
try {
|
|
30458
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
30459
|
-
} finally {
|
|
30460
|
-
if (e) throw e.error;
|
|
30461
|
-
}
|
|
30462
|
-
}
|
|
30463
|
-
|
|
30464
|
-
return ar;
|
|
30465
|
-
};
|
|
30466
|
-
/*
|
|
30467
|
-
* Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
30468
|
-
*
|
|
30469
|
-
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
|
|
30470
|
-
* the License. A copy of the License is located at
|
|
30471
|
-
*
|
|
30472
|
-
* http://aws.amazon.com/apache2.0/
|
|
30473
|
-
*
|
|
30474
|
-
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
30475
|
-
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
|
|
30476
|
-
* and limitations under the License.
|
|
30477
|
-
*/
|
|
30478
|
-
|
|
30479
|
-
|
|
30480
|
-
|
|
30481
|
-
|
|
30482
|
-
var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('Geo');
|
|
30483
|
-
function validateCoordinates(lng, lat) {
|
|
30484
|
-
if (!Number.isFinite(lng) || !Number.isFinite(lat)) {
|
|
30485
|
-
throw new Error("Invalid coordinates: [" + lng + "," + lat + "]");
|
|
30486
|
-
}
|
|
30487
|
-
|
|
30488
|
-
if (lat < -90 || lat > 90) {
|
|
30489
|
-
throw new Error('Latitude must be between -90 and 90 degrees inclusive.');
|
|
30490
|
-
} else if (lng < -180 || lng > 180) {
|
|
30491
|
-
throw new Error('Longitude must be between -180 and 180 degrees inclusive.');
|
|
30492
|
-
}
|
|
30493
|
-
}
|
|
30494
|
-
function validateGeofenceId(geofenceId) {
|
|
30495
|
-
var geofenceIdRegex = /^(?:[\x2D\.0-9A-Z_a-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])+$/i; // Check if geofenceId is valid
|
|
30496
|
-
|
|
30497
|
-
if (!geofenceIdRegex.test(geofenceId)) {
|
|
30498
|
-
throw new Error("Invalid geofenceId: '" + geofenceId + "' - IDs can only contain alphanumeric characters, hyphens, underscores and periods.");
|
|
30499
|
-
}
|
|
30500
|
-
}
|
|
30501
|
-
function validateLinearRing(linearRing, geofenceId) {
|
|
30502
|
-
// Validate LinearRing size, must be at least 4 points
|
|
30503
|
-
if (linearRing.length < 4) {
|
|
30504
|
-
throw new Error(geofenceId + ": LinearRing must contain 4 or more coordinates.");
|
|
30505
|
-
} // Validate all coordinates are valid, error with which ones are bad
|
|
30506
|
-
|
|
30507
|
-
|
|
30508
|
-
var badCoordinates = [];
|
|
30509
|
-
linearRing.forEach(function (coordinates) {
|
|
30510
|
-
try {
|
|
30511
|
-
validateCoordinates(coordinates[0], coordinates[1]);
|
|
30512
|
-
} catch (error) {
|
|
30513
|
-
badCoordinates.push({
|
|
30514
|
-
coordinates: coordinates,
|
|
30515
|
-
error: error.message
|
|
30516
|
-
});
|
|
30517
|
-
}
|
|
30518
|
-
});
|
|
30519
|
-
|
|
30520
|
-
if (badCoordinates.length > 0) {
|
|
30521
|
-
throw new Error(geofenceId + ": One or more of the coordinates in the Polygon LinearRing are not valid: " + JSON.stringify(badCoordinates));
|
|
30522
|
-
} // Validate first and last coordinates are the same
|
|
30523
|
-
|
|
30524
|
-
|
|
30525
|
-
var _a = __read(linearRing[0], 2),
|
|
30526
|
-
lngA = _a[0],
|
|
30527
|
-
latA = _a[1];
|
|
30528
|
-
|
|
30529
|
-
var _b = __read(linearRing[linearRing.length - 1], 2),
|
|
30530
|
-
lngB = _b[0],
|
|
30531
|
-
latB = _b[1];
|
|
30532
|
-
|
|
30533
|
-
if (lngA !== lngB || latA !== latB) {
|
|
30534
|
-
throw new Error(geofenceId + ": LinearRing's first and last coordinates are not the same");
|
|
30535
|
-
}
|
|
30536
|
-
|
|
30537
|
-
if (Object(_turf_boolean_clockwise__WEBPACK_IMPORTED_MODULE_0__["default"])(linearRing)) {
|
|
30538
|
-
throw new Error(geofenceId + ": LinearRing coordinates must be wound counterclockwise");
|
|
30539
|
-
}
|
|
30540
|
-
}
|
|
30541
|
-
function validatePolygon(polygon, geofenceId) {
|
|
30542
|
-
if (!Array.isArray(polygon)) {
|
|
30543
|
-
throw new Error(geofenceId + ": Polygon is of incorrect structure. It should be an array of LinearRings");
|
|
30544
|
-
}
|
|
30545
|
-
|
|
30546
|
-
if (polygon.length < 1) {
|
|
30547
|
-
throw new Error(geofenceId + ": Polygon must have a single LinearRing array.");
|
|
30548
|
-
}
|
|
30549
|
-
|
|
30550
|
-
if (polygon.length > 1) {
|
|
30551
|
-
throw new Error(geofenceId + ": Polygon must have a single LinearRing array. Note: We do not currently support polygons with holes, multipolygons, polygons that are wound clockwise, or that cross the antimeridian.");
|
|
30552
|
-
}
|
|
30553
|
-
|
|
30554
|
-
var verticesCount = polygon.reduce(function (prev, linearRing) {
|
|
30555
|
-
return prev + linearRing.length;
|
|
30556
|
-
}, 0);
|
|
30557
|
-
|
|
30558
|
-
if (verticesCount > 1000) {
|
|
30559
|
-
throw new Error(geofenceId + ": Polygon has more than the maximum 1000 vertices.");
|
|
30560
|
-
}
|
|
30561
|
-
}
|
|
30562
|
-
function validateGeofencesInput(geofences) {
|
|
30563
|
-
var geofenceIds = {};
|
|
30564
|
-
geofences.forEach(function (geofence) {
|
|
30565
|
-
// verify all required properties are present
|
|
30566
|
-
// Validate geofenceId exists
|
|
30567
|
-
if (!geofence.geofenceId) {
|
|
30568
|
-
throw new Error("Geofence '" + geofence + "' is missing geofenceId");
|
|
30569
|
-
}
|
|
30570
|
-
|
|
30571
|
-
var geofenceId = geofence.geofenceId;
|
|
30572
|
-
validateGeofenceId(geofenceId); // Validate geofenceId is unique
|
|
30573
|
-
|
|
30574
|
-
if (geofenceIds[geofenceId]) {
|
|
30575
|
-
throw new Error("Duplicate geofenceId: " + geofenceId);
|
|
30576
|
-
} else {
|
|
30577
|
-
geofenceIds[geofenceId] = true;
|
|
30578
|
-
} // Validate geometry exists
|
|
30579
|
-
|
|
30580
|
-
|
|
30581
|
-
if (!geofence.geometry) {
|
|
30582
|
-
throw new Error("Geofence '" + geofenceId + "' is missing geometry");
|
|
30583
|
-
}
|
|
30584
|
-
|
|
30585
|
-
var geometry = geofence.geometry; // Validate polygon exists
|
|
30586
|
-
|
|
30587
|
-
if (!geometry.polygon) {
|
|
30588
|
-
throw new Error("Geofence '" + geofenceId + "' is missing geometry.polygon");
|
|
30589
|
-
}
|
|
30590
|
-
|
|
30591
|
-
var polygon = geometry.polygon; // Validate polygon length and structure
|
|
30592
|
-
|
|
30593
|
-
try {
|
|
30594
|
-
validatePolygon(polygon, geofenceId);
|
|
30595
|
-
} catch (error) {
|
|
30596
|
-
if (error.message === "Polygon has more than the maximum 1000 vertices.") {
|
|
30597
|
-
throw new Error("Geofence '" + geofenceId + "' has more than the maximum of 1000 vertices");
|
|
30598
|
-
}
|
|
30599
|
-
} // Validate LinearRing length, structure, and coordinates
|
|
30600
|
-
|
|
30601
|
-
|
|
30602
|
-
var _a = __read(polygon, 1),
|
|
30603
|
-
linearRing = _a[0];
|
|
30604
|
-
|
|
30605
|
-
validateLinearRing(linearRing, geofenceId);
|
|
30606
|
-
});
|
|
30607
|
-
}
|
|
30608
|
-
|
|
30609
28596
|
/***/ }),
|
|
30610
28597
|
|
|
30611
28598
|
/***/ "@aws-amplify/core":
|