@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.
Files changed (759) hide show
  1. package/bin/duckdb-extensions.js +8 -0
  2. package/dist/src/adapters/index.d.ts +1 -0
  3. package/dist/src/adapters/index.d.ts.map +1 -1
  4. package/dist/src/adapters/index.js +1 -0
  5. package/dist/src/adapters/index.js.map +1 -1
  6. package/dist/src/adapters/teal-frame-adapter/index.d.ts +62 -0
  7. package/dist/src/adapters/teal-frame-adapter/index.d.ts.map +1 -0
  8. package/dist/src/adapters/teal-frame-adapter/index.js +427 -0
  9. package/dist/src/adapters/teal-frame-adapter/index.js.map +1 -0
  10. package/dist/src/core/utils.d.ts +1 -1
  11. package/dist/src/core/utils.d.ts.map +1 -1
  12. package/dist/src/core/utils.js.map +1 -1
  13. package/dist/src/function-configs/boolean/isBoolean.d.ts.map +1 -1
  14. package/dist/src/function-configs/boolean/isBoolean.js +11 -0
  15. package/dist/src/function-configs/boolean/isBoolean.js.map +1 -1
  16. package/dist/src/function-configs/boolean/isBooleanLike.d.ts.map +1 -1
  17. package/dist/src/function-configs/boolean/isBooleanLike.js +21 -0
  18. package/dist/src/function-configs/boolean/isBooleanLike.js.map +1 -1
  19. package/dist/src/function-configs/boolean/sql-utils.d.ts +31 -0
  20. package/dist/src/function-configs/boolean/sql-utils.d.ts.map +1 -0
  21. package/dist/src/function-configs/boolean/sql-utils.js +52 -0
  22. package/dist/src/function-configs/boolean/sql-utils.js.map +1 -0
  23. package/dist/src/function-configs/boolean/toBoolean.d.ts.map +1 -1
  24. package/dist/src/function-configs/boolean/toBoolean.js +20 -0
  25. package/dist/src/function-configs/boolean/toBoolean.js.map +1 -1
  26. package/dist/src/function-configs/date/addToDate.d.ts.map +1 -1
  27. package/dist/src/function-configs/date/addToDate.js +13 -0
  28. package/dist/src/function-configs/date/addToDate.js.map +1 -1
  29. package/dist/src/function-configs/date/formatDate.d.ts.map +1 -1
  30. package/dist/src/function-configs/date/formatDate.js +29 -0
  31. package/dist/src/function-configs/date/formatDate.js.map +1 -1
  32. package/dist/src/function-configs/date/getDate.d.ts.map +1 -1
  33. package/dist/src/function-configs/date/getDate.js +13 -0
  34. package/dist/src/function-configs/date/getDate.js.map +1 -1
  35. package/dist/src/function-configs/date/getHours.d.ts.map +1 -1
  36. package/dist/src/function-configs/date/getHours.js +13 -0
  37. package/dist/src/function-configs/date/getHours.js.map +1 -1
  38. package/dist/src/function-configs/date/getMilliseconds.d.ts.map +1 -1
  39. package/dist/src/function-configs/date/getMilliseconds.js +16 -0
  40. package/dist/src/function-configs/date/getMilliseconds.js.map +1 -1
  41. package/dist/src/function-configs/date/getMinutes.d.ts.map +1 -1
  42. package/dist/src/function-configs/date/getMinutes.js +13 -0
  43. package/dist/src/function-configs/date/getMinutes.js.map +1 -1
  44. package/dist/src/function-configs/date/getMonth.d.ts.map +1 -1
  45. package/dist/src/function-configs/date/getMonth.js +16 -0
  46. package/dist/src/function-configs/date/getMonth.js.map +1 -1
  47. package/dist/src/function-configs/date/getSeconds.d.ts.map +1 -1
  48. package/dist/src/function-configs/date/getSeconds.js +13 -0
  49. package/dist/src/function-configs/date/getSeconds.js.map +1 -1
  50. package/dist/src/function-configs/date/getTimeBetween.d.ts.map +1 -1
  51. package/dist/src/function-configs/date/getTimeBetween.js +13 -0
  52. package/dist/src/function-configs/date/getTimeBetween.js.map +1 -1
  53. package/dist/src/function-configs/date/getTimezoneOffset.d.ts.map +1 -1
  54. package/dist/src/function-configs/date/getTimezoneOffset.js +12 -0
  55. package/dist/src/function-configs/date/getTimezoneOffset.js.map +1 -1
  56. package/dist/src/function-configs/date/getUTCDate.d.ts.map +1 -1
  57. package/dist/src/function-configs/date/getUTCDate.js +14 -0
  58. package/dist/src/function-configs/date/getUTCDate.js.map +1 -1
  59. package/dist/src/function-configs/date/getUTCHours.d.ts.map +1 -1
  60. package/dist/src/function-configs/date/getUTCHours.js +14 -0
  61. package/dist/src/function-configs/date/getUTCHours.js.map +1 -1
  62. package/dist/src/function-configs/date/getUTCMinutes.d.ts.map +1 -1
  63. package/dist/src/function-configs/date/getUTCMinutes.js +14 -0
  64. package/dist/src/function-configs/date/getUTCMinutes.js.map +1 -1
  65. package/dist/src/function-configs/date/getUTCMonth.d.ts.map +1 -1
  66. package/dist/src/function-configs/date/getUTCMonth.js +16 -0
  67. package/dist/src/function-configs/date/getUTCMonth.js.map +1 -1
  68. package/dist/src/function-configs/date/getUTCYear.d.ts.map +1 -1
  69. package/dist/src/function-configs/date/getUTCYear.js +14 -0
  70. package/dist/src/function-configs/date/getUTCYear.js.map +1 -1
  71. package/dist/src/function-configs/date/getYear.d.ts.map +1 -1
  72. package/dist/src/function-configs/date/getYear.js +13 -0
  73. package/dist/src/function-configs/date/getYear.js.map +1 -1
  74. package/dist/src/function-configs/date/isAfter.d.ts.map +1 -1
  75. package/dist/src/function-configs/date/isAfter.js +9 -0
  76. package/dist/src/function-configs/date/isAfter.js.map +1 -1
  77. package/dist/src/function-configs/date/isBefore.d.ts.map +1 -1
  78. package/dist/src/function-configs/date/isBefore.js +7 -0
  79. package/dist/src/function-configs/date/isBefore.js.map +1 -1
  80. package/dist/src/function-configs/date/isBetween.d.ts.map +1 -1
  81. package/dist/src/function-configs/date/isBetween.js +11 -0
  82. package/dist/src/function-configs/date/isBetween.js.map +1 -1
  83. package/dist/src/function-configs/date/isDate.d.ts.map +1 -1
  84. package/dist/src/function-configs/date/isDate.js +11 -0
  85. package/dist/src/function-configs/date/isDate.js.map +1 -1
  86. package/dist/src/function-configs/date/isEpoch.d.ts.map +1 -1
  87. package/dist/src/function-configs/date/isEpoch.js +12 -0
  88. package/dist/src/function-configs/date/isEpoch.js.map +1 -1
  89. package/dist/src/function-configs/date/isEpochMillis.d.ts.map +1 -1
  90. package/dist/src/function-configs/date/isEpochMillis.js +6 -0
  91. package/dist/src/function-configs/date/isEpochMillis.js.map +1 -1
  92. package/dist/src/function-configs/date/isFriday.d.ts.map +1 -1
  93. package/dist/src/function-configs/date/isFriday.js +11 -0
  94. package/dist/src/function-configs/date/isFriday.js.map +1 -1
  95. package/dist/src/function-configs/date/isFuture.d.ts.map +1 -1
  96. package/dist/src/function-configs/date/isFuture.js +11 -0
  97. package/dist/src/function-configs/date/isFuture.js.map +1 -1
  98. package/dist/src/function-configs/date/isISO8601.d.ts.map +1 -1
  99. package/dist/src/function-configs/date/isISO8601.js +9 -0
  100. package/dist/src/function-configs/date/isISO8601.js.map +1 -1
  101. package/dist/src/function-configs/date/isLeapYear.d.ts.map +1 -1
  102. package/dist/src/function-configs/date/isLeapYear.js +13 -0
  103. package/dist/src/function-configs/date/isLeapYear.js.map +1 -1
  104. package/dist/src/function-configs/date/isMonday.d.ts.map +1 -1
  105. package/dist/src/function-configs/date/isMonday.js +11 -0
  106. package/dist/src/function-configs/date/isMonday.js.map +1 -1
  107. package/dist/src/function-configs/date/isPast.d.ts.map +1 -1
  108. package/dist/src/function-configs/date/isPast.js +11 -0
  109. package/dist/src/function-configs/date/isPast.js.map +1 -1
  110. package/dist/src/function-configs/date/isSaturday.d.ts.map +1 -1
  111. package/dist/src/function-configs/date/isSaturday.js +11 -0
  112. package/dist/src/function-configs/date/isSaturday.js.map +1 -1
  113. package/dist/src/function-configs/date/isSunday.d.ts.map +1 -1
  114. package/dist/src/function-configs/date/isSunday.js +11 -0
  115. package/dist/src/function-configs/date/isSunday.js.map +1 -1
  116. package/dist/src/function-configs/date/isThursday.d.ts.map +1 -1
  117. package/dist/src/function-configs/date/isThursday.js +11 -0
  118. package/dist/src/function-configs/date/isThursday.js.map +1 -1
  119. package/dist/src/function-configs/date/isToday.d.ts.map +1 -1
  120. package/dist/src/function-configs/date/isToday.js +12 -0
  121. package/dist/src/function-configs/date/isToday.js.map +1 -1
  122. package/dist/src/function-configs/date/isTomorrow.d.ts.map +1 -1
  123. package/dist/src/function-configs/date/isTomorrow.js +11 -0
  124. package/dist/src/function-configs/date/isTomorrow.js.map +1 -1
  125. package/dist/src/function-configs/date/isTuesday.d.ts.map +1 -1
  126. package/dist/src/function-configs/date/isTuesday.js +11 -0
  127. package/dist/src/function-configs/date/isTuesday.js.map +1 -1
  128. package/dist/src/function-configs/date/isWednesday.d.ts.map +1 -1
  129. package/dist/src/function-configs/date/isWednesday.js +11 -0
  130. package/dist/src/function-configs/date/isWednesday.js.map +1 -1
  131. package/dist/src/function-configs/date/isWeekday.d.ts.map +1 -1
  132. package/dist/src/function-configs/date/isWeekday.js +9 -0
  133. package/dist/src/function-configs/date/isWeekday.js.map +1 -1
  134. package/dist/src/function-configs/date/isWeekend.d.ts.map +1 -1
  135. package/dist/src/function-configs/date/isWeekend.js +9 -0
  136. package/dist/src/function-configs/date/isWeekend.js.map +1 -1
  137. package/dist/src/function-configs/date/isYesterday.d.ts.map +1 -1
  138. package/dist/src/function-configs/date/isYesterday.js +11 -0
  139. package/dist/src/function-configs/date/isYesterday.js.map +1 -1
  140. package/dist/src/function-configs/date/setDate.d.ts.map +1 -1
  141. package/dist/src/function-configs/date/setDate.js +11 -0
  142. package/dist/src/function-configs/date/setDate.js.map +1 -1
  143. package/dist/src/function-configs/date/setHours.d.ts.map +1 -1
  144. package/dist/src/function-configs/date/setHours.js +8 -0
  145. package/dist/src/function-configs/date/setHours.js.map +1 -1
  146. package/dist/src/function-configs/date/setMilliseconds.d.ts.map +1 -1
  147. package/dist/src/function-configs/date/setMilliseconds.js +12 -0
  148. package/dist/src/function-configs/date/setMilliseconds.js.map +1 -1
  149. package/dist/src/function-configs/date/setMinutes.d.ts.map +1 -1
  150. package/dist/src/function-configs/date/setMinutes.js +8 -0
  151. package/dist/src/function-configs/date/setMinutes.js.map +1 -1
  152. package/dist/src/function-configs/date/setMonth.d.ts.map +1 -1
  153. package/dist/src/function-configs/date/setMonth.js +16 -0
  154. package/dist/src/function-configs/date/setMonth.js.map +1 -1
  155. package/dist/src/function-configs/date/setSeconds.d.ts.map +1 -1
  156. package/dist/src/function-configs/date/setSeconds.js +9 -0
  157. package/dist/src/function-configs/date/setSeconds.js.map +1 -1
  158. package/dist/src/function-configs/date/setTimezone.d.ts.map +1 -1
  159. package/dist/src/function-configs/date/setTimezone.js +13 -0
  160. package/dist/src/function-configs/date/setTimezone.js.map +1 -1
  161. package/dist/src/function-configs/date/setYear.d.ts.map +1 -1
  162. package/dist/src/function-configs/date/setYear.js +15 -0
  163. package/dist/src/function-configs/date/setYear.js.map +1 -1
  164. package/dist/src/function-configs/date/sql-utils.d.ts +89 -0
  165. package/dist/src/function-configs/date/sql-utils.d.ts.map +1 -0
  166. package/dist/src/function-configs/date/sql-utils.js +198 -0
  167. package/dist/src/function-configs/date/sql-utils.js.map +1 -0
  168. package/dist/src/function-configs/date/subtractFromDate.d.ts.map +1 -1
  169. package/dist/src/function-configs/date/subtractFromDate.js +10 -0
  170. package/dist/src/function-configs/date/subtractFromDate.js.map +1 -1
  171. package/dist/src/function-configs/date/toDailyDate.d.ts.map +1 -1
  172. package/dist/src/function-configs/date/toDailyDate.js +11 -0
  173. package/dist/src/function-configs/date/toDailyDate.js.map +1 -1
  174. package/dist/src/function-configs/date/toDate.d.ts.map +1 -1
  175. package/dist/src/function-configs/date/toDate.js +17 -0
  176. package/dist/src/function-configs/date/toDate.js.map +1 -1
  177. package/dist/src/function-configs/date/toHourlyDate.d.ts.map +1 -1
  178. package/dist/src/function-configs/date/toHourlyDate.js +11 -0
  179. package/dist/src/function-configs/date/toHourlyDate.js.map +1 -1
  180. package/dist/src/function-configs/date/toMonthlyDate.d.ts.map +1 -1
  181. package/dist/src/function-configs/date/toMonthlyDate.js +11 -0
  182. package/dist/src/function-configs/date/toMonthlyDate.js.map +1 -1
  183. package/dist/src/function-configs/date/toTimeZone.d.ts.map +1 -1
  184. package/dist/src/function-configs/date/toTimeZone.js +13 -0
  185. package/dist/src/function-configs/date/toTimeZone.js.map +1 -1
  186. package/dist/src/function-configs/date/toTimeZoneUsingLocation.d.ts.map +1 -1
  187. package/dist/src/function-configs/date/toTimeZoneUsingLocation.js +22 -0
  188. package/dist/src/function-configs/date/toTimeZoneUsingLocation.js.map +1 -1
  189. package/dist/src/function-configs/date/toYearlyDate.d.ts.map +1 -1
  190. package/dist/src/function-configs/date/toYearlyDate.js +11 -0
  191. package/dist/src/function-configs/date/toYearlyDate.js.map +1 -1
  192. package/dist/src/function-configs/geo/geoContains.d.ts.map +1 -1
  193. package/dist/src/function-configs/geo/geoContains.js +11 -0
  194. package/dist/src/function-configs/geo/geoContains.js.map +1 -1
  195. package/dist/src/function-configs/geo/geoContainsPoint.d.ts.map +1 -1
  196. package/dist/src/function-configs/geo/geoContainsPoint.js +11 -0
  197. package/dist/src/function-configs/geo/geoContainsPoint.js.map +1 -1
  198. package/dist/src/function-configs/geo/geoDisjoint.d.ts.map +1 -1
  199. package/dist/src/function-configs/geo/geoDisjoint.js +7 -0
  200. package/dist/src/function-configs/geo/geoDisjoint.js.map +1 -1
  201. package/dist/src/function-configs/geo/geoIntersects.d.ts.map +1 -1
  202. package/dist/src/function-configs/geo/geoIntersects.js +9 -0
  203. package/dist/src/function-configs/geo/geoIntersects.js.map +1 -1
  204. package/dist/src/function-configs/geo/geoPointWithinRange.d.ts.map +1 -1
  205. package/dist/src/function-configs/geo/geoPointWithinRange.js +28 -0
  206. package/dist/src/function-configs/geo/geoPointWithinRange.js.map +1 -1
  207. package/dist/src/function-configs/geo/geoRelation.d.ts.map +1 -1
  208. package/dist/src/function-configs/geo/geoRelation.js +13 -0
  209. package/dist/src/function-configs/geo/geoRelation.js.map +1 -1
  210. package/dist/src/function-configs/geo/geoWithin.d.ts.map +1 -1
  211. package/dist/src/function-configs/geo/geoWithin.js +7 -0
  212. package/dist/src/function-configs/geo/geoWithin.js.map +1 -1
  213. package/dist/src/function-configs/geo/inGeoBoundingBox.d.ts.map +1 -1
  214. package/dist/src/function-configs/geo/inGeoBoundingBox.js +24 -1
  215. package/dist/src/function-configs/geo/inGeoBoundingBox.js.map +1 -1
  216. package/dist/src/function-configs/geo/isGeoJSON.d.ts.map +1 -1
  217. package/dist/src/function-configs/geo/isGeoJSON.js +6 -0
  218. package/dist/src/function-configs/geo/isGeoJSON.js.map +1 -1
  219. package/dist/src/function-configs/geo/isGeoPoint.d.ts.map +1 -1
  220. package/dist/src/function-configs/geo/isGeoPoint.js +13 -0
  221. package/dist/src/function-configs/geo/isGeoPoint.js.map +1 -1
  222. package/dist/src/function-configs/geo/isGeoShapeMultiPolygon.d.ts.map +1 -1
  223. package/dist/src/function-configs/geo/isGeoShapeMultiPolygon.js +6 -0
  224. package/dist/src/function-configs/geo/isGeoShapeMultiPolygon.js.map +1 -1
  225. package/dist/src/function-configs/geo/isGeoShapePoint.d.ts.map +1 -1
  226. package/dist/src/function-configs/geo/isGeoShapePoint.js +6 -0
  227. package/dist/src/function-configs/geo/isGeoShapePoint.js.map +1 -1
  228. package/dist/src/function-configs/geo/isGeoShapePolygon.d.ts.map +1 -1
  229. package/dist/src/function-configs/geo/isGeoShapePolygon.js +6 -0
  230. package/dist/src/function-configs/geo/isGeoShapePolygon.js.map +1 -1
  231. package/dist/src/function-configs/geo/sql-utils.d.ts +116 -0
  232. package/dist/src/function-configs/geo/sql-utils.d.ts.map +1 -0
  233. package/dist/src/function-configs/geo/sql-utils.js +179 -0
  234. package/dist/src/function-configs/geo/sql-utils.js.map +1 -0
  235. package/dist/src/function-configs/interfaces.d.ts +102 -0
  236. package/dist/src/function-configs/interfaces.d.ts.map +1 -1
  237. package/dist/src/function-configs/interfaces.js.map +1 -1
  238. package/dist/src/function-configs/ip/extractMappedIPv4.d.ts.map +1 -1
  239. package/dist/src/function-configs/ip/extractMappedIPv4.js +11 -0
  240. package/dist/src/function-configs/ip/extractMappedIPv4.js.map +1 -1
  241. package/dist/src/function-configs/ip/getCIDRBroadcast.d.ts.map +1 -1
  242. package/dist/src/function-configs/ip/getCIDRBroadcast.js +7 -0
  243. package/dist/src/function-configs/ip/getCIDRBroadcast.js.map +1 -1
  244. package/dist/src/function-configs/ip/getCIDRMax.d.ts.map +1 -1
  245. package/dist/src/function-configs/ip/getCIDRMax.js +10 -0
  246. package/dist/src/function-configs/ip/getCIDRMax.js.map +1 -1
  247. package/dist/src/function-configs/ip/getCIDRMin.d.ts.map +1 -1
  248. package/dist/src/function-configs/ip/getCIDRMin.js +9 -0
  249. package/dist/src/function-configs/ip/getCIDRMin.js.map +1 -1
  250. package/dist/src/function-configs/ip/getCIDRNetwork.d.ts.map +1 -1
  251. package/dist/src/function-configs/ip/getCIDRNetwork.js +7 -0
  252. package/dist/src/function-configs/ip/getCIDRNetwork.js.map +1 -1
  253. package/dist/src/function-configs/ip/getFirstIpInCIDR.d.ts.map +1 -1
  254. package/dist/src/function-configs/ip/getFirstIpInCIDR.js +11 -0
  255. package/dist/src/function-configs/ip/getFirstIpInCIDR.js.map +1 -1
  256. package/dist/src/function-configs/ip/getFirstUsableIPInCIDR.d.ts.map +1 -1
  257. package/dist/src/function-configs/ip/getFirstUsableIPInCIDR.js +14 -0
  258. package/dist/src/function-configs/ip/getFirstUsableIPInCIDR.js.map +1 -1
  259. package/dist/src/function-configs/ip/getLastIpInCIDR.d.ts.map +1 -1
  260. package/dist/src/function-configs/ip/getLastIpInCIDR.js +8 -0
  261. package/dist/src/function-configs/ip/getLastIpInCIDR.js.map +1 -1
  262. package/dist/src/function-configs/ip/getLastUsableIPInCIDR.d.ts.map +1 -1
  263. package/dist/src/function-configs/ip/getLastUsableIPInCIDR.js +13 -0
  264. package/dist/src/function-configs/ip/getLastUsableIPInCIDR.js.map +1 -1
  265. package/dist/src/function-configs/ip/inIPRange.d.ts.map +1 -1
  266. package/dist/src/function-configs/ip/inIPRange.js +15 -0
  267. package/dist/src/function-configs/ip/inIPRange.js.map +1 -1
  268. package/dist/src/function-configs/ip/intToIP.d.ts.map +1 -1
  269. package/dist/src/function-configs/ip/intToIP.js +25 -0
  270. package/dist/src/function-configs/ip/intToIP.js.map +1 -1
  271. package/dist/src/function-configs/ip/ipToInt.d.ts.map +1 -1
  272. package/dist/src/function-configs/ip/ipToInt.js +12 -0
  273. package/dist/src/function-configs/ip/ipToInt.js.map +1 -1
  274. package/dist/src/function-configs/ip/isCIDR.d.ts.map +1 -1
  275. package/dist/src/function-configs/ip/isCIDR.js +8 -0
  276. package/dist/src/function-configs/ip/isCIDR.js.map +1 -1
  277. package/dist/src/function-configs/ip/isIP.d.ts.map +1 -1
  278. package/dist/src/function-configs/ip/isIP.js +10 -0
  279. package/dist/src/function-configs/ip/isIP.js.map +1 -1
  280. package/dist/src/function-configs/ip/isIPv4.d.ts.map +1 -1
  281. package/dist/src/function-configs/ip/isIPv4.js +9 -0
  282. package/dist/src/function-configs/ip/isIPv4.js.map +1 -1
  283. package/dist/src/function-configs/ip/isIPv6.d.ts.map +1 -1
  284. package/dist/src/function-configs/ip/isIPv6.js +10 -0
  285. package/dist/src/function-configs/ip/isIPv6.js.map +1 -1
  286. package/dist/src/function-configs/ip/isMappedIPv4.d.ts.map +1 -1
  287. package/dist/src/function-configs/ip/isMappedIPv4.js +10 -0
  288. package/dist/src/function-configs/ip/isMappedIPv4.js.map +1 -1
  289. package/dist/src/function-configs/ip/isNonRoutableIP.d.ts.map +1 -1
  290. package/dist/src/function-configs/ip/isNonRoutableIP.js +8 -0
  291. package/dist/src/function-configs/ip/isNonRoutableIP.js.map +1 -1
  292. package/dist/src/function-configs/ip/isRoutableIP.d.ts.map +1 -1
  293. package/dist/src/function-configs/ip/isRoutableIP.js +12 -0
  294. package/dist/src/function-configs/ip/isRoutableIP.js.map +1 -1
  295. package/dist/src/function-configs/ip/reverseIP.d.ts.map +1 -1
  296. package/dist/src/function-configs/ip/reverseIP.js +13 -0
  297. package/dist/src/function-configs/ip/reverseIP.js.map +1 -1
  298. package/dist/src/function-configs/ip/sql-utils.d.ts +116 -0
  299. package/dist/src/function-configs/ip/sql-utils.d.ts.map +1 -0
  300. package/dist/src/function-configs/ip/sql-utils.js +187 -0
  301. package/dist/src/function-configs/ip/sql-utils.js.map +1 -0
  302. package/dist/src/function-configs/ip/toCIDR.d.ts.map +1 -1
  303. package/dist/src/function-configs/ip/toCIDR.js +19 -0
  304. package/dist/src/function-configs/ip/toCIDR.js.map +1 -1
  305. package/dist/src/function-configs/json/setDefault.d.ts.map +1 -1
  306. package/dist/src/function-configs/json/setDefault.js +17 -0
  307. package/dist/src/function-configs/json/setDefault.js.map +1 -1
  308. package/dist/src/function-configs/json/sql-utils.d.ts +20 -0
  309. package/dist/src/function-configs/json/sql-utils.d.ts.map +1 -0
  310. package/dist/src/function-configs/json/sql-utils.js +26 -0
  311. package/dist/src/function-configs/json/sql-utils.js.map +1 -0
  312. package/dist/src/function-configs/json/toJSON.d.ts.map +1 -1
  313. package/dist/src/function-configs/json/toJSON.js +13 -0
  314. package/dist/src/function-configs/json/toJSON.js.map +1 -1
  315. package/dist/src/function-configs/numeric/abs.d.ts.map +1 -1
  316. package/dist/src/function-configs/numeric/abs.js +5 -0
  317. package/dist/src/function-configs/numeric/abs.js.map +1 -1
  318. package/dist/src/function-configs/numeric/acos.d.ts.map +1 -1
  319. package/dist/src/function-configs/numeric/acos.js +12 -0
  320. package/dist/src/function-configs/numeric/acos.js.map +1 -1
  321. package/dist/src/function-configs/numeric/acosh.d.ts.map +1 -1
  322. package/dist/src/function-configs/numeric/acosh.js +12 -0
  323. package/dist/src/function-configs/numeric/acosh.js.map +1 -1
  324. package/dist/src/function-configs/numeric/add.d.ts.map +1 -1
  325. package/dist/src/function-configs/numeric/add.js +12 -0
  326. package/dist/src/function-configs/numeric/add.js.map +1 -1
  327. package/dist/src/function-configs/numeric/addValues.d.ts.map +1 -1
  328. package/dist/src/function-configs/numeric/addValues.js +9 -0
  329. package/dist/src/function-configs/numeric/addValues.js.map +1 -1
  330. package/dist/src/function-configs/numeric/asin.d.ts.map +1 -1
  331. package/dist/src/function-configs/numeric/asin.js +12 -0
  332. package/dist/src/function-configs/numeric/asin.js.map +1 -1
  333. package/dist/src/function-configs/numeric/asinh.d.ts.map +1 -1
  334. package/dist/src/function-configs/numeric/asinh.js +8 -0
  335. package/dist/src/function-configs/numeric/asinh.js.map +1 -1
  336. package/dist/src/function-configs/numeric/atan.d.ts.map +1 -1
  337. package/dist/src/function-configs/numeric/atan.js +8 -0
  338. package/dist/src/function-configs/numeric/atan.js.map +1 -1
  339. package/dist/src/function-configs/numeric/atan2.d.ts.map +1 -1
  340. package/dist/src/function-configs/numeric/atan2.js +16 -0
  341. package/dist/src/function-configs/numeric/atan2.js.map +1 -1
  342. package/dist/src/function-configs/numeric/atanh.d.ts.map +1 -1
  343. package/dist/src/function-configs/numeric/atanh.js +13 -0
  344. package/dist/src/function-configs/numeric/atanh.js.map +1 -1
  345. package/dist/src/function-configs/numeric/cbrt.d.ts.map +1 -1
  346. package/dist/src/function-configs/numeric/cbrt.js +8 -0
  347. package/dist/src/function-configs/numeric/cbrt.js.map +1 -1
  348. package/dist/src/function-configs/numeric/ceil.d.ts.map +1 -1
  349. package/dist/src/function-configs/numeric/ceil.js +13 -0
  350. package/dist/src/function-configs/numeric/ceil.js.map +1 -1
  351. package/dist/src/function-configs/numeric/clz32.d.ts.map +1 -1
  352. package/dist/src/function-configs/numeric/clz32.js +16 -0
  353. package/dist/src/function-configs/numeric/clz32.js.map +1 -1
  354. package/dist/src/function-configs/numeric/cos.d.ts.map +1 -1
  355. package/dist/src/function-configs/numeric/cos.js +8 -0
  356. package/dist/src/function-configs/numeric/cos.js.map +1 -1
  357. package/dist/src/function-configs/numeric/cosh.d.ts.map +1 -1
  358. package/dist/src/function-configs/numeric/cosh.js +8 -0
  359. package/dist/src/function-configs/numeric/cosh.js.map +1 -1
  360. package/dist/src/function-configs/numeric/divide.d.ts.map +1 -1
  361. package/dist/src/function-configs/numeric/divide.js +12 -0
  362. package/dist/src/function-configs/numeric/divide.js.map +1 -1
  363. package/dist/src/function-configs/numeric/divideValues.d.ts.map +1 -1
  364. package/dist/src/function-configs/numeric/divideValues.js +6 -0
  365. package/dist/src/function-configs/numeric/divideValues.js.map +1 -1
  366. package/dist/src/function-configs/numeric/exp.d.ts.map +1 -1
  367. package/dist/src/function-configs/numeric/exp.js +8 -0
  368. package/dist/src/function-configs/numeric/exp.js.map +1 -1
  369. package/dist/src/function-configs/numeric/floor.d.ts.map +1 -1
  370. package/dist/src/function-configs/numeric/floor.js +13 -0
  371. package/dist/src/function-configs/numeric/floor.js.map +1 -1
  372. package/dist/src/function-configs/numeric/fround.d.ts.map +1 -1
  373. package/dist/src/function-configs/numeric/fround.js +5 -0
  374. package/dist/src/function-configs/numeric/fround.js.map +1 -1
  375. package/dist/src/function-configs/numeric/hypot.d.ts.map +1 -1
  376. package/dist/src/function-configs/numeric/hypot.js +14 -0
  377. package/dist/src/function-configs/numeric/hypot.js.map +1 -1
  378. package/dist/src/function-configs/numeric/inNumberRange.d.ts.map +1 -1
  379. package/dist/src/function-configs/numeric/inNumberRange.js +20 -0
  380. package/dist/src/function-configs/numeric/inNumberRange.js.map +1 -1
  381. package/dist/src/function-configs/numeric/isEven.d.ts.map +1 -1
  382. package/dist/src/function-configs/numeric/isEven.js +4 -0
  383. package/dist/src/function-configs/numeric/isEven.js.map +1 -1
  384. package/dist/src/function-configs/numeric/isGreaterThan.d.ts.map +1 -1
  385. package/dist/src/function-configs/numeric/isGreaterThan.js +6 -0
  386. package/dist/src/function-configs/numeric/isGreaterThan.js.map +1 -1
  387. package/dist/src/function-configs/numeric/isGreaterThanOrEqualTo.d.ts.map +1 -1
  388. package/dist/src/function-configs/numeric/isGreaterThanOrEqualTo.js +6 -0
  389. package/dist/src/function-configs/numeric/isGreaterThanOrEqualTo.js.map +1 -1
  390. package/dist/src/function-configs/numeric/isLessThan.d.ts.map +1 -1
  391. package/dist/src/function-configs/numeric/isLessThan.js +6 -0
  392. package/dist/src/function-configs/numeric/isLessThan.js.map +1 -1
  393. package/dist/src/function-configs/numeric/isLessThanOrEqualTo.d.ts.map +1 -1
  394. package/dist/src/function-configs/numeric/isLessThanOrEqualTo.js +6 -0
  395. package/dist/src/function-configs/numeric/isLessThanOrEqualTo.js.map +1 -1
  396. package/dist/src/function-configs/numeric/isOdd.d.ts.map +1 -1
  397. package/dist/src/function-configs/numeric/isOdd.js +9 -0
  398. package/dist/src/function-configs/numeric/isOdd.js.map +1 -1
  399. package/dist/src/function-configs/numeric/log.d.ts.map +1 -1
  400. package/dist/src/function-configs/numeric/log.js +13 -0
  401. package/dist/src/function-configs/numeric/log.js.map +1 -1
  402. package/dist/src/function-configs/numeric/log10.d.ts.map +1 -1
  403. package/dist/src/function-configs/numeric/log10.js +13 -0
  404. package/dist/src/function-configs/numeric/log10.js.map +1 -1
  405. package/dist/src/function-configs/numeric/log2.d.ts.map +1 -1
  406. package/dist/src/function-configs/numeric/log2.js +13 -0
  407. package/dist/src/function-configs/numeric/log2.js.map +1 -1
  408. package/dist/src/function-configs/numeric/maxValues.d.ts.map +1 -1
  409. package/dist/src/function-configs/numeric/maxValues.js +6 -0
  410. package/dist/src/function-configs/numeric/maxValues.js.map +1 -1
  411. package/dist/src/function-configs/numeric/minValues.d.ts.map +1 -1
  412. package/dist/src/function-configs/numeric/minValues.js +6 -0
  413. package/dist/src/function-configs/numeric/minValues.js.map +1 -1
  414. package/dist/src/function-configs/numeric/modulus.d.ts.map +1 -1
  415. package/dist/src/function-configs/numeric/modulus.js +9 -0
  416. package/dist/src/function-configs/numeric/modulus.js.map +1 -1
  417. package/dist/src/function-configs/numeric/multiply.d.ts.map +1 -1
  418. package/dist/src/function-configs/numeric/multiply.js +12 -0
  419. package/dist/src/function-configs/numeric/multiply.js.map +1 -1
  420. package/dist/src/function-configs/numeric/multiplyValues.d.ts.map +1 -1
  421. package/dist/src/function-configs/numeric/multiplyValues.js +6 -0
  422. package/dist/src/function-configs/numeric/multiplyValues.js.map +1 -1
  423. package/dist/src/function-configs/numeric/pow.d.ts.map +1 -1
  424. package/dist/src/function-configs/numeric/pow.js +7 -0
  425. package/dist/src/function-configs/numeric/pow.js.map +1 -1
  426. package/dist/src/function-configs/numeric/round.d.ts.map +1 -1
  427. package/dist/src/function-configs/numeric/round.js +13 -0
  428. package/dist/src/function-configs/numeric/round.js.map +1 -1
  429. package/dist/src/function-configs/numeric/setPrecision.d.ts.map +1 -1
  430. package/dist/src/function-configs/numeric/setPrecision.js +26 -0
  431. package/dist/src/function-configs/numeric/setPrecision.js.map +1 -1
  432. package/dist/src/function-configs/numeric/sign.d.ts.map +1 -1
  433. package/dist/src/function-configs/numeric/sign.js +5 -0
  434. package/dist/src/function-configs/numeric/sign.js.map +1 -1
  435. package/dist/src/function-configs/numeric/sin.d.ts.map +1 -1
  436. package/dist/src/function-configs/numeric/sin.js +8 -0
  437. package/dist/src/function-configs/numeric/sin.js.map +1 -1
  438. package/dist/src/function-configs/numeric/sinh.d.ts.map +1 -1
  439. package/dist/src/function-configs/numeric/sinh.js +8 -0
  440. package/dist/src/function-configs/numeric/sinh.js.map +1 -1
  441. package/dist/src/function-configs/numeric/sql-utils.d.ts +54 -0
  442. package/dist/src/function-configs/numeric/sql-utils.d.ts.map +1 -0
  443. package/dist/src/function-configs/numeric/sql-utils.js +76 -0
  444. package/dist/src/function-configs/numeric/sql-utils.js.map +1 -0
  445. package/dist/src/function-configs/numeric/sqrt.d.ts.map +1 -1
  446. package/dist/src/function-configs/numeric/sqrt.js +10 -0
  447. package/dist/src/function-configs/numeric/sqrt.js.map +1 -1
  448. package/dist/src/function-configs/numeric/subtract.d.ts.map +1 -1
  449. package/dist/src/function-configs/numeric/subtract.js +12 -0
  450. package/dist/src/function-configs/numeric/subtract.js.map +1 -1
  451. package/dist/src/function-configs/numeric/subtractValues.d.ts.map +1 -1
  452. package/dist/src/function-configs/numeric/subtractValues.js +9 -0
  453. package/dist/src/function-configs/numeric/subtractValues.js.map +1 -1
  454. package/dist/src/function-configs/numeric/tan.d.ts.map +1 -1
  455. package/dist/src/function-configs/numeric/tan.js +8 -0
  456. package/dist/src/function-configs/numeric/tan.js.map +1 -1
  457. package/dist/src/function-configs/numeric/tanh.d.ts.map +1 -1
  458. package/dist/src/function-configs/numeric/tanh.js +8 -0
  459. package/dist/src/function-configs/numeric/tanh.js.map +1 -1
  460. package/dist/src/function-configs/numeric/toCelsius.d.ts.map +1 -1
  461. package/dist/src/function-configs/numeric/toCelsius.js +14 -0
  462. package/dist/src/function-configs/numeric/toCelsius.js.map +1 -1
  463. package/dist/src/function-configs/numeric/toFahrenheit.d.ts.map +1 -1
  464. package/dist/src/function-configs/numeric/toFahrenheit.js +14 -0
  465. package/dist/src/function-configs/numeric/toFahrenheit.js.map +1 -1
  466. package/dist/src/function-configs/numeric/toNumber.d.ts.map +1 -1
  467. package/dist/src/function-configs/numeric/toNumber.js +42 -0
  468. package/dist/src/function-configs/numeric/toNumber.js.map +1 -1
  469. package/dist/src/function-configs/object/equals.d.ts.map +1 -1
  470. package/dist/src/function-configs/object/equals.js +14 -0
  471. package/dist/src/function-configs/object/equals.js.map +1 -1
  472. package/dist/src/function-configs/object/isEmpty.d.ts.map +1 -1
  473. package/dist/src/function-configs/object/isEmpty.js +26 -0
  474. package/dist/src/function-configs/object/isEmpty.js.map +1 -1
  475. package/dist/src/function-configs/object/lookup.d.ts.map +1 -1
  476. package/dist/src/function-configs/object/lookup.js +8 -0
  477. package/dist/src/function-configs/object/lookup.js.map +1 -1
  478. package/dist/src/function-configs/object/sql-utils.d.ts +5 -0
  479. package/dist/src/function-configs/object/sql-utils.d.ts.map +1 -0
  480. package/dist/src/function-configs/object/sql-utils.js +96 -0
  481. package/dist/src/function-configs/object/sql-utils.js.map +1 -0
  482. package/dist/src/function-configs/sql-helpers.d.ts +115 -0
  483. package/dist/src/function-configs/sql-helpers.d.ts.map +1 -0
  484. package/dist/src/function-configs/sql-helpers.js +169 -0
  485. package/dist/src/function-configs/sql-helpers.js.map +1 -0
  486. package/dist/src/function-configs/string/contains.d.ts.map +1 -1
  487. package/dist/src/function-configs/string/contains.js +5 -0
  488. package/dist/src/function-configs/string/contains.js.map +1 -1
  489. package/dist/src/function-configs/string/createID.d.ts.map +1 -1
  490. package/dist/src/function-configs/string/createID.js +16 -0
  491. package/dist/src/function-configs/string/createID.js.map +1 -1
  492. package/dist/src/function-configs/string/decodeBase64.d.ts.map +1 -1
  493. package/dist/src/function-configs/string/decodeBase64.js +14 -0
  494. package/dist/src/function-configs/string/decodeBase64.js.map +1 -1
  495. package/dist/src/function-configs/string/decodeHex.d.ts.map +1 -1
  496. package/dist/src/function-configs/string/decodeHex.js +13 -0
  497. package/dist/src/function-configs/string/decodeHex.js.map +1 -1
  498. package/dist/src/function-configs/string/decodeURL.d.ts.map +1 -1
  499. package/dist/src/function-configs/string/decodeURL.js +7 -0
  500. package/dist/src/function-configs/string/decodeURL.js.map +1 -1
  501. package/dist/src/function-configs/string/encode.d.ts.map +1 -1
  502. package/dist/src/function-configs/string/encode.js +14 -0
  503. package/dist/src/function-configs/string/encode.js.map +1 -1
  504. package/dist/src/function-configs/string/encodeBase64.d.ts.map +1 -1
  505. package/dist/src/function-configs/string/encodeBase64.js +10 -0
  506. package/dist/src/function-configs/string/encodeBase64.js.map +1 -1
  507. package/dist/src/function-configs/string/encodeHex.d.ts.map +1 -1
  508. package/dist/src/function-configs/string/encodeHex.js +9 -0
  509. package/dist/src/function-configs/string/encodeHex.js.map +1 -1
  510. package/dist/src/function-configs/string/encodeSHA.d.ts.map +1 -1
  511. package/dist/src/function-configs/string/encodeSHA.js +11 -0
  512. package/dist/src/function-configs/string/encodeSHA.js.map +1 -1
  513. package/dist/src/function-configs/string/encodeSHA1.d.ts.map +1 -1
  514. package/dist/src/function-configs/string/encodeSHA1.js +10 -0
  515. package/dist/src/function-configs/string/encodeSHA1.js.map +1 -1
  516. package/dist/src/function-configs/string/encodeURL.d.ts.map +1 -1
  517. package/dist/src/function-configs/string/encodeURL.js +7 -0
  518. package/dist/src/function-configs/string/encodeURL.js.map +1 -1
  519. package/dist/src/function-configs/string/endsWith.d.ts.map +1 -1
  520. package/dist/src/function-configs/string/endsWith.js +5 -0
  521. package/dist/src/function-configs/string/endsWith.js.map +1 -1
  522. package/dist/src/function-configs/string/entropy.d.ts.map +1 -1
  523. package/dist/src/function-configs/string/entropy.js +17 -0
  524. package/dist/src/function-configs/string/entropy.js.map +1 -1
  525. package/dist/src/function-configs/string/extract.d.ts.map +1 -1
  526. package/dist/src/function-configs/string/extract.js +48 -1
  527. package/dist/src/function-configs/string/extract.js.map +1 -1
  528. package/dist/src/function-configs/string/isAlpha.d.ts.map +1 -1
  529. package/dist/src/function-configs/string/isAlpha.js +10 -0
  530. package/dist/src/function-configs/string/isAlpha.js.map +1 -1
  531. package/dist/src/function-configs/string/isAlphaNumeric.d.ts.map +1 -1
  532. package/dist/src/function-configs/string/isAlphaNumeric.js +6 -0
  533. package/dist/src/function-configs/string/isAlphaNumeric.js.map +1 -1
  534. package/dist/src/function-configs/string/isBase64.d.ts.map +1 -1
  535. package/dist/src/function-configs/string/isBase64.js +13 -0
  536. package/dist/src/function-configs/string/isBase64.js.map +1 -1
  537. package/dist/src/function-configs/string/isCountryCode.d.ts.map +1 -1
  538. package/dist/src/function-configs/string/isCountryCode.js +16 -0
  539. package/dist/src/function-configs/string/isCountryCode.js.map +1 -1
  540. package/dist/src/function-configs/string/isEmail.d.ts.map +1 -1
  541. package/dist/src/function-configs/string/isEmail.js +10 -0
  542. package/dist/src/function-configs/string/isEmail.js.map +1 -1
  543. package/dist/src/function-configs/string/isFQDN.d.ts.map +1 -1
  544. package/dist/src/function-configs/string/isFQDN.js +9 -0
  545. package/dist/src/function-configs/string/isFQDN.js.map +1 -1
  546. package/dist/src/function-configs/string/isHash.d.ts.map +1 -1
  547. package/dist/src/function-configs/string/isHash.js +9 -0
  548. package/dist/src/function-configs/string/isHash.js.map +1 -1
  549. package/dist/src/function-configs/string/isLength.d.ts.map +1 -1
  550. package/dist/src/function-configs/string/isLength.js +23 -0
  551. package/dist/src/function-configs/string/isLength.js.map +1 -1
  552. package/dist/src/function-configs/string/isMACAddress.d.ts.map +1 -1
  553. package/dist/src/function-configs/string/isMACAddress.js +17 -0
  554. package/dist/src/function-configs/string/isMACAddress.js.map +1 -1
  555. package/dist/src/function-configs/string/isMIMEType.d.ts.map +1 -1
  556. package/dist/src/function-configs/string/isMIMEType.js +10 -0
  557. package/dist/src/function-configs/string/isMIMEType.js.map +1 -1
  558. package/dist/src/function-configs/string/isPhoneNumberLike.d.ts.map +1 -1
  559. package/dist/src/function-configs/string/isPhoneNumberLike.js +14 -0
  560. package/dist/src/function-configs/string/isPhoneNumberLike.js.map +1 -1
  561. package/dist/src/function-configs/string/isPort.d.ts.map +1 -1
  562. package/dist/src/function-configs/string/isPort.js +12 -0
  563. package/dist/src/function-configs/string/isPort.js.map +1 -1
  564. package/dist/src/function-configs/string/isPostalCode.d.ts.map +1 -1
  565. package/dist/src/function-configs/string/isPostalCode.js +12 -0
  566. package/dist/src/function-configs/string/isPostalCode.js.map +1 -1
  567. package/dist/src/function-configs/string/isString.d.ts.map +1 -1
  568. package/dist/src/function-configs/string/isString.js +7 -0
  569. package/dist/src/function-configs/string/isString.js.map +1 -1
  570. package/dist/src/function-configs/string/isUUID.d.ts.map +1 -1
  571. package/dist/src/function-configs/string/isUUID.js +9 -0
  572. package/dist/src/function-configs/string/isUUID.js.map +1 -1
  573. package/dist/src/function-configs/string/join.d.ts.map +1 -1
  574. package/dist/src/function-configs/string/join.js +17 -0
  575. package/dist/src/function-configs/string/join.js.map +1 -1
  576. package/dist/src/function-configs/string/postal-code-utils.d.ts +13 -0
  577. package/dist/src/function-configs/string/postal-code-utils.d.ts.map +1 -0
  578. package/dist/src/function-configs/string/postal-code-utils.js +160 -0
  579. package/dist/src/function-configs/string/postal-code-utils.js.map +1 -0
  580. package/dist/src/function-configs/string/replaceLiteral.d.ts.map +1 -1
  581. package/dist/src/function-configs/string/replaceLiteral.js +22 -0
  582. package/dist/src/function-configs/string/replaceLiteral.js.map +1 -1
  583. package/dist/src/function-configs/string/replaceRegex.d.ts.map +1 -1
  584. package/dist/src/function-configs/string/replaceRegex.js +34 -0
  585. package/dist/src/function-configs/string/replaceRegex.js.map +1 -1
  586. package/dist/src/function-configs/string/reverse.d.ts.map +1 -1
  587. package/dist/src/function-configs/string/reverse.js +16 -0
  588. package/dist/src/function-configs/string/reverse.js.map +1 -1
  589. package/dist/src/function-configs/string/split.d.ts.map +1 -1
  590. package/dist/src/function-configs/string/split.js +13 -0
  591. package/dist/src/function-configs/string/split.js.map +1 -1
  592. package/dist/src/function-configs/string/sql-regex-utils.d.ts +91 -0
  593. package/dist/src/function-configs/string/sql-regex-utils.d.ts.map +1 -0
  594. package/dist/src/function-configs/string/sql-regex-utils.js +123 -0
  595. package/dist/src/function-configs/string/sql-regex-utils.js.map +1 -0
  596. package/dist/src/function-configs/string/sql-utils.d.ts +191 -0
  597. package/dist/src/function-configs/string/sql-utils.d.ts.map +1 -0
  598. package/dist/src/function-configs/string/sql-utils.js +321 -0
  599. package/dist/src/function-configs/string/sql-utils.js.map +1 -0
  600. package/dist/src/function-configs/string/sql-validator-utils.d.ts +49 -0
  601. package/dist/src/function-configs/string/sql-validator-utils.d.ts.map +1 -0
  602. package/dist/src/function-configs/string/sql-validator-utils.js +327 -0
  603. package/dist/src/function-configs/string/sql-validator-utils.js.map +1 -0
  604. package/dist/src/function-configs/string/startsWith.d.ts.map +1 -1
  605. package/dist/src/function-configs/string/startsWith.js +5 -0
  606. package/dist/src/function-configs/string/startsWith.js.map +1 -1
  607. package/dist/src/function-configs/string/toCamelCase.d.ts.map +1 -1
  608. package/dist/src/function-configs/string/toCamelCase.js +18 -0
  609. package/dist/src/function-configs/string/toCamelCase.js.map +1 -1
  610. package/dist/src/function-configs/string/toKebabCase.d.ts.map +1 -1
  611. package/dist/src/function-configs/string/toKebabCase.js +18 -0
  612. package/dist/src/function-configs/string/toKebabCase.js.map +1 -1
  613. package/dist/src/function-configs/string/toLowerCase.d.ts.map +1 -1
  614. package/dist/src/function-configs/string/toLowerCase.js +13 -0
  615. package/dist/src/function-configs/string/toLowerCase.js.map +1 -1
  616. package/dist/src/function-configs/string/toPascalCase.d.ts.map +1 -1
  617. package/dist/src/function-configs/string/toPascalCase.js +18 -0
  618. package/dist/src/function-configs/string/toPascalCase.js.map +1 -1
  619. package/dist/src/function-configs/string/toSnakeCase.d.ts.map +1 -1
  620. package/dist/src/function-configs/string/toSnakeCase.js +18 -0
  621. package/dist/src/function-configs/string/toSnakeCase.js.map +1 -1
  622. package/dist/src/function-configs/string/toString.d.ts.map +1 -1
  623. package/dist/src/function-configs/string/toString.js +42 -0
  624. package/dist/src/function-configs/string/toString.js.map +1 -1
  625. package/dist/src/function-configs/string/toTitleCase.d.ts.map +1 -1
  626. package/dist/src/function-configs/string/toTitleCase.js +19 -0
  627. package/dist/src/function-configs/string/toTitleCase.js.map +1 -1
  628. package/dist/src/function-configs/string/toUpperCase.d.ts.map +1 -1
  629. package/dist/src/function-configs/string/toUpperCase.js +13 -0
  630. package/dist/src/function-configs/string/toUpperCase.js.map +1 -1
  631. package/dist/src/function-configs/string/trim.d.ts.map +1 -1
  632. package/dist/src/function-configs/string/trim.js +11 -0
  633. package/dist/src/function-configs/string/trim.js.map +1 -1
  634. package/dist/src/function-configs/string/trimEnd.d.ts.map +1 -1
  635. package/dist/src/function-configs/string/trimEnd.js +11 -0
  636. package/dist/src/function-configs/string/trimEnd.js.map +1 -1
  637. package/dist/src/function-configs/string/trimStart.d.ts.map +1 -1
  638. package/dist/src/function-configs/string/trimStart.js +11 -0
  639. package/dist/src/function-configs/string/trimStart.js.map +1 -1
  640. package/dist/src/function-configs/string/truncate.d.ts.map +1 -1
  641. package/dist/src/function-configs/string/truncate.js +15 -0
  642. package/dist/src/function-configs/string/truncate.js.map +1 -1
  643. package/dist/src/index.d.ts +1 -0
  644. package/dist/src/index.d.ts.map +1 -1
  645. package/dist/src/index.js +1 -0
  646. package/dist/src/index.js.map +1 -1
  647. package/dist/src/teal-frame/DuckContext.d.ts +105 -0
  648. package/dist/src/teal-frame/DuckContext.d.ts.map +1 -0
  649. package/dist/src/teal-frame/DuckContext.js +244 -0
  650. package/dist/src/teal-frame/DuckContext.js.map +1 -0
  651. package/dist/src/teal-frame/TealFrame.d.ts +371 -0
  652. package/dist/src/teal-frame/TealFrame.d.ts.map +1 -0
  653. package/dist/src/teal-frame/TealFrame.js +575 -0
  654. package/dist/src/teal-frame/TealFrame.js.map +1 -0
  655. package/dist/src/teal-frame/append.d.ts +45 -0
  656. package/dist/src/teal-frame/append.d.ts.map +1 -0
  657. package/dist/src/teal-frame/append.js +136 -0
  658. package/dist/src/teal-frame/append.js.map +1 -0
  659. package/dist/src/teal-frame/clauses.d.ts +22 -0
  660. package/dist/src/teal-frame/clauses.d.ts.map +1 -0
  661. package/dist/src/teal-frame/clauses.js +41 -0
  662. package/dist/src/teal-frame/clauses.js.map +1 -0
  663. package/dist/src/teal-frame/database.d.ts +46 -0
  664. package/dist/src/teal-frame/database.d.ts.map +1 -0
  665. package/dist/src/teal-frame/database.js +91 -0
  666. package/dist/src/teal-frame/database.js.map +1 -0
  667. package/dist/src/teal-frame/date-value.d.ts +55 -0
  668. package/dist/src/teal-frame/date-value.d.ts.map +1 -0
  669. package/dist/src/teal-frame/date-value.js +106 -0
  670. package/dist/src/teal-frame/date-value.js.map +1 -0
  671. package/dist/src/teal-frame/deep-select.d.ts +8 -0
  672. package/dist/src/teal-frame/deep-select.d.ts.map +1 -0
  673. package/dist/src/teal-frame/deep-select.js +125 -0
  674. package/dist/src/teal-frame/deep-select.js.map +1 -0
  675. package/dist/src/teal-frame/duck-values.d.ts +37 -0
  676. package/dist/src/teal-frame/duck-values.d.ts.map +1 -0
  677. package/dist/src/teal-frame/duck-values.js +173 -0
  678. package/dist/src/teal-frame/duck-values.js.map +1 -0
  679. package/dist/src/teal-frame/errors.d.ts +38 -0
  680. package/dist/src/teal-frame/errors.d.ts.map +1 -0
  681. package/dist/src/teal-frame/errors.js +63 -0
  682. package/dist/src/teal-frame/errors.js.map +1 -0
  683. package/dist/src/teal-frame/expand-values.d.ts +29 -0
  684. package/dist/src/teal-frame/expand-values.d.ts.map +1 -0
  685. package/dist/src/teal-frame/expand-values.js +53 -0
  686. package/dist/src/teal-frame/expand-values.js.map +1 -0
  687. package/dist/src/teal-frame/export-json.d.ts +58 -0
  688. package/dist/src/teal-frame/export-json.d.ts.map +1 -0
  689. package/dist/src/teal-frame/export-json.js +409 -0
  690. package/dist/src/teal-frame/export-json.js.map +1 -0
  691. package/dist/src/teal-frame/extension-tools.d.ts +40 -0
  692. package/dist/src/teal-frame/extension-tools.d.ts.map +1 -0
  693. package/dist/src/teal-frame/extension-tools.js +115 -0
  694. package/dist/src/teal-frame/extension-tools.js.map +1 -0
  695. package/dist/src/teal-frame/extensions-cli.d.ts +2 -0
  696. package/dist/src/teal-frame/extensions-cli.d.ts.map +1 -0
  697. package/dist/src/teal-frame/extensions-cli.js +56 -0
  698. package/dist/src/teal-frame/extensions-cli.js.map +1 -0
  699. package/dist/src/teal-frame/extensions.d.ts +53 -0
  700. package/dist/src/teal-frame/extensions.d.ts.map +1 -0
  701. package/dist/src/teal-frame/extensions.js +110 -0
  702. package/dist/src/teal-frame/extensions.js.map +1 -0
  703. package/dist/src/teal-frame/index.d.ts +23 -0
  704. package/dist/src/teal-frame/index.d.ts.map +1 -0
  705. package/dist/src/teal-frame/index.js +23 -0
  706. package/dist/src/teal-frame/index.js.map +1 -0
  707. package/dist/src/teal-frame/interfaces.d.ts +186 -0
  708. package/dist/src/teal-frame/interfaces.d.ts.map +1 -0
  709. package/dist/src/teal-frame/interfaces.js +2 -0
  710. package/dist/src/teal-frame/interfaces.js.map +1 -0
  711. package/dist/src/teal-frame/line-stream.d.ts +10 -0
  712. package/dist/src/teal-frame/line-stream.d.ts.map +1 -0
  713. package/dist/src/teal-frame/line-stream.js +35 -0
  714. package/dist/src/teal-frame/line-stream.js.map +1 -0
  715. package/dist/src/teal-frame/order-safety.d.ts +15 -0
  716. package/dist/src/teal-frame/order-safety.d.ts.map +1 -0
  717. package/dist/src/teal-frame/order-safety.js +21 -0
  718. package/dist/src/teal-frame/order-safety.js.map +1 -0
  719. package/dist/src/teal-frame/output.d.ts +18 -0
  720. package/dist/src/teal-frame/output.d.ts.map +1 -0
  721. package/dist/src/teal-frame/output.js +63 -0
  722. package/dist/src/teal-frame/output.js.map +1 -0
  723. package/dist/src/teal-frame/parquet-columns.d.ts +15 -0
  724. package/dist/src/teal-frame/parquet-columns.d.ts.map +1 -0
  725. package/dist/src/teal-frame/parquet-columns.js +45 -0
  726. package/dist/src/teal-frame/parquet-columns.js.map +1 -0
  727. package/dist/src/teal-frame/plain-values.d.ts +30 -0
  728. package/dist/src/teal-frame/plain-values.d.ts.map +1 -0
  729. package/dist/src/teal-frame/plain-values.js +69 -0
  730. package/dist/src/teal-frame/plain-values.js.map +1 -0
  731. package/dist/src/teal-frame/row-shape.d.ts +21 -0
  732. package/dist/src/teal-frame/row-shape.d.ts.map +1 -0
  733. package/dist/src/teal-frame/row-shape.js +94 -0
  734. package/dist/src/teal-frame/row-shape.js.map +1 -0
  735. package/dist/src/teal-frame/scalar-function.d.ts +66 -0
  736. package/dist/src/teal-frame/scalar-function.d.ts.map +1 -0
  737. package/dist/src/teal-frame/scalar-function.js +75 -0
  738. package/dist/src/teal-frame/scalar-function.js.map +1 -0
  739. package/dist/src/teal-frame/schema-check.d.ts +43 -0
  740. package/dist/src/teal-frame/schema-check.d.ts.map +1 -0
  741. package/dist/src/teal-frame/schema-check.js +66 -0
  742. package/dist/src/teal-frame/schema-check.js.map +1 -0
  743. package/dist/src/teal-frame/sources.d.ts +14 -0
  744. package/dist/src/teal-frame/sources.d.ts.map +1 -0
  745. package/dist/src/teal-frame/sources.js +28 -0
  746. package/dist/src/teal-frame/sources.js.map +1 -0
  747. package/dist/src/teal-frame/table.d.ts +19 -0
  748. package/dist/src/teal-frame/table.d.ts.map +1 -0
  749. package/dist/src/teal-frame/table.js +64 -0
  750. package/dist/src/teal-frame/table.js.map +1 -0
  751. package/dist/src/teal-frame/udf-types.d.ts +45 -0
  752. package/dist/src/teal-frame/udf-types.d.ts.map +1 -0
  753. package/dist/src/teal-frame/udf-types.js +157 -0
  754. package/dist/src/teal-frame/udf-types.js.map +1 -0
  755. package/dist/src/teal-frame/wkb.d.ts +6 -0
  756. package/dist/src/teal-frame/wkb.d.ts.map +1 -0
  757. package/dist/src/teal-frame/wkb.js +167 -0
  758. package/dist/src/teal-frame/wkb.js.map +1 -0
  759. package/package.json +18 -11
@@ -0,0 +1,244 @@
1
+ import { DuckDBInstance } from '@duckdb/node-api';
2
+ import { resolve } from 'node:path';
3
+ import { quoteLiteral } from '@terascope/sql-builder';
4
+ import { createScalarFunction } from './scalar-function.js';
5
+ import { toPlainValue } from './plain-values.js';
6
+ import { extensionSettingsFromEnv, loadExtensions } from './extensions.js';
7
+ /** DuckDB's hard per-chunk row limit. Appending more in one chunk throws. */
8
+ export const MAX_CHUNK_ROWS = 2048;
9
+ /**
10
+ * Owns a DuckDB instance and its shared connection.
11
+ *
12
+ * Internal: it is not exported from the package, and callers reach the database through
13
+ * `configureDuckDatabase`, `registerScalarFunction` and `closeDuckDatabase`. Processes that
14
+ * need to exchange data hand each other Parquet files rather than sharing a database.
15
+ *
16
+ * Every frame on a database shares the instance, because tables live in its catalog and any
17
+ * connection can see them (they are real tables, not TEMP tables, which would be
18
+ * connection-local). Streams do not share the connection; see `streamRowObjects`.
19
+ */
20
+ export class DuckContext {
21
+ instance;
22
+ connection;
23
+ path;
24
+ extensionDirectory;
25
+ /**
26
+ * Registered scalar functions, kept so they are not garbage-collected while DuckDB still
27
+ * holds them, and so a name cannot be silently registered twice.
28
+ */
29
+ functions = new Map();
30
+ constructor(instance, connection,
31
+ /** The database path, so a frame can report where it lives. */
32
+ path,
33
+ /** Fixed for the instance's life - DuckDB resolves extensions from it at LOAD. */
34
+ extensionDirectory) {
35
+ this.instance = instance;
36
+ this.connection = connection;
37
+ this.path = path;
38
+ this.extensionDirectory = extensionDirectory;
39
+ }
40
+ /**
41
+ * Registers a scalar function on the instance.
42
+ *
43
+ * Registration is instance-wide: a function registered on one connection is visible to
44
+ * every other connection, including the private connection each stream opens. That is
45
+ * what lets UDFs and streaming work together.
46
+ */
47
+ registerFunction(spec) {
48
+ // Idempotent: `tealFrameAdapter` derives the name from (function, column, args), so
49
+ // a second registration under the same name is the same function and must not error.
50
+ if (this.functions.has(spec.name))
51
+ return;
52
+ const fn = createScalarFunction(spec);
53
+ this.connection.registerScalarFunction(fn);
54
+ this.functions.set(spec.name, fn);
55
+ }
56
+ /** How many scalar functions are registered. They cannot be removed, so keep this bounded. */
57
+ get functionCount() {
58
+ return this.functions.size;
59
+ }
60
+ hasFunction(name) {
61
+ return this.functions.has(name);
62
+ }
63
+ /**
64
+ * Opens the database and loads the required extensions, so a missing extension fails at
65
+ * startup rather than at the first query that needs it (see `extensions.ts`).
66
+ *
67
+ * Explicit settings take precedence over the environment. On failure the instance is
68
+ * closed, because nothing else holds it and it would otherwise leak.
69
+ */
70
+ static async create(path = ':memory:', settings = {}) {
71
+ const extensions = resolveExtensionSettings(settings);
72
+ const instance = await DuckDBInstance.create(path, instanceOptions(extensions));
73
+ let connection;
74
+ try {
75
+ connection = await instance.connect();
76
+ const context = new DuckContext(instance, connection, path, extensions.extensionDirectory);
77
+ await context.applySettings(settings);
78
+ await loadExtensions(connection, extensions.autoinstallExtensions ?? true);
79
+ return context;
80
+ }
81
+ catch (err) {
82
+ // Close both, as `disconnect()` does: a live connection keeps a closed instance open
83
+ connection?.disconnectSync();
84
+ instance.closeSync();
85
+ throw err;
86
+ }
87
+ }
88
+ /**
89
+ * Applies the spill, memory and thread settings. They are runtime `SET`s, so they can be
90
+ * changed on an open database.
91
+ *
92
+ * Without `temp_directory`, a query that exceeds `memory_limit` fails instead of spilling
93
+ * to disk.
94
+ *
95
+ * **Set `memory_limit` below the container's memory cap.** If DuckDB thinks it has more
96
+ * memory than the container allows, it never spills and the kernel kills the process.
97
+ */
98
+ async applySettings(settings) {
99
+ // Refused rather than applied: extensions already loaded from the old directory stay
100
+ // loaded, so the new value would be reported but never used. Paths are compared after
101
+ // resolving, so `/ext/` and `/ext` count as the same directory.
102
+ if (settings.extensionDirectory != null
103
+ && !sameDirectory(settings.extensionDirectory, this.extensionDirectory)) {
104
+ throw new Error(`extensionDirectory is fixed once the database opens - "${this.path}" opened`
105
+ + ` with ${this.extensionDirectory ?? 'the default'}, so`
106
+ + ` "${settings.extensionDirectory}" cannot take effect. Set`
107
+ + ` DUCKDB_EXTENSION_DIRECTORY, or configure before the first frame.`);
108
+ }
109
+ if (settings.autoinstallExtensions != null) {
110
+ await this.run(`SET autoinstall_known_extensions = ${settings.autoinstallExtensions}`);
111
+ }
112
+ if (settings.tempDirectory != null) {
113
+ await this.run(`SET temp_directory = ${quoteLiteral(settings.tempDirectory)}`);
114
+ }
115
+ if (settings.maxTempDirectorySize != null) {
116
+ await this.run(`SET max_temp_directory_size = ${quoteLiteral(settings.maxTempDirectorySize)}`);
117
+ }
118
+ if (settings.memoryLimit != null) {
119
+ await this.run(`SET memory_limit = ${quoteLiteral(settings.memoryLimit)}`);
120
+ }
121
+ if (settings.threads != null) {
122
+ await this.run(`SET threads = ${Math.trunc(settings.threads)}`);
123
+ }
124
+ }
125
+ async run(sql) {
126
+ await this.connection.run(sql);
127
+ }
128
+ async scalar(sql) {
129
+ const rows = await (await this.connection.run(sql)).getRowsJson();
130
+ return rows.length === 0 ? undefined : rows[0][0];
131
+ }
132
+ async rows(sql) {
133
+ return (await (await this.connection.run(sql)).getRowsJson());
134
+ }
135
+ /**
136
+ * The columns a query produces, with their DuckDB type objects. No rows are read.
137
+ *
138
+ * Type objects rather than `DESCRIBE`'s text, because that text does not quote struct member
139
+ * names: in `STRUCT(HUGEINT BIGINT)` the member is named `HUGEINT`, and string matching
140
+ * cannot tell a name from a type.
141
+ */
142
+ async columnTypes(sql) {
143
+ const result = await this.connection.run(`SELECT * FROM (${sql}) LIMIT 0`);
144
+ const types = result.columnTypes();
145
+ return result.columnNames().map((name, i) => ({ name, type: types[i] }));
146
+ }
147
+ /**
148
+ * Streams a single-column result as strings, chunk by chunk.
149
+ *
150
+ * For output DuckDB has already rendered, such as ldjson lines, where the only work left in
151
+ * JS is moving bytes. It skips `toPlainValue` because each value is already the final text.
152
+ * Like `streamRowObjects`, it uses its own connection.
153
+ */
154
+ async *streamColumnStrings(sql) {
155
+ const connection = await this.instance.connect();
156
+ try {
157
+ const result = await connection.stream(sql);
158
+ for (;;) {
159
+ const chunk = await result.fetchChunk();
160
+ if (chunk == null || chunk.rowCount === 0)
161
+ return;
162
+ const values = chunk.getColumnValues(0);
163
+ for (let row = 0; row < chunk.rowCount; row++) {
164
+ yield String(values[row]);
165
+ }
166
+ }
167
+ }
168
+ finally {
169
+ connection.disconnectSync();
170
+ }
171
+ }
172
+ /**
173
+ * Streams a query's rows as objects, one DuckDB chunk at a time, so a large result is never
174
+ * held in JS all at once.
175
+ *
176
+ * **Each stream opens its own connection and closes it when the stream ends.** Running any
177
+ * other query on a connection that holds an open streaming result silently truncates that
178
+ * stream, with no error. On a shared connection, any frame's `size()` could cut a stream
179
+ * short.
180
+ *
181
+ * `shapers` finish a column's value where the value alone is not enough; for example, a
182
+ * `Tuple` is stored as a STRUCT but must come out as an array. See `row-shape.ts`.
183
+ */
184
+ async *streamRowObjects(sql, shapers = new Map()) {
185
+ const connection = await this.instance.connect();
186
+ try {
187
+ const result = await connection.stream(sql);
188
+ const names = result.columnNames();
189
+ for (;;) {
190
+ const chunk = await result.fetchChunk();
191
+ // At the end of the result `fetchChunk` returns an empty chunk, repeatedly,
192
+ // rather than null. An empty chunk is the end; waiting for null would loop
193
+ // forever. The null check is only a guard.
194
+ if (chunk == null || chunk.rowCount === 0)
195
+ return;
196
+ const columns = names.map((_name, i) => chunk.getColumnValues(i));
197
+ const shape = names.map((name) => shapers.get(name));
198
+ for (let row = 0; row < chunk.rowCount; row++) {
199
+ yield Object.fromEntries(names.map((name, col) => {
200
+ const value = toPlainValue(columns[col][row]);
201
+ return [name, shape[col] ? shape[col](value) : value];
202
+ }));
203
+ }
204
+ }
205
+ }
206
+ finally {
207
+ // also runs on an early `break` out of a `for await`, not only on exhaustion
208
+ connection.disconnectSync();
209
+ }
210
+ }
211
+ /**
212
+ * Closes the connection and the instance.
213
+ *
214
+ * Closing the instance is required once a scalar UDF has been registered: a process that
215
+ * registered one does not exit after `disconnectSync()` alone, and
216
+ * `DuckDBScalarFunction.destroySync()` does not help. `instance.closeSync()` releases it.
217
+ */
218
+ disconnect() {
219
+ this.connection.disconnectSync();
220
+ this.instance.closeSync();
221
+ }
222
+ }
223
+ function resolveExtensionSettings(settings) {
224
+ const env = extensionSettingsFromEnv();
225
+ return {
226
+ extensionDirectory: settings.extensionDirectory ?? env.extensionDirectory,
227
+ autoinstallExtensions: settings.autoinstallExtensions ?? env.autoinstallExtensions,
228
+ };
229
+ }
230
+ /** Set at open, not by a later `SET`, so nothing can load from the wrong place first. */
231
+ function instanceOptions(extensions) {
232
+ return {
233
+ ...(extensions.extensionDirectory != null && {
234
+ extension_directory: extensions.extensionDirectory,
235
+ }),
236
+ ...(extensions.autoinstallExtensions != null && {
237
+ autoinstall_known_extensions: String(extensions.autoinstallExtensions),
238
+ }),
239
+ };
240
+ }
241
+ function sameDirectory(a, b) {
242
+ return b != null && resolve(a) === resolve(b);
243
+ }
244
+ //# sourceMappingURL=DuckContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DuckContext.js","sourceRoot":"","sources":["../../../src/teal-frame/DuckContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,371 @@
1
+ import { SQLSearchParams } from '@terascope/types';
2
+ import { type SQLSortInput } from '@terascope/sql-builder';
3
+ import { JsonExportOptions } from './export-json.js';
4
+ import { ExpandValuesOptions } from './expand-values.js';
5
+ import { AppendOptions, AppendSource, FrameConfig, FrameOptions, FromRecordsOptions, JoinOptions, SelectList, SelectOptions } from './interfaces.js';
6
+ /**
7
+ * A frame whose rows live in DuckDB.
8
+ *
9
+ * TealFrame has its own API; it does not wrap or replace `DataFrame`. Its methods fall into
10
+ * three groups:
11
+ *
12
+ * 1. **Compose a statement:** `filter`, `select`, `orderBy`, `limit`, `distinct`, `join`,
13
+ * `deepSelect`, `pruneEmptyObjects`, `expandValues` and `removeEmptyRows`. Each returns a
14
+ * new frame over one more SQL step. Nothing runs yet.
15
+ * 2. **Run an existing statement:** `query` (instance) and `fromSQL` (static).
16
+ * 3. **Consume:** `rows`, `size`, `ndjson`, `writeNDJSON`, `writeParquet`, `listValues` and
17
+ * `countEmptyRows`. These execute the statement and produce output.
18
+ *
19
+ * `filter` and `select` are clause builders, not a search API: `filter` is the `WHERE` clause
20
+ * and `select` is the `SELECT` list, just as `orderBy` is the `ORDER BY`. They exist for
21
+ * callers that build a query one step at a time. For example, `tealFrameAdapter` returns an
22
+ * expression for one function on one column, and a chain of transforms becomes a chain of
23
+ * `select` calls that compose into one statement evaluated in a single pass.
24
+ *
25
+ * If you already have a complete statement, such as one from `QueryAccess`, pass it to
26
+ * `query` whole. Rebuilding a restricted statement from `filter` and `select` can drop a
27
+ * field restriction.
28
+ */
29
+ export declare class TealFrame {
30
+ private readonly ctx;
31
+ readonly config: FrameConfig;
32
+ /**
33
+ * Not readonly: `append` may promote a relation to a table, because a frame manages
34
+ * its own storage. Every other operation returns a new frame and leaves this one
35
+ * unchanged.
36
+ */
37
+ private source;
38
+ readonly columns: readonly string[];
39
+ private constructor();
40
+ /** The in-flight promotion of a relation to a table, shared by concurrent appends. */
41
+ private promotion?;
42
+ /** True when the rows are in a real table rather than recomputed per reference. */
43
+ get isMaterialized(): boolean;
44
+ /**
45
+ * True when this frame's rows come out in a defined order.
46
+ *
47
+ * Set by `orderBy` and kept by the operators that preserve order. Operations that would
48
+ * discard the order check it and throw.
49
+ */
50
+ get isOrdered(): boolean;
51
+ /** Refuses an operation that would silently discard an ordering - see `order-safety.ts`. */
52
+ private assertOrderSafe;
53
+ /** A new relation-backed frame over `sql` on the same database. */
54
+ private derive;
55
+ /**
56
+ * SQL naming this frame's rows, usable directly in a `FROM` clause.
57
+ *
58
+ * For a materialized frame this is its quoted table name; for a relation it is a
59
+ * parenthesized subquery, so composed frames reach DuckDB's optimizer as a single
60
+ * statement.
61
+ */
62
+ get from(): string;
63
+ /**
64
+ * Returns a frame over the rows of a complete SQL statement.
65
+ *
66
+ * Use it to run a statement from `QueryAccess.restrictSQLQuery`, which is a finished
67
+ * `SELECT` that already carries the field restrictions:
68
+ *
69
+ * ```ts
70
+ * const sql = await access.restrictSQLQuery(query, { params: frame.searchParams(size) });
71
+ * for await (const row of frame.query(sql).rows()) { ... }
72
+ * ```
73
+ *
74
+ * The statement runs only when rows are requested, and it composes with other operations:
75
+ * `frame.query(sql).limit(10)` is one statement.
76
+ *
77
+ * `config` defaults to this frame's config. Pass the right config when the statement's
78
+ * `SELECT` list produces different fields. If the statement references its source more
79
+ * than once, materialize this frame first; see `searchParams`.
80
+ *
81
+ * @param sql A complete SQL statement.
82
+ * @param config The field types the statement produces. Defaults to this frame's config.
83
+ * @param columns The output column names. Defaults to the top-level fields of `config`.
84
+ */
85
+ query(sql: string, config?: FrameConfig, columns?: readonly string[]): TealFrame;
86
+ /**
87
+ * Runs SQL and returns positional rows, with values as DuckDB renders them to JSON. This is
88
+ * for inspection, not for reading data; use `query(sql).rows()` to read data.
89
+ *
90
+ * Unlike `query`, it needs no `DataTypeConfig`, so it can run catalog queries such as
91
+ * `DESCRIBE`. It also skips the conversion to output values, so it shows what DuckDB
92
+ * actually stores.
93
+ *
94
+ * @internal
95
+ */
96
+ rawRows(sql: string): Promise<unknown[][]>;
97
+ /**
98
+ * The `SQLSearchParams` that name this frame as the source of a `QueryAccess` statement.
99
+ *
100
+ * A materialized frame reports `table`, which is quoted as an identifier. A relation-backed
101
+ * frame reports `relation`, its SQL used verbatim.
102
+ *
103
+ * Prefer a table when the generated statement may reference its source more than once
104
+ * (a self-join, a correlated subquery, a `UNION`). Each reference to a relation re-runs the
105
+ * whole subquery, while a table is read directly. Call `materialize()` first in that case.
106
+ *
107
+ * @param size The page size, rendered as `LIMIT`.
108
+ * @param from The page start, rendered as `OFFSET`.
109
+ */
110
+ searchParams(size?: number, from?: number): SQLSearchParams;
111
+ /** The backing table name, when this frame is materialized. */
112
+ get table(): string | undefined;
113
+ /**
114
+ * Creates an empty frame backed by a new table. This is the usual way to make a frame;
115
+ * add rows with `append`.
116
+ */
117
+ static create(config: FrameConfig, options?: FrameOptions): Promise<TealFrame>;
118
+ /**
119
+ * Adds rows to this frame, from parsed records or from Parquet files, and returns the
120
+ * number of rows added.
121
+ *
122
+ * Records are coerced to the frame's field types; Parquet is already typed and is not.
123
+ *
124
+ * If the frame is a relation, it is first promoted to a table in place. Frames already
125
+ * derived from it keep the SQL they captured and are unaffected.
126
+ *
127
+ * The append runs in a transaction, so a failed batch leaves the table exactly as it was.
128
+ * When a table is assembled from many batches, a bad one cannot corrupt those already in it.
129
+ *
130
+ * **Finish appending before deriving other frames from this one.** Derived frames read the
131
+ * table by name, so a later append changes their results too.
132
+ */
133
+ append(source: AppendSource, options?: AppendOptions): Promise<number>;
134
+ /**
135
+ * Promotes a relation to a table in place, so this frame has storage to append to.
136
+ *
137
+ * The promotion is shared, so two concurrent appends do not each create a table and split
138
+ * the rows between them.
139
+ */
140
+ private ensureTable;
141
+ private promoteToTable;
142
+ /**
143
+ * Creates a frame from parsed JS records, such as Elasticsearch documents.
144
+ *
145
+ * Each value is coerced to its field type. In `strict` mode (the default) the first value
146
+ * that does not fit throws a `CoercionFailureError`, as `DataFrame`'s builder does. In
147
+ * `lenient` mode the value is stored as null and each failing field is recorded with a count
148
+ * and an example value.
149
+ *
150
+ * If the records cannot be added, the new table is dropped before the error is thrown.
151
+ */
152
+ static fromRecords(config: FrameConfig, records: readonly Record<string, unknown>[], options?: FromRecordsOptions): Promise<TealFrame>;
153
+ /**
154
+ * Creates a frame over Parquet files, without coercing their values.
155
+ *
156
+ * Parquet carries its own schema, so column types are already enforced; the values are
157
+ * expected to have been validated when the files were written.
158
+ *
159
+ * @param path One path, a list of paths, or a glob. Several files read as one relation.
160
+ */
161
+ static fromParquet(config: FrameConfig, path: string | readonly string[], options?: FrameOptions): Promise<TealFrame>;
162
+ /**
163
+ * Creates a frame over a complete SQL statement whose source is named in the SQL itself,
164
+ * such as `read_parquet([...])` or an existing table.
165
+ *
166
+ * Use the instance method `query()` instead when the statement was built against an
167
+ * existing frame.
168
+ *
169
+ * ```ts
170
+ * const sql = await access.restrictSQLQuery(query, {
171
+ * params: { relation: `read_parquet(${...})`, size: 100 }
172
+ * });
173
+ * const frame = await TealFrame.fromSQL(sql, config);
174
+ * ```
175
+ *
176
+ * Nothing runs until rows are requested. The statement is not validated, so any error
177
+ * comes from DuckDB when it executes.
178
+ */
179
+ static fromSQL(sql: string, config: FrameConfig, options?: FrameOptions): Promise<TealFrame>;
180
+ /**
181
+ * Copies this frame's rows into a new table and returns a new frame over it. The original
182
+ * frame is unchanged. A frame that is already a table is returned as is.
183
+ *
184
+ * A relation is recomputed every time it is referenced, so materializing pays off when the
185
+ * relation is expensive and used more than once. For a single use it is slower, and a
186
+ * cheap relation over a table never needs it.
187
+ */
188
+ materialize(name?: string): Promise<TealFrame>;
189
+ /**
190
+ * Sets the `SELECT` list, returning a new frame.
191
+ *
192
+ * Every column-level operation is a projection: applying a transform or validation,
193
+ * renaming, dropping, or adding a derived column. Chained `select` calls compose into one
194
+ * statement evaluated in a single pass, where `DataFrame` makes a pass per function.
195
+ * Expressions may be native SQL or calls to registered UDFs.
196
+ *
197
+ * To run a complete statement, use `query` instead.
198
+ *
199
+ * @param expressions A map of `{ outputName: sqlExpression }`, or a verbatim `SELECT` list.
200
+ * @param options The result's config and column names, and an optional `groupBy`. Grouping
201
+ * an ordered frame throws, because it would discard the order.
202
+ */
203
+ select(expressions: SelectList, options?: SelectOptions): TealFrame;
204
+ /**
205
+ * Joins another frame, returning a new frame.
206
+ *
207
+ * Either side may be a table or a relation. Both sides are aliased (`a` and `b` by
208
+ * default), because two frames often share column names; write `on` and `select` in terms
209
+ * of those aliases. `groupBy` lets a join and an aggregation run as one statement.
210
+ *
211
+ * Both frames must be in the same database, and neither may be ordered, because a join
212
+ * does not keep row order.
213
+ */
214
+ join(other: TealFrame, options: JoinOptions): TealFrame;
215
+ /**
216
+ * Adds a `WHERE` clause, returning a new frame.
217
+ *
218
+ * The predicate is raw SQL, so the caller must quote identifiers itself: a field named
219
+ * `group` needs `filter('"group" = \'y\'')`. To run a complete statement, such as one
220
+ * from `QueryAccess`, use `query` instead.
221
+ *
222
+ * A filter keeps row order, so a sorted frame stays sorted.
223
+ */
224
+ filter(predicate: string): TealFrame;
225
+ /**
226
+ * Removes duplicate rows, comparing every column (`SELECT DISTINCT *`). Returns a new
227
+ * frame.
228
+ *
229
+ * It works on list and object columns, and treats nulls as equal, so rows that are null in
230
+ * the same column collapse into one.
231
+ *
232
+ * `DISTINCT` does not keep row order, so it throws on an ordered frame and its result is
233
+ * unordered. Remove duplicates first, then sort.
234
+ */
235
+ distinct(): TealFrame;
236
+ /**
237
+ * Adds an `ORDER BY`, returning a new frame.
238
+ *
239
+ * The sort wraps the current relation in a subquery. DuckDB's optimizer flattens the
240
+ * nesting, so `.orderBy(x).limit(10)` runs as a single top-N query. The order of calls
241
+ * means what it says:
242
+ *
243
+ * | chain | means |
244
+ * |---|---|
245
+ * | `.orderBy(x).limit(10)` | the top 10 by x |
246
+ * | `.limit(10).orderBy(x)` | an arbitrary 10, sorted |
247
+ * | `.orderBy(x).filter(p).limit(10)` | the top 10 of the matching rows |
248
+ * | `.orderBy(x).limit(10).filter(p)` | the top 10, then filtered - may yield fewer |
249
+ *
250
+ * `select`, `filter` and `limit` may follow a sort. `join`, `distinct` and a grouping
251
+ * `select` throw on a sorted frame, because they would discard the order. `materialize()`
252
+ * drops the order, because a table has none.
253
+ *
254
+ * Nulls sort as in `DataFrame`: first when ascending, last when descending.
255
+ *
256
+ * **Ties are not ordered deterministically.** DuckDB sorts in parallel and is not stable,
257
+ * so rows with equal sort values can come back in a different order on each run, and
258
+ * paging over them can repeat or skip rows. `DataFrame` sorts with the stable
259
+ * `Array#sort`. A caller that pages must end `sort` with a unique field.
260
+ *
261
+ * @param sort The sort terms, at least one.
262
+ */
263
+ orderBy(sort: readonly SQLSortInput[]): TealFrame;
264
+ /**
265
+ * Adds `LIMIT` and `OFFSET`, returning a new frame.
266
+ *
267
+ * Either bound may be given alone; with neither, the frame is returned unchanged, so
268
+ * optional paging values can be passed straight through.
269
+ *
270
+ * Prefer `limit` to stopping early in `rows()`. DuckDB stops reading once an unsorted
271
+ * limit is satisfied, and for a sorted one keeps only the top `count` rows instead of
272
+ * sorting everything. Breaking out of `rows()` stops only the JS consumer.
273
+ *
274
+ * A limit keeps row order. Note that `size()` on a limited frame counts the page, not the
275
+ * total; call `size()` on the frame before the limit to get the total.
276
+ *
277
+ * @param count The maximum number of rows (`LIMIT`).
278
+ * @param offset The number of rows to skip (`OFFSET`).
279
+ */
280
+ limit(count?: number, offset?: number): TealFrame;
281
+ /** Counts the frame's rows. */
282
+ size(): Promise<number>;
283
+ /**
284
+ * Writes the frame to a Parquet file compressed with zstd, for moving data between
285
+ * processes.
286
+ *
287
+ * Parquet's built-in zstd compression is much faster than gzipping JSON output and
288
+ * produces a smaller file.
289
+ */
290
+ writeParquet(path: string): Promise<void>;
291
+ /**
292
+ * Writes the frame to a file as ldjson, one JSON object per line.
293
+ *
294
+ * DuckDB writes the file, so rows never become JS objects and this is much faster than
295
+ * serializing `rows()`.
296
+ *
297
+ * The output is byte-identical to `DataFrame.toJSON` with the same `SerializeOptions`,
298
+ * including ISO 8601 dates and integers past `MAX_SAFE_INTEGER` written as strings. See
299
+ * `export-json.ts`.
300
+ *
301
+ * With no options, null fields and empty objects are omitted (`removeNullFields: true`).
302
+ * Any explicit `SerializeOptions` flag means exactly what it means to `DataFrame`.
303
+ *
304
+ * The promise resolves once the whole file is written. Use `ndjson()` to stream the lines
305
+ * instead, for example to upload them as they are produced.
306
+ */
307
+ writeNDJSON(path: string, options?: JsonExportOptions): Promise<void>;
308
+ /**
309
+ * Streams the frame as ldjson lines, byte-identical to what `writeNDJSON` writes.
310
+ *
311
+ * DuckDB renders each line, so JavaScript only passes strings along. A caller can upload
312
+ * the lines as they arrive and never hold the whole result in memory.
313
+ */
314
+ ndjson(options?: JsonExportOptions): AsyncIterableIterator<string>;
315
+ /**
316
+ * Streams the frame's rows as JS objects.
317
+ *
318
+ * With `options`, it yields what `DataFrame.rows(true, options)` yields, by parsing the
319
+ * lines `ndjson(options)` produces. Without options, it yields every column, with a nil
320
+ * value as `null`.
321
+ *
322
+ * There is no `toArray()` or `getColumn()`: the data lives in DuckDB, so column-level work
323
+ * belongs in SQL, and a result may be too large to hold as an array.
324
+ */
325
+ rows(options?: JsonExportOptions): AsyncIterableIterator<Record<string, unknown>>;
326
+ /**
327
+ * Streams the elements of a list column in the first row, as
328
+ * `ListVector.getRowIterator(0, true, options)` yields them.
329
+ *
330
+ * Useful for a one-row frame whose single list column holds the real result. Each element
331
+ * is rendered by the same rules as `ndjson(options)`. A nil element is yielded as `null`
332
+ * under `useNullForUndefined`, as `undefined` otherwise, and skipped under
333
+ * `skipNilListValues` (or `skipNilObjectValues` for object elements). As in `DataFrame`,
334
+ * nothing is yielded under `skipEmptyArrays` when the column is empty, and
335
+ * `skipDuplicateObjects` is not supported.
336
+ */
337
+ listValues(column: string, options?: JsonExportOptions): AsyncIterableIterator<unknown>;
338
+ /**
339
+ * Keeps only the selected fields, as `DataFrame.deepSelect` does. Dotted paths select
340
+ * fields inside nested objects, and names that do not exist are ignored. See
341
+ * `deep-select.ts`.
342
+ */
343
+ deepSelect(fields: readonly string[]): TealFrame;
344
+ /**
345
+ * Drops every Object column marked `_skip_if_empty` that has no declared child fields left,
346
+ * typically after `deepSelect`. Decided from the config alone; no rows are read.
347
+ */
348
+ pruneEmptyObjects(): TealFrame;
349
+ /**
350
+ * Expands array fields into one row per element, as the `@expandValues` directive does.
351
+ * See `expand-values.ts` for the two modes. Row order is kept, and so is a row with nothing
352
+ * to expand. The expanded fields become `array: false`.
353
+ */
354
+ expandValues(fields: readonly string[], options: ExpandValuesOptions): TealFrame;
355
+ /**
356
+ * Counts the rows where every column is null, as `DataFrame.countEmptyRows` does. A row
357
+ * holding `{}` or `[]` is not empty, because the stored value is tested, not its JSON form.
358
+ */
359
+ countEmptyRows(): Promise<number>;
360
+ /** Keeps the rows that are not empty, in order, as `DataFrame.removeEmptyRows` does. */
361
+ removeEmptyRows(): TealFrame;
362
+ private emptyRow;
363
+ /**
364
+ * Drops the backing table, if this frame has one. A relation has nothing to drop.
365
+ *
366
+ * Call it only once no frame derived from this one is still in use, because derived
367
+ * frames read the table by name.
368
+ */
369
+ destroy(): Promise<void>;
370
+ }
371
+ //# sourceMappingURL=TealFrame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TealFrame.d.ts","sourceRoot":"","sources":["../../../src/teal-frame/TealFrame.ts"],"names":[],"mappings":"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"}