@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,56 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
// This CLI runs as an image build step and reports to the build log, so it writes to the
|
|
3
|
+
// console directly.
|
|
4
|
+
import { parseArgs } from 'node:util';
|
|
5
|
+
import { installExtensions, verifyExtensions } from './extension-tools.js';
|
|
6
|
+
const USAGE = `usage: duckdb-extensions <install|verify> [--dir <directory>] [--repository <url|dir>]
|
|
7
|
+
|
|
8
|
+
install download the extensions TealFrame needs into --dir (run at image build time)
|
|
9
|
+
verify check they load and work without network access (run in the final image)
|
|
10
|
+
|
|
11
|
+
--dir defaults to $DUCKDB_EXTENSION_DIRECTORY, then ~/.duckdb/extensions
|
|
12
|
+
--repository install only: an internal mirror, laid out as
|
|
13
|
+
<repository>/<duckdb version>/<platform>/<name>.duckdb_extension.gz
|
|
14
|
+
|
|
15
|
+
Exits non-zero on any failure, so a build step running it fails the build.`;
|
|
16
|
+
async function main() {
|
|
17
|
+
const { positionals, values } = parseArgs({
|
|
18
|
+
allowPositionals: true,
|
|
19
|
+
options: {
|
|
20
|
+
dir: { type: 'string' },
|
|
21
|
+
repository: { type: 'string' },
|
|
22
|
+
help: { type: 'boolean', short: 'h' },
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
const [command] = positionals;
|
|
26
|
+
if (values.help || (command !== 'install' && command !== 'verify') || positionals.length > 1) {
|
|
27
|
+
console.error(USAGE);
|
|
28
|
+
return values.help ? 0 : 2;
|
|
29
|
+
}
|
|
30
|
+
if (command === 'verify' && values.repository != null) {
|
|
31
|
+
console.error('--repository applies to install only; verify never uses the network');
|
|
32
|
+
return 2;
|
|
33
|
+
}
|
|
34
|
+
const report = command === 'install'
|
|
35
|
+
? await installExtensions({ directory: values.dir, repository: values.repository })
|
|
36
|
+
: await verifyExtensions({ directory: values.dir });
|
|
37
|
+
return print(command, report);
|
|
38
|
+
}
|
|
39
|
+
function print(command, report) {
|
|
40
|
+
const where = `duckdb ${report.version} on ${report.platform}, ${report.directory}`;
|
|
41
|
+
if (report.failures.length > 0) {
|
|
42
|
+
console.error(`duckdb-extensions ${command} FAILED (${where}):`);
|
|
43
|
+
for (const failure of report.failures)
|
|
44
|
+
console.error(` ${failure}`);
|
|
45
|
+
return 1;
|
|
46
|
+
}
|
|
47
|
+
console.log(`duckdb-extensions ${command} ok (${where})`);
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
main().then((code) => {
|
|
51
|
+
process.exitCode = code;
|
|
52
|
+
}, (err) => {
|
|
53
|
+
console.error('duckdb-extensions failed:', err instanceof Error ? err.message : err);
|
|
54
|
+
process.exitCode = 1;
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=extensions-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions-cli.js","sourceRoot":"","sources":["../../../src/teal-frame/extensions-cli.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,yFAAyF;AACzF,oBAAoB;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAmB,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE5F,MAAM,KAAK,GAAG;;;;;;;;;2EAS6D,CAAC;AAE5E,KAAK,UAAU,IAAI;IACf,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACtC,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE;YACL,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACxC;KACJ,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;IAE9B,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACrF,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS;QAChC,CAAC,CAAC,MAAM,iBAAiB,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QACnF,CAAC,CAAC,MAAM,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAExD,OAAO,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,KAAK,CAAC,OAAe,EAAE,MAAuB;IACnD,MAAM,KAAK,GAAG,UAAU,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;IAEpF,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,YAAY,KAAK,IAAI,CAAC,CAAC;QACjE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,QAAQ,KAAK,GAAG,CAAC,CAAC;IAC1D,OAAO,CAAC,CAAC;AACb,CAAC;AAED,IAAI,EAAE,CAAC,IAAI,CACP,CAAC,IAAI,EAAE,EAAE;IACL,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC5B,CAAC,EACD,CAAC,GAAY,EAAE,EAAE;IACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzB,CAAC,CACJ,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { DuckDBConnection } from '@duckdb/node-api';
|
|
2
|
+
/**
|
|
3
|
+
* The DuckDB extensions a frame needs, and how the database loads them.
|
|
4
|
+
*
|
|
5
|
+
* DuckDB downloads extensions from `extensions.duckdb.org` the first time a query needs one;
|
|
6
|
+
* no npm install step fetches them. Without network access that download fails at the first
|
|
7
|
+
* query that needs the extension rather than at startup. So every database loads them up front
|
|
8
|
+
* (`loadExtensions`), and images install them at build time (`extension-tools.ts`, run from
|
|
9
|
+
* `bin/duckdb-extensions.js`).
|
|
10
|
+
*
|
|
11
|
+
* parquet, json and icu are compiled into the binding (`STATIC_EXTENSIONS`). The four below
|
|
12
|
+
* are not. `spatial` does not autoload at all: without it, `ST_Point` is a catalog error.
|
|
13
|
+
*/
|
|
14
|
+
export interface DuckExtension {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
/** What breaks without it, for the error a missing one produces. */
|
|
17
|
+
readonly reason: string;
|
|
18
|
+
/** Statements run by `verify` to check that the extension actually works. */
|
|
19
|
+
readonly check: readonly string[];
|
|
20
|
+
}
|
|
21
|
+
export declare const REQUIRED_EXTENSIONS: readonly DuckExtension[];
|
|
22
|
+
/**
|
|
23
|
+
* Extensions compiled into the binding, which must never be installed: `INSTALL parquet`
|
|
24
|
+
* downloads a copy that shadows the built-in one and makes `duckdb_extensions()` misreport it.
|
|
25
|
+
* `install` checks they are still compiled in, so a DuckDB upgrade that drops one fails the build.
|
|
26
|
+
*/
|
|
27
|
+
export declare const STATIC_EXTENSIONS: readonly string[];
|
|
28
|
+
/** Where the extensions live. Unset means DuckDB's default, `~/.duckdb/extensions`. */
|
|
29
|
+
export declare const EXTENSION_DIRECTORY_ENV = "DUCKDB_EXTENSION_DIRECTORY";
|
|
30
|
+
/** Set to `false` in an image, so a missing extension fails at startup instead of downloading. */
|
|
31
|
+
export declare const AUTOINSTALL_EXTENSIONS_ENV = "DUCKDB_AUTOINSTALL_EXTENSIONS";
|
|
32
|
+
export interface ExtensionSettings {
|
|
33
|
+
extensionDirectory?: string;
|
|
34
|
+
autoinstallExtensions?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Reads the extension settings from the environment.
|
|
38
|
+
*
|
|
39
|
+
* They are read from the environment, not only from `configureDuckDatabase`, because the
|
|
40
|
+
* database may be opened by a frame before any configuration runs, and the directory must be
|
|
41
|
+
* correct from the moment it opens.
|
|
42
|
+
*/
|
|
43
|
+
export declare function extensionSettingsFromEnv(env?: NodeJS.ProcessEnv): ExtensionSettings;
|
|
44
|
+
/**
|
|
45
|
+
* Loads every required extension and throws one error naming all that are missing.
|
|
46
|
+
*
|
|
47
|
+
* With autoinstall on (the default, used in local development) a missing extension is installed
|
|
48
|
+
* first, once per machine. With it off (in an image) nothing uses the network. Loading an
|
|
49
|
+
* already-loaded extension is cheap, so calling this again is harmless.
|
|
50
|
+
*/
|
|
51
|
+
export declare function loadExtensions(connection: DuckDBConnection, autoinstall: boolean): Promise<void>;
|
|
52
|
+
export declare function firstLine(err: unknown): string;
|
|
53
|
+
//# sourceMappingURL=extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/teal-frame/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD;;;;;;;;;;;EAWE;AAEF,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,aAAa,EA2BvD,CAAC;AAEF;;;;EAIE;AACF,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA+B,CAAC;AAE/E,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AAEpE,kGAAkG;AAClG,eAAO,MAAM,0BAA0B,kCAAkC,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;EAME;AACF,wBAAgB,wBAAwB,CACpC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACrC,iBAAiB,CAUnB;AAUD;;;;;;EAME;AACF,wBAAsB,cAAc,CAChC,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CAkBf;AAwBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAG9C"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { DuckExtensionError } from './errors.js';
|
|
2
|
+
export const REQUIRED_EXTENSIONS = [
|
|
3
|
+
{
|
|
4
|
+
name: 'httpfs',
|
|
5
|
+
reason: 's3:// and https:// reads, and CREATE SECRET',
|
|
6
|
+
check: [
|
|
7
|
+
`CREATE OR REPLACE TEMPORARY SECRET duck_verify_httpfs (TYPE s3, KEY_ID 'verify', SECRET 'verify')`,
|
|
8
|
+
'DROP TEMPORARY SECRET duck_verify_httpfs',
|
|
9
|
+
],
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: 'aws',
|
|
13
|
+
reason: 'the S3 credential chain (IAM and instance roles)',
|
|
14
|
+
check: [
|
|
15
|
+
`CREATE OR REPLACE TEMPORARY SECRET duck_verify_aws (TYPE s3, PROVIDER credential_chain, CHAIN 'env', VALIDATION 'none')`,
|
|
16
|
+
'DROP TEMPORARY SECRET duck_verify_aws',
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: 'inet',
|
|
21
|
+
reason: 'the SQL form of the IP functions',
|
|
22
|
+
check: [`SELECT '1.2.3.4'::INET`],
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'spatial',
|
|
26
|
+
reason: 'the SQL form of the geo functions, which have no JavaScript fallback',
|
|
27
|
+
check: ['SELECT ST_AsText(ST_Point(1, 2))'],
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Extensions compiled into the binding, which must never be installed: `INSTALL parquet`
|
|
32
|
+
* downloads a copy that shadows the built-in one and makes `duckdb_extensions()` misreport it.
|
|
33
|
+
* `install` checks they are still compiled in, so a DuckDB upgrade that drops one fails the build.
|
|
34
|
+
*/
|
|
35
|
+
export const STATIC_EXTENSIONS = ['icu', 'json', 'parquet'];
|
|
36
|
+
/** Where the extensions live. Unset means DuckDB's default, `~/.duckdb/extensions`. */
|
|
37
|
+
export const EXTENSION_DIRECTORY_ENV = 'DUCKDB_EXTENSION_DIRECTORY';
|
|
38
|
+
/** Set to `false` in an image, so a missing extension fails at startup instead of downloading. */
|
|
39
|
+
export const AUTOINSTALL_EXTENSIONS_ENV = 'DUCKDB_AUTOINSTALL_EXTENSIONS';
|
|
40
|
+
/**
|
|
41
|
+
* Reads the extension settings from the environment.
|
|
42
|
+
*
|
|
43
|
+
* They are read from the environment, not only from `configureDuckDatabase`, because the
|
|
44
|
+
* database may be opened by a frame before any configuration runs, and the directory must be
|
|
45
|
+
* correct from the moment it opens.
|
|
46
|
+
*/
|
|
47
|
+
export function extensionSettingsFromEnv(env = process.env) {
|
|
48
|
+
const directory = env[EXTENSION_DIRECTORY_ENV]?.trim();
|
|
49
|
+
const autoinstall = parseBoolean(AUTOINSTALL_EXTENSIONS_ENV, env[AUTOINSTALL_EXTENSIONS_ENV]);
|
|
50
|
+
return {
|
|
51
|
+
...(directory && { extensionDirectory: directory }),
|
|
52
|
+
...(autoinstall != null && { autoinstallExtensions: autoinstall }),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function parseBoolean(name, raw) {
|
|
56
|
+
const value = raw?.trim().toLowerCase();
|
|
57
|
+
if (!value)
|
|
58
|
+
return undefined;
|
|
59
|
+
if (value === 'true' || value === '1')
|
|
60
|
+
return true;
|
|
61
|
+
if (value === 'false' || value === '0')
|
|
62
|
+
return false;
|
|
63
|
+
throw new TypeError(`${name} must be true or false, got "${raw}"`);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Loads every required extension and throws one error naming all that are missing.
|
|
67
|
+
*
|
|
68
|
+
* With autoinstall on (the default, used in local development) a missing extension is installed
|
|
69
|
+
* first, once per machine. With it off (in an image) nothing uses the network. Loading an
|
|
70
|
+
* already-loaded extension is cheap, so calling this again is harmless.
|
|
71
|
+
*/
|
|
72
|
+
export async function loadExtensions(connection, autoinstall) {
|
|
73
|
+
const missing = [];
|
|
74
|
+
for (const extension of REQUIRED_EXTENSIONS) {
|
|
75
|
+
const failure = await loadOne(connection, extension.name, autoinstall);
|
|
76
|
+
if (failure)
|
|
77
|
+
missing.push({ ...extension, error: failure });
|
|
78
|
+
}
|
|
79
|
+
if (missing.length === 0)
|
|
80
|
+
return;
|
|
81
|
+
const [[version, platform, directory]] = (await (await connection.run(`SELECT version(), (SELECT platform FROM pragma_platform()),`
|
|
82
|
+
+ ` current_setting('extension_directory')`)).getRowsJson());
|
|
83
|
+
throw new DuckExtensionError({
|
|
84
|
+
missing, version, platform, directory: directory || '~/.duckdb/extensions', autoinstall,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/** Loads one extension. Returns the failure message, or undefined on success. */
|
|
88
|
+
async function loadOne(connection, name, autoinstall) {
|
|
89
|
+
try {
|
|
90
|
+
await connection.run(`LOAD ${name}`);
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
if (!autoinstall)
|
|
95
|
+
return firstLine(err);
|
|
96
|
+
}
|
|
97
|
+
try {
|
|
98
|
+
await connection.run(`INSTALL ${name}`);
|
|
99
|
+
await connection.run(`LOAD ${name}`);
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
return firstLine(err);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export function firstLine(err) {
|
|
107
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
108
|
+
return message.split('\n')[0];
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/teal-frame/extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TealFrame, a frame whose rows live in DuckDB.
|
|
3
|
+
*
|
|
4
|
+
* `DuckContext` is not exported, so a frame cannot be handed a database it cannot see. Use
|
|
5
|
+
* `configureDuckDatabase`, `registerScalarFunction` and `closeDuckDatabase` to manage the
|
|
6
|
+
* database.
|
|
7
|
+
*/
|
|
8
|
+
export * from './clauses.js';
|
|
9
|
+
export * from './date-value.js';
|
|
10
|
+
export * from './deep-select.js';
|
|
11
|
+
export * from './database.js';
|
|
12
|
+
export * from './TealFrame.js';
|
|
13
|
+
export * from './duck-values.js';
|
|
14
|
+
export * from './errors.js';
|
|
15
|
+
export * from './expand-values.js';
|
|
16
|
+
export * from './export-json.js';
|
|
17
|
+
export * from './extension-tools.js';
|
|
18
|
+
export * from './extensions.js';
|
|
19
|
+
export * from './interfaces.js';
|
|
20
|
+
export * from './scalar-function.js';
|
|
21
|
+
export * from './udf-types.js';
|
|
22
|
+
export * from './schema-check.js';
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/teal-frame/index.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AACF,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TealFrame, a frame whose rows live in DuckDB.
|
|
3
|
+
*
|
|
4
|
+
* `DuckContext` is not exported, so a frame cannot be handed a database it cannot see. Use
|
|
5
|
+
* `configureDuckDatabase`, `registerScalarFunction` and `closeDuckDatabase` to manage the
|
|
6
|
+
* database.
|
|
7
|
+
*/
|
|
8
|
+
export * from './clauses.js';
|
|
9
|
+
export * from './date-value.js';
|
|
10
|
+
export * from './deep-select.js';
|
|
11
|
+
export * from './database.js';
|
|
12
|
+
export * from './TealFrame.js';
|
|
13
|
+
export * from './duck-values.js';
|
|
14
|
+
export * from './errors.js';
|
|
15
|
+
export * from './expand-values.js';
|
|
16
|
+
export * from './export-json.js';
|
|
17
|
+
export * from './extension-tools.js';
|
|
18
|
+
export * from './extensions.js';
|
|
19
|
+
export * from './interfaces.js';
|
|
20
|
+
export * from './scalar-function.js';
|
|
21
|
+
export * from './udf-types.js';
|
|
22
|
+
export * from './schema-check.js';
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/teal-frame/index.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AACF,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { DataTypeConfig, ReadonlyDataTypeConfig } from '@terascope/types';
|
|
2
|
+
import { ValueConverter } from './duck-values.js';
|
|
3
|
+
/**
|
|
4
|
+
* Option and result types for TealFrame and its database.
|
|
5
|
+
*/
|
|
6
|
+
/** A DataType configuration, however the caller happens to hold it. */
|
|
7
|
+
export type FrameConfig = DataTypeConfig | ReadonlyDataTypeConfig;
|
|
8
|
+
/** One field's coercion and its DuckDB value conversion, resolved once per append. */
|
|
9
|
+
export interface FieldPlan {
|
|
10
|
+
name: string;
|
|
11
|
+
fieldType: string;
|
|
12
|
+
coerce: (value: unknown) => unknown;
|
|
13
|
+
convert: ValueConverter;
|
|
14
|
+
}
|
|
15
|
+
/** A freshly created table and the column set its config declared. */
|
|
16
|
+
export interface CreatedTable {
|
|
17
|
+
table: string;
|
|
18
|
+
columns: string[];
|
|
19
|
+
}
|
|
20
|
+
/** Spill and resource settings for a database. All are runtime `SET`s. */
|
|
21
|
+
export interface DuckDatabaseSettings {
|
|
22
|
+
/**
|
|
23
|
+
* Directory DuckDB spills to when a query exceeds `memoryLimit`. Without it, a query over
|
|
24
|
+
* the limit fails instead of spilling to disk.
|
|
25
|
+
*/
|
|
26
|
+
tempDirectory?: string;
|
|
27
|
+
/** Cap on the spill directory, e.g. `'30GB'`. */
|
|
28
|
+
maxTempDirectorySize?: string;
|
|
29
|
+
/** DuckDB's memory limit, e.g. `'48GB'`. Set it below the container's memory cap. */
|
|
30
|
+
memoryLimit?: string;
|
|
31
|
+
threads?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Where DuckDB looks for extensions. Defaults to `DUCKDB_EXTENSION_DIRECTORY`, then
|
|
34
|
+
* DuckDB's own `~/.duckdb/extensions`. It cannot be changed once the database is open,
|
|
35
|
+
* which is why the environment variable is the usual way to set it (see `extensions.ts`).
|
|
36
|
+
*/
|
|
37
|
+
extensionDirectory?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Whether a missing extension may be downloaded. Defaults to
|
|
40
|
+
* `DUCKDB_AUTOINSTALL_EXTENSIONS`, then true. A container image with bundled extensions
|
|
41
|
+
* sets it to false.
|
|
42
|
+
*/
|
|
43
|
+
autoinstallExtensions?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface DuckDatabaseOptions extends DuckDatabaseSettings {
|
|
46
|
+
/** A file path, or `:memory:`. See `FrameOptions.database` for how the string is read. */
|
|
47
|
+
database?: string;
|
|
48
|
+
}
|
|
49
|
+
/** Where a frame's rows come from. */
|
|
50
|
+
export type Source = {
|
|
51
|
+
kind: 'table';
|
|
52
|
+
table: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* `ordered` means the relation's rows come out in a defined order: it ends in an
|
|
56
|
+
* `ORDER BY`, or derives from one through an operator that preserves order. `join` and
|
|
57
|
+
* an aggregating `select` use it to refuse to discard that order silently; see
|
|
58
|
+
* `orderBy`. A table is never ordered, because nothing may rely on a table's row order.
|
|
59
|
+
*/
|
|
60
|
+
| {
|
|
61
|
+
kind: 'relation';
|
|
62
|
+
sql: string;
|
|
63
|
+
ordered?: boolean;
|
|
64
|
+
};
|
|
65
|
+
/** One field's coercion failure, with the value that caused it. */
|
|
66
|
+
export interface CoercionFailure {
|
|
67
|
+
field: string;
|
|
68
|
+
fieldType: string;
|
|
69
|
+
failedCount: number;
|
|
70
|
+
/** An original value that failed to convert. */
|
|
71
|
+
exampleValue: string;
|
|
72
|
+
}
|
|
73
|
+
export type CoercionMode = 'strict'
|
|
74
|
+
/** For transforms: a value that fails to convert becomes null. */
|
|
75
|
+
| 'lenient';
|
|
76
|
+
export interface FrameOptions {
|
|
77
|
+
/**
|
|
78
|
+
* Database path. Defaults to the process-wide `:memory:` database.
|
|
79
|
+
*
|
|
80
|
+
* Use it for a file-backed database or to give a test an isolated catalog. Frames in
|
|
81
|
+
* different databases cannot see each other's tables, so they cannot be joined.
|
|
82
|
+
*
|
|
83
|
+
* **Only the exact string `:memory:` is in-memory.** Anything else, including a bare name
|
|
84
|
+
* like `'my-test'` or the `:memory:<name>` form, is a file path and writes a database file.
|
|
85
|
+
* Tests rarely need this option: jest gives each test file its own module registry, and
|
|
86
|
+
* so its own default database.
|
|
87
|
+
*/
|
|
88
|
+
database?: string;
|
|
89
|
+
/** Used for the table or relation name. */
|
|
90
|
+
name?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface FromRecordsOptions extends FrameOptions {
|
|
93
|
+
/** Defaults to `strict`. */
|
|
94
|
+
mode?: CoercionMode;
|
|
95
|
+
}
|
|
96
|
+
/** Everything an append failure can say about itself. */
|
|
97
|
+
export interface AppendFailure {
|
|
98
|
+
/** The table the rows were going into. */
|
|
99
|
+
table: string;
|
|
100
|
+
/** Which shape was being appended. */
|
|
101
|
+
source: 'records' | 'parquet';
|
|
102
|
+
/** What was being added, in words: `3 records`, or the paths. */
|
|
103
|
+
describedSource: string;
|
|
104
|
+
/**
|
|
105
|
+
* Rows in the table after the failed append, that is, the rows that survived. Counted only
|
|
106
|
+
* on failure, so a successful append does not pay for it. Undefined if the count itself
|
|
107
|
+
* failed, which means the table's state is unknown.
|
|
108
|
+
*/
|
|
109
|
+
rowsRemaining?: number;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* What to add to a frame: parsed records, or Parquet files. Both go through the one `append`
|
|
113
|
+
* method.
|
|
114
|
+
*/
|
|
115
|
+
export type AppendSource = {
|
|
116
|
+
records: readonly Record<string, unknown>[];
|
|
117
|
+
parquet?: never;
|
|
118
|
+
}
|
|
119
|
+
/** One path, a list of paths, or a glob. Already typed and validated, so not re-coerced. */
|
|
120
|
+
| {
|
|
121
|
+
parquet: string | readonly string[];
|
|
122
|
+
records?: never;
|
|
123
|
+
};
|
|
124
|
+
export interface AppendOptions {
|
|
125
|
+
/** Defaults to `strict`. Applies to records; Parquet is not coerced. */
|
|
126
|
+
mode?: CoercionMode;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* A `SELECT` list, either as a map or as verbatim SQL.
|
|
130
|
+
*
|
|
131
|
+
* In the map form, `{ outputName: sqlExpression }`, the keys become the output column names.
|
|
132
|
+
* A string is used verbatim, as `QueryAccess.restrictSQLParts` returns it. That string cannot
|
|
133
|
+
* be turned into a map without losing the field restriction: the DuckDB dialect rebuilds a
|
|
134
|
+
* partly readable STRUCT with `struct_pack`, so its expressions and its `columns` do not
|
|
135
|
+
* correspond one to one.
|
|
136
|
+
*/
|
|
137
|
+
export type SelectList = string | Readonly<Record<string, string>>;
|
|
138
|
+
/** Options for {@link TealFrame.select}. */
|
|
139
|
+
export interface SelectOptions {
|
|
140
|
+
/** The result's declared field types. Defaults to the frame's own. */
|
|
141
|
+
config?: FrameConfig;
|
|
142
|
+
/** Group the rows, so project-then-aggregate is a single statement. */
|
|
143
|
+
groupBy?: readonly string[];
|
|
144
|
+
/** The result's column names, required when the `SELECT` list is verbatim. */
|
|
145
|
+
columns?: readonly string[];
|
|
146
|
+
}
|
|
147
|
+
/** How to join two frames. Expressions are raw SQL written against the two aliases. */
|
|
148
|
+
export interface JoinOptions {
|
|
149
|
+
/** Join predicate, e.g. `'a.user_id = b.id'`. */
|
|
150
|
+
on: string;
|
|
151
|
+
/**
|
|
152
|
+
* Output expressions, `{ outputName: sqlExpression }`, or a `SELECT` list verbatim.
|
|
153
|
+
*
|
|
154
|
+
* Both sides are aliased, so a verbatim list joining two generated statements reads
|
|
155
|
+
* `'a.*, b."total"'`. The map form is the one to use when the two sides share column
|
|
156
|
+
* names, because a duplicate output name is a column the caller cannot read back.
|
|
157
|
+
*/
|
|
158
|
+
select: SelectList;
|
|
159
|
+
/** The result's declared field types. The caller knows what its expressions produce. */
|
|
160
|
+
config: FrameConfig;
|
|
161
|
+
/** The result's column names, required when `select` is a verbatim list. */
|
|
162
|
+
columns?: readonly string[];
|
|
163
|
+
/** Defaults to `inner`. */
|
|
164
|
+
type?: 'inner' | 'left' | 'right' | 'full' | 'cross';
|
|
165
|
+
/** Alias for this frame. Defaults to `a`. */
|
|
166
|
+
as?: string;
|
|
167
|
+
/** Alias for the other frame. Defaults to `b`. */
|
|
168
|
+
otherAs?: string;
|
|
169
|
+
/** Group the joined rows, so join-then-aggregate is a single statement. */
|
|
170
|
+
groupBy?: readonly string[];
|
|
171
|
+
}
|
|
172
|
+
/** A required extension that could not be loaded, and DuckDB's reason. */
|
|
173
|
+
export interface MissingExtension {
|
|
174
|
+
name: string;
|
|
175
|
+
reason: string;
|
|
176
|
+
error: string;
|
|
177
|
+
}
|
|
178
|
+
/** What `DuckExtensionError` reports: every missing extension, and where it looked. */
|
|
179
|
+
export interface ExtensionFailure {
|
|
180
|
+
missing: readonly MissingExtension[];
|
|
181
|
+
version: string;
|
|
182
|
+
platform: string;
|
|
183
|
+
directory: string;
|
|
184
|
+
autoinstall: boolean;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/teal-frame/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/teal-frame/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Helpers over a stream of rendered JSON lines, shared by `ndjson`, `rows` and `writeNDJSON`. */
|
|
2
|
+
/**
|
|
3
|
+
* Yields each distinct line once, in order. Backs `rowsWithoutDuplicates`, which compares
|
|
4
|
+
* whole rendered rows. Keeps every distinct line in memory.
|
|
5
|
+
*/
|
|
6
|
+
export declare function distinctLines(lines: AsyncIterable<string>): AsyncIterableIterator<string>;
|
|
7
|
+
export declare function parseLines(lines: AsyncIterable<string>): AsyncIterableIterator<Record<string, unknown>>;
|
|
8
|
+
/** Writes lines to a file, each followed by a newline, matching what `COPY` writes. */
|
|
9
|
+
export declare function writeLines(path: string, lines: AsyncIterable<string>): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=line-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line-stream.d.ts","sourceRoot":"","sources":["../../../src/teal-frame/line-stream.ts"],"names":[],"mappings":"AAGA,kGAAkG;AAElG;;;EAGE;AACF,wBAAuB,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAOhG;AAED,wBAAuB,UAAU,CAC7B,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAC7B,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEhD;AAED,uFAAuF;AACvF,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1F"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createWriteStream } from 'node:fs';
|
|
2
|
+
import { once } from 'node:events';
|
|
3
|
+
/** Helpers over a stream of rendered JSON lines, shared by `ndjson`, `rows` and `writeNDJSON`. */
|
|
4
|
+
/**
|
|
5
|
+
* Yields each distinct line once, in order. Backs `rowsWithoutDuplicates`, which compares
|
|
6
|
+
* whole rendered rows. Keeps every distinct line in memory.
|
|
7
|
+
*/
|
|
8
|
+
export async function* distinctLines(lines) {
|
|
9
|
+
const seen = new Set();
|
|
10
|
+
for await (const line of lines) {
|
|
11
|
+
if (seen.has(line))
|
|
12
|
+
continue;
|
|
13
|
+
seen.add(line);
|
|
14
|
+
yield line;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export async function* parseLines(lines) {
|
|
18
|
+
for await (const line of lines)
|
|
19
|
+
yield JSON.parse(line);
|
|
20
|
+
}
|
|
21
|
+
/** Writes lines to a file, each followed by a newline, matching what `COPY` writes. */
|
|
22
|
+
export async function writeLines(path, lines) {
|
|
23
|
+
const out = createWriteStream(path);
|
|
24
|
+
try {
|
|
25
|
+
for await (const line of lines) {
|
|
26
|
+
if (!out.write(`${line}\n`))
|
|
27
|
+
await once(out, 'drain');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
out.end();
|
|
32
|
+
await once(out, 'close');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=line-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line-stream.js","sourceRoot":"","sources":["../../../src/teal-frame/line-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,kGAAkG;AAElG;;;EAGE;AACF,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAAC,KAA4B;IAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,IAAI,CAAC;IACf,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,UAAU,CAC7B,KAA4B;IAE5B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK;QAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;AACtF,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,KAA4B;IACvE,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC;QACD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;gBAAE,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;YAAS,CAAC;QACP,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Throws if an operation would silently discard the frame's ordering. Used by `TealFrame`'s
|
|
3
|
+
* `join`, `distinct` and aggregating `select`.
|
|
4
|
+
*
|
|
5
|
+
* SQL does not guarantee that a subquery's `ORDER BY` survives the outer query. In DuckDB a
|
|
6
|
+
* projection, `WHERE`, `LIMIT` or `OFFSET` keeps the order, but a hash join or hash aggregate
|
|
7
|
+
* reorders rows. This only shows once the data is large enough to run in parallel (small
|
|
8
|
+
* inputs come out ordered), so it is easy to miss in tests. Sort the result instead.
|
|
9
|
+
*
|
|
10
|
+
* A global aggregate written directly into `select`'s expressions with no `groupBy`
|
|
11
|
+
* (`{ total: 'sum(x)' }`) is not detected, because the expressions are raw SQL. It returns
|
|
12
|
+
* one row, so the ordering does not matter.
|
|
13
|
+
*/
|
|
14
|
+
export declare function assertOrderSafe(operation: string, ordered: boolean): void;
|
|
15
|
+
//# sourceMappingURL=order-safety.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order-safety.d.ts","sourceRoot":"","sources":["../../../src/teal-frame/order-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE;AACF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAQzE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Throws if an operation would silently discard the frame's ordering. Used by `TealFrame`'s
|
|
3
|
+
* `join`, `distinct` and aggregating `select`.
|
|
4
|
+
*
|
|
5
|
+
* SQL does not guarantee that a subquery's `ORDER BY` survives the outer query. In DuckDB a
|
|
6
|
+
* projection, `WHERE`, `LIMIT` or `OFFSET` keeps the order, but a hash join or hash aggregate
|
|
7
|
+
* reorders rows. This only shows once the data is large enough to run in parallel (small
|
|
8
|
+
* inputs come out ordered), so it is easy to miss in tests. Sort the result instead.
|
|
9
|
+
*
|
|
10
|
+
* A global aggregate written directly into `select`'s expressions with no `groupBy`
|
|
11
|
+
* (`{ total: 'sum(x)' }`) is not detected, because the expressions are raw SQL. It returns
|
|
12
|
+
* one row, so the ordering does not matter.
|
|
13
|
+
*/
|
|
14
|
+
export function assertOrderSafe(operation, ordered) {
|
|
15
|
+
if (!ordered)
|
|
16
|
+
return;
|
|
17
|
+
throw new TypeError(`${operation} reorders rows, so this frame's ORDER BY would be silently discarded`
|
|
18
|
+
+ ' (a join or GROUP BY does not preserve the order of its input once DuckDB runs it'
|
|
19
|
+
+ ' in parallel). Sort the result instead.');
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=order-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order-safety.js","sourceRoot":"","sources":["../../../src/teal-frame/order-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE;AACF,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,OAAgB;IAC/D,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,IAAI,SAAS,CACf,GAAG,SAAS,sEAAsE;UAChF,mFAAmF;UACnF,yCAAyC,CAC9C,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DuckContext } from './DuckContext.js';
|
|
2
|
+
import { JsonExportOptions } from './export-json.js';
|
|
3
|
+
import { FrameConfig } from './interfaces.js';
|
|
4
|
+
/**
|
|
5
|
+
* Implementations of `TealFrame`'s output methods: `writeParquet`, the JSON-lines query behind
|
|
6
|
+
* `ndjson`, `writeNDJSON` and `rows(options)`, and `listValues`. Their contracts are documented
|
|
7
|
+
* on `TealFrame`.
|
|
8
|
+
*/
|
|
9
|
+
/** Writes the frame to a zstd Parquet file, narrowing 128-bit columns to their declared type. */
|
|
10
|
+
export declare function writeParquet(ctx: DuckContext, from: string, config: FrameConfig, path: string): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* SQL that renders one JSON line per row, as `DataFrame.toJSON` does with the same options.
|
|
13
|
+
* Rows that `skipEmptyObjects` drops are filtered out. See `export-json.ts`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function jsonLinesSQL(from: string, config: FrameConfig, options: JsonExportOptions): string;
|
|
16
|
+
/** Yields one row's LIST column element by element, like `ListVector.getRowIterator`. */
|
|
17
|
+
export declare function listValues(ctx: DuckContext, from: string, config: FrameConfig, column: string, options: JsonExportOptions): AsyncIterableIterator<unknown>;
|
|
18
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/teal-frame/output.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAC6D,iBAAiB,EAEpF,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;EAIE;AAEF,iGAAiG;AACjG,wBAAsB,YAAY,CAC9B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;EAGE;AACF,wBAAgB,YAAY,CACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,iBAAiB,GAC3B,MAAM,CAIR;AAED,yFAAyF;AACzF,wBAAuB,UAAU,CAC7B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GAC3B,qBAAqB,CAAC,OAAO,CAAC,CA0BhC"}
|