@terascope/data-mate 2.24.0 → 2.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/duckdb-extensions.js +8 -0
- package/dist/src/adapters/index.d.ts +1 -0
- package/dist/src/adapters/index.d.ts.map +1 -1
- package/dist/src/adapters/index.js +1 -0
- package/dist/src/adapters/index.js.map +1 -1
- package/dist/src/adapters/teal-frame-adapter/index.d.ts +62 -0
- package/dist/src/adapters/teal-frame-adapter/index.d.ts.map +1 -0
- package/dist/src/adapters/teal-frame-adapter/index.js +427 -0
- package/dist/src/adapters/teal-frame-adapter/index.js.map +1 -0
- package/dist/src/core/utils.d.ts +1 -1
- package/dist/src/core/utils.d.ts.map +1 -1
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/function-configs/boolean/isBoolean.d.ts.map +1 -1
- package/dist/src/function-configs/boolean/isBoolean.js +11 -0
- package/dist/src/function-configs/boolean/isBoolean.js.map +1 -1
- package/dist/src/function-configs/boolean/isBooleanLike.d.ts.map +1 -1
- package/dist/src/function-configs/boolean/isBooleanLike.js +21 -0
- package/dist/src/function-configs/boolean/isBooleanLike.js.map +1 -1
- package/dist/src/function-configs/boolean/sql-utils.d.ts +31 -0
- package/dist/src/function-configs/boolean/sql-utils.d.ts.map +1 -0
- package/dist/src/function-configs/boolean/sql-utils.js +52 -0
- package/dist/src/function-configs/boolean/sql-utils.js.map +1 -0
- package/dist/src/function-configs/boolean/toBoolean.d.ts.map +1 -1
- package/dist/src/function-configs/boolean/toBoolean.js +20 -0
- package/dist/src/function-configs/boolean/toBoolean.js.map +1 -1
- package/dist/src/function-configs/date/addToDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/addToDate.js +13 -0
- package/dist/src/function-configs/date/addToDate.js.map +1 -1
- package/dist/src/function-configs/date/formatDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/formatDate.js +29 -0
- package/dist/src/function-configs/date/formatDate.js.map +1 -1
- package/dist/src/function-configs/date/getDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/getDate.js +13 -0
- package/dist/src/function-configs/date/getDate.js.map +1 -1
- package/dist/src/function-configs/date/getHours.d.ts.map +1 -1
- package/dist/src/function-configs/date/getHours.js +13 -0
- package/dist/src/function-configs/date/getHours.js.map +1 -1
- package/dist/src/function-configs/date/getMilliseconds.d.ts.map +1 -1
- package/dist/src/function-configs/date/getMilliseconds.js +16 -0
- package/dist/src/function-configs/date/getMilliseconds.js.map +1 -1
- package/dist/src/function-configs/date/getMinutes.d.ts.map +1 -1
- package/dist/src/function-configs/date/getMinutes.js +13 -0
- package/dist/src/function-configs/date/getMinutes.js.map +1 -1
- package/dist/src/function-configs/date/getMonth.d.ts.map +1 -1
- package/dist/src/function-configs/date/getMonth.js +16 -0
- package/dist/src/function-configs/date/getMonth.js.map +1 -1
- package/dist/src/function-configs/date/getSeconds.d.ts.map +1 -1
- package/dist/src/function-configs/date/getSeconds.js +13 -0
- package/dist/src/function-configs/date/getSeconds.js.map +1 -1
- package/dist/src/function-configs/date/getTimeBetween.d.ts.map +1 -1
- package/dist/src/function-configs/date/getTimeBetween.js +13 -0
- package/dist/src/function-configs/date/getTimeBetween.js.map +1 -1
- package/dist/src/function-configs/date/getTimezoneOffset.d.ts.map +1 -1
- package/dist/src/function-configs/date/getTimezoneOffset.js +12 -0
- package/dist/src/function-configs/date/getTimezoneOffset.js.map +1 -1
- package/dist/src/function-configs/date/getUTCDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/getUTCDate.js +14 -0
- package/dist/src/function-configs/date/getUTCDate.js.map +1 -1
- package/dist/src/function-configs/date/getUTCHours.d.ts.map +1 -1
- package/dist/src/function-configs/date/getUTCHours.js +14 -0
- package/dist/src/function-configs/date/getUTCHours.js.map +1 -1
- package/dist/src/function-configs/date/getUTCMinutes.d.ts.map +1 -1
- package/dist/src/function-configs/date/getUTCMinutes.js +14 -0
- package/dist/src/function-configs/date/getUTCMinutes.js.map +1 -1
- package/dist/src/function-configs/date/getUTCMonth.d.ts.map +1 -1
- package/dist/src/function-configs/date/getUTCMonth.js +16 -0
- package/dist/src/function-configs/date/getUTCMonth.js.map +1 -1
- package/dist/src/function-configs/date/getUTCYear.d.ts.map +1 -1
- package/dist/src/function-configs/date/getUTCYear.js +14 -0
- package/dist/src/function-configs/date/getUTCYear.js.map +1 -1
- package/dist/src/function-configs/date/getYear.d.ts.map +1 -1
- package/dist/src/function-configs/date/getYear.js +13 -0
- package/dist/src/function-configs/date/getYear.js.map +1 -1
- package/dist/src/function-configs/date/isAfter.d.ts.map +1 -1
- package/dist/src/function-configs/date/isAfter.js +9 -0
- package/dist/src/function-configs/date/isAfter.js.map +1 -1
- package/dist/src/function-configs/date/isBefore.d.ts.map +1 -1
- package/dist/src/function-configs/date/isBefore.js +7 -0
- package/dist/src/function-configs/date/isBefore.js.map +1 -1
- package/dist/src/function-configs/date/isBetween.d.ts.map +1 -1
- package/dist/src/function-configs/date/isBetween.js +11 -0
- package/dist/src/function-configs/date/isBetween.js.map +1 -1
- package/dist/src/function-configs/date/isDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/isDate.js +11 -0
- package/dist/src/function-configs/date/isDate.js.map +1 -1
- package/dist/src/function-configs/date/isEpoch.d.ts.map +1 -1
- package/dist/src/function-configs/date/isEpoch.js +12 -0
- package/dist/src/function-configs/date/isEpoch.js.map +1 -1
- package/dist/src/function-configs/date/isEpochMillis.d.ts.map +1 -1
- package/dist/src/function-configs/date/isEpochMillis.js +6 -0
- package/dist/src/function-configs/date/isEpochMillis.js.map +1 -1
- package/dist/src/function-configs/date/isFriday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isFriday.js +11 -0
- package/dist/src/function-configs/date/isFriday.js.map +1 -1
- package/dist/src/function-configs/date/isFuture.d.ts.map +1 -1
- package/dist/src/function-configs/date/isFuture.js +11 -0
- package/dist/src/function-configs/date/isFuture.js.map +1 -1
- package/dist/src/function-configs/date/isISO8601.d.ts.map +1 -1
- package/dist/src/function-configs/date/isISO8601.js +9 -0
- package/dist/src/function-configs/date/isISO8601.js.map +1 -1
- package/dist/src/function-configs/date/isLeapYear.d.ts.map +1 -1
- package/dist/src/function-configs/date/isLeapYear.js +13 -0
- package/dist/src/function-configs/date/isLeapYear.js.map +1 -1
- package/dist/src/function-configs/date/isMonday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isMonday.js +11 -0
- package/dist/src/function-configs/date/isMonday.js.map +1 -1
- package/dist/src/function-configs/date/isPast.d.ts.map +1 -1
- package/dist/src/function-configs/date/isPast.js +11 -0
- package/dist/src/function-configs/date/isPast.js.map +1 -1
- package/dist/src/function-configs/date/isSaturday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isSaturday.js +11 -0
- package/dist/src/function-configs/date/isSaturday.js.map +1 -1
- package/dist/src/function-configs/date/isSunday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isSunday.js +11 -0
- package/dist/src/function-configs/date/isSunday.js.map +1 -1
- package/dist/src/function-configs/date/isThursday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isThursday.js +11 -0
- package/dist/src/function-configs/date/isThursday.js.map +1 -1
- package/dist/src/function-configs/date/isToday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isToday.js +12 -0
- package/dist/src/function-configs/date/isToday.js.map +1 -1
- package/dist/src/function-configs/date/isTomorrow.d.ts.map +1 -1
- package/dist/src/function-configs/date/isTomorrow.js +11 -0
- package/dist/src/function-configs/date/isTomorrow.js.map +1 -1
- package/dist/src/function-configs/date/isTuesday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isTuesday.js +11 -0
- package/dist/src/function-configs/date/isTuesday.js.map +1 -1
- package/dist/src/function-configs/date/isWednesday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isWednesday.js +11 -0
- package/dist/src/function-configs/date/isWednesday.js.map +1 -1
- package/dist/src/function-configs/date/isWeekday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isWeekday.js +9 -0
- package/dist/src/function-configs/date/isWeekday.js.map +1 -1
- package/dist/src/function-configs/date/isWeekend.d.ts.map +1 -1
- package/dist/src/function-configs/date/isWeekend.js +9 -0
- package/dist/src/function-configs/date/isWeekend.js.map +1 -1
- package/dist/src/function-configs/date/isYesterday.d.ts.map +1 -1
- package/dist/src/function-configs/date/isYesterday.js +11 -0
- package/dist/src/function-configs/date/isYesterday.js.map +1 -1
- package/dist/src/function-configs/date/setDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/setDate.js +11 -0
- package/dist/src/function-configs/date/setDate.js.map +1 -1
- package/dist/src/function-configs/date/setHours.d.ts.map +1 -1
- package/dist/src/function-configs/date/setHours.js +8 -0
- package/dist/src/function-configs/date/setHours.js.map +1 -1
- package/dist/src/function-configs/date/setMilliseconds.d.ts.map +1 -1
- package/dist/src/function-configs/date/setMilliseconds.js +12 -0
- package/dist/src/function-configs/date/setMilliseconds.js.map +1 -1
- package/dist/src/function-configs/date/setMinutes.d.ts.map +1 -1
- package/dist/src/function-configs/date/setMinutes.js +8 -0
- package/dist/src/function-configs/date/setMinutes.js.map +1 -1
- package/dist/src/function-configs/date/setMonth.d.ts.map +1 -1
- package/dist/src/function-configs/date/setMonth.js +16 -0
- package/dist/src/function-configs/date/setMonth.js.map +1 -1
- package/dist/src/function-configs/date/setSeconds.d.ts.map +1 -1
- package/dist/src/function-configs/date/setSeconds.js +9 -0
- package/dist/src/function-configs/date/setSeconds.js.map +1 -1
- package/dist/src/function-configs/date/setTimezone.d.ts.map +1 -1
- package/dist/src/function-configs/date/setTimezone.js +13 -0
- package/dist/src/function-configs/date/setTimezone.js.map +1 -1
- package/dist/src/function-configs/date/setYear.d.ts.map +1 -1
- package/dist/src/function-configs/date/setYear.js +15 -0
- package/dist/src/function-configs/date/setYear.js.map +1 -1
- package/dist/src/function-configs/date/sql-utils.d.ts +89 -0
- package/dist/src/function-configs/date/sql-utils.d.ts.map +1 -0
- package/dist/src/function-configs/date/sql-utils.js +198 -0
- package/dist/src/function-configs/date/sql-utils.js.map +1 -0
- package/dist/src/function-configs/date/subtractFromDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/subtractFromDate.js +10 -0
- package/dist/src/function-configs/date/subtractFromDate.js.map +1 -1
- package/dist/src/function-configs/date/toDailyDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/toDailyDate.js +11 -0
- package/dist/src/function-configs/date/toDailyDate.js.map +1 -1
- package/dist/src/function-configs/date/toDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/toDate.js +17 -0
- package/dist/src/function-configs/date/toDate.js.map +1 -1
- package/dist/src/function-configs/date/toHourlyDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/toHourlyDate.js +11 -0
- package/dist/src/function-configs/date/toHourlyDate.js.map +1 -1
- package/dist/src/function-configs/date/toMonthlyDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/toMonthlyDate.js +11 -0
- package/dist/src/function-configs/date/toMonthlyDate.js.map +1 -1
- package/dist/src/function-configs/date/toTimeZone.d.ts.map +1 -1
- package/dist/src/function-configs/date/toTimeZone.js +13 -0
- package/dist/src/function-configs/date/toTimeZone.js.map +1 -1
- package/dist/src/function-configs/date/toTimeZoneUsingLocation.d.ts.map +1 -1
- package/dist/src/function-configs/date/toTimeZoneUsingLocation.js +22 -0
- package/dist/src/function-configs/date/toTimeZoneUsingLocation.js.map +1 -1
- package/dist/src/function-configs/date/toYearlyDate.d.ts.map +1 -1
- package/dist/src/function-configs/date/toYearlyDate.js +11 -0
- package/dist/src/function-configs/date/toYearlyDate.js.map +1 -1
- package/dist/src/function-configs/geo/geoContains.d.ts.map +1 -1
- package/dist/src/function-configs/geo/geoContains.js +11 -0
- package/dist/src/function-configs/geo/geoContains.js.map +1 -1
- package/dist/src/function-configs/geo/geoContainsPoint.d.ts.map +1 -1
- package/dist/src/function-configs/geo/geoContainsPoint.js +11 -0
- package/dist/src/function-configs/geo/geoContainsPoint.js.map +1 -1
- package/dist/src/function-configs/geo/geoDisjoint.d.ts.map +1 -1
- package/dist/src/function-configs/geo/geoDisjoint.js +7 -0
- package/dist/src/function-configs/geo/geoDisjoint.js.map +1 -1
- package/dist/src/function-configs/geo/geoIntersects.d.ts.map +1 -1
- package/dist/src/function-configs/geo/geoIntersects.js +9 -0
- package/dist/src/function-configs/geo/geoIntersects.js.map +1 -1
- package/dist/src/function-configs/geo/geoPointWithinRange.d.ts.map +1 -1
- package/dist/src/function-configs/geo/geoPointWithinRange.js +28 -0
- package/dist/src/function-configs/geo/geoPointWithinRange.js.map +1 -1
- package/dist/src/function-configs/geo/geoRelation.d.ts.map +1 -1
- package/dist/src/function-configs/geo/geoRelation.js +13 -0
- package/dist/src/function-configs/geo/geoRelation.js.map +1 -1
- package/dist/src/function-configs/geo/geoWithin.d.ts.map +1 -1
- package/dist/src/function-configs/geo/geoWithin.js +7 -0
- package/dist/src/function-configs/geo/geoWithin.js.map +1 -1
- package/dist/src/function-configs/geo/inGeoBoundingBox.d.ts.map +1 -1
- package/dist/src/function-configs/geo/inGeoBoundingBox.js +24 -1
- package/dist/src/function-configs/geo/inGeoBoundingBox.js.map +1 -1
- package/dist/src/function-configs/geo/isGeoJSON.d.ts.map +1 -1
- package/dist/src/function-configs/geo/isGeoJSON.js +6 -0
- package/dist/src/function-configs/geo/isGeoJSON.js.map +1 -1
- package/dist/src/function-configs/geo/isGeoPoint.d.ts.map +1 -1
- package/dist/src/function-configs/geo/isGeoPoint.js +13 -0
- package/dist/src/function-configs/geo/isGeoPoint.js.map +1 -1
- package/dist/src/function-configs/geo/isGeoShapeMultiPolygon.d.ts.map +1 -1
- package/dist/src/function-configs/geo/isGeoShapeMultiPolygon.js +6 -0
- package/dist/src/function-configs/geo/isGeoShapeMultiPolygon.js.map +1 -1
- package/dist/src/function-configs/geo/isGeoShapePoint.d.ts.map +1 -1
- package/dist/src/function-configs/geo/isGeoShapePoint.js +6 -0
- package/dist/src/function-configs/geo/isGeoShapePoint.js.map +1 -1
- package/dist/src/function-configs/geo/isGeoShapePolygon.d.ts.map +1 -1
- package/dist/src/function-configs/geo/isGeoShapePolygon.js +6 -0
- package/dist/src/function-configs/geo/isGeoShapePolygon.js.map +1 -1
- package/dist/src/function-configs/geo/sql-utils.d.ts +116 -0
- package/dist/src/function-configs/geo/sql-utils.d.ts.map +1 -0
- package/dist/src/function-configs/geo/sql-utils.js +179 -0
- package/dist/src/function-configs/geo/sql-utils.js.map +1 -0
- package/dist/src/function-configs/interfaces.d.ts +102 -0
- package/dist/src/function-configs/interfaces.d.ts.map +1 -1
- package/dist/src/function-configs/interfaces.js.map +1 -1
- package/dist/src/function-configs/ip/extractMappedIPv4.d.ts.map +1 -1
- package/dist/src/function-configs/ip/extractMappedIPv4.js +11 -0
- package/dist/src/function-configs/ip/extractMappedIPv4.js.map +1 -1
- package/dist/src/function-configs/ip/getCIDRBroadcast.d.ts.map +1 -1
- package/dist/src/function-configs/ip/getCIDRBroadcast.js +7 -0
- package/dist/src/function-configs/ip/getCIDRBroadcast.js.map +1 -1
- package/dist/src/function-configs/ip/getCIDRMax.d.ts.map +1 -1
- package/dist/src/function-configs/ip/getCIDRMax.js +10 -0
- package/dist/src/function-configs/ip/getCIDRMax.js.map +1 -1
- package/dist/src/function-configs/ip/getCIDRMin.d.ts.map +1 -1
- package/dist/src/function-configs/ip/getCIDRMin.js +9 -0
- package/dist/src/function-configs/ip/getCIDRMin.js.map +1 -1
- package/dist/src/function-configs/ip/getCIDRNetwork.d.ts.map +1 -1
- package/dist/src/function-configs/ip/getCIDRNetwork.js +7 -0
- package/dist/src/function-configs/ip/getCIDRNetwork.js.map +1 -1
- package/dist/src/function-configs/ip/getFirstIpInCIDR.d.ts.map +1 -1
- package/dist/src/function-configs/ip/getFirstIpInCIDR.js +11 -0
- package/dist/src/function-configs/ip/getFirstIpInCIDR.js.map +1 -1
- package/dist/src/function-configs/ip/getFirstUsableIPInCIDR.d.ts.map +1 -1
- package/dist/src/function-configs/ip/getFirstUsableIPInCIDR.js +14 -0
- package/dist/src/function-configs/ip/getFirstUsableIPInCIDR.js.map +1 -1
- package/dist/src/function-configs/ip/getLastIpInCIDR.d.ts.map +1 -1
- package/dist/src/function-configs/ip/getLastIpInCIDR.js +8 -0
- package/dist/src/function-configs/ip/getLastIpInCIDR.js.map +1 -1
- package/dist/src/function-configs/ip/getLastUsableIPInCIDR.d.ts.map +1 -1
- package/dist/src/function-configs/ip/getLastUsableIPInCIDR.js +13 -0
- package/dist/src/function-configs/ip/getLastUsableIPInCIDR.js.map +1 -1
- package/dist/src/function-configs/ip/inIPRange.d.ts.map +1 -1
- package/dist/src/function-configs/ip/inIPRange.js +15 -0
- package/dist/src/function-configs/ip/inIPRange.js.map +1 -1
- package/dist/src/function-configs/ip/intToIP.d.ts.map +1 -1
- package/dist/src/function-configs/ip/intToIP.js +25 -0
- package/dist/src/function-configs/ip/intToIP.js.map +1 -1
- package/dist/src/function-configs/ip/ipToInt.d.ts.map +1 -1
- package/dist/src/function-configs/ip/ipToInt.js +12 -0
- package/dist/src/function-configs/ip/ipToInt.js.map +1 -1
- package/dist/src/function-configs/ip/isCIDR.d.ts.map +1 -1
- package/dist/src/function-configs/ip/isCIDR.js +8 -0
- package/dist/src/function-configs/ip/isCIDR.js.map +1 -1
- package/dist/src/function-configs/ip/isIP.d.ts.map +1 -1
- package/dist/src/function-configs/ip/isIP.js +10 -0
- package/dist/src/function-configs/ip/isIP.js.map +1 -1
- package/dist/src/function-configs/ip/isIPv4.d.ts.map +1 -1
- package/dist/src/function-configs/ip/isIPv4.js +9 -0
- package/dist/src/function-configs/ip/isIPv4.js.map +1 -1
- package/dist/src/function-configs/ip/isIPv6.d.ts.map +1 -1
- package/dist/src/function-configs/ip/isIPv6.js +10 -0
- package/dist/src/function-configs/ip/isIPv6.js.map +1 -1
- package/dist/src/function-configs/ip/isMappedIPv4.d.ts.map +1 -1
- package/dist/src/function-configs/ip/isMappedIPv4.js +10 -0
- package/dist/src/function-configs/ip/isMappedIPv4.js.map +1 -1
- package/dist/src/function-configs/ip/isNonRoutableIP.d.ts.map +1 -1
- package/dist/src/function-configs/ip/isNonRoutableIP.js +8 -0
- package/dist/src/function-configs/ip/isNonRoutableIP.js.map +1 -1
- package/dist/src/function-configs/ip/isRoutableIP.d.ts.map +1 -1
- package/dist/src/function-configs/ip/isRoutableIP.js +12 -0
- package/dist/src/function-configs/ip/isRoutableIP.js.map +1 -1
- package/dist/src/function-configs/ip/reverseIP.d.ts.map +1 -1
- package/dist/src/function-configs/ip/reverseIP.js +13 -0
- package/dist/src/function-configs/ip/reverseIP.js.map +1 -1
- package/dist/src/function-configs/ip/sql-utils.d.ts +116 -0
- package/dist/src/function-configs/ip/sql-utils.d.ts.map +1 -0
- package/dist/src/function-configs/ip/sql-utils.js +187 -0
- package/dist/src/function-configs/ip/sql-utils.js.map +1 -0
- package/dist/src/function-configs/ip/toCIDR.d.ts.map +1 -1
- package/dist/src/function-configs/ip/toCIDR.js +19 -0
- package/dist/src/function-configs/ip/toCIDR.js.map +1 -1
- package/dist/src/function-configs/json/setDefault.d.ts.map +1 -1
- package/dist/src/function-configs/json/setDefault.js +17 -0
- package/dist/src/function-configs/json/setDefault.js.map +1 -1
- package/dist/src/function-configs/json/sql-utils.d.ts +20 -0
- package/dist/src/function-configs/json/sql-utils.d.ts.map +1 -0
- package/dist/src/function-configs/json/sql-utils.js +26 -0
- package/dist/src/function-configs/json/sql-utils.js.map +1 -0
- package/dist/src/function-configs/json/toJSON.d.ts.map +1 -1
- package/dist/src/function-configs/json/toJSON.js +13 -0
- package/dist/src/function-configs/json/toJSON.js.map +1 -1
- package/dist/src/function-configs/numeric/abs.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/abs.js +5 -0
- package/dist/src/function-configs/numeric/abs.js.map +1 -1
- package/dist/src/function-configs/numeric/acos.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/acos.js +12 -0
- package/dist/src/function-configs/numeric/acos.js.map +1 -1
- package/dist/src/function-configs/numeric/acosh.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/acosh.js +12 -0
- package/dist/src/function-configs/numeric/acosh.js.map +1 -1
- package/dist/src/function-configs/numeric/add.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/add.js +12 -0
- package/dist/src/function-configs/numeric/add.js.map +1 -1
- package/dist/src/function-configs/numeric/addValues.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/addValues.js +9 -0
- package/dist/src/function-configs/numeric/addValues.js.map +1 -1
- package/dist/src/function-configs/numeric/asin.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/asin.js +12 -0
- package/dist/src/function-configs/numeric/asin.js.map +1 -1
- package/dist/src/function-configs/numeric/asinh.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/asinh.js +8 -0
- package/dist/src/function-configs/numeric/asinh.js.map +1 -1
- package/dist/src/function-configs/numeric/atan.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/atan.js +8 -0
- package/dist/src/function-configs/numeric/atan.js.map +1 -1
- package/dist/src/function-configs/numeric/atan2.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/atan2.js +16 -0
- package/dist/src/function-configs/numeric/atan2.js.map +1 -1
- package/dist/src/function-configs/numeric/atanh.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/atanh.js +13 -0
- package/dist/src/function-configs/numeric/atanh.js.map +1 -1
- package/dist/src/function-configs/numeric/cbrt.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/cbrt.js +8 -0
- package/dist/src/function-configs/numeric/cbrt.js.map +1 -1
- package/dist/src/function-configs/numeric/ceil.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/ceil.js +13 -0
- package/dist/src/function-configs/numeric/ceil.js.map +1 -1
- package/dist/src/function-configs/numeric/clz32.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/clz32.js +16 -0
- package/dist/src/function-configs/numeric/clz32.js.map +1 -1
- package/dist/src/function-configs/numeric/cos.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/cos.js +8 -0
- package/dist/src/function-configs/numeric/cos.js.map +1 -1
- package/dist/src/function-configs/numeric/cosh.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/cosh.js +8 -0
- package/dist/src/function-configs/numeric/cosh.js.map +1 -1
- package/dist/src/function-configs/numeric/divide.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/divide.js +12 -0
- package/dist/src/function-configs/numeric/divide.js.map +1 -1
- package/dist/src/function-configs/numeric/divideValues.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/divideValues.js +6 -0
- package/dist/src/function-configs/numeric/divideValues.js.map +1 -1
- package/dist/src/function-configs/numeric/exp.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/exp.js +8 -0
- package/dist/src/function-configs/numeric/exp.js.map +1 -1
- package/dist/src/function-configs/numeric/floor.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/floor.js +13 -0
- package/dist/src/function-configs/numeric/floor.js.map +1 -1
- package/dist/src/function-configs/numeric/fround.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/fround.js +5 -0
- package/dist/src/function-configs/numeric/fround.js.map +1 -1
- package/dist/src/function-configs/numeric/hypot.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/hypot.js +14 -0
- package/dist/src/function-configs/numeric/hypot.js.map +1 -1
- package/dist/src/function-configs/numeric/inNumberRange.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/inNumberRange.js +20 -0
- package/dist/src/function-configs/numeric/inNumberRange.js.map +1 -1
- package/dist/src/function-configs/numeric/isEven.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/isEven.js +4 -0
- package/dist/src/function-configs/numeric/isEven.js.map +1 -1
- package/dist/src/function-configs/numeric/isGreaterThan.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/isGreaterThan.js +6 -0
- package/dist/src/function-configs/numeric/isGreaterThan.js.map +1 -1
- package/dist/src/function-configs/numeric/isGreaterThanOrEqualTo.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/isGreaterThanOrEqualTo.js +6 -0
- package/dist/src/function-configs/numeric/isGreaterThanOrEqualTo.js.map +1 -1
- package/dist/src/function-configs/numeric/isLessThan.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/isLessThan.js +6 -0
- package/dist/src/function-configs/numeric/isLessThan.js.map +1 -1
- package/dist/src/function-configs/numeric/isLessThanOrEqualTo.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/isLessThanOrEqualTo.js +6 -0
- package/dist/src/function-configs/numeric/isLessThanOrEqualTo.js.map +1 -1
- package/dist/src/function-configs/numeric/isOdd.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/isOdd.js +9 -0
- package/dist/src/function-configs/numeric/isOdd.js.map +1 -1
- package/dist/src/function-configs/numeric/log.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/log.js +13 -0
- package/dist/src/function-configs/numeric/log.js.map +1 -1
- package/dist/src/function-configs/numeric/log10.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/log10.js +13 -0
- package/dist/src/function-configs/numeric/log10.js.map +1 -1
- package/dist/src/function-configs/numeric/log2.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/log2.js +13 -0
- package/dist/src/function-configs/numeric/log2.js.map +1 -1
- package/dist/src/function-configs/numeric/maxValues.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/maxValues.js +6 -0
- package/dist/src/function-configs/numeric/maxValues.js.map +1 -1
- package/dist/src/function-configs/numeric/minValues.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/minValues.js +6 -0
- package/dist/src/function-configs/numeric/minValues.js.map +1 -1
- package/dist/src/function-configs/numeric/modulus.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/modulus.js +9 -0
- package/dist/src/function-configs/numeric/modulus.js.map +1 -1
- package/dist/src/function-configs/numeric/multiply.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/multiply.js +12 -0
- package/dist/src/function-configs/numeric/multiply.js.map +1 -1
- package/dist/src/function-configs/numeric/multiplyValues.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/multiplyValues.js +6 -0
- package/dist/src/function-configs/numeric/multiplyValues.js.map +1 -1
- package/dist/src/function-configs/numeric/pow.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/pow.js +7 -0
- package/dist/src/function-configs/numeric/pow.js.map +1 -1
- package/dist/src/function-configs/numeric/round.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/round.js +13 -0
- package/dist/src/function-configs/numeric/round.js.map +1 -1
- package/dist/src/function-configs/numeric/setPrecision.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/setPrecision.js +26 -0
- package/dist/src/function-configs/numeric/setPrecision.js.map +1 -1
- package/dist/src/function-configs/numeric/sign.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/sign.js +5 -0
- package/dist/src/function-configs/numeric/sign.js.map +1 -1
- package/dist/src/function-configs/numeric/sin.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/sin.js +8 -0
- package/dist/src/function-configs/numeric/sin.js.map +1 -1
- package/dist/src/function-configs/numeric/sinh.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/sinh.js +8 -0
- package/dist/src/function-configs/numeric/sinh.js.map +1 -1
- package/dist/src/function-configs/numeric/sql-utils.d.ts +54 -0
- package/dist/src/function-configs/numeric/sql-utils.d.ts.map +1 -0
- package/dist/src/function-configs/numeric/sql-utils.js +76 -0
- package/dist/src/function-configs/numeric/sql-utils.js.map +1 -0
- package/dist/src/function-configs/numeric/sqrt.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/sqrt.js +10 -0
- package/dist/src/function-configs/numeric/sqrt.js.map +1 -1
- package/dist/src/function-configs/numeric/subtract.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/subtract.js +12 -0
- package/dist/src/function-configs/numeric/subtract.js.map +1 -1
- package/dist/src/function-configs/numeric/subtractValues.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/subtractValues.js +9 -0
- package/dist/src/function-configs/numeric/subtractValues.js.map +1 -1
- package/dist/src/function-configs/numeric/tan.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/tan.js +8 -0
- package/dist/src/function-configs/numeric/tan.js.map +1 -1
- package/dist/src/function-configs/numeric/tanh.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/tanh.js +8 -0
- package/dist/src/function-configs/numeric/tanh.js.map +1 -1
- package/dist/src/function-configs/numeric/toCelsius.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/toCelsius.js +14 -0
- package/dist/src/function-configs/numeric/toCelsius.js.map +1 -1
- package/dist/src/function-configs/numeric/toFahrenheit.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/toFahrenheit.js +14 -0
- package/dist/src/function-configs/numeric/toFahrenheit.js.map +1 -1
- package/dist/src/function-configs/numeric/toNumber.d.ts.map +1 -1
- package/dist/src/function-configs/numeric/toNumber.js +42 -0
- package/dist/src/function-configs/numeric/toNumber.js.map +1 -1
- package/dist/src/function-configs/object/equals.d.ts.map +1 -1
- package/dist/src/function-configs/object/equals.js +14 -0
- package/dist/src/function-configs/object/equals.js.map +1 -1
- package/dist/src/function-configs/object/isEmpty.d.ts.map +1 -1
- package/dist/src/function-configs/object/isEmpty.js +26 -0
- package/dist/src/function-configs/object/isEmpty.js.map +1 -1
- package/dist/src/function-configs/object/lookup.d.ts.map +1 -1
- package/dist/src/function-configs/object/lookup.js +8 -0
- package/dist/src/function-configs/object/lookup.js.map +1 -1
- package/dist/src/function-configs/object/sql-utils.d.ts +5 -0
- package/dist/src/function-configs/object/sql-utils.d.ts.map +1 -0
- package/dist/src/function-configs/object/sql-utils.js +96 -0
- package/dist/src/function-configs/object/sql-utils.js.map +1 -0
- package/dist/src/function-configs/sql-helpers.d.ts +115 -0
- package/dist/src/function-configs/sql-helpers.d.ts.map +1 -0
- package/dist/src/function-configs/sql-helpers.js +169 -0
- package/dist/src/function-configs/sql-helpers.js.map +1 -0
- package/dist/src/function-configs/string/contains.d.ts.map +1 -1
- package/dist/src/function-configs/string/contains.js +5 -0
- package/dist/src/function-configs/string/contains.js.map +1 -1
- package/dist/src/function-configs/string/createID.d.ts.map +1 -1
- package/dist/src/function-configs/string/createID.js +16 -0
- package/dist/src/function-configs/string/createID.js.map +1 -1
- package/dist/src/function-configs/string/decodeBase64.d.ts.map +1 -1
- package/dist/src/function-configs/string/decodeBase64.js +14 -0
- package/dist/src/function-configs/string/decodeBase64.js.map +1 -1
- package/dist/src/function-configs/string/decodeHex.d.ts.map +1 -1
- package/dist/src/function-configs/string/decodeHex.js +13 -0
- package/dist/src/function-configs/string/decodeHex.js.map +1 -1
- package/dist/src/function-configs/string/decodeURL.d.ts.map +1 -1
- package/dist/src/function-configs/string/decodeURL.js +7 -0
- package/dist/src/function-configs/string/decodeURL.js.map +1 -1
- package/dist/src/function-configs/string/encode.d.ts.map +1 -1
- package/dist/src/function-configs/string/encode.js +14 -0
- package/dist/src/function-configs/string/encode.js.map +1 -1
- package/dist/src/function-configs/string/encodeBase64.d.ts.map +1 -1
- package/dist/src/function-configs/string/encodeBase64.js +10 -0
- package/dist/src/function-configs/string/encodeBase64.js.map +1 -1
- package/dist/src/function-configs/string/encodeHex.d.ts.map +1 -1
- package/dist/src/function-configs/string/encodeHex.js +9 -0
- package/dist/src/function-configs/string/encodeHex.js.map +1 -1
- package/dist/src/function-configs/string/encodeSHA.d.ts.map +1 -1
- package/dist/src/function-configs/string/encodeSHA.js +11 -0
- package/dist/src/function-configs/string/encodeSHA.js.map +1 -1
- package/dist/src/function-configs/string/encodeSHA1.d.ts.map +1 -1
- package/dist/src/function-configs/string/encodeSHA1.js +10 -0
- package/dist/src/function-configs/string/encodeSHA1.js.map +1 -1
- package/dist/src/function-configs/string/encodeURL.d.ts.map +1 -1
- package/dist/src/function-configs/string/encodeURL.js +7 -0
- package/dist/src/function-configs/string/encodeURL.js.map +1 -1
- package/dist/src/function-configs/string/endsWith.d.ts.map +1 -1
- package/dist/src/function-configs/string/endsWith.js +5 -0
- package/dist/src/function-configs/string/endsWith.js.map +1 -1
- package/dist/src/function-configs/string/entropy.d.ts.map +1 -1
- package/dist/src/function-configs/string/entropy.js +17 -0
- package/dist/src/function-configs/string/entropy.js.map +1 -1
- package/dist/src/function-configs/string/extract.d.ts.map +1 -1
- package/dist/src/function-configs/string/extract.js +48 -1
- package/dist/src/function-configs/string/extract.js.map +1 -1
- package/dist/src/function-configs/string/isAlpha.d.ts.map +1 -1
- package/dist/src/function-configs/string/isAlpha.js +10 -0
- package/dist/src/function-configs/string/isAlpha.js.map +1 -1
- package/dist/src/function-configs/string/isAlphaNumeric.d.ts.map +1 -1
- package/dist/src/function-configs/string/isAlphaNumeric.js +6 -0
- package/dist/src/function-configs/string/isAlphaNumeric.js.map +1 -1
- package/dist/src/function-configs/string/isBase64.d.ts.map +1 -1
- package/dist/src/function-configs/string/isBase64.js +13 -0
- package/dist/src/function-configs/string/isBase64.js.map +1 -1
- package/dist/src/function-configs/string/isCountryCode.d.ts.map +1 -1
- package/dist/src/function-configs/string/isCountryCode.js +16 -0
- package/dist/src/function-configs/string/isCountryCode.js.map +1 -1
- package/dist/src/function-configs/string/isEmail.d.ts.map +1 -1
- package/dist/src/function-configs/string/isEmail.js +10 -0
- package/dist/src/function-configs/string/isEmail.js.map +1 -1
- package/dist/src/function-configs/string/isFQDN.d.ts.map +1 -1
- package/dist/src/function-configs/string/isFQDN.js +9 -0
- package/dist/src/function-configs/string/isFQDN.js.map +1 -1
- package/dist/src/function-configs/string/isHash.d.ts.map +1 -1
- package/dist/src/function-configs/string/isHash.js +9 -0
- package/dist/src/function-configs/string/isHash.js.map +1 -1
- package/dist/src/function-configs/string/isLength.d.ts.map +1 -1
- package/dist/src/function-configs/string/isLength.js +23 -0
- package/dist/src/function-configs/string/isLength.js.map +1 -1
- package/dist/src/function-configs/string/isMACAddress.d.ts.map +1 -1
- package/dist/src/function-configs/string/isMACAddress.js +17 -0
- package/dist/src/function-configs/string/isMACAddress.js.map +1 -1
- package/dist/src/function-configs/string/isMIMEType.d.ts.map +1 -1
- package/dist/src/function-configs/string/isMIMEType.js +10 -0
- package/dist/src/function-configs/string/isMIMEType.js.map +1 -1
- package/dist/src/function-configs/string/isPhoneNumberLike.d.ts.map +1 -1
- package/dist/src/function-configs/string/isPhoneNumberLike.js +14 -0
- package/dist/src/function-configs/string/isPhoneNumberLike.js.map +1 -1
- package/dist/src/function-configs/string/isPort.d.ts.map +1 -1
- package/dist/src/function-configs/string/isPort.js +12 -0
- package/dist/src/function-configs/string/isPort.js.map +1 -1
- package/dist/src/function-configs/string/isPostalCode.d.ts.map +1 -1
- package/dist/src/function-configs/string/isPostalCode.js +12 -0
- package/dist/src/function-configs/string/isPostalCode.js.map +1 -1
- package/dist/src/function-configs/string/isString.d.ts.map +1 -1
- package/dist/src/function-configs/string/isString.js +7 -0
- package/dist/src/function-configs/string/isString.js.map +1 -1
- package/dist/src/function-configs/string/isUUID.d.ts.map +1 -1
- package/dist/src/function-configs/string/isUUID.js +9 -0
- package/dist/src/function-configs/string/isUUID.js.map +1 -1
- package/dist/src/function-configs/string/join.d.ts.map +1 -1
- package/dist/src/function-configs/string/join.js +17 -0
- package/dist/src/function-configs/string/join.js.map +1 -1
- package/dist/src/function-configs/string/postal-code-utils.d.ts +13 -0
- package/dist/src/function-configs/string/postal-code-utils.d.ts.map +1 -0
- package/dist/src/function-configs/string/postal-code-utils.js +160 -0
- package/dist/src/function-configs/string/postal-code-utils.js.map +1 -0
- package/dist/src/function-configs/string/replaceLiteral.d.ts.map +1 -1
- package/dist/src/function-configs/string/replaceLiteral.js +22 -0
- package/dist/src/function-configs/string/replaceLiteral.js.map +1 -1
- package/dist/src/function-configs/string/replaceRegex.d.ts.map +1 -1
- package/dist/src/function-configs/string/replaceRegex.js +34 -0
- package/dist/src/function-configs/string/replaceRegex.js.map +1 -1
- package/dist/src/function-configs/string/reverse.d.ts.map +1 -1
- package/dist/src/function-configs/string/reverse.js +16 -0
- package/dist/src/function-configs/string/reverse.js.map +1 -1
- package/dist/src/function-configs/string/split.d.ts.map +1 -1
- package/dist/src/function-configs/string/split.js +13 -0
- package/dist/src/function-configs/string/split.js.map +1 -1
- package/dist/src/function-configs/string/sql-regex-utils.d.ts +91 -0
- package/dist/src/function-configs/string/sql-regex-utils.d.ts.map +1 -0
- package/dist/src/function-configs/string/sql-regex-utils.js +123 -0
- package/dist/src/function-configs/string/sql-regex-utils.js.map +1 -0
- package/dist/src/function-configs/string/sql-utils.d.ts +191 -0
- package/dist/src/function-configs/string/sql-utils.d.ts.map +1 -0
- package/dist/src/function-configs/string/sql-utils.js +321 -0
- package/dist/src/function-configs/string/sql-utils.js.map +1 -0
- package/dist/src/function-configs/string/sql-validator-utils.d.ts +49 -0
- package/dist/src/function-configs/string/sql-validator-utils.d.ts.map +1 -0
- package/dist/src/function-configs/string/sql-validator-utils.js +327 -0
- package/dist/src/function-configs/string/sql-validator-utils.js.map +1 -0
- package/dist/src/function-configs/string/startsWith.d.ts.map +1 -1
- package/dist/src/function-configs/string/startsWith.js +5 -0
- package/dist/src/function-configs/string/startsWith.js.map +1 -1
- package/dist/src/function-configs/string/toCamelCase.d.ts.map +1 -1
- package/dist/src/function-configs/string/toCamelCase.js +18 -0
- package/dist/src/function-configs/string/toCamelCase.js.map +1 -1
- package/dist/src/function-configs/string/toKebabCase.d.ts.map +1 -1
- package/dist/src/function-configs/string/toKebabCase.js +18 -0
- package/dist/src/function-configs/string/toKebabCase.js.map +1 -1
- package/dist/src/function-configs/string/toLowerCase.d.ts.map +1 -1
- package/dist/src/function-configs/string/toLowerCase.js +13 -0
- package/dist/src/function-configs/string/toLowerCase.js.map +1 -1
- package/dist/src/function-configs/string/toPascalCase.d.ts.map +1 -1
- package/dist/src/function-configs/string/toPascalCase.js +18 -0
- package/dist/src/function-configs/string/toPascalCase.js.map +1 -1
- package/dist/src/function-configs/string/toSnakeCase.d.ts.map +1 -1
- package/dist/src/function-configs/string/toSnakeCase.js +18 -0
- package/dist/src/function-configs/string/toSnakeCase.js.map +1 -1
- package/dist/src/function-configs/string/toString.d.ts.map +1 -1
- package/dist/src/function-configs/string/toString.js +42 -0
- package/dist/src/function-configs/string/toString.js.map +1 -1
- package/dist/src/function-configs/string/toTitleCase.d.ts.map +1 -1
- package/dist/src/function-configs/string/toTitleCase.js +19 -0
- package/dist/src/function-configs/string/toTitleCase.js.map +1 -1
- package/dist/src/function-configs/string/toUpperCase.d.ts.map +1 -1
- package/dist/src/function-configs/string/toUpperCase.js +13 -0
- package/dist/src/function-configs/string/toUpperCase.js.map +1 -1
- package/dist/src/function-configs/string/trim.d.ts.map +1 -1
- package/dist/src/function-configs/string/trim.js +11 -0
- package/dist/src/function-configs/string/trim.js.map +1 -1
- package/dist/src/function-configs/string/trimEnd.d.ts.map +1 -1
- package/dist/src/function-configs/string/trimEnd.js +11 -0
- package/dist/src/function-configs/string/trimEnd.js.map +1 -1
- package/dist/src/function-configs/string/trimStart.d.ts.map +1 -1
- package/dist/src/function-configs/string/trimStart.js +11 -0
- package/dist/src/function-configs/string/trimStart.js.map +1 -1
- package/dist/src/function-configs/string/truncate.d.ts.map +1 -1
- package/dist/src/function-configs/string/truncate.js +15 -0
- package/dist/src/function-configs/string/truncate.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/teal-frame/DuckContext.d.ts +105 -0
- package/dist/src/teal-frame/DuckContext.d.ts.map +1 -0
- package/dist/src/teal-frame/DuckContext.js +244 -0
- package/dist/src/teal-frame/DuckContext.js.map +1 -0
- package/dist/src/teal-frame/TealFrame.d.ts +371 -0
- package/dist/src/teal-frame/TealFrame.d.ts.map +1 -0
- package/dist/src/teal-frame/TealFrame.js +575 -0
- package/dist/src/teal-frame/TealFrame.js.map +1 -0
- package/dist/src/teal-frame/append.d.ts +45 -0
- package/dist/src/teal-frame/append.d.ts.map +1 -0
- package/dist/src/teal-frame/append.js +136 -0
- package/dist/src/teal-frame/append.js.map +1 -0
- package/dist/src/teal-frame/clauses.d.ts +22 -0
- package/dist/src/teal-frame/clauses.d.ts.map +1 -0
- package/dist/src/teal-frame/clauses.js +41 -0
- package/dist/src/teal-frame/clauses.js.map +1 -0
- package/dist/src/teal-frame/database.d.ts +46 -0
- package/dist/src/teal-frame/database.d.ts.map +1 -0
- package/dist/src/teal-frame/database.js +91 -0
- package/dist/src/teal-frame/database.js.map +1 -0
- package/dist/src/teal-frame/date-value.d.ts +55 -0
- package/dist/src/teal-frame/date-value.d.ts.map +1 -0
- package/dist/src/teal-frame/date-value.js +106 -0
- package/dist/src/teal-frame/date-value.js.map +1 -0
- package/dist/src/teal-frame/deep-select.d.ts +8 -0
- package/dist/src/teal-frame/deep-select.d.ts.map +1 -0
- package/dist/src/teal-frame/deep-select.js +125 -0
- package/dist/src/teal-frame/deep-select.js.map +1 -0
- package/dist/src/teal-frame/duck-values.d.ts +37 -0
- package/dist/src/teal-frame/duck-values.d.ts.map +1 -0
- package/dist/src/teal-frame/duck-values.js +173 -0
- package/dist/src/teal-frame/duck-values.js.map +1 -0
- package/dist/src/teal-frame/errors.d.ts +38 -0
- package/dist/src/teal-frame/errors.d.ts.map +1 -0
- package/dist/src/teal-frame/errors.js +63 -0
- package/dist/src/teal-frame/errors.js.map +1 -0
- package/dist/src/teal-frame/expand-values.d.ts +29 -0
- package/dist/src/teal-frame/expand-values.d.ts.map +1 -0
- package/dist/src/teal-frame/expand-values.js +53 -0
- package/dist/src/teal-frame/expand-values.js.map +1 -0
- package/dist/src/teal-frame/export-json.d.ts +58 -0
- package/dist/src/teal-frame/export-json.d.ts.map +1 -0
- package/dist/src/teal-frame/export-json.js +409 -0
- package/dist/src/teal-frame/export-json.js.map +1 -0
- package/dist/src/teal-frame/extension-tools.d.ts +40 -0
- package/dist/src/teal-frame/extension-tools.d.ts.map +1 -0
- package/dist/src/teal-frame/extension-tools.js +115 -0
- package/dist/src/teal-frame/extension-tools.js.map +1 -0
- package/dist/src/teal-frame/extensions-cli.d.ts +2 -0
- package/dist/src/teal-frame/extensions-cli.d.ts.map +1 -0
- package/dist/src/teal-frame/extensions-cli.js +56 -0
- package/dist/src/teal-frame/extensions-cli.js.map +1 -0
- package/dist/src/teal-frame/extensions.d.ts +53 -0
- package/dist/src/teal-frame/extensions.d.ts.map +1 -0
- package/dist/src/teal-frame/extensions.js +110 -0
- package/dist/src/teal-frame/extensions.js.map +1 -0
- package/dist/src/teal-frame/index.d.ts +23 -0
- package/dist/src/teal-frame/index.d.ts.map +1 -0
- package/dist/src/teal-frame/index.js +23 -0
- package/dist/src/teal-frame/index.js.map +1 -0
- package/dist/src/teal-frame/interfaces.d.ts +186 -0
- package/dist/src/teal-frame/interfaces.d.ts.map +1 -0
- package/dist/src/teal-frame/interfaces.js +2 -0
- package/dist/src/teal-frame/interfaces.js.map +1 -0
- package/dist/src/teal-frame/line-stream.d.ts +10 -0
- package/dist/src/teal-frame/line-stream.d.ts.map +1 -0
- package/dist/src/teal-frame/line-stream.js +35 -0
- package/dist/src/teal-frame/line-stream.js.map +1 -0
- package/dist/src/teal-frame/order-safety.d.ts +15 -0
- package/dist/src/teal-frame/order-safety.d.ts.map +1 -0
- package/dist/src/teal-frame/order-safety.js +21 -0
- package/dist/src/teal-frame/order-safety.js.map +1 -0
- package/dist/src/teal-frame/output.d.ts +18 -0
- package/dist/src/teal-frame/output.d.ts.map +1 -0
- package/dist/src/teal-frame/output.js +63 -0
- package/dist/src/teal-frame/output.js.map +1 -0
- package/dist/src/teal-frame/parquet-columns.d.ts +15 -0
- package/dist/src/teal-frame/parquet-columns.d.ts.map +1 -0
- package/dist/src/teal-frame/parquet-columns.js +45 -0
- package/dist/src/teal-frame/parquet-columns.js.map +1 -0
- package/dist/src/teal-frame/plain-values.d.ts +30 -0
- package/dist/src/teal-frame/plain-values.d.ts.map +1 -0
- package/dist/src/teal-frame/plain-values.js +69 -0
- package/dist/src/teal-frame/plain-values.js.map +1 -0
- package/dist/src/teal-frame/row-shape.d.ts +21 -0
- package/dist/src/teal-frame/row-shape.d.ts.map +1 -0
- package/dist/src/teal-frame/row-shape.js +94 -0
- package/dist/src/teal-frame/row-shape.js.map +1 -0
- package/dist/src/teal-frame/scalar-function.d.ts +66 -0
- package/dist/src/teal-frame/scalar-function.d.ts.map +1 -0
- package/dist/src/teal-frame/scalar-function.js +75 -0
- package/dist/src/teal-frame/scalar-function.js.map +1 -0
- package/dist/src/teal-frame/schema-check.d.ts +43 -0
- package/dist/src/teal-frame/schema-check.d.ts.map +1 -0
- package/dist/src/teal-frame/schema-check.js +66 -0
- package/dist/src/teal-frame/schema-check.js.map +1 -0
- package/dist/src/teal-frame/sources.d.ts +14 -0
- package/dist/src/teal-frame/sources.d.ts.map +1 -0
- package/dist/src/teal-frame/sources.js +28 -0
- package/dist/src/teal-frame/sources.js.map +1 -0
- package/dist/src/teal-frame/table.d.ts +19 -0
- package/dist/src/teal-frame/table.d.ts.map +1 -0
- package/dist/src/teal-frame/table.js +64 -0
- package/dist/src/teal-frame/table.js.map +1 -0
- package/dist/src/teal-frame/udf-types.d.ts +45 -0
- package/dist/src/teal-frame/udf-types.d.ts.map +1 -0
- package/dist/src/teal-frame/udf-types.js +157 -0
- package/dist/src/teal-frame/udf-types.js.map +1 -0
- package/dist/src/teal-frame/wkb.d.ts +6 -0
- package/dist/src/teal-frame/wkb.d.ts.map +1 -0
- package/dist/src/teal-frame/wkb.js +167 -0
- package/dist/src/teal-frame/wkb.js.map +1 -0
- package/package.json +18 -11
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { FieldType } from '@terascope/types';
|
|
2
|
+
import { toGeoJSON } from '@terascope/geo-utils';
|
|
3
|
+
import { sqlLiteral } from '../sql-helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* Helpers for the SQL expressions of the geo function configs.
|
|
6
|
+
*
|
|
7
|
+
* A `GeoJSON` column is stored as a `GEOMETRY` and a `GeoPoint` column as
|
|
8
|
+
* `STRUCT(lat DOUBLE, lon DOUBLE)` (see `data-types/src/types/v1/`). Shapes are parsed once at
|
|
9
|
+
* ingest, so these helpers read the stored value rather than parsing it again.
|
|
10
|
+
*/
|
|
11
|
+
export function isGeoJSONColumn(inputConfig) {
|
|
12
|
+
return inputConfig?.field_config?.type === FieldType.GeoJSON;
|
|
13
|
+
}
|
|
14
|
+
/** The three shapes a `GeoShape` can be, as `ST_GeometryType` names them. */
|
|
15
|
+
const GEO_SHAPE_TYPES = ['POINT', 'POLYGON', 'MULTIPOLYGON'];
|
|
16
|
+
/**
|
|
17
|
+
* `isGeoJSON` on a `GeoJSON` column: the stored geometry is one of the three shapes.
|
|
18
|
+
*
|
|
19
|
+
* Ingest only accepts those three (`geoShapeToWKB` rejects anything else), so this is true for
|
|
20
|
+
* every non-null value. Reading the type instead of assuming it costs nothing.
|
|
21
|
+
*/
|
|
22
|
+
export function isGeoJSONSql(value) {
|
|
23
|
+
return `(ST_GeometryType(${value}) IN (${GEO_SHAPE_TYPES.map((t) => `'${t}'`).join(', ')}))`;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* True when the stored geometry is the given shape.
|
|
27
|
+
*
|
|
28
|
+
* This intentionally differs from `DataFrame`. `isGeoShapePoint` compares the stored `type`
|
|
29
|
+
* string exactly against `'Point'` and `'point'`, and `DataFrame` keeps whatever spelling arrived,
|
|
30
|
+
* so `{ type: 'POINT' }` is not a point there. A `GEOMETRY` stores the shape rather than the
|
|
31
|
+
* spelling, so this reports that value as a point. `sql-emission-spec.ts` lists it as a known
|
|
32
|
+
* difference.
|
|
33
|
+
*/
|
|
34
|
+
export function isGeoShapeSql(value, shape) {
|
|
35
|
+
return `(ST_GeometryType(${value}) = '${shape}')`;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A `GeoPoint`-shaped column, whose DuckDB type is `STRUCT(lat DOUBLE, lon DOUBLE)`.
|
|
39
|
+
*/
|
|
40
|
+
const POINT_TYPES = [FieldType.GeoPoint, FieldType.Geo];
|
|
41
|
+
export function isGeoPointColumn(inputConfig) {
|
|
42
|
+
return POINT_TYPES.includes(inputConfig?.field_config?.type);
|
|
43
|
+
}
|
|
44
|
+
/** One member of the point struct. */
|
|
45
|
+
export function pointPart(value, part) {
|
|
46
|
+
return `struct_extract(${value}, '${part}')`;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A bounding-box test as two inclusive range checks rather than a spatial predicate.
|
|
50
|
+
*
|
|
51
|
+
* DuckDB's `ST_Within` and `ST_Contains` exclude the boundary, while turf's
|
|
52
|
+
* `booleanPointInPolygon` (used by `inGeoBoundingBox`) includes it, so a spatial predicate would
|
|
53
|
+
* disagree for a point on an edge. None is needed: `createValidGeoBox` builds only axis-aligned
|
|
54
|
+
* boxes and rejects one that crosses the antimeridian, so containment is a latitude range and a
|
|
55
|
+
* longitude range, both inclusive like turf.
|
|
56
|
+
*/
|
|
57
|
+
export function inBoundingBoxSql(value, topLeft, bottomRight) {
|
|
58
|
+
return `(${pointPart(value, 'lat')} BETWEEN ${bottomRight.lat} AND ${topLeft.lat}`
|
|
59
|
+
+ ` AND ${pointPart(value, 'lon')} BETWEEN ${topLeft.lon} AND ${bottomRight.lon})`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* ## Spatial predicates
|
|
63
|
+
*
|
|
64
|
+
* `geoContains`, `geoWithin`, `geoIntersects`, `geoDisjoint` and `geoRelation` run as `ST_*`
|
|
65
|
+
* functions, which need the `spatial` extension. It does not autoload; `TealFrame` loads it when
|
|
66
|
+
* it opens.
|
|
67
|
+
*
|
|
68
|
+
* These do not always match `geo-utils`. `geoContainsFP` splits each shape into shell and hole
|
|
69
|
+
* polygons and tests the query shape against each hole with `booleanIntersects`, which includes
|
|
70
|
+
* the boundary. A shape that only touches a hole's edge is therefore treated as inside the hole
|
|
71
|
+
* and reported as not contained. `ST_Contains` follows the OGC rules and reports it as contained,
|
|
72
|
+
* which is geometrically correct.
|
|
73
|
+
*
|
|
74
|
+
* `geoIntersects` and `geoDisjoint` give the same answers on both paths. `geoContains`,
|
|
75
|
+
* `geoWithin` and `geoRelation` differ only in these hole-edge cases.
|
|
76
|
+
*/
|
|
77
|
+
/**
|
|
78
|
+
* The column as a `GEOMETRY`.
|
|
79
|
+
*
|
|
80
|
+
* A `GeoJSON` column already is one. A `GeoPoint` column becomes a point. `ST_Point` takes
|
|
81
|
+
* (x, y), so longitude comes first, matching `makeCoordinatesFromGeoPoint`.
|
|
82
|
+
*/
|
|
83
|
+
export function asGeometry(value, inputConfig) {
|
|
84
|
+
if (isGeoPointColumn(inputConfig)) {
|
|
85
|
+
return `ST_Point(${pointPart(value, 'lon')}, ${pointPart(value, 'lat')})`;
|
|
86
|
+
}
|
|
87
|
+
return value;
|
|
88
|
+
}
|
|
89
|
+
/** A constant geo argument as a `GEOMETRY`, resolved at plan time. */
|
|
90
|
+
export function constantGeometry(value) {
|
|
91
|
+
const shape = toGeoJSON(value);
|
|
92
|
+
if (shape == null)
|
|
93
|
+
return 'NULL';
|
|
94
|
+
return `ST_GeomFromGeoJSON(${sqlLiteral(JSON.stringify(shape))})`;
|
|
95
|
+
}
|
|
96
|
+
/** True when the argument resolves to a shape that `constantGeometry` can build. */
|
|
97
|
+
export function isGeoArg(value) {
|
|
98
|
+
return toGeoJSON(value) != null;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Wraps a spatial predicate in `try()` so an unparseable shape gives null instead of failing the
|
|
102
|
+
* query.
|
|
103
|
+
*
|
|
104
|
+
* `ST_GeomFromGeoJSON` throws on a non-canonical `type` spelling such as
|
|
105
|
+
* `{"type":"POINT","coordinates":[10,20]}`, and a `GeoJSON` column can hold that spelling
|
|
106
|
+
* (coercion normalizes `'point'` to `'Point'` but leaves `'POINT'`). In JavaScript, `toGeoJSON`
|
|
107
|
+
* cannot map it either and the predicate returns `false`. A validation nulls the row for both
|
|
108
|
+
* `false` and null, so `try()` makes the two paths agree.
|
|
109
|
+
*/
|
|
110
|
+
export function tryPredicate(expression) {
|
|
111
|
+
return `try(${expression})`;
|
|
112
|
+
}
|
|
113
|
+
/** A column the geo predicates can turn into a geometry. */
|
|
114
|
+
export function isGeoColumn(inputConfig) {
|
|
115
|
+
return isGeoJSONColumn(inputConfig) || isGeoPointColumn(inputConfig);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* True for a column that holds one value per row. The `FULL_VALUES` predicates receive the whole
|
|
119
|
+
* value, which on an array column is a `GEOMETRY[]` that no `ST_*` function accepts. They decline
|
|
120
|
+
* it, and the UDF handles the list as `DataFrame` does.
|
|
121
|
+
*/
|
|
122
|
+
export function isScalarColumn(inputConfig) {
|
|
123
|
+
return inputConfig?.field_config?.array !== true;
|
|
124
|
+
}
|
|
125
|
+
/** `GeoShapeRelation` to its `ST_*` counterpart. */
|
|
126
|
+
const RELATION_FUNCTIONS = {
|
|
127
|
+
intersects: 'ST_Intersects',
|
|
128
|
+
disjoint: 'ST_Disjoint',
|
|
129
|
+
within: 'ST_Within',
|
|
130
|
+
contains: 'ST_Contains',
|
|
131
|
+
};
|
|
132
|
+
export function relationFunction(relation) {
|
|
133
|
+
return RELATION_FUNCTIONS[String(relation)] ?? null;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Meters per unit for the canonical `GEO_DISTANCE_UNITS`, for `ST_Distance_Sphere`.
|
|
137
|
+
*
|
|
138
|
+
* The factors are turf's own, so a `110km` range is the same number of meters on both paths.
|
|
139
|
+
* `parseGeoDistance` has already mapped every alias (`mi`, `NM`, `yd`, ...) to one of these.
|
|
140
|
+
*/
|
|
141
|
+
const METERS_PER_UNIT = {
|
|
142
|
+
millimeters: 0.001,
|
|
143
|
+
centimeters: 0.01,
|
|
144
|
+
inch: 0.0254,
|
|
145
|
+
feet: 0.3048,
|
|
146
|
+
yards: 0.9144,
|
|
147
|
+
meters: 1,
|
|
148
|
+
kilometers: 1000,
|
|
149
|
+
miles: 1609.344,
|
|
150
|
+
nauticalmiles: 1852,
|
|
151
|
+
radians: 6371008.8,
|
|
152
|
+
degrees: 111194.92664455873,
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* A range in meters, or null when the unit has no factor here.
|
|
156
|
+
*
|
|
157
|
+
* The SQL path intentionally differs from `geoPointWithinRange`. `makeGeoCircle` builds a 64-sided
|
|
158
|
+
* turf polygon and tests the point against it, which under-approximates the circle by about
|
|
159
|
+
* `r * (1 - cos(pi/64))`, roughly 1.2 km at 1000 km. For a `1000km` range it reports a point
|
|
160
|
+
* 998.867 km away as out of range. A true distance test has no such error.
|
|
161
|
+
*/
|
|
162
|
+
export function rangeInMeters(distance, unit) {
|
|
163
|
+
const factor = METERS_PER_UNIT[String(unit)];
|
|
164
|
+
if (factor == null || !Number.isFinite(Number(distance)))
|
|
165
|
+
return null;
|
|
166
|
+
return Number(distance) * factor;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* The great-circle distance in meters from the point column to `center`.
|
|
170
|
+
*
|
|
171
|
+
* `ST_Distance_Sphere` expects WGS84 coordinates in (latitude, longitude) order, the opposite of
|
|
172
|
+
* the (x, y) order `asGeometry` passes to `ST_Point`. Swapping them gives a plausible wrong number
|
|
173
|
+
* rather than an error.
|
|
174
|
+
*/
|
|
175
|
+
export function distanceSphere(value, center) {
|
|
176
|
+
return `ST_Distance_Sphere(ST_Point(${pointPart(value, 'lat')}, ${pointPart(value, 'lon')}),`
|
|
177
|
+
+ ` ST_Point(${center.lat}, ${center.lon}))`;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=sql-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-utils.js","sourceRoot":"","sources":["../../../../src/function-configs/geo/sql-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,6 +112,108 @@ export interface FunctionDefinitionConfig<T extends Record<string, any>> {
|
|
|
112
112
|
readonly accepts: readonly FieldType[];
|
|
113
113
|
/** Used for additional custom validation of args, called after generic arg validation */
|
|
114
114
|
readonly validate_arguments?: (args: T) => void;
|
|
115
|
+
/**
|
|
116
|
+
* How to run this function as a SQL expression instead of a JavaScript UDF.
|
|
117
|
+
*
|
|
118
|
+
* It is declared on the function definition, next to the name, arguments, accepted types and
|
|
119
|
+
* implementation, so it cannot drift from the rest of the definition. These definitions are
|
|
120
|
+
* also exposed as GraphQL directives, so they are the public surface.
|
|
121
|
+
*
|
|
122
|
+
* A JS UDF costs ~178 ns per value and runs single-threaded, because the Node binding blocks
|
|
123
|
+
* DuckDB's worker thread until JavaScript returns. Native SQL costs 1-2 ns per value and runs
|
|
124
|
+
* in parallel.
|
|
125
|
+
*
|
|
126
|
+
* An expression must return exactly what the function's UDF returns, and
|
|
127
|
+
* `test/teal-frame/sql-emission-spec.ts` checks that. Obvious translations often differ: JS
|
|
128
|
+
* `trim()` strips all Unicode whitespace while DuckDB's one-argument `trim` strips only spaces,
|
|
129
|
+
* and `toUpperCase` uses full case mapping while `upper()` uses simple mapping (`'ß'` becomes
|
|
130
|
+
* `SS` in JS and `ẞ` in SQL).
|
|
131
|
+
*/
|
|
132
|
+
readonly sql?: SqlEmission<T>;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* A function's SQL form.
|
|
136
|
+
*
|
|
137
|
+
* `expression` builds SQL for one value rather than for the column, because the caller decides how
|
|
138
|
+
* the value is reached: the column for a scalar field, or the lambda variable inside a
|
|
139
|
+
* `list_transform` for an array field under `INDIVIDUAL_VALUES`. Array fields therefore need
|
|
140
|
+
* nothing extra here.
|
|
141
|
+
*/
|
|
142
|
+
export interface SqlEmission<T extends Record<string, any>> {
|
|
143
|
+
/** Builds the expression. It must be null-safe: a null input must produce null. */
|
|
144
|
+
readonly expression: (ctx: SqlEmissionContext<T>) => string;
|
|
145
|
+
/**
|
|
146
|
+
* Set when a `Date` result is already the stored date value, `{ ms, tz_offset }`, rather than a
|
|
147
|
+
* TIMESTAMP, so the adapter must not wrap it (wrapping would set the offset to null). Only the
|
|
148
|
+
* functions that attach an offset need it: `setTimezone`, `toTimeZone` and
|
|
149
|
+
* `toTimeZoneUsingLocation`. See `teal-frame/date-value.ts`.
|
|
150
|
+
*/
|
|
151
|
+
readonly returns_date_value?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Field types this expression is valid for. Defaults to the function's `accepts`.
|
|
154
|
+
*
|
|
155
|
+
* A function that accepts both `String` and `Number` may have a native equivalent for only
|
|
156
|
+
* one of them.
|
|
157
|
+
*/
|
|
158
|
+
readonly types?: readonly FieldType[];
|
|
159
|
+
/**
|
|
160
|
+
* Whether this expression is valid for these arguments.
|
|
161
|
+
*
|
|
162
|
+
* `types` narrows by column type; this narrows by argument. For example, `encodeSHA` takes a
|
|
163
|
+
* `hash` and a `digest`: DuckDB has `md5`, `sha1` and `sha256` but no `sha512`, and returns
|
|
164
|
+
* only hex, so only some combinations can run as SQL. Returning false uses the UDF for that
|
|
165
|
+
* call.
|
|
166
|
+
*/
|
|
167
|
+
readonly applies?: (args: T, inputConfig: DataTypeFieldAndChildren) => boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Set when the expression matches the UDF to within a few ULP rather than exactly.
|
|
170
|
+
*
|
|
171
|
+
* Only for transcendental functions. IEEE 754 requires exact results only for `sqrt` and the
|
|
172
|
+
* basic arithmetic operations, so DuckDB's libm and V8 can differ in the last bit for `sin`,
|
|
173
|
+
* `cos`, `ln` and similar (for one input, `cos` gives `0.9910848718142532` in SQL and `...533`
|
|
174
|
+
* in JavaScript). The parity test compares these with a relative tolerance of a few ULP and
|
|
175
|
+
* requires exact equality everywhere else.
|
|
176
|
+
*
|
|
177
|
+
* Never set this for a function whose result must round-trip exactly: anything algebraic,
|
|
178
|
+
* anything that returns an integer, or anything a caller might compare for equality.
|
|
179
|
+
*/
|
|
180
|
+
readonly approximate?: boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Set when `expression` calls `ctx.udf`, so the adapter still registers the JavaScript
|
|
183
|
+
* implementation.
|
|
184
|
+
*
|
|
185
|
+
* This allows a guarded fast path. `toUpperCase` is `upper()` for ASCII but needs JavaScript's
|
|
186
|
+
* full case mapping otherwise, so its SQL is
|
|
187
|
+
* `CASE WHEN <ascii> THEN upper(x) ELSE udf(x) END` and the UDF runs only for the values that
|
|
188
|
+
* need it. When this is not set, no UDF is registered.
|
|
189
|
+
*/
|
|
190
|
+
readonly needs_udf_fallback?: boolean;
|
|
191
|
+
}
|
|
192
|
+
export interface SqlEmissionContext<T extends Record<string, any>> {
|
|
193
|
+
/**
|
|
194
|
+
* SQL for one already-typed value: the quoted column, or a lambda variable.
|
|
195
|
+
*
|
|
196
|
+
* For a `Date` it is a TIMESTAMP of the local wall time (the instant shifted by the row's
|
|
197
|
+
* offset, or the instant itself when there is no offset), which is what `DataFrame`'s date
|
|
198
|
+
* functions read from a `DateTuple`. Dates are stored as `{ ms, tz_offset }`; see
|
|
199
|
+
* `teal-frame/date-value.ts`.
|
|
200
|
+
*/
|
|
201
|
+
readonly value: string;
|
|
202
|
+
/**
|
|
203
|
+
* For a `Date` only: a TIMESTAMP of the instant, ignoring any offset, for a function that
|
|
204
|
+
* reads UTC (`getUTCHours`) or compares instants.
|
|
205
|
+
*/
|
|
206
|
+
readonly instant?: string;
|
|
207
|
+
readonly args: T;
|
|
208
|
+
readonly inputConfig: DataTypeFieldAndChildren;
|
|
209
|
+
readonly outputConfig: DataTypeFieldAndChildren;
|
|
210
|
+
/**
|
|
211
|
+
* Calls this function's JavaScript UDF on `value`.
|
|
212
|
+
*
|
|
213
|
+
* Only usable when `needs_udf_fallback` is set. Otherwise no UDF exists, and calling this
|
|
214
|
+
* throws at plan time instead of producing SQL that references a missing function.
|
|
215
|
+
*/
|
|
216
|
+
readonly udf: (value: string) => string;
|
|
115
217
|
}
|
|
116
218
|
export interface FunctionContext<T extends Record<string, any> = Record<string, unknown>> {
|
|
117
219
|
readonly args: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/function-configs/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAC9C,sBAAsB,EAAE,sBAAsB,EACjD,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,oBAAY,sBAAsB;IAC9B,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IAErC,iBAAiB,qBAAqB;CACzC;AAED,oBAAY,WAAW;IACnB,qEAAqE;IACrE,iBAAiB,sBAAsB;IACvC,qFAAqF;IACrF,WAAW,gBAAgB;IAC3B,2EAA2E;IAC3E,IAAI,SAAS;CAChB;AAED,oBAAY,0BAA0B;IAClC,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,EAAE,OAAO;CACZ;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO;IACjF;;MAEE;IACF,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjB;;MAEE;IACF,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAExC;;;MAGE;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB;;;MAGE;IACF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB;;;;MAIE;IACF,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEpB;;;;MAIE;IACF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC;IAEnD;;;MAGE;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEzB;;MAEE;IACF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;MAGE;IACF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACnE;;;MAGE;IACF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;MAEE;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAErC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAEtC,qCAAqC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;MAEE;IACF,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAE9C;;;;MAIE;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5D;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEhD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IAEvC,yFAAyF;IACzF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/function-configs/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/function-configs/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACkB,SAAS,GAEjC,MAAM,kBAAkB,CAAC;AAK1B,MAAM,CAAN,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAC9B,6DAAmC,CAAA;IACnC,+DAAqC,CAAA;IACrC,+DAAqC,CAAA;IACrC,uEAAuE;IACvE,gEAAsC,CAAA;AAC1C,CAAC,EANW,sBAAsB,KAAtB,sBAAsB,QAMjC;AAED,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,qEAAqE;IACrE,sDAAuC,CAAA;IACvC,qFAAqF;IACrF,0CAA2B,CAAA;IAC3B,2EAA2E;IAC3E,4BAAa,CAAA;AACjB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,MAAM,CAAN,IAAY,0BASX;AATD,WAAY,0BAA0B;IAClC,iDAAmB,CAAA;IACnB,yCAAW,CAAA;IACX,2CAAa,CAAA;IACb,iDAAmB,CAAA;IACnB,+CAAiB,CAAA;IACjB,+CAAiB,CAAA;IACjB,2CAAa,CAAA;IACb,uCAAS,CAAA;AACb,CAAC,EATW,0BAA0B,KAA1B,0BAA0B,QASrC;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/function-configs/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACkB,SAAS,GAEjC,MAAM,kBAAkB,CAAC;AAK1B,MAAM,CAAN,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAC9B,6DAAmC,CAAA;IACnC,+DAAqC,CAAA;IACrC,+DAAqC,CAAA;IACrC,uEAAuE;IACvE,gEAAsC,CAAA;AAC1C,CAAC,EANW,sBAAsB,KAAtB,sBAAsB,QAMjC;AAED,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,qEAAqE;IACrE,sDAAuC,CAAA;IACvC,qFAAqF;IACrF,0CAA2B,CAAA;IAC3B,2EAA2E;IAC3E,4BAAa,CAAA;AACjB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,MAAM,CAAN,IAAY,0BASX;AATD,WAAY,0BAA0B;IAClC,iDAAmB,CAAA;IACnB,yCAAW,CAAA;IACX,2CAAa,CAAA;IACb,iDAAmB,CAAA;IACnB,+CAAiB,CAAA;IACjB,+CAAiB,CAAA;IACjB,2CAAa,CAAA;IACb,uCAAS,CAAA;AACb,CAAC,EATW,0BAA0B,KAA1B,0BAA0B,QASrC;AAmUD,MAAM,UAAU,iBAAiB,CAC7B,KAAkC;IAElC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,gBAAgB,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC5B,KAAkC;IAElC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,eAAe,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC5B,KAAkC;IAElC,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,KAAkC;IAElC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,gBAAgB,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,KAAkC;IAElC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,iBAAiB,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,KAAkC;IAElC,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,YAAY,GAAG;IACjB,SAAS,CAAC,IAAI;IACd,SAAS,CAAC,MAAM;IAChB,SAAS,CAAC,IAAI;IACd,SAAS,CAAC,MAAM;IAChB,SAAS,CAAC,KAAK;IACf,SAAS,CAAC,OAAO;IACjB,SAAS,CAAC,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,WAA0C;IACpE,OAAO,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAiB,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractMappedIPv4.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/extractMappedIPv4.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"extractMappedIPv4.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/extractMappedIPv4.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,uBAAuB,EAAE,oBA4CrC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { extractMappedIPv4 } from '@terascope/ip-utils';
|
|
2
2
|
import { FieldType } from '@terascope/types';
|
|
3
3
|
import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
|
|
4
|
+
import { isMappedIPv4Sql, asInet, } from './sql-utils.js';
|
|
4
5
|
export const extractMappedIPv4Config = {
|
|
5
6
|
name: 'extractMappedIPv4',
|
|
6
7
|
type: FunctionDefinitionType.FIELD_TRANSFORM,
|
|
@@ -26,6 +27,16 @@ export const extractMappedIPv4Config = {
|
|
|
26
27
|
create() {
|
|
27
28
|
return extractMappedIPv4;
|
|
28
29
|
},
|
|
30
|
+
/**
|
|
31
|
+
* The embedded IPv4 address. `host()` already prints a mapped address with a dotted tail
|
|
32
|
+
* (`::ffff:1.2.3.4`), so this strips the prefix rather than masking 32 bits.
|
|
33
|
+
*/
|
|
34
|
+
sql: {
|
|
35
|
+
needs_udf_fallback: true,
|
|
36
|
+
expression: ({ value, udf }) => `CASE WHEN ${isMappedIPv4Sql(value)}`
|
|
37
|
+
+ ` THEN regexp_replace(host(${asInet(value)}), '^::(ffff:)?', '')`
|
|
38
|
+
+ ` ELSE ${udf(value)} END`,
|
|
39
|
+
},
|
|
29
40
|
accepts: [FieldType.String, FieldType.IP],
|
|
30
41
|
output_type({ field_config }) {
|
|
31
42
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractMappedIPv4.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/extractMappedIPv4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"extractMappedIPv4.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/extractMappedIPv4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,eAAe,EAAE,MAAM,GAC1B,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IACzD,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,EAAE;IACvC,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,cAAc;SACzB;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,cAAc;SACzB;KACJ;IACD,WAAW,EAAE,kFAAkF;IAC/F,MAAM;QACF,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IACD;;;MAGE;IACF,GAAG,EAAE;QACD,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,aAAa,eAAe,CAAC,KAAK,CAAC,EAAE;cAC/D,6BAA6B,MAAM,CAAC,KAAK,CAAC,uBAAuB;cACjE,SAAS,GAAG,CAAC,KAAK,CAAC,MAAM;KAClC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;IACzC,WAAW,CAAC,EAAE,YAAY,EAAE;QACxB,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,EAAE;aACrB;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCIDRBroadcast.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRBroadcast.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCIDRBroadcast.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRBroadcast.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,sBAAsB,EAAE,oBAwCpC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getCIDRBroadcast } from '@terascope/ip-utils';
|
|
2
2
|
import { FieldType } from '@terascope/types';
|
|
3
3
|
import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
|
|
4
|
+
import { isIPv4CIDRSql, cidrBroadcast, } from './sql-utils.js';
|
|
4
5
|
export const getCIDRBroadcastConfig = {
|
|
5
6
|
name: 'getCIDRBroadcast',
|
|
6
7
|
type: FunctionDefinitionType.FIELD_TRANSFORM,
|
|
@@ -26,6 +27,12 @@ export const getCIDRBroadcastConfig = {
|
|
|
26
27
|
create() {
|
|
27
28
|
return getCIDRBroadcast;
|
|
28
29
|
},
|
|
30
|
+
/** IPv4 only, for the same reason as `getCIDRNetwork`. */
|
|
31
|
+
sql: {
|
|
32
|
+
needs_udf_fallback: true,
|
|
33
|
+
expression: ({ value, udf }) => `CASE WHEN ${isIPv4CIDRSql(value)}`
|
|
34
|
+
+ ` THEN host(${cidrBroadcast(value)}) ELSE ${udf(value)} END`,
|
|
35
|
+
},
|
|
29
36
|
accepts: [FieldType.String, FieldType.IPRange],
|
|
30
37
|
output_type({ field_config }) {
|
|
31
38
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCIDRBroadcast.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRBroadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCIDRBroadcast.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRBroadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,aAAa,EAAE,aAAa,GAC/B,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IACxD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,EAAE;IACvC,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;SACvB;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,SAAS;SACpB;KACJ;IACD,WAAW,EAAE,kFAAkF;IAC/F,MAAM;QACF,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IACD,0DAA0D;IAC1D,GAAG,EAAE;QACD,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,aAAa,aAAa,CAAC,KAAK,CAAC,EAAE;cAC7D,cAAc,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM;KACrE;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC9C,WAAW,CAAC,EAAE,YAAY,EAAE;QACxB,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,EAAE;aACrB;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCIDRMax.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRMax.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCIDRMax.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRMax.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,gBAAgB,EAAE,oBAkD9B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getCIDRMax } from '@terascope/ip-utils';
|
|
2
2
|
import { FieldType } from '@terascope/types';
|
|
3
3
|
import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
|
|
4
|
+
import { isCIDRSql, cidrBroadcast, isMappedResult, isSingleAddress, } from './sql-utils.js';
|
|
4
5
|
export const getCIDRMaxConfig = {
|
|
5
6
|
name: 'getCIDRMax',
|
|
6
7
|
type: FunctionDefinitionType.FIELD_TRANSFORM,
|
|
@@ -33,6 +34,15 @@ export const getCIDRMaxConfig = {
|
|
|
33
34
|
create() {
|
|
34
35
|
return getCIDRMax;
|
|
35
36
|
},
|
|
37
|
+
/** The deprecated alias for `getLastUsableIPInCIDR`, with the same SQL. */
|
|
38
|
+
sql: {
|
|
39
|
+
needs_udf_fallback: true,
|
|
40
|
+
expression: ({ value, udf }) => `CASE WHEN NOT ${isCIDRSql(value)}`
|
|
41
|
+
+ ` OR ${isMappedResult(value)} THEN ${udf(value)}`
|
|
42
|
+
+ ` WHEN ${isSingleAddress(value)} THEN host(${cidrBroadcast(value)})`
|
|
43
|
+
+ ` WHEN NOT contains(${value}, ':') THEN host(${cidrBroadcast(value)} - 1)`
|
|
44
|
+
+ ` ELSE host(${cidrBroadcast(value)}) END`,
|
|
45
|
+
},
|
|
36
46
|
accepts: [FieldType.String, FieldType.IPRange],
|
|
37
47
|
output_type({ field_config }) {
|
|
38
48
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCIDRMax.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRMax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCIDRMax.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRMax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,GAC5D,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAyB;IAClD,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,EAAE;IACvC,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;SACvB;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,6CAA6C;YACpD,MAAM,EAAE,uCAAuC;SAClD;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,4CAA4C;YACnD,MAAM,EAAE,uCAAuC;SAClD;KACJ;IACD,WAAW,EAAE,8FAA8F;IAC3G,MAAM;QACF,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,2EAA2E;IAC3E,GAAG,EAAE;QACD,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,EAAE;cAC7D,OAAO,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,EAAE;cACjD,SAAS,eAAe,CAAC,KAAK,CAAC,cAAc,aAAa,CAAC,KAAK,CAAC,GAAG;cACpE,sBAAsB,KAAK,oBAAoB,aAAa,CAAC,KAAK,CAAC,OAAO;cAC1E,cAAc,aAAa,CAAC,KAAK,CAAC,OAAO;KAClD;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC9C,WAAW,CAAC,EAAE,YAAY,EAAE;QACxB,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,EAAE;aACrB;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCIDRMin.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRMin.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCIDRMin.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRMin.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,gBAAgB,EAAE,oBAiD9B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getCIDRMin } from '@terascope/ip-utils';
|
|
2
2
|
import { FieldType } from '@terascope/types';
|
|
3
3
|
import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
|
|
4
|
+
import { isCIDRSql, cidrNetwork, isMappedResult, isSingleAddress, firstUsableHitsTopOfV4, } from './sql-utils.js';
|
|
4
5
|
export const getCIDRMinConfig = {
|
|
5
6
|
name: 'getCIDRMin',
|
|
6
7
|
type: FunctionDefinitionType.FIELD_TRANSFORM,
|
|
@@ -33,6 +34,14 @@ export const getCIDRMinConfig = {
|
|
|
33
34
|
create() {
|
|
34
35
|
return getCIDRMin;
|
|
35
36
|
},
|
|
37
|
+
/** The deprecated alias for `getFirstUsableIPInCIDR`, with the same SQL. */
|
|
38
|
+
sql: {
|
|
39
|
+
needs_udf_fallback: true,
|
|
40
|
+
expression: ({ value, udf }) => `CASE WHEN NOT ${isCIDRSql(value)}`
|
|
41
|
+
+ ` OR ${isMappedResult(value)} OR ${firstUsableHitsTopOfV4(value)} THEN ${udf(value)}`
|
|
42
|
+
+ ` WHEN ${isSingleAddress(value)} THEN host(${cidrNetwork(value)})`
|
|
43
|
+
+ ` ELSE host(${cidrNetwork(value)} + 1) END`,
|
|
44
|
+
},
|
|
36
45
|
accepts: [FieldType.String, FieldType.IPRange],
|
|
37
46
|
output_type({ field_config }) {
|
|
38
47
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCIDRMin.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRMin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCIDRMin.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRMin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,sBAAsB,GAClF,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAyB;IAClD,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,EAAE;IACvC,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,UAAU;SACrB;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,6CAA6C;YACpD,MAAM,EAAE,uCAAuC;SAClD;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,4CAA4C;YACnD,MAAM,EAAE,iBAAiB;SAC5B;KACJ;IACD,WAAW,EAAE,0EAA0E;IACvF,MAAM;QACF,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,4EAA4E;IAC5E,GAAG,EAAE;QACD,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,EAAE;cAC7D,OAAO,cAAc,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,EAAE;cACrF,SAAS,eAAe,CAAC,KAAK,CAAC,cAAc,WAAW,CAAC,KAAK,CAAC,GAAG;cAClE,cAAc,WAAW,CAAC,KAAK,CAAC,WAAW;KACpD;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC9C,WAAW,CAAC,EAAE,YAAY,EAAE;QACxB,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,EAAE;aACrB;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCIDRNetwork.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRNetwork.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCIDRNetwork.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRNetwork.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,oBAAoB,EAAE,oBAwClC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getCIDRNetwork } from '@terascope/ip-utils';
|
|
2
2
|
import { FieldType } from '@terascope/types';
|
|
3
3
|
import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
|
|
4
|
+
import { isIPv4CIDRSql, cidrNetwork, } from './sql-utils.js';
|
|
4
5
|
export const getCIDRNetworkConfig = {
|
|
5
6
|
name: 'getCIDRNetwork',
|
|
6
7
|
type: FunctionDefinitionType.FIELD_TRANSFORM,
|
|
@@ -26,6 +27,12 @@ export const getCIDRNetworkConfig = {
|
|
|
26
27
|
create() {
|
|
27
28
|
return getCIDRNetwork;
|
|
28
29
|
},
|
|
30
|
+
/** IPv4 only. The function throws for an IPv6 block, so IPv6 goes to the UDF and throws. */
|
|
31
|
+
sql: {
|
|
32
|
+
needs_udf_fallback: true,
|
|
33
|
+
expression: ({ value, udf }) => `CASE WHEN ${isIPv4CIDRSql(value)}`
|
|
34
|
+
+ ` THEN host(${cidrNetwork(value)}) ELSE ${udf(value)} END`,
|
|
35
|
+
},
|
|
29
36
|
accepts: [FieldType.String, FieldType.IPRange],
|
|
30
37
|
output_type({ field_config }) {
|
|
31
38
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCIDRNetwork.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCIDRNetwork.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getCIDRNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,aAAa,EAAE,WAAW,GAC7B,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAyB;IACtD,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,EAAE;IACvC,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,UAAU;SACrB;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,SAAS;SACpB;KACJ;IACD,WAAW,EAAE,gFAAgF;IAC7F,MAAM;QACF,OAAO,cAAc,CAAC;IAC1B,CAAC;IACD,4FAA4F;IAC5F,GAAG,EAAE;QACD,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,aAAa,aAAa,CAAC,KAAK,CAAC,EAAE;cAC7D,cAAc,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM;KACnE;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC9C,WAAW,CAAC,EAAE,YAAY,EAAE;QACxB,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,EAAE;aACrB;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFirstIpInCIDR.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getFirstIpInCIDR.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getFirstIpInCIDR.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getFirstIpInCIDR.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,sBAAsB,EAAE,oBAmDpC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getFirstIPInCIDR } from '@terascope/ip-utils';
|
|
2
2
|
import { FieldType } from '@terascope/types';
|
|
3
3
|
import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
|
|
4
|
+
import { isCIDRSql, cidrNetwork, isMappedResult, } from './sql-utils.js';
|
|
4
5
|
export const getFirstIPInCIDRConfig = {
|
|
5
6
|
name: 'getFirstIPInCIDR',
|
|
6
7
|
type: FunctionDefinitionType.FIELD_TRANSFORM,
|
|
@@ -33,6 +34,16 @@ export const getFirstIPInCIDRConfig = {
|
|
|
33
34
|
create() {
|
|
34
35
|
return getFirstIPInCIDR;
|
|
35
36
|
},
|
|
37
|
+
/**
|
|
38
|
+
* The network address. Anything that is not a CIDR goes to the UDF, which throws; see
|
|
39
|
+
* "How the IP transforms handle bad input" in `sql-utils.ts`.
|
|
40
|
+
*/
|
|
41
|
+
sql: {
|
|
42
|
+
needs_udf_fallback: true,
|
|
43
|
+
expression: ({ value, udf }) => `CASE WHEN ${isCIDRSql(value)}`
|
|
44
|
+
+ ` AND NOT ${isMappedResult(value)} THEN host(${cidrNetwork(value)})`
|
|
45
|
+
+ ` ELSE ${udf(value)} END`,
|
|
46
|
+
},
|
|
36
47
|
accepts: [FieldType.String, FieldType.IPRange],
|
|
37
48
|
output_type({ field_config }) {
|
|
38
49
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFirstIpInCIDR.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getFirstIpInCIDR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getFirstIpInCIDR.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getFirstIpInCIDR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,SAAS,EAAE,WAAW,EAAE,cAAc,GACzC,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IACxD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,EAAE;IACvC,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,UAAU;SACrB;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,6CAA6C;YACpD,MAAM,EAAE,uCAAuC;SAClD;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,4CAA4C;YACnD,MAAM,EAAE,gBAAgB;SAC3B;KACJ;IACD,WAAW,EAAE,0DAA0D;IACvE,MAAM;QACF,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IACD;;;MAGE;IACF,GAAG,EAAE;QACD,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,aAAa,SAAS,CAAC,KAAK,CAAC,EAAE;cACzD,YAAY,cAAc,CAAC,KAAK,CAAC,cAAc,WAAW,CAAC,KAAK,CAAC,GAAG;cACpE,SAAS,GAAG,CAAC,KAAK,CAAC,MAAM;KAClC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC9C,WAAW,CAAC,EAAE,YAAY,EAAE;QACxB,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,EAAE;aACrB;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFirstUsableIPInCIDR.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getFirstUsableIPInCIDR.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getFirstUsableIPInCIDR.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/ip/getFirstUsableIPInCIDR.ts"],"names":[],"mappings":"AAGA,OAAO,EAC8D,oBAAoB,EACxF,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,4BAA4B,EAAE,oBAsD1C,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getFirstUsableIPInCIDR } from '@terascope/ip-utils';
|
|
2
2
|
import { FieldType } from '@terascope/types';
|
|
3
3
|
import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
|
|
4
|
+
import { isCIDRSql, cidrNetwork, isMappedResult, isSingleAddress, firstUsableHitsTopOfV4, } from './sql-utils.js';
|
|
4
5
|
export const getFirstUsableIPInCIDRConfig = {
|
|
5
6
|
name: 'getFirstUsableIPInCIDR',
|
|
6
7
|
type: FunctionDefinitionType.FIELD_TRANSFORM,
|
|
@@ -33,6 +34,19 @@ export const getFirstUsableIPInCIDRConfig = {
|
|
|
33
34
|
create() {
|
|
34
35
|
return getFirstUsableIPInCIDR;
|
|
35
36
|
},
|
|
37
|
+
/**
|
|
38
|
+
* The network address + 1, except that a single-address block is its own first usable address.
|
|
39
|
+
*
|
|
40
|
+
* The one block whose answer is `255.255.255.255` goes to the UDF, because DuckDB cannot
|
|
41
|
+
* reach that address by addition (see `firstUsableHitsTopOfV4`).
|
|
42
|
+
*/
|
|
43
|
+
sql: {
|
|
44
|
+
needs_udf_fallback: true,
|
|
45
|
+
expression: ({ value, udf }) => `CASE WHEN NOT ${isCIDRSql(value)}`
|
|
46
|
+
+ ` OR ${isMappedResult(value)} OR ${firstUsableHitsTopOfV4(value)} THEN ${udf(value)}`
|
|
47
|
+
+ ` WHEN ${isSingleAddress(value)} THEN host(${cidrNetwork(value)})`
|
|
48
|
+
+ ` ELSE host(${cidrNetwork(value)} + 1) END`,
|
|
49
|
+
},
|
|
36
50
|
accepts: [FieldType.String, FieldType.IPRange],
|
|
37
51
|
output_type({ field_config }) {
|
|
38
52
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFirstUsableIPInCIDR.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getFirstUsableIPInCIDR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getFirstUsableIPInCIDR.js","sourceRoot":"","sources":["../../../../src/function-configs/ip/getFirstUsableIPInCIDR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACH,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAClE,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,sBAAsB,GAClF,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,4BAA4B,GAAyB;IAC9D,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,EAAE;IACvC,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,UAAU;SACrB;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,6CAA6C;YACpD,MAAM,EAAE,uCAAuC;SAClD;QACD;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,4CAA4C;YACnD,MAAM,EAAE,iBAAiB;SAC5B;KACJ;IACD,WAAW,EAAE,0EAA0E;IACvF,MAAM;QACF,OAAO,sBAAsB,CAAC;IAClC,CAAC;IACD;;;;;MAKE;IACF,GAAG,EAAE;QACD,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,EAAE;cAC7D,OAAO,cAAc,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,EAAE;cACrF,SAAS,eAAe,CAAC,KAAK,CAAC,cAAc,WAAW,CAAC,KAAK,CAAC,GAAG;cAClE,cAAc,WAAW,CAAC,KAAK,CAAC,WAAW;KACpD;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC9C,WAAW,CAAC,EAAE,YAAY,EAAE;QACxB,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,EAAE;aACrB;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
|