@kalisio/common-geospatial 0.8.0 → 0.10.0
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/README.md +9 -3
- package/dist/foundation/index.cjs +2 -0
- package/dist/foundation/index.cjs.map +1 -0
- package/dist/foundation/index.mjs +77 -0
- package/dist/foundation/index.mjs.map +1 -0
- package/dist/geojson-CJ6QZ9pN.js +647 -0
- package/dist/geojson-CJ6QZ9pN.js.map +1 -0
- package/dist/geojson-QgqoCFjn.cjs +2 -0
- package/dist/geojson-QgqoCFjn.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +99 -1056
- package/dist/index.mjs.map +1 -1
- package/dist/io/index.cjs +11 -0
- package/dist/io/index.cjs.map +1 -0
- package/dist/io/index.mjs +539 -0
- package/dist/io/index.mjs.map +1 -0
- package/dist/line-CcfAx7LP.js +16 -0
- package/dist/line-CcfAx7LP.js.map +1 -0
- package/dist/line-Doxbvzns.cjs +2 -0
- package/dist/line-Doxbvzns.cjs.map +1 -0
- package/dist/operators/index.cjs +2 -0
- package/dist/operators/index.cjs.map +1 -0
- package/dist/operators/index.mjs +28 -0
- package/dist/operators/index.mjs.map +1 -0
- package/dist/ring-Cks2pGr8.js +1334 -0
- package/dist/ring-Cks2pGr8.js.map +1 -0
- package/dist/ring-CnFBeolv.cjs +2 -0
- package/dist/ring-CnFBeolv.cjs.map +1 -0
- package/dist/truncate-Cb17e4VI.cjs +2 -0
- package/dist/truncate-Cb17e4VI.cjs.map +1 -0
- package/dist/truncate-Cs8jmwOi.js +139 -0
- package/dist/truncate-Cs8jmwOi.js.map +1 -0
- package/package.json +25 -7
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/foundation/axes.js","../src/foundation/localization.js","../src/foundation/directions.js","../src/foundation/coordinate-formats/dd.js","../src/foundation/coordinate-formats/ddm.js","../src/foundation/coordinate-formats/ddm-aero.js","../src/foundation/coordinate-formats/dms.js","../src/foundation/coordinate-formats/converter.js","../src/foundation/coordinate-formats/index.js","../src/foundation/coordinate.js","../src/foundation/position.js","../src/foundation/bbox.js","../src/operators/is-like.js","../src/operators/compute/bounding-box.js","../src/operators/compute/convex-hull.js","../src/operators/simplify.js","../src/operators/truncate.js","../src/operators/validate/position.js","../src/operators/validate/bbox.js","../src/operators/validate/crs.js","../src/operators/validate/utils.js","../src/operators/validate/geometry.js","../src/operators/validate/geojson.js"],"sourcesContent":["import { assert, is } from '@kalisio/common-core'\n\nexport const AXES = {\n LATITUDE: 'LAT',\n LONGITUDE: 'LON',\n ALTITUDE: 'ALT'\n}\n\nexport function isAxis (axis) {\n assert.that(axis, is.string, 'axis must be a string')\n return Object.values(AXES).includes(axis)\n}\n\nexport function isLatitude (axis) {\n assert.that(axis, is.string, 'axis must be a string')\n return axis === AXES.LATITUDE\n}\n\nexport function isLongitude (axis) {\n assert.that(axis, is.string, 'axis must be a string')\n return axis === AXES.LONGITUDE\n}\n\nexport function isAltitude (axis) {\n assert.that(axis, is.string, 'axis must be a string')\n return axis === AXES.ALTITUDE\n}\n","import { assert, is, has, conform } from '@kalisio/common-core'\nimport fr from './i18n/fr.json'\nimport en from './i18n/en.json'\n\nconst LOCALE_SCHEMA = {\n DIRECTIONS: {\n NORTH: { label: is.string, symbol: is.char },\n SOUTH: { label: is.string, symbol: is.char },\n EAST: { label: is.string, symbol: is.char },\n WEST: { label: is.string, symbol: is.char }\n }\n}\n\nconst LOCALES = {\n en,\n fr\n}\n\nlet CURRENT_LOCALE = 'en'\nconst FALLBACK_LOCALE = 'en'\n\nexport function listLocales () {\n return Object.keys(LOCALES)\n}\n\nexport function registerLocale (code, content) {\n assert.all([\n { value: code, validator: is.string, message: 'code must be a string' },\n { value: code, validator: (v) => !has.key(LOCALES, v), message: 'locale already registered' },\n { value: content, validator: is.plainObject, message: 'content must be an object' },\n { value: content, validator: (v) => conform.schema(v, LOCALE_SCHEMA), message: 'content does not conform to schema' }\n ])\n LOCALES[code] = content\n}\n\nexport function setLocale (code) {\n assert.all([\n { value: code, validator: is.string, message: 'code must be a string' },\n { value: code, validator: (v) => has.key(LOCALES, v), message: 'code is unknown' }\n ])\n CURRENT_LOCALE = code\n}\n\nexport function getLocale () {\n return CURRENT_LOCALE\n}\n\nexport function getLocaleByCode (code) {\n assert.all([\n { value: code, validator: is.string, message: 'code must be a string' },\n { value: code, validator: (v) => has.key(LOCALES, v), message: 'code is unknown' }\n ])\n return LOCALES[code]\n}\n\nexport function getActiveLocales () {\n return CURRENT_LOCALE === FALLBACK_LOCALE\n ? [CURRENT_LOCALE]\n : [CURRENT_LOCALE, FALLBACK_LOCALE]\n}\n\nfunction collectSymbols (keys) {\n const symbols = new Set()\n for (const code of getActiveLocales()) {\n const { DIRECTIONS } = getLocaleByCode(code)\n for (const key of keys) symbols.add(DIRECTIONS[key].symbol)\n }\n return [...symbols]\n}\n\n// Latitude symbols (NORTH/SOUTH), current locale + fallback.\nexport function getLatitudeSymbols () {\n return collectSymbols(['NORTH', 'SOUTH'])\n}\n\n// Longitude symbols (EAST/WEST), current locale + fallback.\nexport function getLongitudeSymbols () {\n return collectSymbols(['EAST', 'WEST'])\n}\n\n// All direction symbols (both axes), current locale + fallback.\nexport function getAllDirectionSymbols () {\n return collectSymbols(['NORTH', 'SOUTH', 'EAST', 'WEST'])\n}\n","import { assert, is } from '@kalisio/common-core'\nimport { getLocale, getLocaleByCode, getActiveLocales } from './localization.js'\nimport { AXES, isLatitude, isLongitude, isAxis } from './axes.js'\n\nfunction getAll () {\n return getLocaleByCode(getLocale()).DIRECTIONS\n}\n\n// A direction matches a type if it equals its label or its symbol, in any of\n// the active locales (current + fallback), case-insensitively.\nfunction isDirectionOf (type, dir) {\n const value = dir.toUpperCase()\n return getActiveLocales().some((code) => {\n const { label, symbol } = getLocaleByCode(code).DIRECTIONS[type]\n return value === label.toUpperCase() || value === symbol.toUpperCase()\n })\n}\n\nexport function getDirections (axis = null) {\n const directions = getAll()\n if (is.defined(axis)) {\n assert.that(axis, isAxis, 'axis must be a valid axis')\n if (isLatitude(axis)) return [directions.SOUTH, directions.NORTH]\n if (isLongitude(axis)) return [directions.EAST, directions.WEST]\n return []\n }\n return [directions.SOUTH, directions.NORTH, directions.EAST, directions.WEST]\n}\n\nexport function getNorth () { return getAll().NORTH }\nexport function getSouth () { return getAll().SOUTH }\nexport function getEast () { return getAll().EAST }\nexport function getWest () { return getAll().WEST }\n\nexport function isDirection (dir) {\n assert.that(dir, is.string, 'dir must be a string')\n return isNorth(dir) || isSouth(dir) || isEast(dir) || isWest(dir)\n}\n\nexport function isNorth (dir) {\n assert.that(dir, is.string, 'dir must be a string')\n return isDirectionOf('NORTH', dir)\n}\n\nexport function isSouth (dir) {\n assert.that(dir, is.string, 'dir must be a string')\n return isDirectionOf('SOUTH', dir)\n}\n\nexport function isEast (dir) {\n assert.that(dir, is.string, 'dir must be a string')\n return isDirectionOf('EAST', dir)\n}\n\nexport function isWest (dir) {\n assert.that(dir, is.string, 'dir must be a string')\n return isDirectionOf('WEST', dir)\n}\n\nexport function getDirectionAxis (dir) {\n assert.that(dir, isDirection, 'dir must be a direction')\n if (isWest(dir) || isEast(dir)) return AXES.LONGITUDE\n return AXES.LATITUDE\n}\n","import { assert, is, conform, optional } from '@kalisio/common-core'\nimport { getAllDirectionSymbols } from '../localization.js'\nimport { isDirection } from '../directions.js'\n\nconst SCHEMA = {\n degrees: is.number,\n direction: optional(isDirection)\n}\n\nconst REGEX_SIGNED = /^(-?\\d{1,3}(?:\\.\\d+)?)°?$/\n\nfunction dirRegex () {\n return new RegExp(`^(\\\\d{1,3}(?:\\\\.\\\\d+)?)°?([${getAllDirectionSymbols()}])$`, 'i')\n}\n\nexport function DD (dd) {\n let _degrees = null\n let _direction = null\n\n if (is.plainObject(dd) && conform.schema(dd, SCHEMA)) {\n if (is.defined(dd.direction)) {\n if (dd.degrees >= 0) {\n _degrees = dd.degrees\n _direction = dd.direction\n }\n } else {\n _degrees = dd.degrees\n }\n } else if (is.string(dd)) {\n const pattern = dd.replace(/\\s+/g, '')\n const match = pattern.match(REGEX_SIGNED) ?? pattern.match(dirRegex())\n if (match) {\n _degrees = parseFloat(match[1])\n _direction = match[2] ?? null\n }\n }\n\n return {\n get degrees () { return _degrees },\n get direction () { return _direction },\n get format () { return 'DD' },\n\n isValid () {\n return is.number(_degrees)\n },\n\n toString (decimalPlaces) {\n assert.that(decimalPlaces, is.positiveInteger, 'decimalPlaces must be a positive integer')\n if (!this.isValid()) return ''\n let str = `${_degrees.toFixed(decimalPlaces)}°`\n if (_direction) str += ` ${_direction}`\n return str\n },\n\n toDecimal () {\n if (!this.isValid()) return null\n return DD({ degrees: _degrees, direction: _direction })\n }\n }\n}\n","import { assert, is, conform, optional } from '@kalisio/common-core'\nimport { getAllDirectionSymbols } from '../localization.js'\nimport { isDirection } from '../directions.js'\nimport { DD } from './dd.js'\n\nconst SCHEMA = {\n degrees: is.integer,\n minutes: (v) => is.inRangeExclusiveMax(v, 0, 60),\n direction: optional(isDirection)\n}\n\nconst REGEX_SIGNED = /^(-?\\d{1,3})°(\\d{1,2}(?:\\.\\d+)?)'?$/\n\nfunction dirRegex () {\n return new RegExp(`^(\\\\d{1,3})°(\\\\d{1,2}(?:\\\\.\\\\d+)?)'?([${getAllDirectionSymbols().join('')}])$`, 'i')\n}\n\nexport function DDM (ddm) {\n let _degrees = null\n let _minutes = null\n let _direction = null\n\n if (is.plainObject(ddm) && conform.schema(ddm, SCHEMA)) {\n if (is.defined(ddm.direction)) {\n if (ddm.degrees >= 0) {\n _degrees = ddm.degrees\n _minutes = ddm.minutes\n _direction = ddm.direction\n }\n } else {\n _degrees = ddm.degrees\n _minutes = ddm.minutes\n }\n } else if (is.string(ddm)) {\n const pattern = ddm.replace(/\\s+/g, '')\n const match = pattern.match(REGEX_SIGNED) ?? pattern.match(dirRegex())\n if (match) {\n _degrees = parseFloat(match[1])\n _minutes = parseFloat(match[2])\n _direction = match[3] ?? null\n }\n }\n\n return {\n get degrees () { return _degrees },\n get minutes () { return _minutes },\n get direction () { return _direction },\n get format () { return 'DDM' },\n\n isValid () {\n return is.integer(_degrees) && is.inRangeExclusiveMax(_minutes, 0, 60)\n },\n\n toString (decimalPlaces) {\n assert.that(decimalPlaces, is.positiveInteger, 'decimalPlaces must be a positive integer')\n if (!this.isValid()) return ''\n let str = `${_degrees}° ${_minutes.toFixed(decimalPlaces)}'`\n if (_direction) str += ` ${_direction}`\n return str\n },\n\n toDecimal () {\n if (!this.isValid()) return null\n return DD({ degrees: _degrees + _minutes / 60, direction: _direction })\n }\n }\n}\n","import { is, conform } from '@kalisio/common-core'\nimport { getLatitudeSymbols, getLongitudeSymbols } from '../localization.js'\nimport { isDirection, isEast, isWest } from '../directions.js'\nimport { DD } from './dd.js'\n\nconst SCHEMA = {\n degrees: is.nonNegativeInteger,\n minutes: (v) => is.inRangeExclusiveMax(v, 0, 60),\n direction: isDirection\n}\n\nfunction latRegex () {\n return new RegExp(`^(\\\\d{2})(\\\\d{3})([${getLatitudeSymbols().join('')}])$`, 'i')\n}\n\nfunction lonRegex () {\n return new RegExp(`^(\\\\d{3})(\\\\d{3})([${getLongitudeSymbols().join('')}])$`, 'i')\n}\n\nexport function DDMAero (ddm) {\n let _degrees = null\n let _minutes = null\n let _direction = null\n\n if (is.plainObject(ddm) && conform.schema(ddm, SCHEMA)) {\n _degrees = ddm.degrees\n _minutes = ddm.minutes\n _direction = ddm.direction\n } else if (is.string(ddm)) {\n const pattern = ddm.trim()\n const match = pattern.match(latRegex()) ?? pattern.match(lonRegex())\n if (match) {\n _degrees = parseFloat(match[1])\n _minutes = parseFloat(match[2]) / 10\n _direction = match[3]\n }\n }\n\n return {\n get degrees () { return _degrees },\n get minutes () { return _minutes },\n get direction () { return _direction },\n get format () { return 'DDM_AERO' },\n\n isValid () {\n return is.nonNegativeInteger(_degrees) &&\n is.inRangeExclusiveMax(_minutes, 0, 60) &&\n isDirection(_direction)\n },\n\n toString () {\n if (!this.isValid()) return ''\n const isLon = isEast(_direction) || isWest(_direction)\n const deg = String(_degrees).padStart(isLon ? 3 : 2, '0')\n const min = Math.floor(_minutes * 10).toString().padStart(3, '0')\n return `${deg}${min}${_direction}`\n },\n\n toDecimal () {\n if (!this.isValid()) return null\n return DD({ degrees: _degrees + _minutes / 60, direction: _direction })\n }\n }\n}\n","import { assert, is, conform, optional } from '@kalisio/common-core'\nimport { getAllDirectionSymbols } from '../localization.js'\nimport { isDirection } from '../directions.js'\nimport { DD } from './dd.js'\n\nconst SCHEMA = {\n degrees: is.integer,\n minutes: (v) => is.integer(v) && is.inRange(v, 0, 59),\n seconds: (v) => is.inRangeExclusiveMax(v, 0, 60),\n direction: optional(isDirection)\n}\n\nconst REGEX_SIGNED = /^(-?\\d{1,3})°(\\d{1,2})'(\\d{1,2}(?:\\.\\d+)?)\"?$/\n\nfunction dirRegex () {\n return new RegExp(`^(\\\\d{1,3})°(\\\\d{1,2})'(\\\\d{1,2}(?:\\\\.\\\\d+)?)\"?([${getAllDirectionSymbols().join('')}])$`, 'i')\n}\n\nexport function DMS (dms) {\n let _degrees = null\n let _minutes = null\n let _seconds = null\n let _direction = null\n\n if (is.plainObject(dms) && conform.schema(dms, SCHEMA)) {\n if (is.defined(dms.direction)) {\n if (dms.degrees >= 0) {\n _degrees = dms.degrees\n _minutes = dms.minutes\n _seconds = dms.seconds\n _direction = dms.direction\n }\n } else {\n _degrees = dms.degrees\n _minutes = dms.minutes\n _seconds = dms.seconds\n }\n } else if (is.string(dms)) {\n const pattern = dms.replace(/\\s+/g, '')\n const match = pattern.match(REGEX_SIGNED) ?? pattern.match(dirRegex())\n if (match) {\n _degrees = parseFloat(match[1])\n _minutes = parseFloat(match[2])\n _seconds = parseFloat(match[3])\n _direction = match[4] ?? null\n }\n }\n\n return {\n get degrees () { return _degrees },\n get minutes () { return _minutes },\n get seconds () { return _seconds },\n get direction () { return _direction },\n get format () { return 'DMS' },\n\n isValid () {\n return is.integer(_degrees) &&\n is.integer(_minutes) && is.inRange(_minutes, 0, 59) &&\n is.inRangeExclusiveMax(_seconds, 0, 60)\n },\n\n toString (decimalPlaces) {\n assert.that(decimalPlaces, is.positiveInteger, 'decimalPlaces must be a positive integer')\n if (!this.isValid()) return ''\n let str = `${_degrees}° ${_minutes}' ${_seconds.toFixed(decimalPlaces)}\"`\n if (_direction) str += ` ${_direction}`\n return str\n },\n\n toDecimal () {\n if (!this.isValid()) return null\n return DD({ degrees: _degrees + _minutes / 60 + _seconds / 3600, direction: _direction })\n }\n }\n}\n","import { assert } from '@kalisio/common-core'\nimport { DDM } from './ddm.js'\nimport { DDMAero } from './ddm-aero.js'\nimport { DMS } from './dms.js'\n\nfunction decimalToDDM (dd) {\n const degrees = Math.floor(dd.degrees)\n const minutes = (dd.degrees - degrees) * 60\n return { degrees, minutes, direction: dd.direction }\n}\n\nfunction decimalToDMS (dd) {\n const degrees = Math.floor(dd.degrees)\n const minutesDecimal = (dd.degrees - degrees) * 60\n const minutes = Math.floor(minutesDecimal)\n const seconds = (minutesDecimal - minutes) * 60\n return { degrees, minutes, seconds, direction: dd.direction }\n}\n\nexport const converter = {\n DD: (dd) => {\n assert.that(dd, (v) => v.isValid(), 'dd must be a valid coordinate')\n return dd\n },\n\n DDM: (dd) => {\n assert.that(dd, (v) => v.isValid(), 'dd must be a valid coordinate')\n const { degrees, minutes, direction } = decimalToDDM(dd)\n return DDM(direction ? { degrees, minutes, direction } : { degrees, minutes })\n },\n\n DMS: (dd) => {\n assert.that(dd, (v) => v.isValid(), 'dd must be a valid coordinate')\n const { degrees, minutes, seconds, direction } = decimalToDMS(dd)\n return DMS(direction ? { degrees, minutes, seconds, direction } : { degrees, minutes, seconds })\n },\n\n DDM_AERO: (dd) => {\n assert.that(dd, (v) => v.isValid(), 'dd must be a valid coordinate')\n const { degrees, minutes, direction } = decimalToDDM(dd)\n return DDMAero({ degrees, minutes, direction })\n }\n}\n","import { DD } from './dd.js'\nimport { DDM } from './ddm.js'\nimport { DDMAero } from './ddm-aero.js'\nimport { DMS } from './dms.js'\nexport * from './converter.js'\n\nexport const COORDINATE_FORMATS = {\n DD: 'DD',\n DDM: 'DDM',\n DDM_AERO: 'DDM_AERO',\n DMS: 'DMS'\n}\n\nexport const COORDINATE_MODELS = {\n DD,\n DDM,\n DDM_AERO: DDMAero,\n DMS\n}\n","import { assert, is, has } from '@kalisio/common-core'\nimport { AXES, isLatitude, isLongitude } from './axes.js'\nimport { isDirection, getDirectionAxis } from './directions.js'\nimport { COORDINATE_FORMATS, COORDINATE_MODELS, converter } from './coordinate-formats/index.js'\nexport { COORDINATE_FORMATS, COORDINATE_MODELS } from './coordinate-formats/index.js'\n\nexport const COORDINATE_TRUNCATION_FACTORS = Array.from({ length: 9 }, (_, i) => 10 ** i)\n\nexport function guessCoordinateAxis (coord, dir) {\n assert.that(coord, is.number, 'coord must be a number')\n if (is.defined(dir)) {\n assert.that(dir, isDirection, 'dir must be a direction')\n return getDirectionAxis(dir)\n }\n if (Math.abs(coord) > 90) return AXES.LONGITUDE\n return undefined\n}\n\nexport function getCoordinatePrecision (coord) {\n assert.that(coord, is.number, 'coord must be a number')\n const str = coord.toExponential()\n const [base, exp] = str.split('e').map(Number)\n const decimalsInBase = (base.toString().split('.')[1] || '').length\n return Math.max(0, decimalsInBase - exp)\n}\n\nexport function truncateCoordinate (coord, precision = 7) {\n assert.all([\n { value: coord, validator: is.number, message: 'coord must be a number' },\n { value: precision, validator: (v) => is.inRange(v, 0, 8), message: 'precision must be in range [0, 8]' }\n ])\n const factor = COORDINATE_TRUNCATION_FACTORS[precision]\n return Math.round(coord * factor) / factor\n}\n\nexport function normalizeCoordinate (coord, axis) {\n assert.all([\n { value: coord, validator: is.number, message: 'coord must be a number' },\n { value: axis, validator: (v) => isLongitude(v) || isLatitude(v), message: 'axis must be either a longitude or latitude' }\n ])\n if (isLatitude(axis)) {\n return Math.max(-90, Math.min(90, coord))\n }\n let lon = ((coord + 180) % 360 + 360) % 360 - 180\n if (lon === -180) lon = 180\n if (Object.is(lon, -0)) lon = 0\n return lon\n}\n\nexport function convertCoordinate (from, to) {\n assert.all([\n { value: from, validator: (v) => is.defined(v) && v.isValid(), message: 'from must be a valid coordinate' },\n { value: to, validator: (v) => has.key(converter, v), message: `unknown format: ${to}` }\n ])\n const dd = from.format === COORDINATE_FORMATS.DD ? from : from.toDecimal()\n if (!dd.isValid()) return null\n if (to === COORDINATE_FORMATS.DD) {\n return dd\n }\n return converter[to](dd)\n}\n\nexport function parseCoordinate (pattern) {\n assert.that(pattern, is.nonEmptyString, 'pattern must be a non empty string')\n for (const format of Object.keys(COORDINATE_FORMATS)) {\n const coord = COORDINATE_MODELS[format](pattern)\n if (coord.isValid()) return coord\n }\n return null\n}\n","import { assert, is, conform, optional } from '@kalisio/common-core'\nimport { AXES } from './axes.js'\nimport { isWest, isSouth } from './directions.js'\nimport { guessCoordinateAxis, parseCoordinate, COORDINATE_TRUNCATION_FACTORS } from './coordinate.js'\n\nexport function parsePosition (pattern) {\n assert.that(pattern, (v) => is.nonEmptyString(v), 'pattern must be a non-empty string')\n const parts = pattern.split(/[,;|]/)\n if (parts.length !== 2) return null\n const [first, second] = parts.map(parseCoordinate)\n if (!first || !second) return null\n const firstDD = first.toDecimal()\n const secondDD = second.toDecimal()\n const firstAxis = guessCoordinateAxis(firstDD.degrees, firstDD.direction)\n const secondAxis = guessCoordinateAxis(secondDD.degrees, secondDD.direction)\n // Apply signedDegrees based on direction\n const signedDegrees = (dd) => {\n const { degrees, direction } = dd\n if (!direction) return degrees\n return (isWest(direction) || isSouth(direction)) ? -degrees : degrees\n }\n if (firstAxis === AXES.LONGITUDE && secondAxis === AXES.LATITUDE) return [signedDegrees(firstDD), signedDegrees(secondDD)]\n if (secondAxis === AXES.LONGITUDE && firstAxis === AXES.LATITUDE) return [signedDegrees(secondDD), signedDegrees(firstDD)]\n if (firstAxis === AXES.LONGITUDE && !secondAxis) return [signedDegrees(firstDD), secondDD]\n if (firstAxis === AXES.LATITUDE && !secondAxis) return [signedDegrees(secondDD), signedDegrees(firstDD)]\n if (secondAxis === AXES.LONGITUDE && !firstAxis) return [signedDegrees(secondDD), signedDegrees(firstDD)]\n if (secondAxis === AXES.LATITUDE && !firstAxis) return [signedDegrees(firstDD), signedDegrees(secondDD)]\n if (!firstAxis && !secondAxis) {\n return [\n [signedDegrees(firstDD), signedDegrees(secondDD)],\n [signedDegrees(secondDD), signedDegrees(firstDD)]\n ]\n }\n}\n\nexport function isValidPosition (coordinates) {\n if (!is.arrayOfLengthBetween(coordinates, 2, 3)) return false\n if (!is.number(coordinates[0]) || !is.number(coordinates[1])) return false\n if (!is.inRange(coordinates[0], -180, 180)) return false\n if (!is.inRange(coordinates[1], -90, 90)) return false\n if (coordinates.length === 3 && !is.number(coordinates[2])) return false\n return true\n}\n\nexport function is3DPosition (position) {\n assert.that(position, isValidPosition, 'position must be a valid position')\n return is.arrayOfLength(position, 3)\n}\n\nconst IS_SAME_POSITION_OPTIONS = {\n precision: optional(is.number),\n consider3D: optional(is.boolean)\n}\n\nexport function isSamePosition (position1, position2, options = {}) {\n assert.all([\n {\n value: position1,\n validator: isValidPosition,\n message: 'position1 must be a valid position'\n },\n {\n value: position2,\n validator: isValidPosition,\n message: 'position2 must be a valid position'\n },\n {\n value: options,\n validator: (v) => conform.schema(v, IS_SAME_POSITION_OPTIONS),\n message: 'options must be a valid options object'\n }\n ])\n const { precision = 10, consider3D = false } = options\n const length = consider3D ? Math.max(position1.length, position2.length) : 2\n return Array.from({ length }, (_, i) =>\n (position1[i] ?? 0).toFixed(precision) === (position2[i] ?? 0).toFixed(precision)\n ).every(Boolean)\n}\n\nexport function truncatePosition (position, precision = 7) {\n assert.all([\n { value: position, validator: isValidPosition, message: 'position must be a position' },\n { value: precision, validator: (v) => is.inRange(v, 0, 8), message: 'precision must be in range [0, 8]' }\n ])\n const factor = COORDINATE_TRUNCATION_FACTORS[precision]\n for (let i = 0; i < position.length; i++) {\n position[i] = Math.round(position[i] * factor) / factor\n }\n return position\n}\n","import { assert, is, conform, optional } from '@kalisio/common-core'\nimport { COORDINATE_TRUNCATION_FACTORS } from './coordinate.js'\nimport { isValidPosition, is3DPosition } from './position.js'\n\nexport function isValidBBox (bbox) {\n if (!is.arrayOfLength(bbox, 4) && !is.arrayOfLength(bbox, 6)) return false\n const is2D = bbox.length === 4\n const min = is2D ? [bbox[0], bbox[1]] : [bbox[0], bbox[1], bbox[2]]\n const max = is2D ? [bbox[2], bbox[3]] : [bbox[3], bbox[4], bbox[5]]\n if (!isValidPosition(min)) return false\n if (!isValidPosition(max)) return false\n const [, south] = min\n const [, north] = max\n if (south > north) return false\n if (!is2D && bbox[2] > bbox[5]) return false\n return true\n}\n\nexport function is3DBBox (bbox) {\n assert.that(bbox, isValidBBox, 'bbox must be a valid bounding-box')\n return is.arrayOfLength(bbox, 6)\n}\n\nexport function mergeBBox (bbox1, bbox2) {\n assert.all([\n { value: bbox1, validator: isValidBBox, message: 'bbox1 must be a valid bounding-box' },\n { value: bbox2, validator: isValidBBox, message: 'bbox2 must be a valid bounding-box' }\n ])\n if (is3DBBox(bbox1) && is3DBBox(bbox2)) {\n return [\n Math.min(bbox1[0], bbox2[0]),\n Math.min(bbox1[1], bbox2[1]),\n Math.min(bbox1[2], bbox2[2]),\n Math.max(bbox1[3], bbox2[3]),\n Math.max(bbox1[4], bbox2[4]),\n Math.max(bbox1[5], bbox2[5])\n ]\n }\n return [\n Math.min(bbox1[0], bbox2[0]),\n Math.min(bbox1[1], bbox2[1]),\n Math.max(bbox1[2], bbox2[2]),\n Math.max(bbox1[3], bbox2[3])\n ]\n}\n\nconst COMPUTE_BBOX_OPTIONS_SCHEMA = {\n ignore3D: optional(is.boolean)\n}\n\nexport function computeBBox (positions, options = {}) {\n assert.all([\n {\n value: positions,\n validator: is.nonEmptyArray,\n message: 'positions must be a non-empty array'\n },\n {\n value: positions,\n validator: (v) => v.every(isValidPosition),\n message: 'positions must be an array of valid positions'\n },\n {\n value: options,\n validator: (v) => conform.schema(v, COMPUTE_BBOX_OPTIONS_SCHEMA),\n message: 'options must be a valid options object'\n }\n ])\n const { ignore3D = false } = options\n const has3D = !ignore3D && positions.some(is3DPosition)\n if (has3D) {\n return positions.reduce((acc, pos) => [\n Math.min(acc[0], pos[0]),\n Math.min(acc[1], pos[1]),\n Math.min(acc[2], pos[2] ?? 0),\n Math.max(acc[3], pos[0]),\n Math.max(acc[4], pos[1]),\n Math.max(acc[5], pos[2] ?? 0)\n ], [Infinity, Infinity, Infinity, -Infinity, -Infinity, -Infinity])\n }\n return positions.reduce((acc, pos) => [\n Math.min(acc[0], pos[0]),\n Math.min(acc[1], pos[1]),\n Math.max(acc[2], pos[0]),\n Math.max(acc[3], pos[1])\n ], [Infinity, Infinity, -Infinity, -Infinity])\n}\n\nexport function truncateBBox (bbox, precision = 7) {\n assert.all([\n { value: bbox, validator: isValidBBox, message: 'bbox must be a valid bounding box' },\n { value: precision, validator: (v) => is.inRange(v, 0, 8), message: 'precision must be in range [0, 8]' }\n ])\n const factor = COORDINATE_TRUNCATION_FACTORS[precision]\n for (let i = 0; i < bbox.length; i++) {\n bbox[i] = Math.round(bbox[i] * factor) / factor\n }\n return bbox\n}\n","import { is } from '@kalisio/common-core'\n\nexport const CRS_TYPES = {\n NAME: 'name',\n LINK: 'link'\n}\n\nexport function isLikeCRS (object) {\n if (!is.plainObject(object)) return false\n if (object.type === CRS_TYPES.NAME) {\n return is.nonEmptyString(object.properties?.name)\n }\n if (object.type === CRS_TYPES.LINK) {\n return is.nonEmptyString(object.properties?.href)\n }\n return false\n}\n\nexport function isLikePosition (object) {\n if (!is.arrayOfLengthBetween(object, 2, 3)) return false\n return object.every(is.number)\n}\n\nexport function isLikeBBox (object) {\n if (!is.arrayOfLength(object, 4) && !is.arrayOfLength(object, 6)) return false\n return object.every(is.number)\n}\n\nexport const GEOMETRY_TYPES = {\n POINT: 'Point',\n MULTI_POINT: 'MultiPoint',\n LINESTRING: 'LineString',\n MULTI_LINESTRING: 'MultiLineString',\n POLYGON: 'Polygon',\n MULTI_POLYGON: 'MultiPolygon',\n GEOMETRY_COLLECTION: 'GeometryCollection'\n}\n\nexport function isLikeGeometry (object) {\n if (!is.plainObject(object)) return false\n if (!is.oneOf(object.type, Object.values(GEOMETRY_TYPES))) return false\n if (object.type === GEOMETRY_TYPES.GEOMETRY_COLLECTION) {\n return is.array(object.geometries)\n }\n return is.array(object.coordinates)\n}\n\nexport const FEATURE_TYPES = {\n FEATURE: 'Feature',\n FEATURE_COLLECTION: 'FeatureCollection'\n}\n\nexport function isLikeFeature (object) {\n return is.plainObject(object) &&\n object.type === FEATURE_TYPES.FEATURE\n}\n\nexport function isLikeFeatureCollection (object) {\n return is.plainObject(object) &&\n object.type === FEATURE_TYPES.FEATURE_COLLECTION &&\n is.array(object.features)\n}\n\nexport function isLikeFeatureOrFeatureCollection (object) {\n return isLikeFeature(object) || isLikeFeatureCollection(object)\n}\n\nexport function isLikeGeoJson (object) {\n return isLikeFeatureOrFeatureCollection(object) || isLikeGeometry(object)\n}\n","import { coordAll } from '@turf/meta'\nimport { assert, is, optional, conform } from '@kalisio/common-core'\nimport { FEATURE_TYPES, isLikeGeoJson } from '../is-like.js'\nimport { computeBBox } from '../../../src/foundation/index.js'\n\nconst BOUNDING_BOX_OPTIONS_SCHEMA = {\n ignore3D: optional(is.boolean)\n}\n\nexport function computeGeoJsonBoundingBox (geoJson, options = {}) {\n assert.all([\n { value: geoJson, validator: isLikeGeoJson, message: 'geoJson must be a GeoJson object' },\n { value: options, validator: (v) => conform.schema(v, BOUNDING_BOX_OPTIONS_SCHEMA), message: 'options must be a valid options object' }\n ])\n if (geoJson.type === FEATURE_TYPES.FEATURE) {\n if (!geoJson.geometry) return null\n return computeBBox(coordAll(geoJson.geometry), options)\n }\n if (geoJson.type === FEATURE_TYPES.FEATURE_COLLECTION) {\n const positions = coordAll(geoJson)\n if (!positions.length) return null\n return computeBBox(positions, options)\n }\n // Geometry\n return computeBBox(coordAll(geoJson), options)\n}\n","import { convex } from '@turf/convex'\nimport { coordAll } from '@turf/meta'\nimport { featureCollection, feature } from '@turf/helpers'\nimport { assert } from '@kalisio/common-core'\nimport { FEATURE_TYPES, isLikeGeoJson } from '../is-like.js'\n\nfunction computeConvexHullFromPositions (positions) {\n if (positions.length === 0) return null\n if (positions.length === 1) return { type: 'Point', coordinates: positions[0] }\n if (positions.length === 2) return { type: 'LineString', coordinates: [positions[0], positions[1]] }\n const result = convex(featureCollection(positions.map(p => feature({ type: 'Point', coordinates: p }))))\n if (!result) return { type: 'LineString', coordinates: [positions[0], positions[positions.length - 1]] }\n return result.geometry\n}\n\nexport function computeGeoJsonConvexHull (geoJson) {\n assert.that(geoJson, isLikeGeoJson, 'geoJson must be a GeoJson object')\n if (geoJson.type === FEATURE_TYPES.FEATURE) {\n if (!geoJson.geometry) return null\n return computeGeoJsonConvexHull(geoJson.geometry)\n }\n const positions = coordAll(geoJson).map(p => [p[0], p[1]])\n return computeConvexHullFromPositions(positions)\n}\n","import { Heap } from 'heap-js'\nimport { assert, is, optional, conform } from '@kalisio/common-core'\nimport { FEATURE_TYPES, GEOMETRY_TYPES, isLikeGeoJson } from './is-like.js'\n\nfunction triangleArea (a, b, c) {\n return Math.abs(\n (a[0] * (b[1] - c[1]) +\n b[0] * (c[1] - a[1]) +\n c[0] * (a[1] - b[1])) / 2\n )\n}\n\n// visvalingam-whyatt simplification algorithm\nfunction visvalingam (coords, { tolerance = 0, getWeight = () => 1 } = {}) {\n if (coords.length <= 2) return coords\n\n const pts = coords.map((coord, i) => ({ coord, i, area: Infinity, removed: false, prev: null, next: null }))\n for (let i = 0; i < pts.length; i++) {\n if (i > 0) pts[i].prev = pts[i - 1]\n if (i < pts.length - 1) pts[i].next = pts[i + 1]\n }\n\n const computeArea = (node) => {\n if (!node.prev || !node.next) return Infinity\n const area = triangleArea(node.prev.coord, node.coord, node.next.coord)\n return area * getWeight(node.coord, node.i)\n }\n\n const heap = new Heap((a, b) => a.area - b.area)\n for (let i = 1; i < pts.length - 1; i++) {\n pts[i].area = computeArea(pts[i])\n pts[i]._currentArea = pts[i].area\n heap.push(pts[i])\n }\n\n let maxArea = 0\n\n while (heap.size() > 0) {\n const node = heap.pop()\n if (node.removed) continue\n if (node.area !== node._currentArea) continue\n if (node.area < maxArea) node.area = maxArea\n else maxArea = node.area\n\n if (node.area >= tolerance) break\n\n node.removed = true\n if (node.prev) node.prev.next = node.next\n if (node.next) node.next.prev = node.prev\n\n if (node.prev?.prev) {\n node.prev.area = computeArea(node.prev)\n node.prev._currentArea = node.prev.area\n heap.push(node.prev)\n }\n if (node.next?.next) {\n node.next.area = computeArea(node.next)\n node.next._currentArea = node.next.area\n heap.push(node.next)\n }\n }\n\n const result = []\n let cur = pts[0]\n while (cur) {\n if (!cur.removed) result.push(cur.coord)\n cur = cur.next\n }\n return result\n}\n\nconst SIMPLIFY_OPTIONS_SCHEMA = {\n tolerance: optional(is.number),\n getWeight: optional(is.function)\n}\n\nexport function simplifyGeoJson (geoJson, options = {}) {\n assert.all([\n { value: geoJson, validator: isLikeGeoJson, message: 'geoJson must be a GeoJson object' },\n { value: options, validator: (v) => conform.schema(v, SIMPLIFY_OPTIONS_SCHEMA), message: 'options must be a valid options object' }\n ])\n if (geoJson.type === FEATURE_TYPES.FEATURE) {\n if (geoJson.geometry) simplifyGeoJson(geoJson.geometry, options)\n return geoJson\n }\n if (geoJson.type === FEATURE_TYPES.FEATURE_COLLECTION) {\n for (const feature of geoJson.features) simplifyGeoJson(feature, options)\n return geoJson\n }\n // Geometry\n switch (geoJson.type) {\n case GEOMETRY_TYPES.LINESTRING:\n geoJson.coordinates = visvalingam(geoJson.coordinates, options)\n break\n case GEOMETRY_TYPES.POLYGON:\n case GEOMETRY_TYPES.MULTI_LINESTRING:\n geoJson.coordinates = geoJson.coordinates.map(ring => visvalingam(ring, options))\n break\n case GEOMETRY_TYPES.MULTI_POLYGON:\n geoJson.coordinates = geoJson.coordinates.map(poly => poly.map(ring => visvalingam(ring, options)))\n break\n case GEOMETRY_TYPES.GEOMETRY_COLLECTION:\n geoJson.geometries.forEach(g => simplifyGeoJson(g, options))\n break\n }\n return geoJson\n}\n","import truncate from '@turf/truncate'\nimport { assert, is } from '@kalisio/common-core'\nimport { truncateBBox } from '../foundation/index.js'\nimport { FEATURE_TYPES, GEOMETRY_TYPES, isLikeGeoJson } from './is-like.js'\n\nfunction truncateGeometry (geometry, precision = 7) {\n const result = truncate(geometry, { precision, mutate: true })\n if (result.bbox) truncateBBox(result.bbox, precision)\n return result\n}\n\nfunction truncateFeature (feature, precision) {\n if (feature.type === FEATURE_TYPES.FEATURE) {\n if (feature.geometry) truncateGeometry(feature.geometry, precision)\n } else {\n for (const f of feature.features) truncateFeature(f, precision)\n }\n if (feature.bbox) truncateBBox(feature.bbox, precision)\n return feature\n}\n\nexport function truncateGeoJson (geoJson, precision = 7) {\n assert.all([\n { value: geoJson, validator: isLikeGeoJson, message: 'geoJson must be a valid GeoJson' },\n { value: precision, validator: (v) => is.inRange(v, 0, 8), message: 'precision must be in range [0, 8]' }\n ])\n if (is.oneOf(geoJson.type, Object.values(GEOMETRY_TYPES))) return truncateGeometry(geoJson, precision)\n return truncateFeature(geoJson, precision)\n}\n","import { is } from '@kalisio/common-core'\nimport { getCoordinatePrecision } from '../../foundation'\n\nexport function validatePosition (coordinates) {\n if (!is.arrayOfLengthBetween(coordinates, 2, 3)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid coordinates: must be an array of 2 or 3 coordinates' }],\n warnings: []\n }\n }\n if (!is.number(coordinates[0]) || !is.number(coordinates[1])) {\n return {\n valid: false,\n errors: [{ message: 'Invalid coordinates: longitude and latitude must be numbers' }],\n warnings: []\n }\n }\n if (!is.inRange(coordinates[0], -180, 180)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid coordinates: longitude must be in the range -180 to 180' }],\n warnings: []\n }\n }\n if (!is.inRange(coordinates[1], -90, 90)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid coordinates: latitude must be in the range -90 to 90' }],\n warnings: []\n }\n }\n if (coordinates.length === 3 && !is.number(coordinates[2])) {\n return {\n valid: false,\n errors: [{ message: 'Invalid coordinates: altitude must be a number' }],\n warnings: []\n }\n }\n const response = { valid: true, errors: [], warnings: [] }\n const lonPrecision = getCoordinatePrecision(coordinates[0])\n if (lonPrecision > 6) {\n response.warnings.push({ message: `longitude precision is high (${lonPrecision} decimals, max recommended: 6)` })\n }\n const latPrecision = getCoordinatePrecision(coordinates[1])\n if (latPrecision > 6) {\n response.warnings.push({ message: `latitude precision is high (${latPrecision} decimals, max recommended: 6)` })\n }\n return response\n}\n","import { is } from '@kalisio/common-core'\nimport { validatePosition } from './position.js'\n\nexport function validateBBox (bbox) {\n // Must be array of 4 (2D) or 6 (3D) numbers\n if (!is.arrayOfLength(bbox, 4) && !is.arrayOfLength(bbox, 6)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid bbox: must be an array of 4 (2D) or 6 (3D) numbers' }],\n warnings: []\n }\n }\n const is2D = bbox.length === 4\n const min = is2D ? [bbox[0], bbox[1]] : [bbox[0], bbox[1], bbox[2]]\n const max = is2D ? [bbox[2], bbox[3]] : [bbox[3], bbox[4], bbox[5]]\n const minResult = validatePosition(min)\n if (!minResult.valid) {\n return {\n valid: false,\n errors: minResult.errors.map(e => ({ ...e, message: `Invalid bbox south-west: ${e.message}` })),\n warnings: []\n }\n }\n const maxResult = validatePosition(max)\n if (!maxResult.valid) {\n return {\n valid: false,\n errors: maxResult.errors.map(e => ({ ...e, message: `Invalid bbox north-east: ${e.message}` })),\n warnings: []\n }\n }\n const [west, south] = min\n const [east, north] = max\n if (south > north) {\n return {\n valid: false,\n errors: [{ message: `Invalid bbox: south (${south}) must be <= north (${north})` }],\n warnings: []\n }\n }\n if (!is2D) {\n const minAlt = bbox[2]\n const maxAlt = bbox[5]\n if (minAlt > maxAlt) {\n return {\n valid: false,\n errors: [{ message: `Invalid bbox: min altitude (${minAlt}) must be <= max altitude (${maxAlt})` }],\n warnings: []\n }\n }\n }\n const response = { valid: true, errors: [], warnings: [] }\n if (west > east) {\n response.warnings.push({ message: `bbox crosses the antimeridian (west: ${west} > east: ${east})` })\n }\n // Retrieve warnings from both points\n response.warnings.push(...minResult.warnings.map(w => ({ ...w, message: `south-west: ${w.message}` })))\n response.warnings.push(...maxResult.warnings.map(w => ({ ...w, message: `north-east: ${w.message}` })))\n return response\n}\n","import { is } from '@kalisio/common-core'\nimport { CRS_TYPES } from '../is-like.js'\n\nexport function validateCRS (crs) {\n if (!is.plainObject(crs)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid crs: must be an object' }],\n warnings: []\n }\n }\n switch (crs.type) {\n case CRS_TYPES.NAME: {\n if (!is.nonEmptyString(crs.properties?.name)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid crs: linked crs must have a non-empty properties.name string' }],\n warnings: []\n }\n }\n return { valid: true, errors: [], warnings: [] }\n }\n case CRS_TYPES.LINK: {\n if (!is.nonEmptyString(crs.properties?.href)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid crs: linked crs must have a non-empty properties.href string' }],\n warnings: []\n }\n }\n return { valid: true, errors: [], warnings: [] }\n }\n default:\n return {\n valid: false,\n errors: [{ message: `Invalid crs: unknown type: ${crs.type}` }],\n warnings: []\n }\n }\n}\n","import { is } from '@kalisio/common-core'\nimport { validateBBox } from './bbox.js'\nimport { validateCRS } from './crs.js'\n\nexport function emptyStatistics () {\n return { Feature: 0, FeatureCollection: 0, geometries: {} }\n}\n\nfunction mergeStatistics (...results) {\n const statistics = emptyStatistics()\n for (const result of results) {\n const s = result.statistics\n if (!s) continue\n statistics.Feature += s.Feature ?? 0\n statistics.FeatureCollection += s.FeatureCollection ?? 0\n for (const [type, count] of Object.entries(s.geometries ?? {})) {\n statistics.geometries[type] = (statistics.geometries[type] ?? 0) + count\n }\n }\n return statistics\n}\n\nexport function validateArray (items, validator, path = '') {\n const response = {\n valid: true,\n errors: [],\n warnings: [],\n statistics: emptyStatistics()\n }\n for (let i = 0; i < items.length; i++) {\n const itemPath = `${path}/${i}`\n const result = validator(items[i], itemPath, i)\n\n // Merge statistics before the valid/invalid branch, so invalid items are\n // still counted and the continue below cannot skip the merge.\n if (result.statistics) {\n response.statistics = mergeStatistics(response, result)\n }\n\n if (!result.valid) {\n response.valid = false\n response.errors = response.errors.concat(result.errors.map(e => ({ ...e, path: e.path || itemPath, index: i })))\n continue\n }\n if (!is.empty(result.warnings)) {\n response.warnings = response.warnings.concat(result.warnings.map(w => ({ ...w, path: w.path || itemPath, index: i })))\n }\n }\n return response\n}\n\nexport function validateOptionalCRS (obj, result) {\n if (!is.defined(obj.crs)) return result\n const crsResult = validateCRS(obj.crs)\n if (!crsResult.valid) {\n result.valid = false\n result.errors.push(...crsResult.errors.map(e => ({ ...e, path: '/crs' })))\n }\n result.warnings.push(...crsResult.warnings.map(w => ({ ...w, path: '/crs' })))\n return result\n}\n\nexport function validateOptionalBBox (obj, result, path = '') {\n if (!is.defined(obj.bbox)) return result\n const bboxResult = validateBBox(obj.bbox)\n if (!bboxResult.valid) {\n result.valid = false\n result.errors.push(...bboxResult.errors.map(e => ({ ...e, path: `${path}/bbox` })))\n }\n result.warnings.push(...bboxResult.warnings.map(w => ({ ...w, path: `${path}/bbox` })))\n return result\n}\n","import booleanClockwise from '@turf/boolean-clockwise'\nimport kinks from '@turf/kinks'\nimport { is } from '@kalisio/common-core'\nimport { GEOMETRY_TYPES } from '../is-like.js'\nimport { validatePosition } from './position.js'\nimport { validateOptionalBBox, validateArray } from './utils.js'\n\nfunction validateCoordinatesArray (coordinates, minimumLength = 0, path = '') {\n if (!is.arrayOfLengthAtLeast(coordinates, minimumLength)) {\n return {\n valid: false,\n errors: [{ message: `Invalid coordinates: must have at least ${minimumLength} positions`, path }],\n warnings: []\n }\n }\n return validateArray(coordinates, validatePosition, path)\n}\n\nfunction validateLineStringCoordinates (coordinates, path = '') {\n const result = validateCoordinatesArray(coordinates, 2, path)\n if (!result.valid) return result\n // Check for antimeridian crossings\n for (let i = 0; i < coordinates.length - 1; i++) {\n const lon1 = coordinates[i][0]\n const lon2 = coordinates[i + 1][0]\n if (Math.abs(lon2 - lon1) > 180) {\n result.warnings.push({\n message: `LineString crosses the antimeridian between positions ${i} and ${i + 1}, consider using MultiLineString`,\n path: `${path}/${i}`\n })\n }\n }\n return result\n}\n\nfunction validateMultiLineStringCoordinates (coordinates, path = '') {\n if (!is.nonEmptyArray(coordinates)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid MultiLineString: coordinates must be a non empty array', path }],\n warnings: []\n }\n }\n return validateArray(coordinates, validateLineStringCoordinates, path)\n}\n\nfunction validateLinearRing (coordinates, expectedWindingOrder, path = '') {\n const result = validateCoordinatesArray(coordinates, 4, path)\n if (!result.valid) return result\n // check ring is closed\n const first = coordinates[0]\n const last = coordinates[coordinates.length - 1]\n if (first[0] !== last[0] || first[1] !== last[1]) {\n result.valid = false\n result.errors.push({ message: 'Invalid LinearRing: first and last position must be identical', path })\n return result\n }\n // check winding order\n const isClockwise = booleanClockwise(coordinates)\n const actualWindingOrder = isClockwise ? 'clockwise' : 'counter-clockwise'\n if (actualWindingOrder !== expectedWindingOrder) {\n result.warnings.push({ message: `Ring must be ${expectedWindingOrder} but is ${actualWindingOrder}`, path })\n }\n // check self-intersection\n const intersections = kinks({ type: 'Polygon', coordinates: [coordinates] })\n if (intersections.features.length > 0) {\n result.valid = false\n result.errors.push({ message: `Invalid LinearRing: ${intersections.features.length} self-intersection(s) detected`, path })\n }\n return result\n}\n\nfunction validatePolygonCoordinates (coordinates, path = '') {\n if (!is.nonEmptyArray(coordinates)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid Polygon: coordinates must be a non empty array', path }],\n warnings: []\n }\n }\n return validateArray(coordinates, (ring, p, i) => validateLinearRing(ring, i === 0 ? 'counter-clockwise' : 'clockwise', p), path)\n}\n\nfunction validateMultiPolygonCoordinates (coordinates, path = '') {\n if (!is.nonEmptyArray(coordinates)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid MultiPolygon: coordinates must be a non empty array', path }],\n warnings: []\n }\n }\n return validateArray(coordinates, (c, p) => validatePolygonCoordinates(c, p), path)\n}\n\nfunction validateGeometryCollectionGeometries (geometries, path = '') {\n if (!is.nonEmptyArray(geometries)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid geometries: geometries must be a non empty array', path }],\n warnings: []\n }\n }\n return validateArray(geometries, (g, p) => validateGeometry(g, p), path)\n}\n\nexport function validateGeometry (geometry, path = '') {\n if (!is.nonEmptyObject(geometry)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid geometry: geometry must be a non empty object', path }],\n warnings: []\n }\n }\n const coordsPath = `${path}/coordinates`\n let result\n switch (geometry.type) {\n case GEOMETRY_TYPES.POINT: {\n const positionResult = validatePosition(geometry.coordinates, coordsPath)\n result = {\n valid: positionResult.valid,\n errors: positionResult.errors.map(e => ({ ...e, path: coordsPath })),\n warnings: positionResult.warnings.map(w => ({ ...w, path: coordsPath }))\n }\n break\n }\n case GEOMETRY_TYPES.MULTI_POINT: {\n result = validateCoordinatesArray(geometry.coordinates, 0, coordsPath)\n break\n }\n case GEOMETRY_TYPES.LINESTRING: {\n result = validateLineStringCoordinates(geometry.coordinates, coordsPath)\n break\n }\n case GEOMETRY_TYPES.MULTI_LINESTRING: {\n result = validateMultiLineStringCoordinates(geometry.coordinates, coordsPath)\n break\n }\n case GEOMETRY_TYPES.POLYGON: {\n result = validatePolygonCoordinates(geometry.coordinates, coordsPath)\n break\n }\n case GEOMETRY_TYPES.MULTI_POLYGON: {\n result = validateMultiPolygonCoordinates(geometry.coordinates, coordsPath)\n break\n }\n case GEOMETRY_TYPES.GEOMETRY_COLLECTION: {\n result = validateGeometryCollectionGeometries(geometry.geometries, `${path}/geometries`)\n break\n }\n default:\n return {\n valid: false,\n errors: [{ message: `Invalid geometry type: ${geometry.type}`, path }],\n warnings: []\n }\n }\n result = validateOptionalBBox(geometry, result, path)\n // Count this geometry by its own type. A GeometryCollection counts as one\n // and its members are NOT decomposed, so we overwrite any statistics that\n // bubbled up from the members.\n result.statistics = { geometries: { [geometry.type]: 1 } }\n return result\n}\n","import { assert, is } from '@kalisio/common-core'\nimport { FEATURE_TYPES, GEOMETRY_TYPES } from '../is-like.js'\nimport { emptyStatistics, validateArray, validateOptionalBBox, validateOptionalCRS } from './utils.js'\nimport { validateGeometry } from './geometry.js'\n\nfunction validateFeature (feature, path = '') {\n if (!is.nonEmptyObject(feature)) {\n return {\n valid: false,\n errors: [{ message: 'Invalid feature: must be a non empty object', path }],\n warnings: [],\n statistics: emptyStatistics()\n }\n }\n if (feature.type === FEATURE_TYPES.FEATURE) {\n if (is.nonEmptyObject(feature.geometry)) {\n const result = validateGeometry(feature.geometry, `${path}/geometry`)\n const bboxResult = validateOptionalBBox(feature, result, path)\n return {\n ...bboxResult,\n statistics: {\n Feature: 1,\n FeatureCollection: 0,\n // Geometry counting is owned by validateGeometry.\n geometries: { ...result.statistics.geometries }\n }\n }\n }\n return {\n valid: true,\n errors: [],\n warnings: [{ message: 'Feature has no geometry', path }],\n statistics: { Feature: 1, FeatureCollection: 0, geometries: {} }\n }\n }\n if (feature.type === FEATURE_TYPES.FEATURE_COLLECTION) {\n if (is.nonEmptyArray(feature.features)) {\n const result = validateArray(feature.features, validateFeature, `${path}/features`)\n const bboxResult = validateOptionalBBox(feature, result, path)\n return {\n ...bboxResult,\n statistics: { ...result.statistics, FeatureCollection: result.statistics.FeatureCollection + 1 }\n }\n }\n return {\n valid: false,\n errors: [{ message: 'Invalid FeatureCollection: features must be a non empty array', path }],\n warnings: [],\n statistics: emptyStatistics()\n }\n }\n return {\n valid: false,\n errors: [{ message: `Invalid feature: unknown type: ${feature.type}`, path }],\n warnings: [],\n statistics: emptyStatistics()\n }\n}\n\nexport function validateGeoJson (geoJson) {\n assert.that(geoJson, is.nonEmptyObject, 'geojson must be a non empty object')\n if (is.oneOf(geoJson.type, Object.values(GEOMETRY_TYPES))) {\n const result = validateGeometry(geoJson, '')\n const withBBox = validateOptionalBBox(geoJson, result, '')\n const withCRS = validateOptionalCRS(geoJson, withBBox)\n return {\n ...withCRS,\n // Geometry counting is owned by validateGeometry.\n statistics: { Feature: 0, FeatureCollection: 0, geometries: { ...result.statistics.geometries } }\n }\n }\n if (geoJson.type === FEATURE_TYPES.FEATURE || geoJson.type === FEATURE_TYPES.FEATURE_COLLECTION) {\n const result = validateFeature(geoJson, '')\n return validateOptionalCRS(geoJson, result)\n }\n return {\n valid: false,\n errors: [{ message: 'Invalid GeoJson: type must be either a Geometry, a Feature or a FeatureCollection', path: '' }],\n warnings: [],\n statistics: emptyStatistics()\n }\n}\n"],"names":["AXES","isAxis","axis","assert","is","isLatitude","isLongitude","isAltitude","LOCALE_SCHEMA","LOCALES","en","fr","CURRENT_LOCALE","FALLBACK_LOCALE","listLocales","registerLocale","code","content","v","has","conform","setLocale","getLocale","getLocaleByCode","getActiveLocales","collectSymbols","keys","symbols","DIRECTIONS","key","getLatitudeSymbols","getLongitudeSymbols","getAllDirectionSymbols","getAll","isDirectionOf","type","dir","value","label","symbol","getDirections","directions","getNorth","getSouth","getEast","getWest","isDirection","isNorth","isSouth","isEast","isWest","getDirectionAxis","SCHEMA","optional","REGEX_SIGNED","dirRegex","DD","dd","_degrees","_direction","pattern","match","decimalPlaces","str","DDM","ddm","_minutes","latRegex","lonRegex","DDMAero","isLon","deg","min","DMS","dms","_seconds","decimalToDDM","degrees","minutes","decimalToDMS","minutesDecimal","seconds","converter","direction","COORDINATE_FORMATS","COORDINATE_MODELS","COORDINATE_TRUNCATION_FACTORS","_","i","guessCoordinateAxis","coord","getCoordinatePrecision","base","exp","decimalsInBase","truncateCoordinate","precision","factor","normalizeCoordinate","lon","convertCoordinate","from","to","parseCoordinate","format","parsePosition","parts","first","second","firstDD","secondDD","firstAxis","secondAxis","signedDegrees","isValidPosition","coordinates","is3DPosition","position","IS_SAME_POSITION_OPTIONS","isSamePosition","position1","position2","options","consider3D","length","truncatePosition","isValidBBox","bbox","is2D","max","south","north","is3DBBox","mergeBBox","bbox1","bbox2","COMPUTE_BBOX_OPTIONS_SCHEMA","computeBBox","positions","ignore3D","acc","pos","truncateBBox","CRS_TYPES","isLikeCRS","object","isLikePosition","isLikeBBox","GEOMETRY_TYPES","isLikeGeometry","FEATURE_TYPES","isLikeFeature","isLikeFeatureCollection","isLikeFeatureOrFeatureCollection","isLikeGeoJson","BOUNDING_BOX_OPTIONS_SCHEMA","computeGeoJsonBoundingBox","geoJson","coordAll","computeConvexHullFromPositions","result","convex","featureCollection","p","feature","computeGeoJsonConvexHull","triangleArea","a","b","c","visvalingam","coords","tolerance","getWeight","pts","computeArea","node","heap","Heap","maxArea","cur","SIMPLIFY_OPTIONS_SCHEMA","simplifyGeoJson","ring","poly","g","truncateGeometry","geometry","truncate","truncateFeature","f","truncateGeoJson","validatePosition","response","lonPrecision","latPrecision","validateBBox","minResult","e","maxResult","west","east","minAlt","maxAlt","w","validateCRS","crs","emptyStatistics","mergeStatistics","results","statistics","s","count","validateArray","items","validator","path","itemPath","validateOptionalCRS","obj","crsResult","validateOptionalBBox","bboxResult","validateCoordinatesArray","minimumLength","validateLineStringCoordinates","lon1","lon2","validateMultiLineStringCoordinates","validateLinearRing","expectedWindingOrder","last","actualWindingOrder","booleanClockwise","intersections","kinks","validatePolygonCoordinates","validateMultiPolygonCoordinates","validateGeometryCollectionGeometries","geometries","validateGeometry","coordsPath","positionResult","validateFeature","validateGeoJson","withBBox"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";var De=Object.create;var we=Object.defineProperty;var xe=Object.getOwnPropertyDescriptor;var Ae=Object.getOwnPropertyNames;var Ce=Object.getPrototypeOf,Ie=Object.prototype.hasOwnProperty;var Le=(i,f,g,u)=>{if(f&&typeof f=="object"||typeof f=="function")for(let C of Ae(f))!Ie.call(i,C)&&C!==g&&we(i,C,{get:()=>f[C],enumerable:!(u=xe(f,C))||u.enumerable});return i};var ve=(i,f,g)=>(g=i!=null?De(Ce(i)):{},Le(f||!i||!i.__esModule?we(g,"default",{value:i,enumerable:!0}):g,i));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("../ring-CnFBeolv.cjs"),pe=require("../geojson-QgqoCFjn.cjs");require("@turf/convex");require("@turf/meta");require("@turf/helpers");const Se=require("@tmcw/togeojson");var ue={exports:{}};var Fe=ue.exports,ke;function Pe(){return ke||(ke=1,(function(i,f){((g,u)=>{i.exports=u()})(Fe,function g(){var u=typeof self<"u"?self:typeof window<"u"?window:u!==void 0?u:{},C=!u.document&&!!u.postMessage,he=u.IS_PAPA_WORKER||!1,ie={},be=0,h={};function ge(t){return t.charCodeAt(0)===65279?t.slice(1):t}function W(t){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(e){var r=le(e);r.chunkSize=parseInt(r.chunkSize),e.step||e.chunk||(r.chunkSize=null),this._handle=new _e(r),(this._handle.streamer=this)._config=r}).call(this,t),this.parseChunk=function(e,r){var a=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<a){let y=this._config.newline;y||(n=this._config.quoteChar||'"',y=this._handle.guessLineEndings(e,n)),e=[...e.split(y).slice(a)].join(y)}this.isFirstChunk&&T(this._config.beforeFirstChunk)&&(n=this._config.beforeFirstChunk(e))!==void 0&&(e=n),this.isFirstChunk=!1,this._halted=!1;var a=this._partialLine+e,n=(this._partialLine="",this._handle.parse(a,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(e=n.meta.cursor,a=(this._finished||(this._partialLine=a.substring(e-this._baseIndex),this._baseIndex=e),n&&n.data&&(this._rowCount+=n.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),he)u.postMessage({results:n,workerId:h.WORKER_ID,finished:a});else if(T(this._config.chunk)&&!r){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=n=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!a||!T(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(e){T(this._config.error)?this._config.error(e):he&&this._config.error&&u.postMessage({workerId:h.WORKER_ID,error:e,finished:!1})}}function se(t){var e;(t=t||{}).chunkSize||(t.chunkSize=h.RemoteChunkSize),W.call(this,t),this._nextChunk=C?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(r){this._input=r,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(e=new XMLHttpRequest,this._config.withCredentials&&(e.withCredentials=this._config.withCredentials),C||(e.onload=$(this._chunkLoaded,this),e.onerror=$(this._chunkError,this)),e.ontimeout=$(this._chunkTimeout,this),e.open(this._config.downloadRequestBody?"POST":"GET",this._input,!C),this._config.downloadTimeout&&!C&&(e.timeout=this._config.downloadTimeout),this._config.downloadRequestHeaders){var r,a=this._config.downloadRequestHeaders;for(r in a)e.setRequestHeader(r,a[r])}var n;this._config.chunkSize&&(n=this._start+this._config.chunkSize-1,e.setRequestHeader("Range","bytes="+this._start+"-"+n));try{e.send(this._config.downloadRequestBody)}catch(y){this._chunkError(y.message)}C&&e.status===0&&this._chunkError()}},this._chunkLoaded=function(){e.readyState===4&&(e.status<200||400<=e.status?this._chunkError():(this._start+=this._config.chunkSize||e.responseText.length,this._finished=!this._config.chunkSize||this._start>=(r=>(r=r.getResponseHeader("Content-Range"))!==null?parseInt(r.substring(r.lastIndexOf("/")+1)):-1)(e),this.parseChunk(e.responseText)))},this._chunkError=function(r){r=e.statusText||r,this._sendError(new Error(r))},this._chunkTimeout=function(){this._chunkError("Request timed out after "+this._config.downloadTimeout+"ms")}}function ae(t){(t=t||{}).chunkSize||(t.chunkSize=h.LocalChunkSize),W.call(this,t);var e,r,a=typeof FileReader<"u";this.stream=function(n){this._input=n,r=n.slice||n.webkitSlice||n.mozSlice,a?((e=new FileReader).onload=$(this._chunkLoaded,this),e.onerror=$(this._chunkError,this)):e=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var n=this._input,y=(this._config.chunkSize&&(y=Math.min(this._start+this._config.chunkSize,this._input.size),n=r.call(n,this._start,y)),e.readAsText(n,this._config.encoding));a||this._chunkLoaded({target:{result:y}})},this._chunkLoaded=function(n){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(n.target.result)},this._chunkError=function(){this._sendError(e.error)}}function Y(t){var e;W.call(this,t=t||{}),this.stream=function(r){return e=r,this._nextChunk()},this._nextChunk=function(){var r,a;if(!this._finished)return r=this._config.chunkSize,e=r?(a=e.substring(0,r),e.substring(r)):(a=e,""),this._finished=!e,this.parseChunk(a)}}function oe(t){W.call(this,t=t||{});var e=[],r=!0,a=!1;this.pause=function(){W.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){W.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(n){this._input=n,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){a&&e.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),e.length?this.parseChunk(e.shift()):r=!0},this._streamData=$(function(n){try{e.push(typeof n=="string"?n:n.toString(this._config.encoding)),r&&(r=!1,this._checkIsFinished(),this.parseChunk(e.shift()))}catch(y){this._streamError(y)}},this),this._streamError=$(function(n){this._streamCleanUp(),this._sendError(n)},this),this._streamEnd=$(function(){this._streamCleanUp(),a=!0,this._streamData("")},this),this._streamCleanUp=$(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function _e(t){var e,r,a,n,y=Math.pow(2,53),F=-y,z=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,J=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,O=this,P=0,d=0,M=!1,c=!1,p=[],s={data:[],errors:[],meta:{}};function U(E){return t.skipEmptyLines==="greedy"?E.join("").trim()==="":E.length===1&&E[0].length===0}function k(){if(s&&a&&(q("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+h.DefaultDelimiter+"'"),a=!1),t.skipEmptyLines&&(s.data=s.data.filter(function(o){return!U(o)})),D()){let o=function(x){p.push(x)};if(s)if(Array.isArray(s.data[0])){for(var E=0;D()&&E<s.data.length;E++)s.data[E].forEach(o);s.data.splice(0,1)}else s.data.forEach(o)}function _(o,x){for(var I=t.header?{}:[],R=0;R<o.length;R++){var w=R,m=o[R],m=((N,l)=>(S=>(t.dynamicTypingFunction&&t.dynamicTyping[S]===void 0&&(t.dynamicTyping[S]=t.dynamicTypingFunction(S)),(t.dynamicTyping[S]||t.dynamicTyping)===!0))(N)?l==="true"||l==="TRUE"||l!=="false"&&l!=="FALSE"&&((S=>{if(z.test(S)&&(S=parseFloat(S),F<S&&S<y))return 1})(l)?parseFloat(l):J.test(l)?new Date(l):l===""?null:l):l)(w=t.header?R>=p.length?"__parsed_extra":p[R]:w,m=t.transform?t.transform(m,w):m);w==="__parsed_extra"?(I[w]=I[w]||[],I[w].push(m)):I[w]=m}return t.header&&(R>p.length?q("FieldMismatch","TooManyFields","Too many fields: expected "+p.length+" fields but parsed "+R,d+x):R<p.length&&q("FieldMismatch","TooFewFields","Too few fields: expected "+p.length+" fields but parsed "+R,d+x)),I}var b;s&&(t.header||t.dynamicTyping||t.transform)&&(b=1,!s.data.length||Array.isArray(s.data[0])?(s.data=s.data.map(_),b=s.data.length):s.data=_(s.data,0),t.header&&s.meta&&(s.meta.fields=p),d+=b)}function D(){return t.header&&p.length===0}function q(E,_,b,o){E={type:E,code:_,message:b},o!==void 0&&(E.row=o),s.errors.push(E)}T(t.step)&&(n=t.step,t.step=function(E){s=E,D()?k():(k(),s.data.length!==0&&(P+=E.data.length,t.preview&&P>t.preview?r.abort():(s.data=s.data[0],n(s,O))))}),this.parse=function(E,_,b){var o=t.quoteChar||'"',o=(t.newline||(t.newline=this.guessLineEndings(E,o)),a=!1,t.delimiter?T(t.delimiter)&&(t.delimiter=t.delimiter(E),s.meta.delimiter=t.delimiter):((o=((x,I,R,w,m)=>{var N,l,S,Q;m=m||[","," ","|",";",h.RECORD_SEP,h.UNIT_SEP];for(var V=0;V<m.length;V++){for(var B,te=m[V],L=0,H=0,A=0,j=(S=void 0,new de({comments:w,delimiter:te,newline:I,preview:10}).parse(x)),G=0;G<j.data.length;G++)R&&U(j.data[G])?A++:(B=j.data[G].length,H+=B,S===void 0?S=B:0<B&&(L+=Math.abs(B-S),S=B));0<j.data.length&&(H/=j.data.length-A),1.99<H&&(l===void 0||L<l||L===l&&Q<H)&&(l=L,N=te,Q=H)}return{successful:!!(t.delimiter=N),bestDelimiter:N}})(E,t.newline,t.skipEmptyLines,t.comments,t.delimitersToGuess)).successful?t.delimiter=o.bestDelimiter:(a=!0,t.delimiter=h.DefaultDelimiter),s.meta.delimiter=t.delimiter),le(t));return o.header=D(),t.preview&&t.header&&o.preview++,e=E,r=new de(o),s=r.parse(e,_,b),k(),M?{meta:{paused:!0}}:s||{meta:{paused:!1}}},this.paused=function(){return M},this.pause=function(){M=!0,r.abort(),e=T(t.chunk)?"":e.substring(r.getCharIndex())},this.resume=function(){O.streamer._halted?(M=!1,O.streamer.parseChunk(e,!0)):setTimeout(O.resume,3)},this.aborted=function(){return c},this.abort=function(){c=!0,r.abort(),s.meta.aborted=!0,T(t.complete)&&t.complete(s),e=""},this.guessLineEndings=function(x,o){x=x.substring(0,1048576);var o=new RegExp(ee(o)+"([^]*?)"+ee(o),"gm"),b=(x=x.replace(o,"")).split("\r"),o=x.split(`
|
|
2
|
+
`),x=1<o.length&&o[0].length<b[0].length;if(b.length===1||x)return`
|
|
3
|
+
`;for(var I=0,R=0;R<b.length;R++)b[R][0]===`
|
|
4
|
+
`&&I++;return I>=b.length/2?`\r
|
|
5
|
+
`:"\r"}}function ee(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function de(t){var e=(t=t||{}).delimiter,r=t.newline,a=t.comments,n=t.step,y=t.preview,F=t.fastMode,z=null,J=!1,O=t.quoteChar==null?'"':t.quoteChar,P=O;if(t.escapeChar!==void 0&&(P=t.escapeChar),(typeof e!="string"||-1<h.BAD_DELIMITERS.indexOf(e))&&(e=","),a===e)throw new Error("Comment character same as delimiter");a===!0?a="#":(typeof a!="string"||-1<h.BAD_DELIMITERS.indexOf(a))&&(a=!1),r!==`
|
|
6
|
+
`&&r!=="\r"&&r!==`\r
|
|
7
|
+
`&&(r=`
|
|
8
|
+
`);var d=0,M=!1;this.parse=function(c,p,s){if(typeof c!="string")throw new Error("Input must be a string");var U=c.length,k=e.length,D=r.length,q=a.length,E=T(n),_=[],b=[],o=[],x=d=0;if(!c)return L();if(F||F!==!1&&c.indexOf(O)===-1){for(var I=c.split(r),R=0;R<I.length;R++){if(o=I[R],d+=o.length,R!==I.length-1)d+=r.length;else if(s)return L();if(!a||o.substring(0,q)!==a){if(E){if(_=[],Q(o.split(e)),H(),M)return L()}else Q(o.split(e));if(y&&y<=R)return _=_.slice(0,y),L(!0)}}return L()}for(var w=c.indexOf(e,d),m=c.indexOf(r,d),N=new RegExp(ee(P)+ee(O),"g"),l=c.indexOf(O,d);;)if(c[d]===O)for(l=d,d++;;){if((l=c.indexOf(O,l+1))===-1)return s||b.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:_.length,index:d}),B();if(l===U-1)return B(c.substring(d,l).replace(N,O));if(O===P&&c[l+1]===P)l++;else if(O===P||l===0||c[l-1]!==P){w!==-1&&w<l+1&&(w=c.indexOf(e,l+1));var S=V((m=m!==-1&&m<l+1?c.indexOf(r,l+1):m)===-1?w:Math.min(w,m));if(c.substr(l+1+S,k)===e){o.push(c.substring(d,l).replace(N,O)),c[d=l+1+S+k]!==O&&(l=c.indexOf(O,d)),w=c.indexOf(e,d),m=c.indexOf(r,d);break}if(S=V(m),c.substring(l+1+S,l+1+S+D)===r){if(o.push(c.substring(d,l).replace(N,O)),te(l+1+S+D),w=c.indexOf(e,d),l=c.indexOf(O,d),E&&(H(),M))return L();if(y&&_.length>=y)return L(!0);break}b.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:_.length,index:d}),l++}}else if(a&&o.length===0&&c.substring(d,d+q)===a){if(m===-1)return L();d=m+D,m=c.indexOf(r,d),w=c.indexOf(e,d)}else if(w!==-1&&(w<m||m===-1))o.push(c.substring(d,w)),d=w+k,w=c.indexOf(e,d);else{if(m===-1)break;if(o.push(c.substring(d,m)),te(m+D),E&&(H(),M))return L();if(y&&_.length>=y)return L(!0)}return B();function Q(A){_.push(A),x=d}function V(A){var j=0;return j=A!==-1&&(A=c.substring(l+1,A))&&A.trim()===""?A.length:j}function B(A){return s||(A===void 0&&(A=c.substring(d)),o.push(A),d=U,Q(o),E&&H()),L()}function te(A){d=A,Q(o),o=[],m=c.indexOf(r,d)}function L(A){if(t.header&&!p&&_.length&&!J){var j=_[0],G=Object.create(null),ce=new Set(j);let ye=!1;for(let Z=0;Z<j.length;Z++){let K=ge(j[Z]);if(G[K=T(t.transformHeader)?t.transformHeader(K,Z):K]){let re,Re=G[K];for(;re=K+"_"+Re,Re++,ce.has(re););ce.add(re),j[Z]=re,G[K]++,ye=!0,(z=z===null?{}:z)[re]=K}else G[K]=1,j[Z]=K;ce.add(K)}ye&&console.warn("Duplicate headers found and renamed."),J=!0}return{data:_,errors:b,meta:{delimiter:e,linebreak:r,aborted:M,truncated:!!A,cursor:x+(p||0),renamedHeaders:z}}}function H(){n(L()),_=[],b=[]}},this.abort=function(){M=!0},this.getCharIndex=function(){return d}}function Te(t){var e=t.data,r=ie[e.workerId],a=!1;if(e.error)r.userError(e.error,e.file);else if(e.results&&e.results.data){var n={abort:function(){a=!0,me(e.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:Ee,resume:Ee};if(T(r.userStep)){for(var y=0;y<e.results.data.length&&(r.userStep({data:e.results.data[y],errors:e.results.errors,meta:e.results.meta},n),!a);y++);delete e.results}else T(r.userChunk)&&(r.userChunk(e.results,n,e.file),delete e.results)}e.finished&&!a&&me(e.workerId,e.results)}function me(t,e){var r=ie[t];T(r.userComplete)&&r.userComplete(e),r.terminate(),delete ie[t]}function Ee(){throw new Error("Not implemented.")}function le(t){if(typeof t!="object"||t===null)return t;var e,r=Array.isArray(t)?[]:{};for(e in t)r[e]=le(t[e]);return r}function $(t,e){return function(){t.apply(e,arguments)}}function T(t){return typeof t=="function"}return h.parse=function(t,e){var r=(e=e||{}).dynamicTyping||!1;if(T(r)&&(e.dynamicTypingFunction=r,r={}),e.dynamicTyping=r,e.transform=!!T(e.transform)&&e.transform,e.downloadTimeout!==void 0){var r=parseInt(e.downloadTimeout);if(isNaN(r))throw new Error("Config downloadTimeout value ("+e.downloadTimeout+") not parsable by parseInt(val).");e.downloadTimeout=r}if(!e.worker||!h.WORKERS_SUPPORTED)return r=null,h.NODE_STREAM_INPUT,typeof t=="string"?(t=ge(t),r=new(e.download?se:Y)(e)):t.readable===!0&&T(t.read)&&T(t.on)?r=new oe(e):(u.File&&t instanceof File||t instanceof Object)&&(r=new ae(e)),r.stream(t);(r=(()=>{var a;return!!h.WORKERS_SUPPORTED&&(a=(()=>{var n=u.URL||u.webkitURL||null,y=g.toString();return h.BLOB_URL||(h.BLOB_URL=n.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",y,")();"],{type:"text/javascript"})))})(),(a=new u.Worker(a)).onmessage=Te,a.id=be++,ie[a.id]=a)})()).userStep=e.step,r.userChunk=e.chunk,r.userComplete=e.complete,r.userError=e.error,e.step=T(e.step),e.chunk=T(e.chunk),e.complete=T(e.complete),e.error=T(e.error),delete e.worker,r.postMessage({input:t,config:e,workerId:r.id})},h.unparse=function(t,e){var r=!1,a=!0,n=",",y=`\r
|
|
9
|
+
`,F='"',z=F+F,J=!1,O=null,P=!1,d=((()=>{if(typeof e=="object"){if(typeof e.delimiter!="string"||h.BAD_DELIMITERS.filter(function(p){return e.delimiter.indexOf(p)!==-1}).length||(n=e.delimiter),typeof e.quotes!="boolean"&&typeof e.quotes!="function"&&!Array.isArray(e.quotes)||(r=e.quotes),typeof e.skipEmptyLines!="boolean"&&typeof e.skipEmptyLines!="string"||(J=e.skipEmptyLines),typeof e.newline=="string"&&(y=e.newline),typeof e.quoteChar=="string"&&(F=e.quoteChar,z=F+F),typeof e.header=="boolean"&&(a=e.header),Array.isArray(e.columns)){if(e.columns.length===0)throw new Error("Option columns is empty");O=e.columns}e.escapeChar!==void 0&&(z=e.escapeChar+F),e.escapeFormulae instanceof RegExp?P=e.escapeFormulae:typeof e.escapeFormulae=="boolean"&&e.escapeFormulae&&(P=/^[=+\-@\t\r].*$/)}})(),new RegExp(ee(F),"g"));if(typeof t=="string"&&(t=JSON.parse(t)),Array.isArray(t)){if(!t.length||Array.isArray(t[0]))return M(null,t,J);if(typeof t[0]=="object")return M(O||Object.keys(t[0]),t,J)}else if(typeof t=="object")return typeof t.data=="string"&&(t.data=JSON.parse(t.data)),Array.isArray(t.data)&&(t.fields||(t.fields=t.meta&&t.meta.fields||O),t.fields||(t.fields=Array.isArray(t.data[0])?t.fields:typeof t.data[0]=="object"?Object.keys(t.data[0]):[]),Array.isArray(t.data[0])||typeof t.data[0]=="object"||(t.data=[t.data])),M(t.fields||[],t.data||[],J);throw new Error("Unable to serialize unrecognized input");function M(p,s,U){var k="",D=(typeof p=="string"&&(p=JSON.parse(p)),typeof s=="string"&&(s=JSON.parse(s)),Array.isArray(p)&&0<p.length),q=!Array.isArray(s[0]);if(D&&a){for(var E=0;E<p.length;E++)0<E&&(k+=n),k+=c(p[E],E);0<s.length&&(k+=y)}for(var _=0;_<s.length;_++){var b=(D?p:s[_]).length,o=!1,x=D?Object.keys(s[_]).length===0:s[_].length===0;if(U&&!D&&(o=U==="greedy"?s[_].join("").trim()==="":s[_].length===1&&s[_][0].length===0),U==="greedy"&&D){for(var I=[],R=0;R<b;R++){var w=q?p[R]:R;I.push(s[_][w])}o=I.join("").trim()===""}if(!o){for(var m=0;m<b;m++){0<m&&!x&&(k+=n);var N=D&&q?p[m]:m;k+=c(s[_][N],m)}_<s.length-1&&(!U||0<b&&!x)&&(k+=y)}}return k}function c(p,s){var U,k,D;return p==null?"":p.constructor===Date?isNaN(p.getTime())?"":p.toISOString():(D=!1,P&&typeof p=="string"&&P.test(p)&&(p="'"+p,D=!0),k=(U=p.toString()).replace(d,z),(D=D||r===!0||typeof r=="function"&&r(p,s)||Array.isArray(r)&&r[s]||((q,E)=>{for(var _=0;_<E.length;_++)if(-1<q.indexOf(E[_]))return!0;return!1})(k,h.BAD_DELIMITERS)||-1<k.indexOf(n)||-1<U.indexOf(F)||k.charAt(0)===" "||k.charAt(k.length-1)===" ")?F+k+F:k)}},h.RECORD_SEP="",h.UNIT_SEP="",h.BYTE_ORDER_MARK="\uFEFF",h.BAD_DELIMITERS=["\r",`
|
|
10
|
+
`,'"',h.BYTE_ORDER_MARK],h.WORKERS_SUPPORTED=!C&&!!u.Worker,h.NODE_STREAM_INPUT=1,h.LocalChunkSize=10485760,h.RemoteChunkSize=5242880,h.DefaultDelimiter=",",h.Parser=de,h.ParserHandle=_e,h.NetworkStreamer=se,h.FileStreamer=ae,h.StringStreamer=Y,h.ReadableStreamStreamer=oe,he&&(u.onmessage=function(t){t=t.data,h.WORKER_ID===void 0&&t&&(h.WORKER_ID=t.workerId),typeof t.input=="string"?u.postMessage({workerId:h.WORKER_ID,results:h.parse(t.input,t.config),finished:!0}):(u.File&&t.input instanceof File||t.input instanceof Object)&&(t=h.parse(t.input,t.config))&&u.postMessage({workerId:h.WORKER_ID,results:t,finished:!0})}),(se.prototype=Object.create(W.prototype)).constructor=se,(ae.prototype=Object.create(W.prototype)).constructor=ae,(Y.prototype=Object.create(Y.prototype)).constructor=Y,(oe.prototype=Object.create(W.prototype)).constructor=oe,h})})(ue)),ue.exports}Pe();async function Oe(i){const f=await fetch(i);if(!f.ok){const g=new Error(`HTTP ${f.status} ${f.statusText}`);throw g.code=X.ERROR_CODES.HTTP_ERROR,g.status=f.status,g.statusText=f.statusText,g}return f.text()}function Me(i,f={}){const{encoding:g="utf-8"}=f;if(typeof Blob<"u"&&i instanceof Blob)return()=>i.text();if(i instanceof URL)return()=>Oe(i);if(v.t.string(i))return v.h.node&&!v.t.url(i)?async()=>{const{readFile:C}=await import("node:fs/promises");return C(i,g)}:()=>Oe(i);const u=new Error("source must be a URL, a string locator or a File/Blob");throw u.code=X.ERROR_CODES.UNSUPPORTED_SOURCE,u}const X={ERROR_CODES:{UNSUPPORTED_SOURCE:"UNSUPPORTED_SOURCE",READ_FAILED:"READ_FAILED",HTTP_ERROR:"HTTP_ERROR"},READ_OPTIONS_SCHEMA:{encoding:v.O(v.t.nonEmptyString)},async readAsText(i,f={}){v.a.all([{value:i,validator:v.t.defined,message:"source must be defined"},{value:f,validator:u=>v.d.schema(u,X.READ_OPTIONS_SCHEMA),message:"options must be a valid options object"}]);const g=Me(i,f);try{return await g()}catch(u){const C=new Error(`Failed to read source ${i}`,{cause:u});throw C.code=X.ERROR_CODES.READ_FAILED,C}}},je=i=>i===!0||v.t.nonEmptyArray(i)&&i.every(v.t.nonEmptyString)&&new Set(i).size===i.length;v.O(je),v.O(v.t.plainObject),v.O(v.t.plainObject);const Ue={reviver:v.O(v.t.function)},fe={ERROR_CODES:{...X.ERROR_CODES,PARSE_FAILED:"PARSE_FAILED"},parse(i,f={}){v.a.all([{value:i,validator:v.t.string,message:"text must be a string"},{value:f,validator:g=>v.d.schema(g,Ue),message:"options must be a valid options object"}]);try{return JSON.parse(i,f.reviver)}catch(g){const u=new Error("Failed to parse JSON",{cause:g});throw u.code=fe.ERROR_CODES.PARSE_FAILED,u}},async read(i,f={}){return fe.parse(await X.readAsText(i,f),f)}},qe={domParser:v.O(i=>v.t.function(i?.parseFromString))};async function Ne(){if(typeof globalThis.DOMParser<"u")return new globalThis.DOMParser;const{DOMParser:i}=await import("@xmldom/xmldom");return new i}function ze(i){return i.getElementsByTagName("parsererror").length>0}const ne={ERROR_CODES:{...X.ERROR_CODES,PARSE_FAILED:"PARSE_FAILED",INVALID_XML:"INVALID_XML"},async parse(i,f={}){v.a.all([{value:i,validator:v.t.string,message:"text must be a string"},{value:f,validator:g=>v.d.schema(g,qe),message:"options must be a valid options object"}]);try{const g=(f.domParser??await Ne()).parseFromString(i,"text/xml");if(ze(g)){const u=new Error("Invalid XML");throw u.code=ne.ERROR_CODES.INVALID_XML,u}return g}catch(g){const u=new Error("Failed to parse XML",{cause:g});throw u.code=ne.ERROR_CODES.PARSE_FAILED,u}},async read(i,f={}){return ne.parse(await X.readAsText(i,f),f)}};async function Be(i,f={}){const g=await fe.read(i,f);return{geojson:g,...pe.validateGeoJson(g)}}async function He(i,f={}){const g=await ne.read(i,f),u=Se.gpx(g);return{geojson:u,...pe.validateGeoJson(u)}}async function Ke(i,f={}){const g=await ne.read(i,f),u=Se.kml(g);return{geojson:u,...pe.validateGeoJson(u)}}exports.readGeoJson=Be;exports.readGpx=He;exports.readKml=Ke;
|
|
11
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../node_modules/.pnpm/papaparse@5.7.0/node_modules/papaparse/papaparse.min.js","../../../common-core/dist/io/index.mjs","../../src/io/geojson.js","../../src/io/gpx.js","../../src/io/kml.js"],"sourcesContent":["/* @license\nPapa Parse\nv5.7.0\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n((e,t)=>{\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()})(this,function r(){var n=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==n?n:{};var s=!n.document&&!!n.postMessage,a=n.IS_PAPA_WORKER||!1,o={},h=0,w={};function q(e){return 65279===e.charCodeAt(0)?e.slice(1):e}function u(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=v(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null);this._handle=new i(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(t,e){var i=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<i){let e=this._config.newline;e||(r=this._config.quoteChar||'\"',e=this._handle.guessLineEndings(t,r)),t=[...t.split(e).slice(i)].join(e)}this.isFirstChunk&&U(this._config.beforeFirstChunk)&&void 0!==(r=this._config.beforeFirstChunk(t))&&(t=r),this.isFirstChunk=!1,this._halted=!1;var i=this._partialLine+t,r=(this._partialLine=\"\",this._handle.parse(i,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){t=r.meta.cursor,i=(this._finished||(this._partialLine=i.substring(t-this._baseIndex),this._baseIndex=t),r&&r.data&&(this._rowCount+=r.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview);if(a)n.postMessage({results:r,workerId:w.WORKER_ID,finished:i});else if(U(this._config.chunk)&&!e){if(this._config.chunk(r,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=r=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(r.data),this._completeResults.errors=this._completeResults.errors.concat(r.errors),this._completeResults.meta=r.meta),this._completed||!i||!U(this._config.complete)||r&&r.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),i||r&&r.meta.paused||this._nextChunk(),r}this._halted=!0},this._sendError=function(e){U(this._config.error)?this._config.error(e):a&&this._config.error&&n.postMessage({workerId:w.WORKER_ID,error:e,finished:!1})}}function d(e){var r;(e=e||{}).chunkSize||(e.chunkSize=w.RemoteChunkSize),u.call(this,e),this._nextChunk=s?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),s||(r.onload=m(this._chunkLoaded,this),r.onerror=m(this._chunkError,this)),r.ontimeout=m(this._chunkTimeout,this),r.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!s),this._config.downloadTimeout&&!s&&(r.timeout=this._config.downloadTimeout),this._config.downloadRequestHeaders){var e,t=this._config.downloadRequestHeaders;for(e in t)r.setRequestHeader(e,t[e])}var i;this._config.chunkSize&&(i=this._start+this._config.chunkSize-1,r.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+i));try{r.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}s&&0===r.status&&this._chunkError()}},this._chunkLoaded=function(){4===r.readyState&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize||r.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>null!==(e=e.getResponseHeader(\"Content-Range\"))?parseInt(e.substring(e.lastIndexOf(\"/\")+1)):-1)(r),this.parseChunk(r.responseText)))},this._chunkError=function(e){e=r.statusText||e;this._sendError(new Error(e))},this._chunkTimeout=function(){this._chunkError(\"Request timed out after \"+this._config.downloadTimeout+\"ms\")}}function l(e){(e=e||{}).chunkSize||(e.chunkSize=w.LocalChunkSize),u.call(this,e);var i,r,n=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,r=e.slice||e.webkitSlice||e.mozSlice,n?((i=new FileReader).onload=m(this._chunkLoaded,this),i.onerror=m(this._chunkError,this)):i=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input,t=(this._config.chunkSize&&(t=Math.min(this._start+this._config.chunkSize,this._input.size),e=r.call(e,this._start,t)),i.readAsText(e,this._config.encoding));n||this._chunkLoaded({target:{result:t}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(i.error)}}function f(e){var i;u.call(this,e=e||{}),this.stream=function(e){return i=e,this._nextChunk()},this._nextChunk=function(){var e,t;if(!this._finished)return e=this._config.chunkSize,i=e?(t=i.substring(0,e),i.substring(e)):(t=i,\"\"),this._finished=!i,this.parseChunk(t)}}function c(e){u.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=m(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=m(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=m(function(){this._streamCleanUp(),r=!0,this._streamData(\"\")},this),this._streamCleanUp=m(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function i(m){var n,s,a,t,o=Math.pow(2,53),h=-o,u=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,d=/^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/,i=this,r=0,l=0,f=!1,e=!1,c=[],p={data:[],errors:[],meta:{}};function y(e){return\"greedy\"===m.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function _(){if(p&&a&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+w.DefaultDelimiter+\"'\"),a=!1),m.skipEmptyLines&&(p.data=p.data.filter(function(e){return!y(e)})),g()){if(p)if(Array.isArray(p.data[0])){for(var e=0;g()&&e<p.data.length;e++)p.data[e].forEach(t);p.data.splice(0,1)}else p.data.forEach(t);function t(e){c.push(e)}}function i(e,t){for(var i=m.header?{}:[],r=0;r<e.length;r++){var n=r,s=e[r],s=((e,t)=>(e=>(m.dynamicTypingFunction&&void 0===m.dynamicTyping[e]&&(m.dynamicTyping[e]=m.dynamicTypingFunction(e)),!0===(m.dynamicTyping[e]||m.dynamicTyping)))(e)?\"true\"===t||\"TRUE\"===t||\"false\"!==t&&\"FALSE\"!==t&&((e=>{if(u.test(e)){e=parseFloat(e);if(h<e&&e<o)return 1}})(t)?parseFloat(t):d.test(t)?new Date(t):\"\"===t?null:t):t)(n=m.header?r>=c.length?\"__parsed_extra\":c[r]:n,s=m.transform?m.transform(s,n):s);\"__parsed_extra\"===n?(i[n]=i[n]||[],i[n].push(s)):i[n]=s}return m.header&&(r>c.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+c.length+\" fields but parsed \"+r,l+t):r<c.length&&k(\"FieldMismatch\",\"TooFewFields\",\"Too few fields: expected \"+c.length+\" fields but parsed \"+r,l+t)),i}var r;p&&(m.header||m.dynamicTyping||m.transform)&&(r=1,!p.data.length||Array.isArray(p.data[0])?(p.data=p.data.map(i),r=p.data.length):p.data=i(p.data,0),m.header&&p.meta&&(p.meta.fields=c),l+=r)}function g(){return m.header&&0===c.length}function k(e,t,i,r){e={type:e,code:t,message:i};void 0!==r&&(e.row=r),p.errors.push(e)}U(m.step)&&(t=m.step,m.step=function(e){p=e,g()?_():(_(),0!==p.data.length&&(r+=e.data.length,m.preview&&r>m.preview?s.abort():(p.data=p.data[0],t(p,i))))}),this.parse=function(e,t,i){var r=m.quoteChar||'\"',r=(m.newline||(m.newline=this.guessLineEndings(e,r)),a=!1,m.delimiter?U(m.delimiter)&&(m.delimiter=m.delimiter(e),p.meta.delimiter=m.delimiter):((r=((e,t,i,r,n)=>{var s,a,o,h;n=n||[\",\",\"\\t\",\"|\",\";\",w.RECORD_SEP,w.UNIT_SEP];for(var u=0;u<n.length;u++){for(var d,l=n[u],f=0,c=0,p=0,_=(o=void 0,new E({comments:r,delimiter:l,newline:t,preview:10}).parse(e)),g=0;g<_.data.length;g++)i&&y(_.data[g])?p++:(d=_.data[g].length,c+=d,void 0===o?o=d:0<d&&(f+=Math.abs(d-o),o=d));0<_.data.length&&(c/=_.data.length-p),1.99<c&&(void 0===a||f<a||f===a&&h<c)&&(a=f,s=l,h=c)}return{successful:!!(m.delimiter=s),bestDelimiter:s}})(e,m.newline,m.skipEmptyLines,m.comments,m.delimitersToGuess)).successful?m.delimiter=r.bestDelimiter:(a=!0,m.delimiter=w.DefaultDelimiter),p.meta.delimiter=m.delimiter),v(m));return r.header=g(),m.preview&&m.header&&r.preview++,n=e,s=new E(r),p=s.parse(n,t,i),_(),f?{meta:{paused:!0}}:p||{meta:{paused:!1}}},this.paused=function(){return f},this.pause=function(){f=!0,s.abort(),n=U(m.chunk)?\"\":n.substring(s.getCharIndex())},this.resume=function(){i.streamer._halted?(f=!1,i.streamer.parseChunk(n,!0)):setTimeout(i.resume,3)},this.aborted=function(){return e},this.abort=function(){e=!0,s.abort(),p.meta.aborted=!0,U(m.complete)&&m.complete(p),n=\"\"},this.guessLineEndings=function(e,t){e=e.substring(0,1048576);var t=new RegExp(P(t)+\"([^]*?)\"+P(t),\"gm\"),i=(e=e.replace(t,\"\")).split(\"\\r\"),t=e.split(\"\\n\"),e=1<t.length&&t[0].length<i[0].length;if(1===i.length||e)return\"\\n\";for(var r=0,n=0;n<i.length;n++)\"\\n\"===i[n][0]&&r++;return r>=i.length/2?\"\\r\\n\":\"\\r\"}}function P(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function E(C){var S=(C=C||{}).delimiter,O=C.newline,x=C.comments,T=C.step,I=C.preview,A=C.fastMode,D=null,L=!1,F=null==C.quoteChar?'\"':C.quoteChar,z=F;if(void 0!==C.escapeChar&&(z=C.escapeChar),(\"string\"!=typeof S||-1<w.BAD_DELIMITERS.indexOf(S))&&(S=\",\"),x===S)throw new Error(\"Comment character same as delimiter\");!0===x?x=\"#\":(\"string\"!=typeof x||-1<w.BAD_DELIMITERS.indexOf(x))&&(x=!1),\"\\n\"!==O&&\"\\r\"!==O&&\"\\r\\n\"!==O&&(O=\"\\n\");var M=0,j=!1;this.parse=function(i,t,r){if(\"string\"!=typeof i)throw new Error(\"Input must be a string\");var n=i.length,e=S.length,s=O.length,a=x.length,o=U(T),h=[],u=[],d=[],l=M=0;if(!i)return b();if(A||!1!==A&&-1===i.indexOf(F)){for(var f=i.split(O),c=0;c<f.length;c++){if(d=f[c],M+=d.length,c!==f.length-1)M+=O.length;else if(r)return b();if(!x||d.substring(0,a)!==x){if(o){if(h=[],k(d.split(S)),R(),j)return b()}else k(d.split(S));if(I&&I<=c)return h=h.slice(0,I),b(!0)}}return b()}for(var p=i.indexOf(S,M),_=i.indexOf(O,M),g=new RegExp(P(z)+P(F),\"g\"),m=i.indexOf(F,M);;)if(i[M]===F)for(m=M,M++;;){if(-1===(m=i.indexOf(F,m+1)))return r||u.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:h.length,index:M}),E();if(m===n-1)return E(i.substring(M,m).replace(g,F));if(F===z&&i[m+1]===z)m++;else if(F===z||0===m||i[m-1]!==z){-1!==p&&p<m+1&&(p=i.indexOf(S,m+1));var y=w(-1===(_=-1!==_&&_<m+1?i.indexOf(O,m+1):_)?p:Math.min(p,_));if(i.substr(m+1+y,e)===S){d.push(i.substring(M,m).replace(g,F)),i[M=m+1+y+e]!==F&&(m=i.indexOf(F,M)),p=i.indexOf(S,M),_=i.indexOf(O,M);break}y=w(_);if(i.substring(m+1+y,m+1+y+s)===O){if(d.push(i.substring(M,m).replace(g,F)),v(m+1+y+s),p=i.indexOf(S,M),m=i.indexOf(F,M),o&&(R(),j))return b();if(I&&h.length>=I)return b(!0);break}u.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:h.length,index:M}),m++}}else if(x&&0===d.length&&i.substring(M,M+a)===x){if(-1===_)return b();M=_+s,_=i.indexOf(O,M),p=i.indexOf(S,M)}else if(-1!==p&&(p<_||-1===_))d.push(i.substring(M,p)),M=p+e,p=i.indexOf(S,M);else{if(-1===_)break;if(d.push(i.substring(M,_)),v(_+s),o&&(R(),j))return b();if(I&&h.length>=I)return b(!0)}return E();function k(e){h.push(e),l=M}function w(e){var t=0;return t=-1!==e&&(e=i.substring(m+1,e))&&\"\"===e.trim()?e.length:t}function E(e){return r||(void 0===e&&(e=i.substring(M)),d.push(e),M=n,k(d),o&&R()),b()}function v(e){M=e,k(d),d=[],_=i.indexOf(O,M)}function b(e){if(C.header&&!t&&h.length&&!L){var s=h[0],a=Object.create(null),o=new Set(s);let n=!1;for(let r=0;r<s.length;r++){let i=q(s[r]);if(a[i=U(C.transformHeader)?C.transformHeader(i,r):i]){let e,t=a[i];for(;e=i+\"_\"+t,t++,o.has(e););o.add(e),s[r]=e,a[i]++,n=!0,(D=null===D?{}:D)[e]=i}else a[i]=1,s[r]=i;o.add(i)}n&&console.warn(\"Duplicate headers found and renamed.\"),L=!0}return{data:h,errors:u,meta:{delimiter:S,linebreak:O,aborted:j,truncated:!!e,cursor:l+(t||0),renamedHeaders:D}}}function R(){T(b()),h=[],u=[]}},this.abort=function(){j=!0},this.getCharIndex=function(){return M}}function p(e){var t=e.data,i=o[t.workerId],r=!1;if(t.error)i.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){r=!0,_(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:g,resume:g};if(U(i.userStep)){for(var s=0;s<t.results.data.length&&(i.userStep({data:t.results.data[s],errors:t.results.errors,meta:t.results.meta},n),!r);s++);delete t.results}else U(i.userChunk)&&(i.userChunk(t.results,n,t.file),delete t.results)}t.finished&&!r&&_(t.workerId,t.results)}function _(e,t){var i=o[e];U(i.userComplete)&&i.userComplete(t),i.terminate(),delete o[e]}function g(){throw new Error(\"Not implemented.\")}function v(e){if(\"object\"!=typeof e||null===e)return e;var t,i=Array.isArray(e)?[]:{};for(t in e)i[t]=v(e[t]);return i}function m(e,t){return function(){e.apply(t,arguments)}}function U(e){return\"function\"==typeof e}return w.parse=function(e,t){var i=(t=t||{}).dynamicTyping||!1;U(i)&&(t.dynamicTypingFunction=i,i={});if(t.dynamicTyping=i,t.transform=!!U(t.transform)&&t.transform,void 0!==t.downloadTimeout){var i=parseInt(t.downloadTimeout);if(isNaN(i))throw new Error(\"Config downloadTimeout value (\"+t.downloadTimeout+\") not parsable by parseInt(val).\");t.downloadTimeout=i}if(!t.worker||!w.WORKERS_SUPPORTED)return i=null,w.NODE_STREAM_INPUT,\"string\"==typeof e?(e=q(e),i=new(t.download?d:f)(t)):!0===e.readable&&U(e.read)&&U(e.on)?i=new c(t):(n.File&&e instanceof File||e instanceof Object)&&(i=new l(t)),i.stream(e);(i=(()=>{var e;return!!w.WORKERS_SUPPORTED&&(e=(()=>{var e=n.URL||n.webkitURL||null,t=r.toString();return w.BLOB_URL||(w.BLOB_URL=e.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \",\"(\",t,\")();\"],{type:\"text/javascript\"})))})(),(e=new n.Worker(e)).onmessage=p,e.id=h++,o[e.id]=e)})()).userStep=t.step,i.userChunk=t.chunk,i.userComplete=t.complete,i.userError=t.error,t.step=U(t.step),t.chunk=U(t.chunk),t.complete=U(t.complete),t.error=U(t.error),delete t.worker,i.postMessage({input:e,config:t,workerId:i.id})},w.unparse=function(e,t){var s=!1,g=!0,m=\",\",y=\"\\r\\n\",a='\"',o=a+a,i=!1,r=null,h=!1,u=((()=>{if(\"object\"==typeof t){if(\"string\"!=typeof t.delimiter||w.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(m=t.delimiter),\"boolean\"!=typeof t.quotes&&\"function\"!=typeof t.quotes&&!Array.isArray(t.quotes)||(s=t.quotes),\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(i=t.skipEmptyLines),\"string\"==typeof t.newline&&(y=t.newline),\"string\"==typeof t.quoteChar&&(a=t.quoteChar,o=a+a),\"boolean\"==typeof t.header&&(g=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");r=t.columns}void 0!==t.escapeChar&&(o=t.escapeChar+a),t.escapeFormulae instanceof RegExp?h=t.escapeFormulae:\"boolean\"==typeof t.escapeFormulae&&t.escapeFormulae&&(h=/^[=+\\-@\\t\\r].*$/)}})(),new RegExp(P(a),\"g\"));\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return n(null,e,i);if(\"object\"==typeof e[0])return n(r||Object.keys(e[0]),e,i)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||r),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),n(e.fields||[],e.data||[],i);throw new Error(\"Unable to serialize unrecognized input\");function n(e,t,i){var r=\"\",n=(\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t)),Array.isArray(e)&&0<e.length),s=!Array.isArray(t[0]);if(n&&g){for(var a=0;a<e.length;a++)0<a&&(r+=m),r+=k(e[a],a);0<t.length&&(r+=y)}for(var o=0;o<t.length;o++){var h=(n?e:t[o]).length,u=!1,d=n?0===Object.keys(t[o]).length:0===t[o].length;if(i&&!n&&(u=\"greedy\"===i?\"\"===t[o].join(\"\").trim():1===t[o].length&&0===t[o][0].length),\"greedy\"===i&&n){for(var l=[],f=0;f<h;f++){var c=s?e[f]:f;l.push(t[o][c])}u=\"\"===l.join(\"\").trim()}if(!u){for(var p=0;p<h;p++){0<p&&!d&&(r+=m);var _=n&&s?e[p]:p;r+=k(t[o][_],p)}o<t.length-1&&(!i||0<h&&!d)&&(r+=y)}}return r}function k(e,t){var i,r,n;return null==e?\"\":e.constructor===Date?isNaN(e.getTime())?\"\":e.toISOString():(n=!1,h&&\"string\"==typeof e&&h.test(e)&&(e=\"'\"+e,n=!0),r=(i=e.toString()).replace(u,o),(n=n||!0===s||\"function\"==typeof s&&s(e,t)||Array.isArray(s)&&s[t]||((e,t)=>{for(var i=0;i<t.length;i++)if(-1<e.indexOf(t[i]))return!0;return!1})(r,w.BAD_DELIMITERS)||-1<r.indexOf(m)||-1<i.indexOf(a)||\" \"===r.charAt(0)||\" \"===r.charAt(r.length-1))?a+r+a:r)}},w.RECORD_SEP=String.fromCharCode(30),w.UNIT_SEP=String.fromCharCode(31),w.BYTE_ORDER_MARK=\"\\ufeff\",w.BAD_DELIMITERS=[\"\\r\",\"\\n\",'\"',w.BYTE_ORDER_MARK],w.WORKERS_SUPPORTED=!s&&!!n.Worker,w.NODE_STREAM_INPUT=1,w.LocalChunkSize=10485760,w.RemoteChunkSize=5242880,w.DefaultDelimiter=\",\",w.Parser=E,w.ParserHandle=i,w.NetworkStreamer=d,w.FileStreamer=l,w.StringStreamer=f,w.ReadableStreamStreamer=c,a&&(n.onmessage=function(e){e=e.data;void 0===w.WORKER_ID&&e&&(w.WORKER_ID=e.workerId);\"string\"==typeof e.input?n.postMessage({workerId:w.WORKER_ID,results:w.parse(e.input,e.config),finished:!0}):(n.File&&e.input instanceof File||e.input instanceof Object)&&(e=w.parse(e.input,e.config))&&n.postMessage({workerId:w.WORKER_ID,results:e,finished:!0})}),(d.prototype=Object.create(u.prototype)).constructor=d,(l.prototype=Object.create(u.prototype)).constructor=l,(f.prototype=Object.create(f.prototype)).constructor=f,(c.prototype=Object.create(u.prototype)).constructor=c,w});","import A from \"ajv\";\nimport D from \"papaparse\";\nimport { o as d, i as o, a as l, c as R } from \"../optional-C8lnNAGJ.js\";\nimport { e as h } from \"../object-YU9rgFz5.js\";\nasync function f(e) {\n const r = await fetch(e);\n if (!r.ok) {\n const t = new Error(`HTTP ${r.status} ${r.statusText}`);\n throw t.code = n.ERROR_CODES.HTTP_ERROR, t.status = r.status, t.statusText = r.statusText, t;\n }\n return r.text();\n}\nfunction T(e, r = {}) {\n const { encoding: t = \"utf-8\" } = r;\n if (typeof Blob < \"u\" && e instanceof Blob) return () => e.text();\n if (e instanceof URL) return () => f(e);\n if (o.string(e))\n return h.node && !o.url(e) ? async () => {\n const { readFile: s } = await import(\"node:fs/promises\");\n return s(e, t);\n } : () => f(e);\n const a = new Error(\"source must be a URL, a string locator or a File/Blob\");\n throw a.code = n.ERROR_CODES.UNSUPPORTED_SOURCE, a;\n}\nconst n = {\n ERROR_CODES: {\n UNSUPPORTED_SOURCE: \"UNSUPPORTED_SOURCE\",\n READ_FAILED: \"READ_FAILED\",\n HTTP_ERROR: \"HTTP_ERROR\"\n },\n READ_OPTIONS_SCHEMA: {\n encoding: d(o.nonEmptyString)\n },\n async readAsText(e, r = {}) {\n l.all([\n { value: e, validator: o.defined, message: \"source must be defined\" },\n {\n value: r,\n validator: (a) => R.schema(a, n.READ_OPTIONS_SCHEMA),\n message: \"options must be a valid options object\"\n }\n ]);\n const t = T(e, r);\n try {\n return await t();\n } catch (a) {\n const s = new Error(`Failed to read source ${e}`, { cause: a });\n throw s.code = n.ERROR_CODES.READ_FAILED, s;\n }\n }\n}, P = (e) => e === !0 || o.nonEmptyArray(e) && e.every(o.nonEmptyString) && new Set(e).size === e.length, y = {\n header: d(P),\n parser: d(o.plainObject),\n rowSchema: d(o.plainObject)\n}, w = {\n allErrors: !0,\n coerceTypes: !0\n}, S = /* @__PURE__ */ new WeakMap();\nfunction v(e) {\n let r = S.get(e);\n return r || (r = new A(w).compile(e), S.set(e, r)), r;\n}\nfunction b(e, r, t) {\n return e.map((a, s) => {\n const i = {};\n return r.forEach((c, E) => {\n i[c] = a[E];\n }), a.length < r.length && t.push({\n type: \"FieldMismatch\",\n code: \"TooFewFields\",\n message: `Too few fields: expected ${r.length} fields but parsed ${a.length}`,\n row: s\n }), a.length > r.length && (i.__parsed_extra = a.slice(r.length), t.push({\n type: \"FieldMismatch\",\n code: \"TooManyFields\",\n message: `Too many fields: expected ${r.length} fields but parsed ${a.length}`,\n row: s\n })), i;\n });\n}\nfunction F(e, r) {\n const t = v(r), a = [];\n return e.forEach((s, i) => {\n t(s) || a.push({\n row: i,\n errors: t.errors.map((c) => ({\n ...c,\n params: { ...c.params }\n }))\n });\n }), a;\n}\nconst I = {\n ERROR_CODES: {\n ...n.ERROR_CODES\n },\n parse(e, r = {}) {\n l.all([\n {\n value: e,\n validator: o.string,\n message: \"text must be a string\"\n },\n {\n value: r,\n validator: (_) => R.schema(_, y),\n message: \"options must be a valid options object\"\n }\n ]);\n const { header: t, parser: a = {}, rowSchema: s } = r;\n if (s !== void 0 && a.dynamicTyping !== void 0 && a.dynamicTyping !== !1)\n throw new TypeError(\"dynamicTyping cannot be used with rowSchema\");\n const i = o.array(t), {\n data: c,\n errors: E,\n meta: m\n } = D.parse(e, {\n skipEmptyLines: !0,\n ...a,\n header: i ? !1 : t === !0\n }), O = i ? b(c, t, E) : c;\n i && (m.fields = [...t]);\n const p = {\n data: O,\n parseErrors: E,\n parseMeta: m\n };\n return s === void 0 ? p : {\n ...p,\n validationErrors: F(O, s)\n };\n },\n async read(e, r = {}) {\n const t = await n.readAsText(e, r);\n return I.parse(t, r);\n }\n}, C = {\n reviver: d(o.function)\n}, g = {\n ERROR_CODES: {\n ...n.ERROR_CODES,\n PARSE_FAILED: \"PARSE_FAILED\"\n },\n parse(e, r = {}) {\n l.all([\n { value: e, validator: o.string, message: \"text must be a string\" },\n {\n value: r,\n validator: (t) => R.schema(t, C),\n message: \"options must be a valid options object\"\n }\n ]);\n try {\n return JSON.parse(e, r.reviver);\n } catch (t) {\n const a = new Error(\"Failed to parse JSON\", { cause: t });\n throw a.code = g.ERROR_CODES.PARSE_FAILED, a;\n }\n },\n async read(e, r = {}) {\n return g.parse(await n.readAsText(e, r), r);\n }\n}, L = {\n domParser: d((e) => o.function(e?.parseFromString))\n};\nasync function M() {\n if (typeof globalThis.DOMParser < \"u\") return new globalThis.DOMParser();\n const { DOMParser: e } = await import(\n /* webpackIgnore: true */\n \"@xmldom/xmldom\"\n );\n return new e();\n}\nfunction x(e) {\n return e.getElementsByTagName(\"parsererror\").length > 0;\n}\nconst u = {\n ERROR_CODES: {\n ...n.ERROR_CODES,\n PARSE_FAILED: \"PARSE_FAILED\",\n INVALID_XML: \"INVALID_XML\"\n },\n async parse(e, r = {}) {\n l.all([\n { value: e, validator: o.string, message: \"text must be a string\" },\n {\n value: r,\n validator: (t) => R.schema(t, L),\n message: \"options must be a valid options object\"\n }\n ]);\n try {\n const a = (r.domParser ?? await M()).parseFromString(e, \"text/xml\");\n if (x(a)) {\n const s = new Error(\"Invalid XML\");\n throw s.code = u.ERROR_CODES.INVALID_XML, s;\n }\n return a;\n } catch (t) {\n const a = new Error(\"Failed to parse XML\", { cause: t });\n throw a.code = u.ERROR_CODES.PARSE_FAILED, a;\n }\n },\n async read(e, r = {}) {\n return u.parse(await n.readAsText(e, r), r);\n }\n};\nexport {\n I as csv,\n g as json,\n u as xml\n};\n//# sourceMappingURL=index.mjs.map\n","import { json } from '@kalisio/common-core/io'\nimport { validateGeoJson } from '../operators/index.js'\n\nexport async function readGeoJson (source, options = {}) {\n const geojson = await json.read(source, options)\n return { geojson, ...validateGeoJson(geojson) }\n}\n","import { gpx } from '@tmcw/togeojson'\nimport { xml } from '@kalisio/common-core/io'\nimport { validateGeoJson } from '../operators/index.js'\n\nexport async function readGpx (source, options = {}) {\n const document = await xml.read(source, options)\n const geojson = gpx(document)\n return { geojson, ...validateGeoJson(geojson) }\n}\n","import { kml } from '@tmcw/togeojson'\nimport { xml } from '@kalisio/common-core/io'\nimport { validateGeoJson } from '../operators/index.js'\n\nexport async function readKml (source, options = {}) {\n const document = await xml.read(source, options)\n const geojson = kml(document)\n return { geojson, ...validateGeoJson(geojson) }\n}\n"],"names":["e","t","module","this","r","n","s","a","o","h","w","q","u","v","i","U","d","m","l","f","c","p","y","_","k","g","E","P","C","S","O","x","T","I","A","D","L","F","z","M","j","b","R","readGeoJson","source","options","geojson","json","validateGeoJson","readGpx","document","xml","gpx","readKml","kml"],"mappings":"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","x_google_ignoreList":[0]}
|