@turf/clone 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 +10 -11
package/dist/cjs/index.cjs
CHANGED
|
@@ -102,10 +102,10 @@ function deepSlice(coords) {
|
|
|
102
102
|
return deepSlice(coord);
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
|
-
var
|
|
105
|
+
var index_default = clone;
|
|
106
106
|
|
|
107
107
|
|
|
108
108
|
|
|
109
109
|
|
|
110
|
-
exports.clone = clone; exports.cloneProperties = cloneProperties; exports.default =
|
|
110
|
+
exports.clone = clone; exports.cloneProperties = cloneProperties; exports.default = index_default;
|
|
111
111
|
//# sourceMappingURL=index.cjs.map
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-clone/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-clone/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-clone/dist/cjs/index.cjs","sourcesContent":[null,"import { Feature, GeoJsonProperties } from \"geojson\";\nimport { AllGeoJSON } from \"@turf/helpers\";\n\n/**\n * Returns a cloned copy of the passed GeoJSON Object, including possible 'Foreign Members'.\n * ~3-5x faster than the common JSON.parse + JSON.stringify combo method.\n *\n * @function\n * @param {GeoJSON} geojson GeoJSON Object\n * @returns {GeoJSON} cloned GeoJSON Object\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]], {color: 'red'});\n *\n * var lineCloned = turf.clone(line);\n */\nfunction clone<T extends AllGeoJSON>(geojson: T): T {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n\n switch (geojson.type) {\n case \"Feature\":\n return cloneFeature(geojson);\n case \"FeatureCollection\":\n return cloneFeatureCollection(geojson);\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n case \"MultiPoint\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n case \"GeometryCollection\":\n return cloneGeometry(geojson);\n default:\n throw new Error(\"unknown GeoJSON type\");\n }\n}\n\n/**\n * Clone Feature\n *\n * @private\n * @param {Feature<any>} geojson GeoJSON Feature\n * @returns {Feature<any>} cloned Feature\n */\nfunction cloneFeature(geojson: any) {\n const cloned: any = { type: \"Feature\" };\n // Preserve Foreign Members\n Object.keys(geojson).forEach((key) => {\n switch (key) {\n case \"type\":\n case \"properties\":\n case \"geometry\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add properties & geometry last\n cloned.properties = cloneProperties(geojson.properties);\n if (geojson.geometry == null) {\n cloned.geometry = null;\n } else {\n cloned.geometry = cloneGeometry(geojson.geometry);\n }\n return cloned;\n}\n\n/**\n * Clone Properties\n *\n * @private\n * @param {Object} properties GeoJSON Properties\n * @returns {Object} cloned Properties\n */\nfunction cloneProperties(properties: GeoJsonProperties) {\n const cloned: { [key: string]: any } = {};\n if (!properties) {\n return cloned;\n }\n Object.keys(properties).forEach((key) => {\n const value = properties[key];\n if (typeof value === \"object\") {\n if (value === null) {\n // handle null\n cloned[key] = null;\n } else if (Array.isArray(value)) {\n // handle Array\n cloned[key] = value.map((item) => {\n return item;\n });\n } else {\n // handle generic Object\n cloned[key] = cloneProperties(value);\n }\n } else {\n cloned[key] = value;\n }\n });\n return cloned;\n}\n\n/**\n * Clone Feature Collection\n *\n * @private\n * @param {FeatureCollection<any>} geojson GeoJSON Feature Collection\n * @returns {FeatureCollection<any>} cloned Feature Collection\n */\nfunction cloneFeatureCollection(geojson: any) {\n const cloned: any = { type: \"FeatureCollection\" };\n\n // Preserve Foreign Members\n Object.keys(geojson).forEach((key) => {\n switch (key) {\n case \"type\":\n case \"features\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add features\n cloned.features = geojson.features.map((feature: Feature<any>) => {\n return cloneFeature(feature);\n });\n return cloned;\n}\n\n/**\n * Clone Geometry\n *\n * @private\n * @param {Geometry<any>} geometry GeoJSON Geometry\n * @returns {Geometry<any>} cloned Geometry\n */\nfunction cloneGeometry(geometry: any) {\n const geom: any = { type: geometry.type };\n if (geometry.bbox) {\n geom.bbox = geometry.bbox;\n }\n\n if (geometry.type === \"GeometryCollection\") {\n geom.geometries = geometry.geometries.map((g: any) => {\n return cloneGeometry(g);\n });\n return geom;\n }\n geom.coordinates = deepSlice(geometry.coordinates);\n return geom;\n}\n\n/**\n * Deep Slice coordinates\n *\n * @private\n * @param {Coordinates} coords Coordinates\n * @returns {Coordinates} all coordinates sliced\n */\nfunction deepSlice<C = any[]>(coords: C): C {\n const cloned: any = coords;\n if (typeof cloned[0] !== \"object\") {\n return cloned.slice();\n }\n return cloned.map((coord: any) => {\n return deepSlice(coord);\n });\n}\n\nexport { clone, cloneProperties };\nexport default clone;\n"]}
|
package/dist/esm/index.js
CHANGED
|
@@ -102,10 +102,10 @@ function deepSlice(coords) {
|
|
|
102
102
|
return deepSlice(coord);
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
|
-
var
|
|
105
|
+
var index_default = clone;
|
|
106
106
|
export {
|
|
107
107
|
clone,
|
|
108
108
|
cloneProperties,
|
|
109
|
-
|
|
109
|
+
index_default as default
|
|
110
110
|
};
|
|
111
111
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../index.ts"],"sourcesContent":["import { Feature, GeoJsonProperties } from \"geojson\";\nimport { AllGeoJSON } from \"@turf/helpers\";\n\n/**\n * Returns a cloned copy of the passed GeoJSON Object, including possible 'Foreign Members'.\n * ~3-5x faster than the common JSON.parse + JSON.stringify combo method.\n *\n * @function\n * @param {GeoJSON} geojson GeoJSON Object\n * @returns {GeoJSON} cloned GeoJSON Object\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]], {color: 'red'});\n *\n * var lineCloned = turf.clone(line);\n */\nfunction clone<T extends AllGeoJSON>(geojson: T): T {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n\n switch (geojson.type) {\n case \"Feature\":\n return cloneFeature(geojson);\n case \"FeatureCollection\":\n return cloneFeatureCollection(geojson);\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n case \"MultiPoint\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n case \"GeometryCollection\":\n return cloneGeometry(geojson);\n default:\n throw new Error(\"unknown GeoJSON type\");\n }\n}\n\n/**\n * Clone Feature\n *\n * @private\n * @param {Feature<any>} geojson GeoJSON Feature\n * @returns {Feature<any>} cloned Feature\n */\nfunction cloneFeature(geojson: any) {\n const cloned: any = { type: \"Feature\" };\n // Preserve Foreign Members\n Object.keys(geojson).forEach((key) => {\n switch (key) {\n case \"type\":\n case \"properties\":\n case \"geometry\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add properties & geometry last\n cloned.properties = cloneProperties(geojson.properties);\n if (geojson.geometry == null) {\n cloned.geometry = null;\n } else {\n cloned.geometry = cloneGeometry(geojson.geometry);\n }\n return cloned;\n}\n\n/**\n * Clone Properties\n *\n * @private\n * @param {Object} properties GeoJSON Properties\n * @returns {Object} cloned Properties\n */\nfunction cloneProperties(properties: GeoJsonProperties) {\n const cloned: { [key: string]: any } = {};\n if (!properties) {\n return cloned;\n }\n Object.keys(properties).forEach((key) => {\n const value = properties[key];\n if (typeof value === \"object\") {\n if (value === null) {\n // handle null\n cloned[key] = null;\n } else if (Array.isArray(value)) {\n // handle Array\n cloned[key] = value.map((item) => {\n return item;\n });\n } else {\n // handle generic Object\n cloned[key] = cloneProperties(value);\n }\n } else {\n cloned[key] = value;\n }\n });\n return cloned;\n}\n\n/**\n * Clone Feature Collection\n *\n * @private\n * @param {FeatureCollection<any>} geojson GeoJSON Feature Collection\n * @returns {FeatureCollection<any>} cloned Feature Collection\n */\nfunction cloneFeatureCollection(geojson: any) {\n const cloned: any = { type: \"FeatureCollection\" };\n\n // Preserve Foreign Members\n Object.keys(geojson).forEach((key) => {\n switch (key) {\n case \"type\":\n case \"features\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add features\n cloned.features = geojson.features.map((feature: Feature<any>) => {\n return cloneFeature(feature);\n });\n return cloned;\n}\n\n/**\n * Clone Geometry\n *\n * @private\n * @param {Geometry<any>} geometry GeoJSON Geometry\n * @returns {Geometry<any>} cloned Geometry\n */\nfunction cloneGeometry(geometry: any) {\n const geom: any = { type: geometry.type };\n if (geometry.bbox) {\n geom.bbox = geometry.bbox;\n }\n\n if (geometry.type === \"GeometryCollection\") {\n geom.geometries = geometry.geometries.map((g: any) => {\n return cloneGeometry(g);\n });\n return geom;\n }\n geom.coordinates = deepSlice(geometry.coordinates);\n return geom;\n}\n\n/**\n * Deep Slice coordinates\n *\n * @private\n * @param {Coordinates} coords Coordinates\n * @returns {Coordinates} all coordinates sliced\n */\nfunction deepSlice<C = any[]>(coords: C): C {\n const cloned: any = coords;\n if (typeof cloned[0] !== \"object\") {\n return cloned.slice();\n }\n return cloned.map((coord: any) => {\n return deepSlice(coord);\n });\n}\n\nexport { clone, cloneProperties };\nexport default clone;\n"],"mappings":";AAeA,SAAS,MAA4B,SAAe;AAClD,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AAEA,UAAQ,QAAQ,MAAM;AAAA,IACpB,KAAK;AACH,aAAO,aAAa,OAAO;AAAA,IAC7B,KAAK;AACH,aAAO,uBAAuB,OAAO;AAAA,IACvC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,cAAc,OAAO;AAAA,IAC9B;AACE,YAAM,IAAI,MAAM,sBAAsB;AAAA,EAC1C;AACF;AASA,SAAS,aAAa,SAAc;AAClC,QAAM,SAAc,EAAE,MAAM,UAAU;AAEtC,SAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAQ;AACpC,YAAQ,KAAK;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH;AAAA,MACF;AACE,eAAO,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC7B;AAAA,EACF,CAAC;AAED,SAAO,aAAa,gBAAgB,QAAQ,UAAU;AACtD,MAAI,QAAQ,YAAY,MAAM;AAC5B,WAAO,WAAW;AAAA,EACpB,OAAO;AACL,WAAO,WAAW,cAAc,QAAQ,QAAQ;AAAA,EAClD;AACA,SAAO;AACT;AASA,SAAS,gBAAgB,YAA+B;AACtD,QAAM,SAAiC,CAAC;AACxC,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AACA,SAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,QAAQ;AACvC,UAAM,QAAQ,WAAW,GAAG;AAC5B,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,UAAU,MAAM;AAElB,eAAO,GAAG,IAAI;AAAA,MAChB,WAAW,MAAM,QAAQ,KAAK,GAAG;AAE/B,eAAO,GAAG,IAAI,MAAM,IAAI,CAAC,SAAS;AAChC,iBAAO;AAAA,QACT,CAAC;AAAA,MACH,OAAO;AAEL,eAAO,GAAG,IAAI,gBAAgB,KAAK;AAAA,MACrC;AAAA,IACF,OAAO;AACL,aAAO,GAAG,IAAI;AAAA,IAChB;AAAA,EACF,CAAC;AACD,SAAO;AACT;AASA,SAAS,uBAAuB,SAAc;AAC5C,QAAM,SAAc,EAAE,MAAM,oBAAoB;AAGhD,SAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAQ;AACpC,YAAQ,KAAK;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACH;AAAA,MACF;AACE,eAAO,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC7B;AAAA,EACF,CAAC;AAED,SAAO,WAAW,QAAQ,SAAS,IAAI,CAAC,YAA0B;AAChE,WAAO,aAAa,OAAO;AAAA,EAC7B,CAAC;AACD,SAAO;AACT;AASA,SAAS,cAAc,UAAe;AACpC,QAAM,OAAY,EAAE,MAAM,SAAS,KAAK;AACxC,MAAI,SAAS,MAAM;AACjB,SAAK,OAAO,SAAS;AAAA,EACvB;AAEA,MAAI,SAAS,SAAS,sBAAsB;AAC1C,SAAK,aAAa,SAAS,WAAW,IAAI,CAAC,MAAW;AACpD,aAAO,cAAc,CAAC;AAAA,IACxB,CAAC;AACD,WAAO;AAAA,EACT;AACA,OAAK,cAAc,UAAU,SAAS,WAAW;AACjD,SAAO;AACT;AASA,SAAS,UAAqB,QAAc;AAC1C,QAAM,SAAc;AACpB,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AACjC,WAAO,OAAO,MAAM;AAAA,EACtB;AACA,SAAO,OAAO,IAAI,CAAC,UAAe;AAChC,WAAO,UAAU,KAAK;AAAA,EACxB,CAAC;AACH;AAGA,IAAO,
|
|
1
|
+
{"version":3,"sources":["../../index.ts"],"sourcesContent":["import { Feature, GeoJsonProperties } from \"geojson\";\nimport { AllGeoJSON } from \"@turf/helpers\";\n\n/**\n * Returns a cloned copy of the passed GeoJSON Object, including possible 'Foreign Members'.\n * ~3-5x faster than the common JSON.parse + JSON.stringify combo method.\n *\n * @function\n * @param {GeoJSON} geojson GeoJSON Object\n * @returns {GeoJSON} cloned GeoJSON Object\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]], {color: 'red'});\n *\n * var lineCloned = turf.clone(line);\n */\nfunction clone<T extends AllGeoJSON>(geojson: T): T {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n\n switch (geojson.type) {\n case \"Feature\":\n return cloneFeature(geojson);\n case \"FeatureCollection\":\n return cloneFeatureCollection(geojson);\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n case \"MultiPoint\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n case \"GeometryCollection\":\n return cloneGeometry(geojson);\n default:\n throw new Error(\"unknown GeoJSON type\");\n }\n}\n\n/**\n * Clone Feature\n *\n * @private\n * @param {Feature<any>} geojson GeoJSON Feature\n * @returns {Feature<any>} cloned Feature\n */\nfunction cloneFeature(geojson: any) {\n const cloned: any = { type: \"Feature\" };\n // Preserve Foreign Members\n Object.keys(geojson).forEach((key) => {\n switch (key) {\n case \"type\":\n case \"properties\":\n case \"geometry\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add properties & geometry last\n cloned.properties = cloneProperties(geojson.properties);\n if (geojson.geometry == null) {\n cloned.geometry = null;\n } else {\n cloned.geometry = cloneGeometry(geojson.geometry);\n }\n return cloned;\n}\n\n/**\n * Clone Properties\n *\n * @private\n * @param {Object} properties GeoJSON Properties\n * @returns {Object} cloned Properties\n */\nfunction cloneProperties(properties: GeoJsonProperties) {\n const cloned: { [key: string]: any } = {};\n if (!properties) {\n return cloned;\n }\n Object.keys(properties).forEach((key) => {\n const value = properties[key];\n if (typeof value === \"object\") {\n if (value === null) {\n // handle null\n cloned[key] = null;\n } else if (Array.isArray(value)) {\n // handle Array\n cloned[key] = value.map((item) => {\n return item;\n });\n } else {\n // handle generic Object\n cloned[key] = cloneProperties(value);\n }\n } else {\n cloned[key] = value;\n }\n });\n return cloned;\n}\n\n/**\n * Clone Feature Collection\n *\n * @private\n * @param {FeatureCollection<any>} geojson GeoJSON Feature Collection\n * @returns {FeatureCollection<any>} cloned Feature Collection\n */\nfunction cloneFeatureCollection(geojson: any) {\n const cloned: any = { type: \"FeatureCollection\" };\n\n // Preserve Foreign Members\n Object.keys(geojson).forEach((key) => {\n switch (key) {\n case \"type\":\n case \"features\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add features\n cloned.features = geojson.features.map((feature: Feature<any>) => {\n return cloneFeature(feature);\n });\n return cloned;\n}\n\n/**\n * Clone Geometry\n *\n * @private\n * @param {Geometry<any>} geometry GeoJSON Geometry\n * @returns {Geometry<any>} cloned Geometry\n */\nfunction cloneGeometry(geometry: any) {\n const geom: any = { type: geometry.type };\n if (geometry.bbox) {\n geom.bbox = geometry.bbox;\n }\n\n if (geometry.type === \"GeometryCollection\") {\n geom.geometries = geometry.geometries.map((g: any) => {\n return cloneGeometry(g);\n });\n return geom;\n }\n geom.coordinates = deepSlice(geometry.coordinates);\n return geom;\n}\n\n/**\n * Deep Slice coordinates\n *\n * @private\n * @param {Coordinates} coords Coordinates\n * @returns {Coordinates} all coordinates sliced\n */\nfunction deepSlice<C = any[]>(coords: C): C {\n const cloned: any = coords;\n if (typeof cloned[0] !== \"object\") {\n return cloned.slice();\n }\n return cloned.map((coord: any) => {\n return deepSlice(coord);\n });\n}\n\nexport { clone, cloneProperties };\nexport default clone;\n"],"mappings":";AAeA,SAAS,MAA4B,SAAe;AAClD,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AAEA,UAAQ,QAAQ,MAAM;AAAA,IACpB,KAAK;AACH,aAAO,aAAa,OAAO;AAAA,IAC7B,KAAK;AACH,aAAO,uBAAuB,OAAO;AAAA,IACvC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,cAAc,OAAO;AAAA,IAC9B;AACE,YAAM,IAAI,MAAM,sBAAsB;AAAA,EAC1C;AACF;AASA,SAAS,aAAa,SAAc;AAClC,QAAM,SAAc,EAAE,MAAM,UAAU;AAEtC,SAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAQ;AACpC,YAAQ,KAAK;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH;AAAA,MACF;AACE,eAAO,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC7B;AAAA,EACF,CAAC;AAED,SAAO,aAAa,gBAAgB,QAAQ,UAAU;AACtD,MAAI,QAAQ,YAAY,MAAM;AAC5B,WAAO,WAAW;AAAA,EACpB,OAAO;AACL,WAAO,WAAW,cAAc,QAAQ,QAAQ;AAAA,EAClD;AACA,SAAO;AACT;AASA,SAAS,gBAAgB,YAA+B;AACtD,QAAM,SAAiC,CAAC;AACxC,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AACA,SAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,QAAQ;AACvC,UAAM,QAAQ,WAAW,GAAG;AAC5B,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,UAAU,MAAM;AAElB,eAAO,GAAG,IAAI;AAAA,MAChB,WAAW,MAAM,QAAQ,KAAK,GAAG;AAE/B,eAAO,GAAG,IAAI,MAAM,IAAI,CAAC,SAAS;AAChC,iBAAO;AAAA,QACT,CAAC;AAAA,MACH,OAAO;AAEL,eAAO,GAAG,IAAI,gBAAgB,KAAK;AAAA,MACrC;AAAA,IACF,OAAO;AACL,aAAO,GAAG,IAAI;AAAA,IAChB;AAAA,EACF,CAAC;AACD,SAAO;AACT;AASA,SAAS,uBAAuB,SAAc;AAC5C,QAAM,SAAc,EAAE,MAAM,oBAAoB;AAGhD,SAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAQ;AACpC,YAAQ,KAAK;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACH;AAAA,MACF;AACE,eAAO,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC7B;AAAA,EACF,CAAC;AAED,SAAO,WAAW,QAAQ,SAAS,IAAI,CAAC,YAA0B;AAChE,WAAO,aAAa,OAAO;AAAA,EAC7B,CAAC;AACD,SAAO;AACT;AASA,SAAS,cAAc,UAAe;AACpC,QAAM,OAAY,EAAE,MAAM,SAAS,KAAK;AACxC,MAAI,SAAS,MAAM;AACjB,SAAK,OAAO,SAAS;AAAA,EACvB;AAEA,MAAI,SAAS,SAAS,sBAAsB;AAC1C,SAAK,aAAa,SAAS,WAAW,IAAI,CAAC,MAAW;AACpD,aAAO,cAAc,CAAC;AAAA,IACxB,CAAC;AACD,WAAO;AAAA,EACT;AACA,OAAK,cAAc,UAAU,SAAS,WAAW;AACjD,SAAO;AACT;AASA,SAAS,UAAqB,QAAc;AAC1C,QAAM,SAAc;AACpB,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AACjC,WAAO,OAAO,MAAM;AAAA,EACtB;AACA,SAAO,OAAO,IAAI,CAAC,UAAe;AAChC,WAAO,UAAU,KAAK;AAAA,EACxB,CAAC;AACH;AAGA,IAAO,gBAAQ;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turf/clone",
|
|
3
|
-
"version": "7.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "7.3.1",
|
|
4
|
+
"description": "Returns a cloned copy of the passed GeoJSON Object, including possible 'Foreign Members'.",
|
|
5
5
|
"author": "Turf Authors",
|
|
6
6
|
"contributors": [
|
|
7
7
|
"Denis Carriere <@DenisCarriere>"
|
|
@@ -48,25 +48,24 @@
|
|
|
48
48
|
"bench": "tsx bench.ts",
|
|
49
49
|
"build": "tsup --config ../../tsup.config.ts",
|
|
50
50
|
"docs": "tsx ../../scripts/generate-readmes.ts",
|
|
51
|
-
"test": "
|
|
51
|
+
"test": "pnpm run /test:.*/",
|
|
52
52
|
"test:tape": "tsx test.ts",
|
|
53
53
|
"test:types": "tsc --esModuleInterop --module node16 --moduleResolution node16 --noEmit --strict types.ts"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@turf/meta": "
|
|
56
|
+
"@turf/meta": "7.3.1",
|
|
57
57
|
"@types/benchmark": "^2.1.5",
|
|
58
|
-
"@types/tape": "^
|
|
58
|
+
"@types/tape": "^5.8.1",
|
|
59
59
|
"benchmark": "^2.1.4",
|
|
60
|
-
"npm-run-all": "^4.1.5",
|
|
61
60
|
"tape": "^5.9.0",
|
|
62
|
-
"tsup": "^8.
|
|
63
|
-
"tsx": "^4.19.
|
|
64
|
-
"typescript": "^5.
|
|
61
|
+
"tsup": "^8.4.0",
|
|
62
|
+
"tsx": "^4.19.4",
|
|
63
|
+
"typescript": "^5.8.3"
|
|
65
64
|
},
|
|
66
65
|
"dependencies": {
|
|
67
|
-
"@turf/helpers": "
|
|
66
|
+
"@turf/helpers": "7.3.1",
|
|
68
67
|
"@types/geojson": "^7946.0.10",
|
|
69
68
|
"tslib": "^2.8.1"
|
|
70
69
|
},
|
|
71
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "b7f1b4eafb760431e03955499d8eac9489438219"
|
|
72
71
|
}
|