@turf/line-to-polygon 7.2.0 → 7.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/package.json +13 -14
package/dist/cjs/index.cjs
CHANGED
|
@@ -74,9 +74,9 @@ function calculateArea(bbox) {
|
|
|
74
74
|
var north = bbox[3];
|
|
75
75
|
return Math.abs(west - east) * Math.abs(south - north);
|
|
76
76
|
}
|
|
77
|
-
var
|
|
77
|
+
var index_default = lineToPolygon;
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
exports.default =
|
|
81
|
+
exports.default = index_default; exports.lineToPolygon = lineToPolygon;
|
|
82
82
|
//# sourceMappingURL=index.cjs.map
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-line-to-polygon/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-line-to-polygon/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-line-to-polygon/dist/cjs/index.cjs","sourcesContent":[null,"import {\n Feature,\n FeatureCollection,\n MultiLineString,\n LineString,\n GeoJsonProperties,\n BBox,\n Position,\n} from \"geojson\";\nimport { bbox as turfBBox } from \"@turf/bbox\";\nimport { getCoords, getGeom } from \"@turf/invariant\";\nimport { polygon, multiPolygon, lineString } from \"@turf/helpers\";\nimport { clone } from \"@turf/clone\";\n\n/**\n * Converts (Multi)LineString(s) to Polygon(s).\n *\n * @function\n * @param {FeatureCollection|Feature<LineString|MultiLineString>} lines Features to convert\n * @param {Object} [options={}] Optional parameters\n * @param {Object} [options.properties={}] translates GeoJSON properties to Feature\n * @param {boolean} [options.autoComplete=true] auto complete linestrings (matches first & last coordinates)\n * @param {boolean} [options.orderCoords=true] sorts linestrings to place outer ring at the first position of the coordinates\n * @param {boolean} [options.mutate=false] mutate the original linestring using autoComplete (matches first & last coordinates)\n * @returns {Feature<Polygon|MultiPolygon>} converted to Polygons\n * @example\n * var line = turf.lineString([[125, -30], [145, -30], [145, -20], [125, -20], [125, -30]]);\n *\n * var polygon = turf.lineToPolygon(line);\n *\n * //addToMap\n * var addToMap = [polygon];\n */\nfunction lineToPolygon<G extends LineString | MultiLineString>(\n lines: Feature<G> | FeatureCollection<G> | G,\n options: {\n properties?: GeoJsonProperties;\n autoComplete?: boolean;\n orderCoords?: boolean;\n mutate?: boolean;\n } = {}\n) {\n // Optional parameters\n var properties = options.properties;\n var autoComplete = options.autoComplete ?? true;\n var orderCoords = options.orderCoords ?? true;\n var mutate = options.mutate ?? false;\n\n if (!mutate) {\n lines = clone(lines);\n }\n\n switch (lines.type) {\n case \"FeatureCollection\":\n var coords: number[][][][] = [];\n lines.features.forEach(function (line) {\n coords.push(\n getCoords(lineStringToPolygon(line, {}, autoComplete, orderCoords))\n );\n });\n return multiPolygon(coords, properties);\n default:\n return lineStringToPolygon(lines, properties, autoComplete, orderCoords);\n }\n}\n\n/**\n * LineString to Polygon\n *\n * @private\n * @param {Feature<LineString|MultiLineString>} line line\n * @param {Object} [properties] translates GeoJSON properties to Feature\n * @param {boolean} [autoComplete=true] auto complete linestrings\n * @param {boolean} [orderCoords=true] sorts linestrings to place outer ring at the first position of the coordinates\n * @returns {Feature<Polygon>} line converted to Polygon\n */\nfunction lineStringToPolygon<G extends LineString | MultiLineString>(\n line: Feature<G> | G,\n properties: GeoJsonProperties | undefined,\n autoComplete: boolean,\n orderCoords: boolean\n) {\n properties = properties\n ? properties\n : line.type === \"Feature\"\n ? line.properties\n : {};\n var geom = getGeom(line);\n var coords: Position[] | Position[][] = geom.coordinates;\n var type = geom.type;\n\n if (!coords.length) throw new Error(\"line must contain coordinates\");\n\n switch (type) {\n case \"LineString\":\n if (autoComplete) coords = autoCompleteCoords(coords as Position[]);\n return polygon([coords as Position[]], properties);\n case \"MultiLineString\":\n var multiCoords: number[][][] = [];\n var largestArea = 0;\n\n (coords as Position[][]).forEach(function (coord) {\n if (autoComplete) coord = autoCompleteCoords(coord);\n\n // Largest LineString to be placed in the first position of the coordinates array\n if (orderCoords) {\n var area = calculateArea(turfBBox(lineString(coord)));\n if (area > largestArea) {\n multiCoords.unshift(coord);\n largestArea = area;\n } else multiCoords.push(coord);\n } else {\n multiCoords.push(coord);\n }\n });\n return polygon(multiCoords, properties);\n default:\n throw new Error(\"geometry type \" + type + \" is not supported\");\n }\n}\n\n/**\n * Auto Complete Coords - matches first & last coordinates\n *\n * @private\n * @param {Array<Array<number>>} coords Coordinates\n * @returns {Array<Array<number>>} auto completed coordinates\n */\nfunction autoCompleteCoords(coords: Position[]) {\n var first = coords[0];\n var x1 = first[0];\n var y1 = first[1];\n var last = coords[coords.length - 1];\n var x2 = last[0];\n var y2 = last[1];\n if (x1 !== x2 || y1 !== y2) {\n coords.push(first);\n }\n return coords;\n}\n\n/**\n * area - quick approximate area calculation (used to sort)\n *\n * @private\n * @param {Array<number>} bbox BBox [west, south, east, north]\n * @returns {number} very quick area calculation\n */\nfunction calculateArea(bbox: BBox) {\n var west = bbox[0];\n var south = bbox[1];\n var east = bbox[2];\n var north = bbox[3];\n return Math.abs(west - east) * Math.abs(south - north);\n}\n\nexport { lineToPolygon };\nexport default lineToPolygon;\n"]}
|
package/dist/esm/index.js
CHANGED
|
@@ -74,9 +74,9 @@ function calculateArea(bbox) {
|
|
|
74
74
|
var north = bbox[3];
|
|
75
75
|
return Math.abs(west - east) * Math.abs(south - north);
|
|
76
76
|
}
|
|
77
|
-
var
|
|
77
|
+
var index_default = lineToPolygon;
|
|
78
78
|
export {
|
|
79
|
-
|
|
79
|
+
index_default as default,
|
|
80
80
|
lineToPolygon
|
|
81
81
|
};
|
|
82
82
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../index.ts"],"sourcesContent":["import {\n Feature,\n FeatureCollection,\n MultiLineString,\n LineString,\n GeoJsonProperties,\n BBox,\n Position,\n} from \"geojson\";\nimport { bbox as turfBBox } from \"@turf/bbox\";\nimport { getCoords, getGeom } from \"@turf/invariant\";\nimport { polygon, multiPolygon, lineString } from \"@turf/helpers\";\nimport { clone } from \"@turf/clone\";\n\n/**\n * Converts (Multi)LineString(s) to Polygon(s).\n *\n * @function\n * @param {FeatureCollection|Feature<LineString|MultiLineString>} lines Features to convert\n * @param {Object} [options={}] Optional parameters\n * @param {Object} [options.properties={}] translates GeoJSON properties to Feature\n * @param {boolean} [options.autoComplete=true] auto complete linestrings (matches first & last coordinates)\n * @param {boolean} [options.orderCoords=true] sorts linestrings to place outer ring at the first position of the coordinates\n * @param {boolean} [options.mutate=false] mutate the original linestring using autoComplete (matches first & last coordinates)\n * @returns {Feature<Polygon|MultiPolygon>} converted to Polygons\n * @example\n * var line = turf.lineString([[125, -30], [145, -30], [145, -20], [125, -20], [125, -30]]);\n *\n * var polygon = turf.lineToPolygon(line);\n *\n * //addToMap\n * var addToMap = [polygon];\n */\nfunction lineToPolygon<G extends LineString | MultiLineString>(\n lines: Feature<G> | FeatureCollection<G> | G,\n options: {\n properties?: GeoJsonProperties;\n autoComplete?: boolean;\n orderCoords?: boolean;\n mutate?: boolean;\n } = {}\n) {\n // Optional parameters\n var properties = options.properties;\n var autoComplete = options.autoComplete ?? true;\n var orderCoords = options.orderCoords ?? true;\n var mutate = options.mutate ?? false;\n\n if (!mutate) {\n lines = clone(lines);\n }\n\n switch (lines.type) {\n case \"FeatureCollection\":\n var coords: number[][][][] = [];\n lines.features.forEach(function (line) {\n coords.push(\n getCoords(lineStringToPolygon(line, {}, autoComplete, orderCoords))\n );\n });\n return multiPolygon(coords, properties);\n default:\n return lineStringToPolygon(lines, properties, autoComplete, orderCoords);\n }\n}\n\n/**\n * LineString to Polygon\n *\n * @private\n * @param {Feature<LineString|MultiLineString>} line line\n * @param {Object} [properties] translates GeoJSON properties to Feature\n * @param {boolean} [autoComplete=true] auto complete linestrings\n * @param {boolean} [orderCoords=true] sorts linestrings to place outer ring at the first position of the coordinates\n * @returns {Feature<Polygon>} line converted to Polygon\n */\nfunction lineStringToPolygon<G extends LineString | MultiLineString>(\n line: Feature<G> | G,\n properties: GeoJsonProperties | undefined,\n autoComplete: boolean,\n orderCoords: boolean\n) {\n properties = properties\n ? properties\n : line.type === \"Feature\"\n ? line.properties\n : {};\n var geom = getGeom(line);\n var coords: Position[] | Position[][] = geom.coordinates;\n var type = geom.type;\n\n if (!coords.length) throw new Error(\"line must contain coordinates\");\n\n switch (type) {\n case \"LineString\":\n if (autoComplete) coords = autoCompleteCoords(coords as Position[]);\n return polygon([coords as Position[]], properties);\n case \"MultiLineString\":\n var multiCoords: number[][][] = [];\n var largestArea = 0;\n\n (coords as Position[][]).forEach(function (coord) {\n if (autoComplete) coord = autoCompleteCoords(coord);\n\n // Largest LineString to be placed in the first position of the coordinates array\n if (orderCoords) {\n var area = calculateArea(turfBBox(lineString(coord)));\n if (area > largestArea) {\n multiCoords.unshift(coord);\n largestArea = area;\n } else multiCoords.push(coord);\n } else {\n multiCoords.push(coord);\n }\n });\n return polygon(multiCoords, properties);\n default:\n throw new Error(\"geometry type \" + type + \" is not supported\");\n }\n}\n\n/**\n * Auto Complete Coords - matches first & last coordinates\n *\n * @private\n * @param {Array<Array<number>>} coords Coordinates\n * @returns {Array<Array<number>>} auto completed coordinates\n */\nfunction autoCompleteCoords(coords: Position[]) {\n var first = coords[0];\n var x1 = first[0];\n var y1 = first[1];\n var last = coords[coords.length - 1];\n var x2 = last[0];\n var y2 = last[1];\n if (x1 !== x2 || y1 !== y2) {\n coords.push(first);\n }\n return coords;\n}\n\n/**\n * area - quick approximate area calculation (used to sort)\n *\n * @private\n * @param {Array<number>} bbox BBox [west, south, east, north]\n * @returns {number} very quick area calculation\n */\nfunction calculateArea(bbox: BBox) {\n var west = bbox[0];\n var south = bbox[1];\n var east = bbox[2];\n var north = bbox[3];\n return Math.abs(west - east) * Math.abs(south - north);\n}\n\nexport { lineToPolygon };\nexport default lineToPolygon;\n"],"mappings":";AASA,SAAS,QAAQ,gBAAgB;AACjC,SAAS,WAAW,eAAe;AACnC,SAAS,SAAS,cAAc,kBAAkB;AAClD,SAAS,aAAa;AAqBtB,SAAS,cACP,OACA,UAKI,CAAC,GACL;AAzCF;AA2CE,MAAI,aAAa,QAAQ;AACzB,MAAI,gBAAe,aAAQ,iBAAR,YAAwB;AAC3C,MAAI,eAAc,aAAQ,gBAAR,YAAuB;AACzC,MAAI,UAAS,aAAQ,WAAR,YAAkB;AAE/B,MAAI,CAAC,QAAQ;AACX,YAAQ,MAAM,KAAK;AAAA,EACrB;AAEA,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AACH,UAAI,SAAyB,CAAC;AAC9B,YAAM,SAAS,QAAQ,SAAU,MAAM;AACrC,eAAO;AAAA,UACL,UAAU,oBAAoB,MAAM,CAAC,GAAG,cAAc,WAAW,CAAC;AAAA,QACpE;AAAA,MACF,CAAC;AACD,aAAO,aAAa,QAAQ,UAAU;AAAA,IACxC;AACE,aAAO,oBAAoB,OAAO,YAAY,cAAc,WAAW;AAAA,EAC3E;AACF;AAYA,SAAS,oBACP,MACA,YACA,cACA,aACA;AACA,eAAa,aACT,aACA,KAAK,SAAS,YACZ,KAAK,aACL,CAAC;AACP,MAAI,OAAO,QAAQ,IAAI;AACvB,MAAI,SAAoC,KAAK;AAC7C,MAAI,OAAO,KAAK;AAEhB,MAAI,CAAC,OAAO,OAAQ,OAAM,IAAI,MAAM,+BAA+B;AAEnE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,UAAI,aAAc,UAAS,mBAAmB,MAAoB;AAClE,aAAO,QAAQ,CAAC,MAAoB,GAAG,UAAU;AAAA,IACnD,KAAK;AACH,UAAI,cAA4B,CAAC;AACjC,UAAI,cAAc;AAElB,MAAC,OAAwB,QAAQ,SAAU,OAAO;AAChD,YAAI,aAAc,SAAQ,mBAAmB,KAAK;AAGlD,YAAI,aAAa;AACf,cAAI,OAAO,cAAc,SAAS,WAAW,KAAK,CAAC,CAAC;AACpD,cAAI,OAAO,aAAa;AACtB,wBAAY,QAAQ,KAAK;AACzB,0BAAc;AAAA,UAChB,MAAO,aAAY,KAAK,KAAK;AAAA,QAC/B,OAAO;AACL,sBAAY,KAAK,KAAK;AAAA,QACxB;AAAA,MACF,CAAC;AACD,aAAO,QAAQ,aAAa,UAAU;AAAA,IACxC;AACE,YAAM,IAAI,MAAM,mBAAmB,OAAO,mBAAmB;AAAA,EACjE;AACF;AASA,SAAS,mBAAmB,QAAoB;AAC9C,MAAI,QAAQ,OAAO,CAAC;AACpB,MAAI,KAAK,MAAM,CAAC;AAChB,MAAI,KAAK,MAAM,CAAC;AAChB,MAAI,OAAO,OAAO,OAAO,SAAS,CAAC;AACnC,MAAI,KAAK,KAAK,CAAC;AACf,MAAI,KAAK,KAAK,CAAC;AACf,MAAI,OAAO,MAAM,OAAO,IAAI;AAC1B,WAAO,KAAK,KAAK;AAAA,EACnB;AACA,SAAO;AACT;AASA,SAAS,cAAc,MAAY;AACjC,MAAI,OAAO,KAAK,CAAC;AACjB,MAAI,QAAQ,KAAK,CAAC;AAClB,MAAI,OAAO,KAAK,CAAC;AACjB,MAAI,QAAQ,KAAK,CAAC;AAClB,SAAO,KAAK,IAAI,OAAO,IAAI,IAAI,KAAK,IAAI,QAAQ,KAAK;AACvD;AAGA,IAAO
|
|
1
|
+
{"version":3,"sources":["../../index.ts"],"sourcesContent":["import {\n Feature,\n FeatureCollection,\n MultiLineString,\n LineString,\n GeoJsonProperties,\n BBox,\n Position,\n} from \"geojson\";\nimport { bbox as turfBBox } from \"@turf/bbox\";\nimport { getCoords, getGeom } from \"@turf/invariant\";\nimport { polygon, multiPolygon, lineString } from \"@turf/helpers\";\nimport { clone } from \"@turf/clone\";\n\n/**\n * Converts (Multi)LineString(s) to Polygon(s).\n *\n * @function\n * @param {FeatureCollection|Feature<LineString|MultiLineString>} lines Features to convert\n * @param {Object} [options={}] Optional parameters\n * @param {Object} [options.properties={}] translates GeoJSON properties to Feature\n * @param {boolean} [options.autoComplete=true] auto complete linestrings (matches first & last coordinates)\n * @param {boolean} [options.orderCoords=true] sorts linestrings to place outer ring at the first position of the coordinates\n * @param {boolean} [options.mutate=false] mutate the original linestring using autoComplete (matches first & last coordinates)\n * @returns {Feature<Polygon|MultiPolygon>} converted to Polygons\n * @example\n * var line = turf.lineString([[125, -30], [145, -30], [145, -20], [125, -20], [125, -30]]);\n *\n * var polygon = turf.lineToPolygon(line);\n *\n * //addToMap\n * var addToMap = [polygon];\n */\nfunction lineToPolygon<G extends LineString | MultiLineString>(\n lines: Feature<G> | FeatureCollection<G> | G,\n options: {\n properties?: GeoJsonProperties;\n autoComplete?: boolean;\n orderCoords?: boolean;\n mutate?: boolean;\n } = {}\n) {\n // Optional parameters\n var properties = options.properties;\n var autoComplete = options.autoComplete ?? true;\n var orderCoords = options.orderCoords ?? true;\n var mutate = options.mutate ?? false;\n\n if (!mutate) {\n lines = clone(lines);\n }\n\n switch (lines.type) {\n case \"FeatureCollection\":\n var coords: number[][][][] = [];\n lines.features.forEach(function (line) {\n coords.push(\n getCoords(lineStringToPolygon(line, {}, autoComplete, orderCoords))\n );\n });\n return multiPolygon(coords, properties);\n default:\n return lineStringToPolygon(lines, properties, autoComplete, orderCoords);\n }\n}\n\n/**\n * LineString to Polygon\n *\n * @private\n * @param {Feature<LineString|MultiLineString>} line line\n * @param {Object} [properties] translates GeoJSON properties to Feature\n * @param {boolean} [autoComplete=true] auto complete linestrings\n * @param {boolean} [orderCoords=true] sorts linestrings to place outer ring at the first position of the coordinates\n * @returns {Feature<Polygon>} line converted to Polygon\n */\nfunction lineStringToPolygon<G extends LineString | MultiLineString>(\n line: Feature<G> | G,\n properties: GeoJsonProperties | undefined,\n autoComplete: boolean,\n orderCoords: boolean\n) {\n properties = properties\n ? properties\n : line.type === \"Feature\"\n ? line.properties\n : {};\n var geom = getGeom(line);\n var coords: Position[] | Position[][] = geom.coordinates;\n var type = geom.type;\n\n if (!coords.length) throw new Error(\"line must contain coordinates\");\n\n switch (type) {\n case \"LineString\":\n if (autoComplete) coords = autoCompleteCoords(coords as Position[]);\n return polygon([coords as Position[]], properties);\n case \"MultiLineString\":\n var multiCoords: number[][][] = [];\n var largestArea = 0;\n\n (coords as Position[][]).forEach(function (coord) {\n if (autoComplete) coord = autoCompleteCoords(coord);\n\n // Largest LineString to be placed in the first position of the coordinates array\n if (orderCoords) {\n var area = calculateArea(turfBBox(lineString(coord)));\n if (area > largestArea) {\n multiCoords.unshift(coord);\n largestArea = area;\n } else multiCoords.push(coord);\n } else {\n multiCoords.push(coord);\n }\n });\n return polygon(multiCoords, properties);\n default:\n throw new Error(\"geometry type \" + type + \" is not supported\");\n }\n}\n\n/**\n * Auto Complete Coords - matches first & last coordinates\n *\n * @private\n * @param {Array<Array<number>>} coords Coordinates\n * @returns {Array<Array<number>>} auto completed coordinates\n */\nfunction autoCompleteCoords(coords: Position[]) {\n var first = coords[0];\n var x1 = first[0];\n var y1 = first[1];\n var last = coords[coords.length - 1];\n var x2 = last[0];\n var y2 = last[1];\n if (x1 !== x2 || y1 !== y2) {\n coords.push(first);\n }\n return coords;\n}\n\n/**\n * area - quick approximate area calculation (used to sort)\n *\n * @private\n * @param {Array<number>} bbox BBox [west, south, east, north]\n * @returns {number} very quick area calculation\n */\nfunction calculateArea(bbox: BBox) {\n var west = bbox[0];\n var south = bbox[1];\n var east = bbox[2];\n var north = bbox[3];\n return Math.abs(west - east) * Math.abs(south - north);\n}\n\nexport { lineToPolygon };\nexport default lineToPolygon;\n"],"mappings":";AASA,SAAS,QAAQ,gBAAgB;AACjC,SAAS,WAAW,eAAe;AACnC,SAAS,SAAS,cAAc,kBAAkB;AAClD,SAAS,aAAa;AAqBtB,SAAS,cACP,OACA,UAKI,CAAC,GACL;AAzCF;AA2CE,MAAI,aAAa,QAAQ;AACzB,MAAI,gBAAe,aAAQ,iBAAR,YAAwB;AAC3C,MAAI,eAAc,aAAQ,gBAAR,YAAuB;AACzC,MAAI,UAAS,aAAQ,WAAR,YAAkB;AAE/B,MAAI,CAAC,QAAQ;AACX,YAAQ,MAAM,KAAK;AAAA,EACrB;AAEA,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AACH,UAAI,SAAyB,CAAC;AAC9B,YAAM,SAAS,QAAQ,SAAU,MAAM;AACrC,eAAO;AAAA,UACL,UAAU,oBAAoB,MAAM,CAAC,GAAG,cAAc,WAAW,CAAC;AAAA,QACpE;AAAA,MACF,CAAC;AACD,aAAO,aAAa,QAAQ,UAAU;AAAA,IACxC;AACE,aAAO,oBAAoB,OAAO,YAAY,cAAc,WAAW;AAAA,EAC3E;AACF;AAYA,SAAS,oBACP,MACA,YACA,cACA,aACA;AACA,eAAa,aACT,aACA,KAAK,SAAS,YACZ,KAAK,aACL,CAAC;AACP,MAAI,OAAO,QAAQ,IAAI;AACvB,MAAI,SAAoC,KAAK;AAC7C,MAAI,OAAO,KAAK;AAEhB,MAAI,CAAC,OAAO,OAAQ,OAAM,IAAI,MAAM,+BAA+B;AAEnE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,UAAI,aAAc,UAAS,mBAAmB,MAAoB;AAClE,aAAO,QAAQ,CAAC,MAAoB,GAAG,UAAU;AAAA,IACnD,KAAK;AACH,UAAI,cAA4B,CAAC;AACjC,UAAI,cAAc;AAElB,MAAC,OAAwB,QAAQ,SAAU,OAAO;AAChD,YAAI,aAAc,SAAQ,mBAAmB,KAAK;AAGlD,YAAI,aAAa;AACf,cAAI,OAAO,cAAc,SAAS,WAAW,KAAK,CAAC,CAAC;AACpD,cAAI,OAAO,aAAa;AACtB,wBAAY,QAAQ,KAAK;AACzB,0BAAc;AAAA,UAChB,MAAO,aAAY,KAAK,KAAK;AAAA,QAC/B,OAAO;AACL,sBAAY,KAAK,KAAK;AAAA,QACxB;AAAA,MACF,CAAC;AACD,aAAO,QAAQ,aAAa,UAAU;AAAA,IACxC;AACE,YAAM,IAAI,MAAM,mBAAmB,OAAO,mBAAmB;AAAA,EACjE;AACF;AASA,SAAS,mBAAmB,QAAoB;AAC9C,MAAI,QAAQ,OAAO,CAAC;AACpB,MAAI,KAAK,MAAM,CAAC;AAChB,MAAI,KAAK,MAAM,CAAC;AAChB,MAAI,OAAO,OAAO,OAAO,SAAS,CAAC;AACnC,MAAI,KAAK,KAAK,CAAC;AACf,MAAI,KAAK,KAAK,CAAC;AACf,MAAI,OAAO,MAAM,OAAO,IAAI;AAC1B,WAAO,KAAK,KAAK;AAAA,EACnB;AACA,SAAO;AACT;AASA,SAAS,cAAc,MAAY;AACjC,MAAI,OAAO,KAAK,CAAC;AACjB,MAAI,QAAQ,KAAK,CAAC;AAClB,MAAI,OAAO,KAAK,CAAC;AACjB,MAAI,QAAQ,KAAK,CAAC;AAClB,SAAO,KAAK,IAAI,OAAO,IAAI,IAAI,KAAK,IAAI,QAAQ,KAAK;AACvD;AAGA,IAAO,gBAAQ;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turf/line-to-polygon",
|
|
3
|
-
"version": "7.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "7.3.1",
|
|
4
|
+
"description": "Converts line(s) to polygon(s).",
|
|
5
5
|
"author": "Turf Authors",
|
|
6
6
|
"contributors": [
|
|
7
7
|
"Denis Carriere <@DenisCarriere>"
|
|
@@ -51,29 +51,28 @@
|
|
|
51
51
|
"bench": "tsx bench.ts",
|
|
52
52
|
"build": "tsup --config ../../tsup.config.ts",
|
|
53
53
|
"docs": "tsx ../../scripts/generate-readmes.ts",
|
|
54
|
-
"test": "
|
|
54
|
+
"test": "pnpm run /test:.*/",
|
|
55
55
|
"test:tape": "tsx test.ts",
|
|
56
56
|
"test:types": "tsc --esModuleInterop --module node16 --moduleResolution node16 --noEmit --strict types.ts"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/benchmark": "^2.1.5",
|
|
60
|
-
"@types/tape": "^
|
|
60
|
+
"@types/tape": "^5.8.1",
|
|
61
61
|
"benchmark": "^2.1.4",
|
|
62
62
|
"load-json-file": "^7.0.1",
|
|
63
|
-
"npm-run-all": "^4.1.5",
|
|
64
63
|
"tape": "^5.9.0",
|
|
65
|
-
"tsup": "^8.
|
|
66
|
-
"tsx": "^4.19.
|
|
67
|
-
"typescript": "^5.
|
|
68
|
-
"write-json-file": "^
|
|
64
|
+
"tsup": "^8.4.0",
|
|
65
|
+
"tsx": "^4.19.4",
|
|
66
|
+
"typescript": "^5.8.3",
|
|
67
|
+
"write-json-file": "^6.0.0"
|
|
69
68
|
},
|
|
70
69
|
"dependencies": {
|
|
71
|
-
"@turf/bbox": "
|
|
72
|
-
"@turf/clone": "
|
|
73
|
-
"@turf/helpers": "
|
|
74
|
-
"@turf/invariant": "
|
|
70
|
+
"@turf/bbox": "7.3.1",
|
|
71
|
+
"@turf/clone": "7.3.1",
|
|
72
|
+
"@turf/helpers": "7.3.1",
|
|
73
|
+
"@turf/invariant": "7.3.1",
|
|
75
74
|
"@types/geojson": "^7946.0.10",
|
|
76
75
|
"tslib": "^2.8.1"
|
|
77
76
|
},
|
|
78
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "b7f1b4eafb760431e03955499d8eac9489438219"
|
|
79
78
|
}
|