diff --git a/lib/parser/from_geojson.ts b/lib/parser/from_geojson.ts index 352ce2c..fd3038e 100644 --- a/lib/parser/from_geojson.ts +++ b/lib/parser/from_geojson.ts @@ -357,11 +357,11 @@ export async function from_geojson( }, Style: { LineStyle: { - color: { _text: strokeColor.as_hexa().slice(1) }, + color: { _text: strokeColor.as_kml() }, width: { _text: cot.event.detail.strokeWeight?._attributes?.value ? cot.event.detail.strokeWeight._attributes.value : 3 } }, PolyStyle: { - color: { _text: fillColor.as_hexa().slice(1) }, + color: { _text: fillColor.as_kml() }, } } } diff --git a/lib/parser/to_geojson.ts b/lib/parser/to_geojson.ts index 9c8f8b8..89d7262 100644 --- a/lib/parser/to_geojson.ts +++ b/lib/parser/to_geojson.ts @@ -376,14 +376,18 @@ export async function to_geojson(cot: CoT): Promise> { && raw.event.detail.shape.link?.Style ) { if (raw.event.detail.shape.link.Style.LineStyle?.color) { - const rawColor = raw.event.detail.shape.link.Style.LineStyle.color._text.startsWith('#') - ? raw.event.detail.shape.link.Style.LineStyle.color._text - : '#' + raw.event.detail.shape.link.Style.LineStyle.color._text; + let rawColor = raw.event.detail.shape.link.Style.LineStyle.color._text; + if (rawColor.startsWith('#')) rawColor = rawColor.substring(1); - const strokeColor = new Color(rawColor); + const a = parseInt(rawColor.substring(0, 2), 16); + const b = parseInt(rawColor.substring(2, 4), 16); + const g = parseInt(rawColor.substring(4, 6), 16); + const r = parseInt(rawColor.substring(6, 8), 16); + + const strokeColor = new Color([a, r, g, b]); feat.properties.stroke = strokeColor.as_hex(); - feat.properties['stroke-opacity'] = strokeColor.as_opacity(); + feat.properties['stroke-opacity'] = strokeColor.as_opacity() / 255; } if (raw.event.detail.shape.link.Style.LineStyle?.width) { @@ -391,12 +395,16 @@ export async function to_geojson(cot: CoT): Promise> { } if (raw.event.detail.shape.link.Style.PolyStyle?.color) { - const rawColor = raw.event.detail.shape.link.Style.PolyStyle.color._text.startsWith('#') - ? raw.event.detail.shape.link.Style.PolyStyle.color._text - : '#' + raw.event.detail.shape.link.Style.PolyStyle.color._text; + let rawColor = raw.event.detail.shape.link.Style.PolyStyle.color._text; + if (rawColor.startsWith('#')) rawColor = rawColor.substring(1); + + const a = parseInt(rawColor.substring(0, 2), 16); + const b = parseInt(rawColor.substring(2, 4), 16); + const g = parseInt(rawColor.substring(4, 6), 16); + const r = parseInt(rawColor.substring(6, 8), 16); - const fillColor = new Color(rawColor); - feat.properties['fill-opacity'] = fillColor.as_opacity(); + const fillColor = new Color([a, r, g, b]); + feat.properties['fill-opacity'] = fillColor.as_opacity() / 255; feat.properties['fill'] = fillColor.as_hex(); } } diff --git a/lib/utils/color.ts b/lib/utils/color.ts index 587551b..0923348 100644 --- a/lib/utils/color.ts +++ b/lib/utils/color.ts @@ -52,6 +52,15 @@ export default class Color { }).hexa(); } + as_kml(): string { + const a = Math.round(this.a).toString(16).padStart(2, '0'); + const b = Math.round(this.b).toString(16).padStart(2, '0'); + const g = Math.round(this.g).toString(16).padStart(2, '0'); + const r = Math.round(this.r).toString(16).padStart(2, '0'); + + return `${a}${b}${g}${r}`.toUpperCase(); + } + as_32bit(): number { return (this.a << 24) | (this.r << 16) | (this.g << 8) | this.b; } diff --git a/package-lock.json b/package-lock.json index 925423a..38c991e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,9 +60,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", - "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", "cpu": [ "ppc64" ], @@ -77,9 +77,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", - "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", "cpu": [ "arm" ], @@ -94,9 +94,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", - "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", "cpu": [ "arm64" ], @@ -111,9 +111,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", - "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", "cpu": [ "x64" ], @@ -128,9 +128,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", - "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", "cpu": [ "arm64" ], @@ -145,9 +145,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", - "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", "cpu": [ "x64" ], @@ -162,9 +162,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", - "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", "cpu": [ "arm64" ], @@ -179,9 +179,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", - "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", "cpu": [ "x64" ], @@ -196,9 +196,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", - "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", "cpu": [ "arm" ], @@ -213,9 +213,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", - "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", "cpu": [ "arm64" ], @@ -230,9 +230,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", - "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", "cpu": [ "ia32" ], @@ -247,9 +247,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", - "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", "cpu": [ "loong64" ], @@ -264,9 +264,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", - "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", "cpu": [ "mips64el" ], @@ -281,9 +281,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", - "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", "cpu": [ "ppc64" ], @@ -298,9 +298,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", - "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", "cpu": [ "riscv64" ], @@ -315,9 +315,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", - "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", "cpu": [ "s390x" ], @@ -332,9 +332,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", - "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "cpu": [ "x64" ], @@ -349,9 +349,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", - "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", "cpu": [ "arm64" ], @@ -366,9 +366,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", - "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", "cpu": [ "x64" ], @@ -383,9 +383,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", - "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", "cpu": [ "arm64" ], @@ -400,9 +400,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", - "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", "cpu": [ "x64" ], @@ -417,9 +417,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", - "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", "cpu": [ "arm64" ], @@ -434,9 +434,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", - "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", "cpu": [ "x64" ], @@ -451,9 +451,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", - "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", "cpu": [ "arm64" ], @@ -468,9 +468,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", - "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", "cpu": [ "ia32" ], @@ -485,9 +485,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", - "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", "cpu": [ "x64" ], @@ -735,27 +735,6 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", - "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -986,13 +965,13 @@ "license": "MIT" }, "node_modules/@turf/bbox": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.3.3.tgz", - "integrity": "sha512-1zNO/JUgDp0N+3EG5fG7+8EolE95OW1LD8ur0hRP0JK+lRyN0gAvJT7n1I9pu/NIqTa8x/zXxGRc1dcOdohYkg==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.3.4.tgz", + "integrity": "sha512-D5ErVWtfQbEPh11yzI69uxqrcJmbPU/9Y59f1uTapgwAwQHQztDWgsYpnL3ns8r1GmPWLP8sGJLVTIk2TZSiYA==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/meta": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/meta": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1001,13 +980,13 @@ } }, "node_modules/@turf/boolean-point-in-polygon": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.3.3.tgz", - "integrity": "sha512-hmXV4PofLAVbVZcnKk/yp//0s65huap+L3wKGKzbLWk57fWla/eRmFKx/iQ15xGu05zylHz5cA5AfriVGZHj2g==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.3.4.tgz", + "integrity": "sha512-v/4hfyY90Vz9cDgs2GwjQf+Lft8o7mNCLJOTz/iv8SHAIgMMX0czEoIaNVOJr7tBqPqwin1CGwsncrkf5C9n8Q==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/invariant": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/invariant": "7.3.4", "@types/geojson": "^7946.0.10", "point-in-polygon-hao": "^1.1.0", "tslib": "^2.8.1" @@ -1017,13 +996,13 @@ } }, "node_modules/@turf/center": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/center/-/center-7.3.3.tgz", - "integrity": "sha512-Hl+/tuRev29QTPbKDIucqT1hUjI7yZ1IYFAQzMuWCNmtVh12BHZdrzBNIUl2IN6vFZWcrQy/7L2a55nNPKIFng==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/center/-/center-7.3.4.tgz", + "integrity": "sha512-4SsLMDHWthXbyIHsczgFCo4fx+8tC8w2+B5HdEuY+P+cSOOL4T+6QQzd7WWjuN/Y3ndowFssUmwRrvXuwVRxQA==", "license": "MIT", "dependencies": { - "@turf/bbox": "7.3.3", - "@turf/helpers": "7.3.3", + "@turf/bbox": "7.3.4", + "@turf/helpers": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1032,13 +1011,13 @@ } }, "node_modules/@turf/centroid": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.3.3.tgz", - "integrity": "sha512-3vWLnF1CksLk7xTUH11IzOQJ6fOoj7zhuL8M3GTxcKruVkGat/vIm3Ye5b68sDVcE5nFDA2pYjjbL7Rfmn3/GQ==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.3.4.tgz", + "integrity": "sha512-6c3kyTSKBrmiPMe75UkHw6MgedroZ6eR5usEvdlDhXgA3MudFPXIZkMFmMd1h9XeJ9xFfkmq+HPCdF0cOzvztA==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/meta": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/meta": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1047,13 +1026,13 @@ } }, "node_modules/@turf/circle": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-7.3.3.tgz", - "integrity": "sha512-IFS30B10GASkEpsAqKV04B4YcwrEhwgdIfiOAUwuSm9Xp41hXwnJSjSBgjXwMpqlttdoyDWsG26+CRq18bNP4w==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-7.3.4.tgz", + "integrity": "sha512-6ccr5iT51/XONF+pbpkqoRxKX4ZVWLubXb1frGCnClv2suo1UIY9SIlINNctVDupXd2P9PpqZCbrXATrcrokPg==", "license": "MIT", "dependencies": { - "@turf/destination": "7.3.3", - "@turf/helpers": "7.3.3", + "@turf/destination": "7.3.4", + "@turf/helpers": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1062,12 +1041,12 @@ } }, "node_modules/@turf/clone": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-7.3.3.tgz", - "integrity": "sha512-IrG3zXKy++xmnQAuL3ZQDVHdsTpKoEY87cLwsKg1Z1VnH7egluxL0T6VTwcu1l64c0QeBtnTjXJBC8XiO4ajog==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-7.3.4.tgz", + "integrity": "sha512-pwQ+RyQw986uu7IulY/18NRAebwZZScb084bvVqVkTrllwLSv4oVBqUxmUMiwtp+PNdiRGRFOvNyZqtRsiD+Jw==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", + "@turf/helpers": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1076,13 +1055,13 @@ } }, "node_modules/@turf/destination": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-7.3.3.tgz", - "integrity": "sha512-X1rVDHLTJLb29tZAVryQz5BD3YKid77Q6PTGEeghZk9PZfRVPhloLSOtKksp6JnmNXV2iHsiY0bORAYzq29+JQ==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-7.3.4.tgz", + "integrity": "sha512-YxoUJwkKmTHiRFQxMQOP0tz8Vy+ga5EXl+C+F/WubjDLwT1AJu5y8CNIjLvWyjPWckj/vZG4u/1js5bx6MLADA==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/invariant": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/invariant": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1091,13 +1070,13 @@ } }, "node_modules/@turf/distance": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-7.3.3.tgz", - "integrity": "sha512-bmv0GzqlICjMWuQ05ipDDbT9ppQUMNo02+T5f/rPF9hSEXCPkSJQ1OdQ6XjUGzdJ/vxgES4DM4zhIDUKU/g8RQ==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-7.3.4.tgz", + "integrity": "sha512-9drWgd46uHPPyzgrcRQLgSvdS/SjVlQ6ZIBoRQagS5P2kSjUbcOXHIMeOSPwfxwlKhEtobLyr+IiR2ns1TfF8w==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/invariant": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/invariant": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1106,16 +1085,16 @@ } }, "node_modules/@turf/ellipse": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-7.3.3.tgz", - "integrity": "sha512-prpLP+zYYVg7QoYCKR3aG78Gr0KmRFqXTzJhw/jdbxOAhSA6Gz4d9k0O9DFQ6MnXS1s7/ye1iGPbSlB5wYoydg==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-7.3.4.tgz", + "integrity": "sha512-SMgbERZl12j7H8YaIofmnf0NwAvdF5Wly4tjI/eUhj/sFOKrKXOS1lvCSBJ6uSV9tFijl3ecGOVOlTpURdZ30g==", "license": "MIT", "dependencies": { - "@turf/destination": "7.3.3", - "@turf/distance": "7.3.3", - "@turf/helpers": "7.3.3", - "@turf/invariant": "7.3.3", - "@turf/transform-rotate": "7.3.3", + "@turf/destination": "7.3.4", + "@turf/distance": "7.3.4", + "@turf/helpers": "7.3.4", + "@turf/invariant": "7.3.4", + "@turf/transform-rotate": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1124,13 +1103,13 @@ } }, "node_modules/@turf/explode": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-7.3.3.tgz", - "integrity": "sha512-nygZAr0YGkfD612AToHUWcoLHl38cL3eUbH1LC6lWys1bk6WG1X+oywdDK4cBP/Z0/74UTCT/jR+gmj+WhlWqA==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-7.3.4.tgz", + "integrity": "sha512-7QWhp3f8jhrWjvArhJ74hXBFHMaiJr/2Y1PzHCWue2/pC5MbbTV0o7peehwrrrJC/1uD6CVb3hlcb77IxtMQkw==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/meta": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/meta": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1139,9 +1118,9 @@ } }, "node_modules/@turf/helpers": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.3.3.tgz", - "integrity": "sha512-9Ias0L1GuZPIzO6sk8jraTEuLJye6n9LYNEdw69ZGOQ6C1IigjxkPW49zmn21aTv1z27vxdVLSS3r+78DB2QnQ==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.3.4.tgz", + "integrity": "sha512-U/S5qyqgx3WTvg4twaH0WxF3EixoTCfDsmk98g1E3/5e2YKp7JKYZdz0vivsS5/UZLJeZDEElOSFH4pUgp+l7g==", "license": "MIT", "dependencies": { "@types/geojson": "^7946.0.10", @@ -1152,12 +1131,12 @@ } }, "node_modules/@turf/invariant": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-7.3.3.tgz", - "integrity": "sha512-q6UDgWmtIlU+AIxt5Awnh18ZMSuNti6drCXbIBdGdgQaQ1qEiyGZDE3P9RKk6otoLXOBYecOuI0HIwf2IxurhQ==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-7.3.4.tgz", + "integrity": "sha512-88Eo4va4rce9sNZs6XiMJowWkikM3cS2TBhaCKlU+GFHdNf8PFEpiU42VDU8q5tOF6/fu21Rvlke5odgOGW4AQ==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", + "@turf/helpers": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1166,14 +1145,14 @@ } }, "node_modules/@turf/line-arc": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-7.3.3.tgz", - "integrity": "sha512-CQSUD5aseUG6p+uwWU3bk0sTWr9ZKgngdes/pRTzC8C9araxcD+xFoXdZPNmRvIEIqeVZi3w/R7CYkcTjyGCmg==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-7.3.4.tgz", + "integrity": "sha512-nqZ+JKjDVIrvREFHgtJIP9Ps4WbWw3eStqdIzAPolrzoXyAZnpIKquyfRTxpJFYUUjDmf+uQ/SFWsPP4SOWAqQ==", "license": "MIT", "dependencies": { - "@turf/circle": "7.3.3", - "@turf/destination": "7.3.3", - "@turf/helpers": "7.3.3", + "@turf/circle": "7.3.4", + "@turf/destination": "7.3.4", + "@turf/helpers": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1182,12 +1161,12 @@ } }, "node_modules/@turf/meta": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.3.3.tgz", - "integrity": "sha512-Tz1j4h70iFB5SebWWoVv/uL59x4aOngXU+d1xQDXzOCn/O6txnreGVGMcYU362c5F06yqZx38H9UFTQ553lK0w==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.3.4.tgz", + "integrity": "sha512-tlmw9/Hs1p2n0uoHVm1w3ugw1I6L8jv9YZrcdQa4SH5FX5UY0ATrKeIvfA55FlL//PGuYppJp+eyg/0eb4goqw==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", + "@turf/helpers": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1196,15 +1175,15 @@ } }, "node_modules/@turf/nearest-point": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-7.3.3.tgz", - "integrity": "sha512-DZRlQ8J7W3KwEBYb/C1ZpQdkjVPDVOAl8NFqeIKKPKjcViOnk/opYQsJTnMADvv28IGB/mlUM11qVPnnCg7YeA==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-7.3.4.tgz", + "integrity": "sha512-WfI09f2bX0nKx/jkO7zCt3tUrJulyAlUYQtZHP7lWYMCOmZ6Pq26D6lKWjpfs2it0OHbhlx1XF/UupEUaz830w==", "license": "MIT", "dependencies": { - "@turf/clone": "7.3.3", - "@turf/distance": "7.3.3", - "@turf/helpers": "7.3.3", - "@turf/meta": "7.3.3", + "@turf/clone": "7.3.4", + "@turf/distance": "7.3.4", + "@turf/helpers": "7.3.4", + "@turf/meta": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1213,16 +1192,16 @@ } }, "node_modules/@turf/point-on-feature": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-7.3.3.tgz", - "integrity": "sha512-JwnZYD7IRhXRqVNUZuka5aw00ws9P5Br3ZhFhd/UpoVi93M117/hdXwZhA9S98LNbTyAqj7ugvrlkXXeHqCBDw==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-7.3.4.tgz", + "integrity": "sha512-tQfIxsJUxZqyO7OeJC25y3DqN9i4fmrAt4TBrPvZcIIwymgN7aMrElJKlg/dfi7JDihKp3h/CkWMjtMQA14Vwg==", "license": "MIT", "dependencies": { - "@turf/boolean-point-in-polygon": "7.3.3", - "@turf/center": "7.3.3", - "@turf/explode": "7.3.3", - "@turf/helpers": "7.3.3", - "@turf/nearest-point": "7.3.3", + "@turf/boolean-point-in-polygon": "7.3.4", + "@turf/center": "7.3.4", + "@turf/explode": "7.3.4", + "@turf/helpers": "7.3.4", + "@turf/nearest-point": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1231,13 +1210,13 @@ } }, "node_modules/@turf/rhumb-bearing": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-7.3.3.tgz", - "integrity": "sha512-Ips10N/uc6d66h2ZYAEf1Ppsf6In7BIzUQ9l3MoyKZh5lLyS1wpmNE79vRAdtTnL8NX95jKUZXaOczxsOql+PQ==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-7.3.4.tgz", + "integrity": "sha512-tvX1toSo80q0iL0cUMMXpSKsCCfOjRqDGCmOdR6B9shhk6xP1ZM2PLQDr+MFPBFeGyQuyY4CNFkV2+3DF49vYw==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/invariant": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/invariant": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1246,13 +1225,13 @@ } }, "node_modules/@turf/rhumb-destination": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-7.3.3.tgz", - "integrity": "sha512-NrdkQr8D5RqzDsg0/SfYE+ca9MThNlGQecUUaV/a6pxLYq7VM1hvLRvTSJ9fgdiwSaMR73lB3/VZxrhSGzkWKA==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-7.3.4.tgz", + "integrity": "sha512-6HikEb5nm2A18FQWk6vVLMQkc099I/7c69j47RYM27xQK8J8uBCNk1zLYyMPcZTh24xcNSbZ1iPHDsDOqw6wWQ==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/invariant": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/invariant": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1261,13 +1240,13 @@ } }, "node_modules/@turf/rhumb-distance": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-7.3.3.tgz", - "integrity": "sha512-bOgp9ifVA0gt1H4OvkCqE+0+ZOSOBVJhpa3vT53aBJftKLq9iabmLEpRBDzrb+rnpT/BBYhLC8HgHFfzuwskjw==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-7.3.4.tgz", + "integrity": "sha512-phwskeijdgYMsR3qDQmytfsg2iZcp3uWK7UFc76wKTEpxozbDGFI4enX5gXvZPpyI1iD7gsktGqHsO33AjnFDA==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/invariant": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/invariant": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1276,16 +1255,16 @@ } }, "node_modules/@turf/sector": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-7.3.3.tgz", - "integrity": "sha512-rBOgHb3z3xWMvuBAR2Bg3/UbMaaIzvgmg92vUdpMLU+IjKELpbXzaguHFeH/xIIjPoQLtwrGKMVYg27UI3Kv4g==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-7.3.4.tgz", + "integrity": "sha512-x2tNAXl21HRcF302ghU5ohE/vmmfDcXpQKgoWHyi7o5Q9kDRBwy7kbvr5YxbT3vwW/kAWUDYM7FoXNH42bXgCw==", "license": "MIT", "dependencies": { - "@turf/circle": "7.3.3", - "@turf/helpers": "7.3.3", - "@turf/invariant": "7.3.3", - "@turf/line-arc": "7.3.3", - "@turf/meta": "7.3.3", + "@turf/circle": "7.3.4", + "@turf/helpers": "7.3.4", + "@turf/invariant": "7.3.4", + "@turf/line-arc": "7.3.4", + "@turf/meta": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1294,19 +1273,19 @@ } }, "node_modules/@turf/transform-rotate": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-7.3.3.tgz", - "integrity": "sha512-0aa/o1lg7xEChyeSvLrkIzHxZk9Dx38v9wFF2YMmp6oIPEQzdwIFlH9+H2trTbTaqzLgL6d41NAQbCRW7NsOeg==", - "license": "MIT", - "dependencies": { - "@turf/centroid": "7.3.3", - "@turf/clone": "7.3.3", - "@turf/helpers": "7.3.3", - "@turf/invariant": "7.3.3", - "@turf/meta": "7.3.3", - "@turf/rhumb-bearing": "7.3.3", - "@turf/rhumb-destination": "7.3.3", - "@turf/rhumb-distance": "7.3.3", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-7.3.4.tgz", + "integrity": "sha512-pbUG6QLwyJvvitq4aAq4IQH79X8T0NmEPUGDUEEP69yW7t4+UZjDBAVbCKwpOc8gtsK0K5yvxlZ0e2CdtpNmEw==", + "license": "MIT", + "dependencies": { + "@turf/centroid": "7.3.4", + "@turf/clone": "7.3.4", + "@turf/helpers": "7.3.4", + "@turf/invariant": "7.3.4", + "@turf/meta": "7.3.4", + "@turf/rhumb-bearing": "7.3.4", + "@turf/rhumb-destination": "7.3.4", + "@turf/rhumb-distance": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1315,13 +1294,13 @@ } }, "node_modules/@turf/truncate": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-7.3.3.tgz", - "integrity": "sha512-p4jZMgxQWlIX8WcbjJiuxpAFwFxpXkp2jCEAWlz8hMaKEky0Kh1ZhIsE4WpUNxeFx7/QpJh9BiHbvaRKdETjIA==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-7.3.4.tgz", + "integrity": "sha512-VPXdae9+RLLM19FMrJgt7QANBikm7DxPbfp/dXgzE4Ca7v+mJ4T1fYc7gCZDaqOrWMccHKbvv4iSuW7YZWdIIA==", "license": "MIT", "dependencies": { - "@turf/helpers": "7.3.3", - "@turf/meta": "7.3.3", + "@turf/helpers": "7.3.4", + "@turf/meta": "7.3.4", "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" }, @@ -1424,9 +1403,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.0.tgz", - "integrity": "sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.3.tgz", + "integrity": "sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==", "license": "MIT", "dependencies": { "undici-types": "~7.16.0" @@ -1492,17 +1471,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.54.0.tgz", - "integrity": "sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.55.0.tgz", + "integrity": "sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.54.0", - "@typescript-eslint/type-utils": "8.54.0", - "@typescript-eslint/utils": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0", + "@typescript-eslint/scope-manager": "8.55.0", + "@typescript-eslint/type-utils": "8.55.0", + "@typescript-eslint/utils": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -1515,7 +1494,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.54.0", + "@typescript-eslint/parser": "^8.55.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -1531,16 +1510,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.54.0.tgz", - "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.55.0.tgz", + "integrity": "sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.54.0", - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0", + "@typescript-eslint/scope-manager": "8.55.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0", "debug": "^4.4.3" }, "engines": { @@ -1556,14 +1535,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.54.0.tgz", - "integrity": "sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.55.0.tgz", + "integrity": "sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.54.0", - "@typescript-eslint/types": "^8.54.0", + "@typescript-eslint/tsconfig-utils": "^8.55.0", + "@typescript-eslint/types": "^8.55.0", "debug": "^4.4.3" }, "engines": { @@ -1578,14 +1557,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.54.0.tgz", - "integrity": "sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.55.0.tgz", + "integrity": "sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0" + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1596,9 +1575,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.54.0.tgz", - "integrity": "sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.55.0.tgz", + "integrity": "sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==", "dev": true, "license": "MIT", "engines": { @@ -1613,15 +1592,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.54.0.tgz", - "integrity": "sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.55.0.tgz", + "integrity": "sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0", - "@typescript-eslint/utils": "8.54.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0", + "@typescript-eslint/utils": "8.55.0", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -1638,9 +1617,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.54.0.tgz", - "integrity": "sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.55.0.tgz", + "integrity": "sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==", "dev": true, "license": "MIT", "engines": { @@ -1652,16 +1631,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.54.0.tgz", - "integrity": "sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.55.0.tgz", + "integrity": "sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.54.0", - "@typescript-eslint/tsconfig-utils": "8.54.0", - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0", + "@typescript-eslint/project-service": "8.55.0", + "@typescript-eslint/tsconfig-utils": "8.55.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", @@ -1706,16 +1685,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.54.0.tgz", - "integrity": "sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.55.0.tgz", + "integrity": "sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.54.0", - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0" + "@typescript-eslint/scope-manager": "8.55.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1730,13 +1709,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.54.0.tgz", - "integrity": "sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.55.0.tgz", + "integrity": "sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/types": "8.55.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -1978,9 +1957,9 @@ } }, "node_modules/b4a": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", - "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.4.tgz", + "integrity": "sha512-u20zJLDaSWpxaZ+zaAkEIB2dZZ1o+DF4T/MRbmsvGp9nletHOyiai19OzX1fF8xUBYsO1bPXxODvcd0978pnug==", "license": "Apache-2.0", "peerDependencies": { "react-native-b4a": "*" @@ -2754,9 +2733,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", - "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2767,32 +2746,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.2", - "@esbuild/android-arm": "0.27.2", - "@esbuild/android-arm64": "0.27.2", - "@esbuild/android-x64": "0.27.2", - "@esbuild/darwin-arm64": "0.27.2", - "@esbuild/darwin-x64": "0.27.2", - "@esbuild/freebsd-arm64": "0.27.2", - "@esbuild/freebsd-x64": "0.27.2", - "@esbuild/linux-arm": "0.27.2", - "@esbuild/linux-arm64": "0.27.2", - "@esbuild/linux-ia32": "0.27.2", - "@esbuild/linux-loong64": "0.27.2", - "@esbuild/linux-mips64el": "0.27.2", - "@esbuild/linux-ppc64": "0.27.2", - "@esbuild/linux-riscv64": "0.27.2", - "@esbuild/linux-s390x": "0.27.2", - "@esbuild/linux-x64": "0.27.2", - "@esbuild/netbsd-arm64": "0.27.2", - "@esbuild/netbsd-x64": "0.27.2", - "@esbuild/openbsd-arm64": "0.27.2", - "@esbuild/openbsd-x64": "0.27.2", - "@esbuild/openharmony-arm64": "0.27.2", - "@esbuild/sunos-x64": "0.27.2", - "@esbuild/win32-arm64": "0.27.2", - "@esbuild/win32-ia32": "0.27.2", - "@esbuild/win32-x64": "0.27.2" + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" } }, "node_modules/escalade": { @@ -3323,9 +3302,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.1.tgz", - "integrity": "sha512-EoY1N2xCn44xU6750Sx7OjOIT59FkmstNc3X6y5xpz7D5cBtZRe/3pSlTkDJgqsOk3WwZPkWfonhhUJfttQo3w==", + "version": "4.13.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", + "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", "dev": true, "license": "MIT", "dependencies": { @@ -4324,9 +4303,9 @@ } }, "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", "dev": true, "license": "MIT", "dependencies": { @@ -4943,13 +4922,46 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/@isaacs/cliui": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/rimraf/node_modules/balanced-match": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz", + "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==", + "license": "MIT", + "dependencies": { + "jackspeak": "^4.2.3" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", + "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/rimraf/node_modules/glob": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.1.tgz", - "integrity": "sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz", + "integrity": "sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==", "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.1.2", + "minimatch": "^10.2.0", "minipass": "^7.1.2", "path-scurry": "^2.0.0" }, @@ -4960,22 +4972,37 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/jackspeak": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^9.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/rimraf/node_modules/lru-cache": { - "version": "11.2.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", - "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" } }, "node_modules/rimraf/node_modules/minimatch": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz", - "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz", + "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==", "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.1" + "brace-expansion": "^5.0.2" }, "engines": { "node": "20 || >=22" @@ -5091,9 +5118,9 @@ } }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -5601,9 +5628,9 @@ } }, "node_modules/text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.5.tgz", + "integrity": "sha512-ymKEOrjEhNE0+Gehpn2Dw59Vp2fNG0DQvCRAJpCjVqB1Pkj1AMBzDpow4H9kSa6XqO/wZrb5TLxEigx+nEaiBA==", "license": "Apache-2.0", "dependencies": { "b4a": "^1.6.4" @@ -5757,9 +5784,9 @@ } }, "node_modules/typedoc": { - "version": "0.28.16", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.16.tgz", - "integrity": "sha512-x4xW77QC3i5DUFMBp0qjukOTnr/sSg+oEs86nB3LjDslvAmwe/PUGDWbe3GrIqt59oTqoXK5GRK9tAa0sYMiog==", + "version": "0.28.17", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.17.tgz", + "integrity": "sha512-ZkJ2G7mZrbxrKxinTQMjFqsCoYY6a5Luwv2GKbTnBCEgV2ihYm5CflA9JnJAwH0pZWavqfYxmDkFHPt4yx2oDQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5821,16 +5848,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.54.0.tgz", - "integrity": "sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.55.0.tgz", + "integrity": "sha512-HE4wj+r5lmDVS9gdaN0/+iqNvPZwGfnJ5lZuz7s5vLlg9ODw0bIiiETaios9LvFI1U94/VBXGm3CB2Y5cNFMpw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.54.0", - "@typescript-eslint/parser": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0", - "@typescript-eslint/utils": "8.54.0" + "@typescript-eslint/eslint-plugin": "8.55.0", + "@typescript-eslint/parser": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0", + "@typescript-eslint/utils": "8.55.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/test/cot-shapes.test.ts b/test/cot-shapes.test.ts index 3785fb9..0f280f5 100644 --- a/test/cot-shapes.test.ts +++ b/test/cot-shapes.test.ts @@ -162,14 +162,14 @@ test.only('Basic Circle', async (t) => { labels: true, archived: true, precisionlocation: { altsrc: 'DTED0' }, - stroke: '#FFFF77', - 'stroke-opacity': 0, + stroke: '#0077FF', + 'stroke-opacity': 1, 'stroke-width': 3, 'stroke-style': 'solid', 'marker-color': '#FF7700', 'marker-opacity': 1, 'fill-opacity': 0, - fill: '#00FF77', + fill: '#0077FF', shape: { ellipse: { major: 185753.64687066682, minor: 185753.64687066682, angle: 360 } }, metadata: {} }, @@ -264,7 +264,7 @@ test.only('Basic Circle', async (t) => { archive: { _attributes: {} }, creator: { _attributes: { uid: 'ANDROID-764679f74013dfe2', callsign: 'COTAK Admin Ingalls', time: '2025-07-09T22:12:06.038Z', type: 'a-f-G-E-V-C' } }, precisionlocation: { _attributes: { altsrc: 'DTED0' } }, - strokeColor: { "_attributes": { "value": 16777079 } }, + strokeColor: { "_attributes": { "value": -16746497 } }, strokeWeight: { "_attributes": { "value": 3 } }, labels_on: { "_attributes": { "value": true } }, tog: { "_attributes": { "enabled": "0" } }, diff --git a/test/cot-user-draw.test.ts b/test/cot-user-draw.test.ts new file mode 100644 index 0000000..d1389b3 --- /dev/null +++ b/test/cot-user-draw.test.ts @@ -0,0 +1,355 @@ +import test from 'tape'; +import { CoTParser } from '../index.js'; + +test('Parse u-d-c-c (Circle - Transparent)', async (t) => { + const cot = CoTParser.from_xml(` + + + + + + + + + + <__shapeExtras cpvis='true' editable='true' /> + + + + + + + + + + + + + `); + + t.deepEquals(await CoTParser.to_geojson(cot), { + id: '32c312f0-e146-42ee-86b3-ad357d1b76fd', + type: 'Feature', + properties: { + callsign: 'TRANSPARENT', + center: [ -108.5333539, 38.9456255, 1717.419 ], + type: 'u-d-c-c', + how: 'h-e', + time: '2026-02-13T18:08:22.479Z', + start: '2026-02-13T18:08:22.479Z', + stale: '2026-02-14T18:08:22.479Z', + creator: { + uid: 'ANDROID-764679f74013dfe2', + callsign: 'COTAK Ingalls', + time: '2026-02-13T18:06:16.036Z', + type: 'a-f-G-E-V-C' + }, + labels: true, + archived: true, + precisionlocation: { + altsrc: 'DTED2' + }, + stroke: '#0077FF', + 'stroke-opacity': 1, + 'stroke-width': 3, + 'stroke-style': 'solid', + 'fill-opacity': 0, + fill: '#0077FF', + shape: { + ellipse: { + major: 2535.9708862816324, + minor: 2535.9708862816324, + angle: 360 + } + }, + metadata: {} + }, + geometry: { + type: 'Polygon', + coordinates: [ [ + [ -108.562678, 38.945622, 1717.419 ], + [ -108.562538, 38.947857, 1717.419 ], + [ -108.562116, 38.950071, 1717.419 ], + [ -108.561418, 38.952243, 1717.419 ], + [ -108.560449, 38.95435, 1717.419 ], + [ -108.559219, 38.956374, 1717.419 ], + [ -108.55774, 38.958294, 1717.419 ], + [ -108.556026, 38.960092, 1717.419 ], + [ -108.554094, 38.96175, 1717.419 ], + [ -108.551961, 38.963254, 1717.419 ], + [ -108.54965, 38.964587, 1717.419 ], + [ -108.547181, 38.965738, 1717.419 ], + [ -108.544579, 38.966695, 1717.419 ], + [ -108.541869, 38.96745, 1717.419 ], + [ -108.539077, 38.967994, 1717.419 ], + [ -108.536229, 38.968322, 1717.419 ], + [ -108.533354, 38.968432, 1717.419 ], + [ -108.530479, 38.968322, 1717.419 ], + [ -108.527631, 38.967994, 1717.419 ], + [ -108.524839, 38.96745, 1717.419 ], + [ -108.522129, 38.966695, 1717.419 ], + [ -108.519527, 38.965738, 1717.419 ], + [ -108.517058, 38.964587, 1717.419 ], + [ -108.514746, 38.963254, 1717.419 ], + [ -108.512614, 38.96175, 1717.419 ], + [ -108.510682, 38.960092, 1717.419 ], + [ -108.508968, 38.958294, 1717.419 ], + [ -108.507489, 38.956374, 1717.419 ], + [ -108.506259, 38.95435, 1717.419 ], + [ -108.50529, 38.952243, 1717.419 ], + [ -108.504592, 38.950071, 1717.419 ], + [ -108.50417, 38.947857, 1717.419 ], + [ -108.50403, 38.945622, 1717.419 ], + [ -108.504172, 38.943386, 1717.419 ], + [ -108.504595, 38.941173, 1717.419 ], + [ -108.505295, 38.939002, 1717.419 ], + [ -108.506265, 38.936895, 1717.419 ], + [ -108.507496, 38.934872, 1717.419 ], + [ -108.508976, 38.932952, 1717.419 ], + [ -108.510691, 38.931155, 1717.419 ], + [ -108.512623, 38.929497, 1717.419 ], + [ -108.514756, 38.927994, 1717.419 ], + [ -108.517067, 38.926661, 1717.419 ], + [ -108.519535, 38.925511, 1717.419 ], + [ -108.522135, 38.924555, 1717.419 ], + [ -108.524844, 38.923801, 1717.419 ], + [ -108.527635, 38.923257, 1717.419 ], + [ -108.530481, 38.922929, 1717.419 ], + [ -108.533354, 38.922819, 1717.419 ], + [ -108.536227, 38.922929, 1717.419 ], + [ -108.539073, 38.923257, 1717.419 ], + [ -108.541864, 38.923801, 1717.419 ], + [ -108.544572, 38.924555, 1717.419 ], + [ -108.547173, 38.925511, 1717.419 ], + [ -108.549641, 38.926661, 1717.419 ], + [ -108.551952, 38.927994, 1717.419 ], + [ -108.554084, 38.929497, 1717.419 ], + [ -108.556017, 38.931155, 1717.419 ], + [ -108.557732, 38.932952, 1717.419 ], + [ -108.559211, 38.934872, 1717.419 ], + [ -108.560442, 38.936895, 1717.419 ], + [ -108.561413, 38.939002, 1717.419 ], + [ -108.562113, 38.941173, 1717.419 ], + [ -108.562536, 38.943386, 1717.419 ], + [ -108.562678, 38.945622, 1717.419 ] + ] ] + }, + path: '/' + }); + + t.end(); +}); + + +test('Parse u-d-c-c (Circle - Filled)', async (t) => { + const cot = CoTParser.from_xml(` + + + + + + + + + + + <__shapeExtras cpvis='true' editable='true' /> + + + + + + + + + + + + + + `); + + t.deepEquals(await CoTParser.to_geojson(cot), { + id: 'dd80d848-4614-412c-9890-9e7157450a6b', + type: 'Feature', + properties: { + callsign: 'Filled', + center: [ -108.6033285, 38.9133019, 2414.459 ], + type: 'u-d-c-c', + how: 'h-e', + time: '2026-02-13T18:08:22.479Z', + start: '2026-02-13T18:08:22.479Z', + stale: '2026-02-14T18:08:22.479Z', + creator: { + uid: 'ANDROID-764679f74013dfe2', + callsign: 'COTAK Ingalls', + time: '2026-02-13T18:07:15.045Z', + type: 'a-f-G-E-V-C' + }, + labels: true, + archived: true, + precisionlocation: { + altsrc: 'DTED2' + }, + stroke: '#0077FF', + 'stroke-opacity': 1, + 'stroke-width': 3, + 'stroke-style': 'solid', + 'fill-opacity': 1, + fill: '#0077FF', + shape: { + ellipse: { + major: 2908.096601511143, + minor: 2908.096601511143, + angle: 360 + } + }, + metadata: {} + }, + geometry: { + type: 'Polygon', + coordinates: [ [ + [ -108.63694, 38.913297, 2414.459 ], + [ -108.636779, 38.915861, 2414.459 ], + [ -108.636297, 38.918399, 2414.459 ], + [ -108.635496, 38.920889, 2414.459 ], + [ -108.634386, 38.923306, 2414.459 ], + [ -108.632976, 38.925627, 2414.459 ], + [ -108.631281, 38.927828, 2414.459 ], + [ -108.629317, 38.92989, 2414.459 ], + [ -108.627102, 38.931793, 2414.459 ], + [ -108.624658, 38.933517, 2414.459 ], + [ -108.622008, 38.935046, 2414.459 ], + [ -108.619178, 38.936366, 2414.459 ], + [ -108.616195, 38.937464, 2414.459 ], + [ -108.613089, 38.938328, 2414.459 ], + [ -108.609888, 38.938952, 2414.459 ], + [ -108.606624, 38.939329, 2414.459 ], + [ -108.603328, 38.939455, 2414.459 ], + [ -108.600033, 38.939329, 2414.459 ], + [ -108.596769, 38.938952, 2414.459 ], + [ -108.593568, 38.938328, 2414.459 ], + [ -108.590462, 38.937464, 2414.459 ], + [ -108.587479, 38.936366, 2414.459 ], + [ -108.584649, 38.935046, 2414.459 ], + [ -108.581999, 38.933517, 2414.459 ], + [ -108.579555, 38.931793, 2414.459 ], + [ -108.57734, 38.92989, 2414.459 ], + [ -108.575376, 38.927828, 2414.459 ], + [ -108.573681, 38.925627, 2414.459 ], + [ -108.572271, 38.923306, 2414.459 ], + [ -108.571161, 38.920889, 2414.459 ], + [ -108.57036, 38.918399, 2414.459 ], + [ -108.569878, 38.915861, 2414.459 ], + [ -108.569717, 38.913297, 2414.459 ], + [ -108.56988, 38.910734, 2414.459 ], + [ -108.570365, 38.908195, 2414.459 ], + [ -108.571168, 38.905706, 2414.459 ], + [ -108.57228, 38.903289, 2414.459 ], + [ -108.573691, 38.90097, 2414.459 ], + [ -108.575387, 38.898769, 2414.459 ], + [ -108.577352, 38.896708, 2414.459 ], + [ -108.579568, 38.894806, 2414.459 ], + [ -108.582012, 38.893083, 2414.459 ], + [ -108.584661, 38.891555, 2414.459 ], + [ -108.587489, 38.890236, 2414.459 ], + [ -108.59047, 38.889139, 2414.459 ], + [ -108.593575, 38.888275, 2414.459 ], + [ -108.596774, 38.887651, 2414.459 ], + [ -108.600035, 38.887275, 2414.459 ], + [ -108.603328, 38.887149, 2414.459 ], + [ -108.606622, 38.887275, 2414.459 ], + [ -108.609883, 38.887651, 2414.459 ], + [ -108.613082, 38.888275, 2414.459 ], + [ -108.616187, 38.889139, 2414.459 ], + [ -108.619168, 38.890236, 2414.459 ], + [ -108.621996, 38.891555, 2414.459 ], + [ -108.624645, 38.893083, 2414.459 ], + [ -108.627089, 38.894806, 2414.459 ], + [ -108.629305, 38.896708, 2414.459 ], + [ -108.63127, 38.898769, 2414.459 ], + [ -108.632966, 38.90097, 2414.459 ], + [ -108.634377, 38.903289, 2414.459 ], + [ -108.635489, 38.905706, 2414.459 ], + [ -108.636292, 38.908195, 2414.459 ], + [ -108.636777, 38.910734, 2414.459 ], + [ -108.63694, 38.913297, 2414.459 ] + ] ] + }, + path: '/' + }); + + t.end(); +}); \ No newline at end of file diff --git a/test/fixtures/circle-opacity.geojson b/test/fixtures/circle-opacity.geojson index 8d02278..1f11710 100644 --- a/test/fixtures/circle-opacity.geojson +++ b/test/fixtures/circle-opacity.geojson @@ -362,4 +362,4 @@ ] }, "path": "/" -} \ No newline at end of file +}