@terascope/data-mate 2.23.1 → 2.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +16 -9
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { isAsciiSql, sqlLiteral } from '../sql-helpers.js';
|
|
2
|
+
import { re2Literal } from './sql-regex-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Helpers shared by the SQL expressions on the string function configs.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* `validator.isAlpha`'s `en-US` alphabet, as an RE2 pattern.
|
|
8
|
+
*
|
|
9
|
+
* Other locales use different letter sets, and several cannot be written as a simple class, so the
|
|
10
|
+
* functions using this handle only the default locale.
|
|
11
|
+
*/
|
|
12
|
+
export const ALPHA_LOCALES = '^[A-Za-z]+$';
|
|
13
|
+
/** `validator.isAlphanumeric`'s `en-US` set. */
|
|
14
|
+
export const ALPHANUMERIC_LOCALES = '^[0-9A-Za-z]+$';
|
|
15
|
+
/** True when no locale was given, so `validator`'s `en-US` default applies. */
|
|
16
|
+
export function defaultLocale(locale) {
|
|
17
|
+
return locale == null || locale === 'en-US';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* `encodeURIComponent`, built from `url_encode` plus the five characters it over-escapes.
|
|
21
|
+
*
|
|
22
|
+
* `url_encode` percent-escapes `!`, `'`, `(`, `)` and `*`, which `encodeURIComponent` leaves alone.
|
|
23
|
+
* Unescaping them afterwards is safe: a literal `%` in the input is already `%25` by then, so a
|
|
24
|
+
* `%21` in the output can only come from a real `!`.
|
|
25
|
+
*/
|
|
26
|
+
export function encodeURIComponentSql(value) {
|
|
27
|
+
const unescape = [
|
|
28
|
+
['%21', '!'], ['%27', '\'\''], ['%28', '('], ['%29', ')'], ['%2A', '*'],
|
|
29
|
+
];
|
|
30
|
+
return unescape.reduce((inner, [escaped, literal]) => `replace(${inner}, '${escaped}', '${literal}')`, `url_encode(${value})`);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* `validator.isHash`'s length table, copied from its source. The check is only `^[a-fA-F0-9]{N}$`.
|
|
34
|
+
*/
|
|
35
|
+
export const HASH_LENGTHS = {
|
|
36
|
+
md5: 32,
|
|
37
|
+
md4: 32,
|
|
38
|
+
sha1: 40,
|
|
39
|
+
sha256: 64,
|
|
40
|
+
sha384: 96,
|
|
41
|
+
sha512: 128,
|
|
42
|
+
ripemd128: 32,
|
|
43
|
+
ripemd160: 40,
|
|
44
|
+
tiger128: 32,
|
|
45
|
+
tiger160: 40,
|
|
46
|
+
tiger192: 48,
|
|
47
|
+
crc32: 8,
|
|
48
|
+
crc32b: 8,
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* `validator.isUUID`'s per-version patterns, copied from its source.
|
|
52
|
+
*
|
|
53
|
+
* The default, `all`, is not the union of the numbered versions: it accepts versions 1-8 plus the
|
|
54
|
+
* nil and max UUIDs, and still requires the `[89ab]` variant nibble. It is written out rather than
|
|
55
|
+
* derived. None of the patterns use lookaround or backreferences, so RE2 compiles all of them.
|
|
56
|
+
*/
|
|
57
|
+
const UUID_HEX = '[0-9a-fA-F]';
|
|
58
|
+
const UUID_TAIL = `${UUID_HEX}{8}-${UUID_HEX}{4}`;
|
|
59
|
+
export function uuidPattern(version) {
|
|
60
|
+
if (version == null || version === 'all') {
|
|
61
|
+
return `^(?:${UUID_TAIL}-[1-8]${UUID_HEX}{3}-[89abAB]${UUID_HEX}{3}-${UUID_HEX}{12}`
|
|
62
|
+
+ '|00000000-0000-0000-0000-000000000000'
|
|
63
|
+
+ '|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$';
|
|
64
|
+
}
|
|
65
|
+
if (version === 'nil')
|
|
66
|
+
return '^00000000-0000-0000-0000-000000000000$';
|
|
67
|
+
if (version === 'max')
|
|
68
|
+
return `^[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12}$`;
|
|
69
|
+
if (version === 'loose') {
|
|
70
|
+
return `^${UUID_TAIL}-${UUID_HEX}{4}-${UUID_HEX}{4}-${UUID_HEX}{12}$`;
|
|
71
|
+
}
|
|
72
|
+
if (typeof version === 'number' || typeof version === 'string') {
|
|
73
|
+
const digit = String(version);
|
|
74
|
+
if (/^[1-8]$/.test(digit)) {
|
|
75
|
+
return `^${UUID_TAIL}-${digit}${UUID_HEX}{3}-[89abAB]${UUID_HEX}{3}-${UUID_HEX}{12}$`;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* lodash's test for which word splitter to use. The case converters run in SQL only when it does
|
|
82
|
+
* not match.
|
|
83
|
+
*
|
|
84
|
+
* `_.camelCase` and the other converters run `words(deburr(string).replace(/['’]/g, ''))`, and
|
|
85
|
+
* `words` picks one of two algorithms:
|
|
86
|
+
*
|
|
87
|
+
* ```js
|
|
88
|
+
* var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
|
|
89
|
+
* var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* When `reHasUnicodeWord` does not match, the result is `string.match(reAsciiWord)`, which splits
|
|
93
|
+
* on ASCII punctuation only, and SQL reproduces that exactly. The other algorithm handles case
|
|
94
|
+
* transitions, digit/letter boundaries, acronyms like `XMLHttpRequest` and combining marks, and
|
|
95
|
+
* keeps the UDF.
|
|
96
|
+
*
|
|
97
|
+
* `deburr` does nothing to input this guard admits, which contains only `[a-zA-Z0-9 ]`.
|
|
98
|
+
*/
|
|
99
|
+
export const HAS_UNICODE_WORD = '[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]';
|
|
100
|
+
/** The words of an ASCII-path string, as a SQL list. */
|
|
101
|
+
function asciiWords(value) {
|
|
102
|
+
return `regexp_extract_all(${value}, '[a-zA-Z0-9]+')`;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* A case conversion over the ASCII word list.
|
|
106
|
+
*
|
|
107
|
+
* `join` is the separator between words; `first` and `rest` say how each word is cased. An empty
|
|
108
|
+
* word list gives `''`, which is what `_.camelCase('')` and `_.camelCase('---')` return.
|
|
109
|
+
*/
|
|
110
|
+
export function caseConvertSql(value, options) {
|
|
111
|
+
const words = asciiWords(value);
|
|
112
|
+
const { join, first, rest } = options;
|
|
113
|
+
const tail = `list_transform(${words}[2:], lambda w : ${rest('w')})`;
|
|
114
|
+
return `CASE WHEN len(${words}) = 0 THEN ''`
|
|
115
|
+
+ ` ELSE array_to_string(list_prepend(${first(`${words}[1]`)}, ${tail}), '${join}') END`;
|
|
116
|
+
}
|
|
117
|
+
/** `word[0].toUpperCase() + word.slice(1).toLowerCase()`, which is lodash's `capitalize`. */
|
|
118
|
+
export function capitalizeSql(word) {
|
|
119
|
+
return `upper(substring(${word}, 1, 1)) || lower(substring(${word}, 2))`;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* `_.upperFirst`: the first character uppercased and the rest left as is.
|
|
123
|
+
*
|
|
124
|
+
* This is not `capitalize`, which also lowercases the rest. `_.startCase` uses this one, which is
|
|
125
|
+
* why `startCase('HELLO WORLD')` is `'HELLO WORLD'` and not `'Hello World'`.
|
|
126
|
+
*/
|
|
127
|
+
export function upperFirstSql(word) {
|
|
128
|
+
return `upper(substring(${word}, 1, 1)) || substring(${word}, 2)`;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Base64 validation per RFC 4648 with padding, `validator.isBase64`'s default.
|
|
132
|
+
*
|
|
133
|
+
* ```js
|
|
134
|
+
* var base64WithPadding = /^[A-Za-z0-9+/]+={0,2}$/;
|
|
135
|
+
* if (str === '') return true;
|
|
136
|
+
* if (options.padding && str.length % 4 !== 0) return false;
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
* This intentionally does not reproduce `core-utils`' `isBase64`, which also requires a UTF-8 round
|
|
140
|
+
* trip to be lossless. `toString('utf8')` replaces every invalid byte with U+FFFD, so that check
|
|
141
|
+
* accepts only base64 of UTF-8 text and rejects most base64-encoded binary.
|
|
142
|
+
*/
|
|
143
|
+
export function isBase64Sql(value) {
|
|
144
|
+
return `(${value} = '' OR (length(${value}) % 4 = 0`
|
|
145
|
+
+ ` AND regexp_matches(${value}, '^[A-Za-z0-9+/]+={0,2}$')))`;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* `validator.isFQDN` with its default options, for ASCII input.
|
|
149
|
+
*
|
|
150
|
+
* The function has no TLD list, which is what makes it expressible in SQL. With the defaults
|
|
151
|
+
* (`require_tld`, no underscores, no trailing dot, no wildcard, no numeric TLD, max length
|
|
152
|
+
* enforced) the algorithm is:
|
|
153
|
+
*
|
|
154
|
+
* 1. at least two dot-separated parts;
|
|
155
|
+
* 2. the last part matches `/^([a-z…]{2,}|xn[a-z0-9-]{2,})$/i`, contains no whitespace and is not
|
|
156
|
+
* all digits;
|
|
157
|
+
* 3. every part is 1-63 characters, matches `/^[a-z_0-9-]+$/i`, has no full-width character, and
|
|
158
|
+
* neither starts nor ends with `-`; and with `allow_underscores` false, contains no `_`.
|
|
159
|
+
*
|
|
160
|
+
* Non-ASCII input keeps the UDF. `validator`'s character classes run to `\u{ffff}` and include a
|
|
161
|
+
* full-width exclusion, which is not worth reproducing.
|
|
162
|
+
*/
|
|
163
|
+
export function isFQDNSql(value, udf) {
|
|
164
|
+
const parts = `string_split(${value}, '.')`;
|
|
165
|
+
const tld = `${parts}[-1]`;
|
|
166
|
+
const badPart = `list_filter(${parts}, lambda p :`
|
|
167
|
+
+ ' NOT regexp_matches(p, \'^[A-Za-z0-9](([A-Za-z0-9-]{0,61})[A-Za-z0-9])?$\'))';
|
|
168
|
+
// non-ASCII goes to the UDF rather than being answered false: `validator`'s classes run to
|
|
169
|
+
// \u{ffff}, so `exämple.com` is a valid domain to it
|
|
170
|
+
return `CASE WHEN NOT ${isAsciiSql(value)} THEN ${udf(value)} ELSE (`
|
|
171
|
+
+ `len(${parts}) >= 2`
|
|
172
|
+
+ ` AND regexp_matches(${tld}, '^([A-Za-z]{2,}|[xX][nN][A-Za-z0-9-]{2,})$')`
|
|
173
|
+
+ ` AND len(${badPart}) = 0) END`;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* A hash or byte encoding of a string in SQL, shared by `encode` and `createID`.
|
|
177
|
+
*
|
|
178
|
+
* Returns null for a combination DuckDB cannot express, which is what the callers' `applies` check.
|
|
179
|
+
* The results match `node:crypto` and `Buffer` byte for byte, including for empty, non-ASCII,
|
|
180
|
+
* astral and combining-mark input:
|
|
181
|
+
*
|
|
182
|
+
* - `md5`, `sha1` and `sha256` return a lowercase hex digest, matching
|
|
183
|
+
* `createHash(...).digest('hex')`. There is no `sha512` or `sha384`.
|
|
184
|
+
* - A base64 digest is `to_base64(unhex(<digest>))`.
|
|
185
|
+
* - `Buffer.from(x).toString('hex')` is `lower(hex(encode(x)))`. `hex()` is uppercase, and
|
|
186
|
+
* `encode()` is used because a VARCHAR-to-BLOB cast rejects non-ASCII.
|
|
187
|
+
* - `Buffer.from(x).toString('base64')` is `to_base64(encode(x))`.
|
|
188
|
+
*/
|
|
189
|
+
export const SQL_HASHES = ['md5', 'sha1', 'sha256'];
|
|
190
|
+
export function hashSql(algo, digest, value) {
|
|
191
|
+
if (algo === 'hex')
|
|
192
|
+
return `lower(hex(encode(${value})))`;
|
|
193
|
+
if (algo === 'base64')
|
|
194
|
+
return `to_base64(encode(${value}))`;
|
|
195
|
+
if (!SQL_HASHES.includes(algo))
|
|
196
|
+
return null;
|
|
197
|
+
if (digest === 'hex')
|
|
198
|
+
return `${algo}(${value})`;
|
|
199
|
+
if (digest === 'base64')
|
|
200
|
+
return `to_base64(unhex(${algo}(${value})))`;
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
/** Whether `hashSql` has an expression for this pair, so an `applies` need not build it. */
|
|
204
|
+
export function hasHashSql(algo, digest) {
|
|
205
|
+
if (typeof algo !== 'string')
|
|
206
|
+
return false;
|
|
207
|
+
if (digest != null && digest !== 'hex' && digest !== 'base64')
|
|
208
|
+
return false;
|
|
209
|
+
return hashSql(algo, digest ?? 'hex', 'x') != null;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Whether a value is a single code point (not a single UTF-16 code unit).
|
|
213
|
+
*
|
|
214
|
+
* `extract`'s marker mode compares `char === start` while iterating code points, so a
|
|
215
|
+
* multi-character marker never matches and an astral one matches as a unit.
|
|
216
|
+
*/
|
|
217
|
+
export function isOneCodePoint(value) {
|
|
218
|
+
return typeof value === 'string' && [...value].length === 1;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* `extract`'s marker mode: the text between the first `start` and the first `end` after it.
|
|
222
|
+
*
|
|
223
|
+
* This mirrors `_subSlice`, which finds `start` and then collects characters until `end`. A second
|
|
224
|
+
* `start` before the `end` is content (`'<a<b>'` extracts `'a<b'`), an unterminated run yields
|
|
225
|
+
* null, and `'a|b|c'` with `|` for both markers extracts `'b'`.
|
|
226
|
+
*/
|
|
227
|
+
export function extractMarkerSql(value, start, end) {
|
|
228
|
+
const s = sqlLiteral(start);
|
|
229
|
+
const e = sqlLiteral(end);
|
|
230
|
+
const after = `substring(${value}, position(${s} IN ${value}) + 1)`;
|
|
231
|
+
return `CASE WHEN position(${s} IN ${value}) = 0 OR position(${e} IN ${after}) = 0 THEN NULL`
|
|
232
|
+
+ ` ELSE substring(${after}, 1, position(${e} IN ${after}) - 1) END`;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* `extract`'s marker mode with `global`: every extraction, as a list.
|
|
236
|
+
*
|
|
237
|
+
* The repeated scan is a non-greedy `(?s).*?` between the two escaped markers. `(?s)` is required
|
|
238
|
+
* because the scan collects newlines and RE2's `.` does not match one without it. For example,
|
|
239
|
+
* `'a|b|c|d'` gives `['b']` and `'<>'` gives `['']`.
|
|
240
|
+
*/
|
|
241
|
+
export function extractMarkerAllSql(value, start, end) {
|
|
242
|
+
const pattern = `${re2Literal(start)}((?s).*?)${re2Literal(end)}`;
|
|
243
|
+
return `regexp_extract_all(${value}, ${sqlLiteral(pattern)}, 1)`;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* `extract`'s regex mode, built from what `matchAll` does.
|
|
247
|
+
*
|
|
248
|
+
* `matchAll` forces the `g` flag and, per match, collects every capture group if the pattern has
|
|
249
|
+
* any, or the whole match otherwise. `extract` then takes the first element, or the whole list
|
|
250
|
+
* under `global`. So the SQL is `regexp_extract` at group 0 or 1, and `regexp_extract_all` for the
|
|
251
|
+
* list.
|
|
252
|
+
*
|
|
253
|
+
* The no-match case needs care. `matchAll` returns null when nothing matched, and its loop also
|
|
254
|
+
* stops on an empty match, so a pattern whose first match is empty gives null, not `''`.
|
|
255
|
+
* `regexp_extract` returns `''` for both, which `nullif` maps to null. When extracting a group, the
|
|
256
|
+
* whole match is tested first, because a group can capture the empty string inside a non-empty
|
|
257
|
+
* match.
|
|
258
|
+
*/
|
|
259
|
+
export function extractRegexSql(value, pattern, group) {
|
|
260
|
+
const pat = sqlLiteral(pattern);
|
|
261
|
+
const whole = `nullif(regexp_extract(${value}, ${pat}), '')`;
|
|
262
|
+
if (group === 0)
|
|
263
|
+
return whole;
|
|
264
|
+
return `CASE WHEN ${whole} IS NULL THEN NULL`
|
|
265
|
+
+ ` ELSE regexp_extract(${value}, ${pat}, ${group}) END`;
|
|
266
|
+
}
|
|
267
|
+
/** `extract`'s regex mode with `global`: every match, or every first capture group. */
|
|
268
|
+
export function extractRegexAllSql(value, pattern, group) {
|
|
269
|
+
return `regexp_extract_all(${value}, ${sqlLiteral(pattern)}, ${group})`;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* A list expression that returns NULL rather than `[]` when nothing matched.
|
|
273
|
+
*
|
|
274
|
+
* `extract` under `global` returns null for no match in both modes, never an empty list, while
|
|
275
|
+
* `regexp_extract_all` returns `[]`.
|
|
276
|
+
*/
|
|
277
|
+
export function emptyToNull(list) {
|
|
278
|
+
return `CASE WHEN len(${list}) = 0 THEN NULL ELSE ${list} END`;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* `isPhoneNumberLike`: strip every non-digit and check that 7 to 20 digits remain. It does not use
|
|
282
|
+
* libphonenumber.
|
|
283
|
+
*
|
|
284
|
+
* ```
|
|
285
|
+
* const testValue = toString(input).trim().replace(/\D/g, '');
|
|
286
|
+
* return inNumberRange(testValue.length, { min: 7, max: 20, inclusive: true });
|
|
287
|
+
* ```
|
|
288
|
+
*
|
|
289
|
+
* `trim()` cannot change the answer because whitespace is not a digit. `\D` is `[^0-9]` in both
|
|
290
|
+
* engines, and the remaining digits are ASCII, so `length()` counting characters agrees with
|
|
291
|
+
* JavaScript counting code units.
|
|
292
|
+
*/
|
|
293
|
+
export function phoneNumberLikeSql(value) {
|
|
294
|
+
return `length(regexp_replace(${value}, '[^0-9]', '', 'g')) BETWEEN 7 AND 20`;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Shannon entropy without an aggregate: split into characters, count each distinct one, and sum the
|
|
298
|
+
* terms.
|
|
299
|
+
*
|
|
300
|
+
* `list_filter` over the distinct characters does the per-character counting. It is quadratic in
|
|
301
|
+
* the number of distinct characters, which for text is bounded by the alphabet rather than the
|
|
302
|
+
* string length. The result is exact.
|
|
303
|
+
*
|
|
304
|
+
* The JavaScript builds its frequency table over code points (`for (const char of input)`) but
|
|
305
|
+
* divides by `input.length`, which counts UTF-16 code units. The two differ only for astral input,
|
|
306
|
+
* so astral input keeps the UDF.
|
|
307
|
+
*/
|
|
308
|
+
export function shannonEntropySql(value) {
|
|
309
|
+
const chars = `string_split(${value}, '')`;
|
|
310
|
+
const counts = `list_transform(list_distinct(${chars}),`
|
|
311
|
+
+ ` lambda c : len(list_filter(${chars}, lambda x : x = c)))`;
|
|
312
|
+
const total = `len(${chars})`;
|
|
313
|
+
const terms = `list_transform(${counts},`
|
|
314
|
+
+ ` lambda n : -((n / ${total}) * ln(n / ${total}) / ln(2)))`;
|
|
315
|
+
// `+ 0` turns negative zero into zero: for a string with one distinct character the term is
|
|
316
|
+
// `-(1 * 0 / ln(2))` = `-0`, where the JavaScript gets `0`. Same approach as
|
|
317
|
+
// `withinIntegerRange`.
|
|
318
|
+
return `CASE WHEN ${total} = 0 THEN 0`
|
|
319
|
+
+ ` ELSE list_reduce(${terms}, lambda a, b : a + b) + 0 END`;
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=sql-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-utils.js","sourceRoot":"","sources":["../../../../src/function-configs/string/sql-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predicate rules from `core-utils` and `validator`, rewritten as RE2 patterns.
|
|
3
|
+
*
|
|
4
|
+
* `isEmail` and `isMACAddress` in `core-utils` do not call `validator`; they use their own, simpler
|
|
5
|
+
* patterns, which is what these reproduce.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* `core-utils`' own `isEmail` pattern, which is not `validator.isEmail`.
|
|
9
|
+
*
|
|
10
|
+
* ```
|
|
11
|
+
* const EmailRegex = /^[A-Z0-9._%+-@]{1,64}@(?:[A-Z0-9-]{1,63}\.){1,8}[A-Z]{2,63}$/i;
|
|
12
|
+
* export function isEmail(input) { return isString(input) && EmailRegex.test(input); }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* It has no lookaround or backreference, so RE2 compiles it.
|
|
16
|
+
*
|
|
17
|
+
* The `i` flag is expanded by hand rather than passed to DuckDB. Without the `u` flag JavaScript's
|
|
18
|
+
* `i` uses simple case folding, while RE2 uses full Unicode folding, so `[A-Z]` with `i` matches
|
|
19
|
+
* KELVIN SIGN and LATIN SMALL LETTER LONG S in RE2 but not in JavaScript. Writing `[A-Za-z]` avoids
|
|
20
|
+
* case folding entirely, so no guard or UDF fallback is needed.
|
|
21
|
+
*
|
|
22
|
+
* `+-@` is a range (U+002B to U+0040), not three literals, so it also admits `,`, `.`, `/`, the
|
|
23
|
+
* digits, `:`, `;`, `<`, `=`, `>` and `?`. It is copied as written, and RE2 reads the range the
|
|
24
|
+
* same way.
|
|
25
|
+
*/
|
|
26
|
+
export declare const EMAIL_SQL_PATTERN: string;
|
|
27
|
+
/**
|
|
28
|
+
* `core-utils`' `macAddressDelimiters`, which is not `validator.isMACAddress`.
|
|
29
|
+
*
|
|
30
|
+
* There is one fixed regex per delimiter, and `'any'` tries each in turn, so no backreference is
|
|
31
|
+
* needed to keep the separators consistent. `space` uses `JS_WHITESPACE_CLASS` because its `\s` is
|
|
32
|
+
* JavaScript's.
|
|
33
|
+
*/
|
|
34
|
+
export declare const MAC_SQL_PATTERNS: Record<string, string>;
|
|
35
|
+
/** An OR of `regexp_matches` over several patterns - `isMACAddress`'s `any`, and `isMIMEType`. */
|
|
36
|
+
export declare function matchesAny(value: string, patterns: readonly string[]): string;
|
|
37
|
+
export declare const MIME_SQL_PATTERNS: readonly string[];
|
|
38
|
+
/**
|
|
39
|
+
* `validator.isISO31661Alpha2`'s 249 country codes, generated from its source.
|
|
40
|
+
*
|
|
41
|
+
* The function is a `Set` lookup on `str.toUpperCase()`. `core-utils` does not pass
|
|
42
|
+
* `userAssignedCodes`, so nothing else in it is reachable.
|
|
43
|
+
*
|
|
44
|
+
* Non-ASCII values keep the UDF. JavaScript's `toUpperCase` uses full case mapping and can change a
|
|
45
|
+
* string's length, so `'fi'` (LATIN SMALL LIGATURE FI) uppercases to `'FI'`, a real country code,
|
|
46
|
+
* where DuckDB's simple mapping leaves it unchanged.
|
|
47
|
+
*/
|
|
48
|
+
export declare const ISO_3166_ALPHA2: readonly string[];
|
|
49
|
+
//# sourceMappingURL=sql-validator-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-validator-utils.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/sql-validator-utils.ts"],"names":[],"mappings":"AAGA;;;;;EAKE;AACF;;;;;;;;;;;;;;;;;;EAkBE;AACF,eAAO,MAAM,iBAAiB,QACP,CAAC;AACxB;;;;;;EAME;AACF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC;AACF,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE7E;AAYD,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAO9C,CAAC;AACF;;;;;;;;;EASE;AACF,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EA0P5C,CAAC"}
|