@terascope/data-mate 2.23.1 → 2.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +16 -9
@@ -1 +1 @@
1
- {"version":3,"file":"encodeSHA.js","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeSHA.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAEH,WAAW,EACX,sBAAsB,EAEtB,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOjD,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,aAAa,GAAyB,KAAK,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAwC;IAChE,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,kHAAkH;IAC/H,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,kEAAkE;YAC1E,WAAW,EAAE,kEAAkE;SAClF;QACD;YACI,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC1B,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,8CAA8C;SACzD;KACJ;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE,EAAE;QAC3D,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,eAAe,EAAE;QACb,IAAI,EAAE;YACF,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,oDAAoD;SACpE;QACD,MAAM,EAAE;YACJ,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,qFAAqF;SACrG;KACJ;IACD,kBAAkB,CAAC,EAAE,IAAI,EAAE;QACvB,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,SAAS,CAAC,0BAA0B,IAAI,qDAAqD,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IACD,WAAW,CAAC,WAAqC;QAC7C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QAEnD,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,MAAM;aACzB;YACD,YAAY;SACf,CAAC;IACN,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"encodeSHA.js","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeSHA.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAEH,WAAW,EACX,sBAAsB,EAEtB,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOjD,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,aAAa,GAAyB,KAAK,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAwC;IAChE,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,kHAAkH;IAC/H,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,kEAAkE;YAC1E,WAAW,EAAE,kEAAkE;SAClF;QACD;YACI,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC1B,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,8CAA8C;SACzD;KACJ;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE,EAAE;QAC3D,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IACD;;;;;MAKE;IACF,GAAG,EAAE;QACD,4FAA4F;QAC5F,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,QAAQ;QAC3F,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,GAAG;KAChD;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,eAAe,EAAE;QACb,IAAI,EAAE;YACF,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,oDAAoD;SACpE;QACD,MAAM,EAAE;YACJ,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,qFAAqF;SACrG;KACJ;IACD,kBAAkB,CAAC,EAAE,IAAI,EAAE;QACvB,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,SAAS,CAAC,0BAA0B,IAAI,qDAAqD,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IACD,WAAW,CAAC,WAAqC;QAC7C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QAEnD,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,MAAM;aACzB;YACD,YAAY;SACf,CAAC;IACN,CAAC;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"encodeSHA1.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeSHA1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACH,oBAAoB,EAKvB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAID,eAAO,MAAM,gBAAgB,EAAE,oBAAoB,CAAC,cAAc,CA0DjE,CAAC"}
1
+ {"version":3,"file":"encodeSHA1.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeSHA1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACH,oBAAoB,EAKvB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAID,eAAO,MAAM,gBAAgB,EAAE,oBAAoB,CAAC,cAAc,CAoEjE,CAAC"}
@@ -42,6 +42,16 @@ export const encodeSHA1Config = {
42
42
  create({ args: { digest = defaultDigest } }) {
43
43
  return cryptoEncode('sha1', digest);
44
44
  },
45
+ /**
46
+ * `sha1` with a hex digest, which is the default.
47
+ *
48
+ * DuckDB's `sha1` returns lowercase hex, matching `digest('hex')`. A base64 digest keeps the
49
+ * UDF.
50
+ */
51
+ sql: {
52
+ applies: (args) => (args.digest ?? 'hex') === 'hex',
53
+ expression: ({ value }) => `sha1(${value})`,
54
+ },
45
55
  accepts: [FieldType.String],
46
56
  argument_schema: {
47
57
  digest: {
@@ -1 +1 @@
1
- {"version":3,"file":"encodeSHA1.js","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeSHA1.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAEH,WAAW,EACX,sBAAsB,EAEtB,0BAA0B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMjD,MAAM,aAAa,GAAyB,KAAK,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAyC;IAClE,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,WAAW,EAAE,mDAAmD;IAChE,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,0CAA0C;YAClD,WAAW,EAAE,mDAAmD;SACnE;QACD;YACI,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC1B,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,8BAA8B;SACzC;KACJ;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,GAAG,aAAa,EAAE,EAAE;QACvC,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,eAAe,EAAE;QACb,MAAM,EAAE;YACJ,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,gFAAgF;SAChG;KACJ;IACD,WAAW,CAAC,WAAqC;QAC7C,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QAErC,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,MAAM;aACzB;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"encodeSHA1.js","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeSHA1.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAEH,WAAW,EACX,sBAAsB,EAEtB,0BAA0B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMjD,MAAM,aAAa,GAAyB,KAAK,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAyC;IAClE,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,WAAW,EAAE,mDAAmD;IAChE,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,0CAA0C;YAClD,WAAW,EAAE,mDAAmD;SACnE;QACD;YACI,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC1B,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,8BAA8B;SACzC;KACJ;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,GAAG,aAAa,EAAE,EAAE;QACvC,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IACD;;;;;MAKE;IACF,GAAG,EAAE;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK;QACnD,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,GAAG;KAC9C;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,eAAe,EAAE;QACb,MAAM,EAAE;YACJ,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,gFAAgF;SAChG;KACJ;IACD,WAAW,CAAC,WAAqC;QAC7C,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QAErC,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,MAAM;aACzB;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"encodeURL.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeURL.ts"],"names":[],"mappings":"AACA,OAAO,EACH,oBAAoB,EAKvB,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,eAAe,EAAE,oBAqC7B,CAAC"}
1
+ {"version":3,"file":"encodeURL.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeURL.ts"],"names":[],"mappings":"AACA,OAAO,EACH,oBAAoB,EAKvB,MAAM,kBAAkB,CAAC;AAI1B,eAAO,MAAM,eAAe,EAAE,oBA2C7B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { FieldType } from '@terascope/types';
2
2
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
3
+ import { encodeURIComponentSql } from './sql-utils.js';
3
4
  import { encodeURL } from './encode-utils.js';
4
5
  export const encodeURLConfig = {
5
6
  name: 'encodeURL',
@@ -26,6 +27,12 @@ export const encodeURLConfig = {
26
27
  create() {
27
28
  return encodeURL;
28
29
  },
30
+ /**
31
+ * `url_encode`, minus the five characters it over-escapes. See `encodeURIComponentSql`.
32
+ */
33
+ sql: {
34
+ expression: ({ value }) => encodeURIComponentSql(value),
35
+ },
29
36
  accepts: [FieldType.String],
30
37
  output_type(inputConfig) {
31
38
  const { field_config, child_config } = inputConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"encodeURL.js","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeURL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAEH,WAAW,EACX,sBAAsB,EAEtB,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAyB;IACjD,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,kDAAkD;IAC/D,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,gCAAgC;YACvC,MAAM,EAAE,wCAAwC;SACnD;KACJ;IACD,MAAM;QACF,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,WAAW,CAAC,WAAqC;QAC7C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QAEnD,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,MAAM;aACzB;YACD,YAAY;SACf,CAAC;IACN,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"encodeURL.js","sourceRoot":"","sources":["../../../../src/function-configs/string/encodeURL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAEH,WAAW,EACX,sBAAsB,EAEtB,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAyB;IACjD,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,kDAAkD;IAC/D,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,gCAAgC;YACvC,MAAM,EAAE,wCAAwC;SACnD;KACJ;IACD,MAAM;QACF,OAAO,SAAS,CAAC;IACrB,CAAC;IACD;;MAEE;IACF,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC;KAC1D;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,WAAW,CAAC,WAAqC;QAC7C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QAEnD,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,MAAM;aACzB;YACD,YAAY;SACf,CAAC;IACN,CAAC;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"endsWith.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/endsWith.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,YAAY,CA+C5D,CAAC"}
1
+ {"version":3,"file":"endsWith.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/endsWith.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,YAAY,CAmD5D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { FieldType } from '@terascope/types';
2
2
  import { endsWithFP } from '@terascope/core-utils';
3
3
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
4
+ import { sqlLiteral } from '../sql-helpers.js';
4
5
  export const endsWithConfig = {
5
6
  name: 'endsWith',
6
7
  type: FunctionDefinitionType.FIELD_VALIDATION,
@@ -46,6 +47,10 @@ export const endsWithConfig = {
46
47
  description: 'The value compared to the end of the input string '
47
48
  }
48
49
  },
50
+ /** `ends_with` is native. An empty search value returns true, as it does in JavaScript. */
51
+ sql: {
52
+ expression: ({ value, args }) => `ends_with(${value}, ${sqlLiteral(args.value)})`,
53
+ },
49
54
  accepts: [FieldType.String],
50
55
  required_arguments: ['value'],
51
56
  };
@@ -1 +1 @@
1
- {"version":3,"file":"endsWith.js","sourceRoot":"","sources":["../../../../src/function-configs/string/endsWith.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAM1B,MAAM,CAAC,MAAM,cAAc,GAAsC;IAC7D,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;YACpB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;SAClB;QACD;YACI,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;YACpB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI;SACf;QACD;YACI,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YACrB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,IAAI;SACf;QACD;YACI,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YACvB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,YAAY;SACvB;KACJ;IACD,WAAW,EAAE,0GAA0G;IACvH,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,eAAe,EAAE;QACb,KAAK,EAAE;YACH,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,WAAW,EAAE,oDAAoD;SACpE;KACJ;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,kBAAkB,EAAE,CAAC,OAAO,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"endsWith.js","sourceRoot":"","sources":["../../../../src/function-configs/string/endsWith.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAM/C,MAAM,CAAC,MAAM,cAAc,GAAsC;IAC7D,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;YACpB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;SAClB;QACD;YACI,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;YACpB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI;SACf;QACD;YACI,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YACrB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,IAAI;SACf;QACD;YACI,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YACvB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,YAAY;SACvB;KACJ;IACD,WAAW,EAAE,0GAA0G;IACvH,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,eAAe,EAAE;QACb,KAAK,EAAE;YACH,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,WAAW,EAAE,oDAAoD;SACpE;KACJ;IACD,2FAA2F;IAC3F,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,aAAa,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;KACpF;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,kBAAkB,EAAE,CAAC,OAAO,CAAC;CAChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"entropy.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/entropy.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,oBAAoB,EAKvB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,oBAAoB,CAAC,WAAW,CA0E3D,CAAC"}
1
+ {"version":3,"file":"entropy.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/entropy.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,oBAAoB,EAKvB,MAAM,kBAAkB,CAAC;AAI1B,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,oBAAoB,CAAC,WAAW,CAyF3D,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { FieldType } from '@terascope/types';
2
2
  import { stringEntropy, StringEntropy } from '@terascope/core-utils';
3
3
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory, } from '../interfaces.js';
4
+ import { shannonEntropySql } from './sql-utils.js';
5
+ import { HAS_ASTRAL, sqlLiteral } from '../sql-helpers.js';
4
6
  export const entropyConfig = {
5
7
  name: 'entropy',
6
8
  type: FunctionDefinitionType.FIELD_TRANSFORM,
@@ -55,6 +57,21 @@ export const entropyConfig = {
55
57
  create({ args: { algo = StringEntropy.shannon } }) {
56
58
  return stringEntropy(algo);
57
59
  },
60
+ sql: {
61
+ /**
62
+ * Shannon entropy as a scalar SQL expression; see `shannonEntropySql`. The result is exact.
63
+ *
64
+ * `shannon` is the only algorithm in `StringEntropyDict` and any other throws, so `applies`
65
+ * handles only `shannon`. Astral input keeps the UDF: the JavaScript counts frequencies per
66
+ * code point but divides by `input.length`, which counts UTF-16 code units, and the SQL
67
+ * does not reproduce that inconsistency.
68
+ */
69
+ needs_udf_fallback: true,
70
+ applies: ({ algo }) => algo == null || algo === StringEntropy.shannon,
71
+ expression: ({ value, udf }) => `CASE WHEN regexp_matches(${value},`
72
+ + ` ${sqlLiteral(HAS_ASTRAL)}) THEN ${udf(value)}`
73
+ + ` ELSE ${shannonEntropySql(value)} END`,
74
+ },
58
75
  accepts: [FieldType.String],
59
76
  argument_schema: {
60
77
  algo: {
@@ -1 +1 @@
1
- {"version":3,"file":"entropy.js","sourceRoot":"","sources":["../../../../src/function-configs/string/entropy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAEH,WAAW,EACX,sBAAsB,EAEtB,0BAA0B,GAC7B,MAAM,kBAAkB,CAAC;AAM1B,MAAM,CAAC,MAAM,aAAa,GAAsC;IAC5D,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,0CAA0C;IACvD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE;YACR,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,CAAC;SACZ;QACD;YACI,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE;YACrC,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,kBAAkB;SAC7B;QACD;YACI,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;YACjC,MAAM,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,IAAI,EAAE,SAAS,CAAC,MAAM;qBACzB;iBACJ;aACJ;YACD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;SACd;KACJ;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE;QAC7C,OAAO,aAAa,CAAC,IAAqB,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,eAAe,EAAE;QACb,IAAI,EAAE;YACF,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,sCAAsC,aAAa,CAAC,OAAO,GAAG;SAC9E;KACJ;IACD,kBAAkB,EAAE,EAAE;IACtB,WAAW,CAAC,WAAqC;QAC7C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QAEnD,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,MAAM;aACzB;YACD,YAAY;SACf,CAAC;IACN,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"entropy.js","sourceRoot":"","sources":["../../../../src/function-configs/string/entropy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/extract.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,oBAAoB,EAMvB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AA4CD,eAAO,MAAM,aAAa,EAAE,oBAAoB,CAAC,WAAW,CAkD3D,CAAC"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/extract.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,oBAAoB,EAMvB,MAAM,kBAAkB,CAAC;AAO1B,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AA4CD,eAAO,MAAM,aAAa,EAAE,oBAAoB,CAAC,WAAW,CAkG3D,CAAC"}
@@ -1,6 +1,8 @@
1
- import { isNil, matchAll } from '@terascope/core-utils';
1
+ import { isNil, isRegExpLike, matchAll } from '@terascope/core-utils';
2
2
  import { FieldType } from '@terascope/types';
3
3
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory, } from '../interfaces.js';
4
+ import { emptyToNull, extractMarkerAllSql, extractMarkerSql, extractRegexAllSql, extractRegexSql, isOneCodePoint } from './sql-utils.js';
5
+ import { countGroups, hasPortableEscapes, isRe2Safe, needsClassGuard } from './sql-regex-utils.js';
4
6
  const globalDefault = false;
5
7
  const field = 'test';
6
8
  const config = {
@@ -50,6 +52,51 @@ export const extractConfig = {
50
52
  create({ args }) {
51
53
  return _extract(args);
52
54
  },
55
+ sql: {
56
+ /**
57
+ * Both modes, built from what `_extract` and `matchAll` do. The SQL builders are in
58
+ * `sql-utils.ts`.
59
+ *
60
+ * `applies` declines anything the SQL could answer differently:
61
+ *
62
+ * - Marker mode requires each marker to be one code point. `_subSlice` compares `char ===
63
+ * start` inside `for (const char of input)`, so a two-character marker never matches and
64
+ * the function returns null for every row, while `position()` would find it.
65
+ * - Regex mode allows at most one capture group. `matchAll` collects every group of every
66
+ * match, interleaved, while `regexp_extract_all` takes a single group index.
67
+ * - The pattern must compile in RE2 (`isRe2Safe`: no lookaround or backreferences), and its
68
+ * classes must mean the same thing in both engines. Unlike `replaceRegex`, a pattern
69
+ * containing `.`, `\s`, `\S` or a negated class is declined outright rather than guarded
70
+ * per value, so this SQL never needs a UDF fallback. As a result, patterns like `he.*`
71
+ * stay on the UDF.
72
+ * - A pattern with flags (`/pattern/flags`) keeps the UDF. `i`, `s`, `m` and `x` each
73
+ * change the match, and `x` has no RE2 equivalent.
74
+ *
75
+ * With `global: true` the result is a list.
76
+ */
77
+ applies: ({ regex, start, end }) => {
78
+ if (regex != null) {
79
+ if (typeof regex !== 'string' || isRegExpLike(regex))
80
+ return false;
81
+ const groups = countGroups(regex);
82
+ return groups != null && groups <= 1
83
+ && isRe2Safe(regex) && hasPortableEscapes(regex)
84
+ && !needsClassGuard(regex);
85
+ }
86
+ return isOneCodePoint(start) && isOneCodePoint(end);
87
+ },
88
+ expression: ({ value, args: { regex, start, end, global = globalDefault } }) => {
89
+ if (regex == null) {
90
+ return global
91
+ ? emptyToNull(extractMarkerAllSql(value, start, end))
92
+ : extractMarkerSql(value, start, end);
93
+ }
94
+ const group = countGroups(regex);
95
+ return global
96
+ ? emptyToNull(extractRegexAllSql(value, regex, group))
97
+ : extractRegexSql(value, regex, group);
98
+ },
99
+ },
53
100
  accepts: [FieldType.String],
54
101
  examples,
55
102
  output_type(inputConfig, args = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../src/function-configs/string/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAA0B,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAEH,WAAW,EACX,sBAAsB,EAEtB,0BAA0B,GAE7B,MAAM,kBAAkB,CAAC;AAS1B,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,KAAK,GAAG,MAAM,CAAC;AACrB,MAAM,MAAM,GAA2B;IACnC,OAAO,EAAE,CAAC;IACV,MAAM,EAAE;QACJ,CAAC,KAAK,CAAC,EAAE;YACL,IAAI,EAAE,SAAS,CAAC,MAAM;SACzB;KACJ;CACJ,CAAC;AAEF,MAAM,QAAQ,GAA6C;IACvD;QACI,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QAC9B,MAAM;QACN,KAAK;QACL,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,OAAO;KAClB;IACD;QACI,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QACvB,MAAM;QACN,KAAK;QACL,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO;KAClB;IACD;QACI,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE;QAC9C,MAAM;QACN,KAAK;QACL,KAAK,EAAE,+BAA+B;QACtC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;KAC7B;IACD;QACI,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QAC5C,MAAM;QACN,KAAK;QACL,KAAK,EAAE,4BAA4B;QACnC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;KAC7B;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAsC;IAC5D,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,sBAAsB,CAAC,eAAe;IAC5C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,WAAW,EAAE,gFAAgF;IAC7F,MAAM,CAAC,EAAE,IAAI,EAAE;QACX,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,QAAQ;IACR,WAAW,CAAC,WAAqC,EAAE,IAAI,GAAG,EAAE;QACxD,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QACrC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC;QAExC,OAAO;YACH,YAAY,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE,SAAS,CAAC,MAAM;gBACtB,KAAK,EAAE,MAAM;aAChB;SACJ,CAAC;IACN,CAAC;IACD,eAAe,EAAE;QACb,KAAK,EAAE;YACH,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,iEAAiE;SACjF;QACD,KAAK,EAAE;YACH,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,mGAAmG;SACnH;QACD,GAAG,EAAE;YACD,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,mGAAmG;SACnH;QACD,MAAM,EAAE;YACJ,IAAI,EAAE,SAAS,CAAC,OAAO;YACvB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,wFAAwF;SACxG;KACJ;IACD,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;QACpC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;QAC1G,CAAC;IACL,CAAC;CACJ,CAAC;AAEF,SAAS,QAAQ,CAAC,IAAiB;IAC/B,MAAM,EACF,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,EAC5C,GAAG,IAAI,CAAC;IAET,IAAI,KAAK;QAAE,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAE5D,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,cAAc,CAAC,KAAsB,EAAE,MAAe;IAC3D,OAAO,CAAC,KAAc,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAe,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,OAAO,CAAC;QAE3B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,GAAW,EAAE,MAAe;IAC/D,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,WAAW,CAAC,KAAe,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,KAAa,EAAE,GAAW;IACxD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,aAAa,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAChC,aAAa,GAAG,KAAK,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,GAAG,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACvB,IAAI,IAAI,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,aAAa,GAAG,IAAI,CAAC;QACzB,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa,EAAE,GAAW,EAAE,MAAe;IAC3E,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAE7C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,MAAM;YAAE,OAAO,OAAO,CAAC;QAC3B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../src/function-configs/string/extract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"isAlpha.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isAlpha.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,WAAW;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CAClC;AA6DD,eAAO,MAAM,aAAa,EAAE,mBAAmB,CAAC,WAAW,CA0B1D,CAAC"}
1
+ {"version":3,"file":"isAlpha.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isAlpha.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,WAAW;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CAClC;AA6DD,eAAO,MAAM,aAAa,EAAE,mBAAmB,CAAC,WAAW,CAmC1D,CAAC"}
@@ -2,6 +2,7 @@ import { isAlpha, joinList, isString } from '@terascope/core-utils';
2
2
  import { FieldType } from '@terascope/types';
3
3
  import validator from 'validator';
4
4
  import { ProcessMode, FunctionDefinitionCategory, FunctionDefinitionType } from '../interfaces.js';
5
+ import { ALPHA_LOCALES, defaultLocale } from './sql-utils.js';
5
6
  const examples = [
6
7
  {
7
8
  args: {},
@@ -76,6 +77,15 @@ export const isAlphaConfig = {
76
77
  }
77
78
  },
78
79
  examples,
80
+ /**
81
+ * `validator`'s `en-US` alphabet, `/^[A-Za-z]+$/`.
82
+ *
83
+ * Other locales have their own letter sets, so `applies` handles only the default locale.
84
+ */
85
+ sql: {
86
+ applies: (args) => defaultLocale(args.locale),
87
+ expression: ({ value }) => `regexp_matches(${value}, '${ALPHA_LOCALES}')`,
88
+ },
79
89
  accepts: [FieldType.String],
80
90
  required_arguments: [],
81
91
  validate_arguments({ locale }) {
@@ -1 +1 @@
1
- {"version":3,"file":"isAlpha.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isAlpha.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EACkB,WAAW,EAAE,0BAA0B,EAC5D,sBAAsB,EACzB,MAAM,kBAAkB,CAAC;AAM1B,MAAM,QAAQ,GAAyD;IACnE;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QACzB,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,aAAa;KACxB;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,OAAO;iBAC1B;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAqC;IAC3D,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,uGAAuG;IACpH,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE;QACvB,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,MAA+B,CAAC,CAAC;IAC/E,CAAC;IACD,eAAe,EAAE;QACb,MAAM,EAAE;YACJ,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,WAAW,EAAE,kGAAkG;SAClH;KACJ;IACD,QAAQ;IACR,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,CAAC,EAAE,MAAM,EAAe;QACtC,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;eAChC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO;QACX,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"isAlpha.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isAlpha.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"isAlphaNumeric.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isAlphaNumeric.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC;CACzC;AA6DD,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,CAAC,kBAAkB,CA0BxE,CAAC"}
1
+ {"version":3,"file":"isAlphaNumeric.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isAlphaNumeric.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC;CACzC;AA6DD,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,CAAC,kBAAkB,CA+BxE,CAAC"}
@@ -2,6 +2,7 @@ import { isAlphaNumeric, joinList, isString } from '@terascope/core-utils';
2
2
  import { FieldType } from '@terascope/types';
3
3
  import validator from 'validator';
4
4
  import { ProcessMode, FunctionDefinitionCategory, FunctionDefinitionType } from '../interfaces.js';
5
+ import { ALPHANUMERIC_LOCALES, defaultLocale } from './sql-utils.js';
5
6
  const examples = [
6
7
  {
7
8
  args: {},
@@ -76,6 +77,11 @@ export const isAlphaNumericConfig = {
76
77
  }
77
78
  },
78
79
  examples,
80
+ /** `validator`'s `en-US` alphanumeric set, `/^[0-9A-Za-z]+$/`. Default locale only. */
81
+ sql: {
82
+ applies: (args) => defaultLocale(args.locale),
83
+ expression: ({ value }) => `regexp_matches(${value}, '${ALPHANUMERIC_LOCALES}')`,
84
+ },
79
85
  accepts: [FieldType.String],
80
86
  required_arguments: [],
81
87
  validate_arguments({ locale }) {
@@ -1 +1 @@
1
- {"version":3,"file":"isAlphaNumeric.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isAlphaNumeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EACkB,WAAW,EAAE,0BAA0B,EAC5D,sBAAsB,EACzB,MAAM,kBAAkB,CAAC;AAM1B,MAAM,QAAQ,GAAyD;IACnE;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,eAAe;KAC1B;IACD;QACI,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QACzB,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,OAAO;iBAC1B;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA4C;IACzE,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,wGAAwG;IACrH,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE;QACvB,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,MAAsC,CAAC,CAAC;IAC7F,CAAC;IACD,eAAe,EAAE;QACb,MAAM,EAAE;YACJ,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,WAAW,EAAE,+FAA+F;SAC/G;KACJ;IACD,QAAQ;IACR,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,CAAC,EAAE,MAAM,EAAsB;QAC7C,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;eAChC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO;QACX,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"isAlphaNumeric.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isAlphaNumeric.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"isBase64.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isBase64.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AA+C1B,eAAO,MAAM,cAAc,EAAE,mBAW5B,CAAC"}
1
+ {"version":3,"file":"isBase64.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isBase64.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAgD1B,eAAO,MAAM,cAAc,EAAE,mBAuB5B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { isBase64 } from '@terascope/core-utils';
2
2
  import { FieldType } from '@terascope/types';
3
3
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
4
+ import { isBase64Sql } from './sql-utils.js';
4
5
  const examples = [
5
6
  {
6
7
  args: {},
@@ -55,6 +56,18 @@ export const isBase64Config = {
55
56
  create() {
56
57
  return isBase64;
57
58
  },
59
+ /**
60
+ * RFC 4648 base64 with padding, `validator.isBase64`'s default. This intentionally differs from
61
+ * the JavaScript implementation.
62
+ *
63
+ * `core-utils`' `isBase64` calls `validator.isBase64` and then requires the value to survive a
64
+ * round trip through `Buffer.from(x, 'base64').toString('utf8')`. That round trip loses any
65
+ * bytes that are not valid UTF-8, so it rejects nearly all valid base64-encoded binary while
66
+ * accepting base64-encoded text. The SQL checks the base64 itself and accepts both.
67
+ */
68
+ sql: {
69
+ expression: ({ value }) => isBase64Sql(value),
70
+ },
58
71
  accepts: [FieldType.String],
59
72
  };
60
73
  //# sourceMappingURL=isBase64.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isBase64.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isBase64.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,QAAQ,GAAyD;IACnE;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,sBAAsB;KACjC;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,IAAI;KACf;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAwB;IAC/C,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,QAAQ;IACR,WAAW,EAAE,2EAA2E;IACxF,MAAM;QACF,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"isBase64.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isBase64.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,QAAQ,GAAyD;IACnE;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,sBAAsB;KACjC;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,IAAI;KACf;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAwB;IAC/C,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,QAAQ;IACR,WAAW,EAAE,2EAA2E;IACxF,MAAM;QACF,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD;;;;;;;;MAQE;IACF,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;KAChD;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;CAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"isCountryCode.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isCountryCode.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AA2E1B,eAAO,MAAM,mBAAmB,EAAE,mBAWjC,CAAC"}
1
+ {"version":3,"file":"isCountryCode.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isCountryCode.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AA6E1B,eAAO,MAAM,mBAAmB,EAAE,mBAyBjC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { isCountryCode } from '@terascope/core-utils';
2
2
  import { FieldType } from '@terascope/types';
3
3
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
4
+ import { ISO_3166_ALPHA2 } from './sql-validator-utils.js';
5
+ import { isAsciiSql, sqlLiteral } from '../sql-helpers.js';
4
6
  const examples = [
5
7
  {
6
8
  args: {},
@@ -83,6 +85,20 @@ export const isCountryCodeConfig = {
83
85
  create() {
84
86
  return isCountryCode;
85
87
  },
88
+ sql: {
89
+ /**
90
+ * A lookup of `upper(x)` in the 249 codes of `ISO_3166_ALPHA2`. That is all of
91
+ * `validator.isISO31661Alpha2` as `core-utils` calls it, since it does not pass
92
+ * `userAssignedCodes`.
93
+ *
94
+ * Non-ASCII values keep the UDF. JavaScript's `toUpperCase` uses full case mapping and can
95
+ * change a string's length, so `'fi'` uppercases to `'FI'`, a real country code, while
96
+ * DuckDB's simple mapping leaves it as one character.
97
+ */
98
+ needs_udf_fallback: true,
99
+ expression: ({ value, udf }) => `CASE WHEN NOT ${isAsciiSql(value)} THEN ${udf(value)}`
100
+ + ` ELSE upper(${value}) IN (${ISO_3166_ALPHA2.map(sqlLiteral).join(', ')}) END`,
101
+ },
86
102
  accepts: [FieldType.String]
87
103
  };
88
104
  //# sourceMappingURL=isCountryCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isCountryCode.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isCountryCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,QAAQ,GAAyD;IACnE;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;KACf;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACpD,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,QAAQ;IACR,WAAW,EAAE,6FAA6F;IAC1G,MAAM;QACF,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"isCountryCode.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isCountryCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,QAAQ,GAAyD;IACnE;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;KACf;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACpD,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,QAAQ;IACR,WAAW,EAAE,6FAA6F;IAC1G,MAAM;QACF,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,GAAG,EAAE;QACD;;;;;;;;UAQE;QACF,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,iBAAiB,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,EAAE;cACjF,eAAe,KAAK,SAAS,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;KACvF;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;CAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"isEmail.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isEmail.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAmI1B,eAAO,MAAM,aAAa,EAAE,mBAW3B,CAAC"}
1
+ {"version":3,"file":"isEmail.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isEmail.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAqI1B,eAAO,MAAM,aAAa,EAAE,mBAmB3B,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { isEmail } from '@terascope/core-utils';
2
2
  import { FieldType } from '@terascope/types';
3
3
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
4
+ import { EMAIL_SQL_PATTERN } from './sql-validator-utils.js';
5
+ import { sqlLiteral } from '../sql-helpers.js';
4
6
  const examples = [
5
7
  {
6
8
  args: {},
@@ -139,6 +141,14 @@ export const isEmailConfig = {
139
141
  create() {
140
142
  return isEmail;
141
143
  },
144
+ sql: {
145
+ /**
146
+ * One regex: `core-utils`' own `isEmail` pattern, not `validator.isEmail`. It has no
147
+ * lookaround or backreference, so RE2 compiles it. See `EMAIL_SQL_PATTERN`, where the `i`
148
+ * flag is expanded by hand.
149
+ */
150
+ expression: ({ value }) => `regexp_matches(${value}, ${sqlLiteral(EMAIL_SQL_PATTERN)})`,
151
+ },
142
152
  accepts: [FieldType.String],
143
153
  };
144
154
  //# sourceMappingURL=isEmail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isEmail.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isEmail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isEmail.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isEmail.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"isFQDN.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isFQDN.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAuG1B,eAAO,MAAM,YAAY,EAAE,mBAW1B,CAAC"}
1
+ {"version":3,"file":"isFQDN.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isFQDN.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAwG1B,eAAO,MAAM,YAAY,EAAE,mBAmB1B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { isFQDN } from '@terascope/core-utils';
2
2
  import { FieldType } from '@terascope/types';
3
3
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
4
+ import { isFQDNSql } from './sql-utils.js';
4
5
  const examples = [
5
6
  {
6
7
  args: {},
@@ -111,6 +112,14 @@ export const isFQDNConfig = {
111
112
  create() {
112
113
  return isFQDN;
113
114
  },
115
+ /**
116
+ * `validator.isFQDN` with its default options, for ASCII input. It has no TLD list, which is
117
+ * what makes it expressible in SQL. See `isFQDNSql`.
118
+ */
119
+ sql: {
120
+ needs_udf_fallback: true,
121
+ expression: ({ value, udf }) => isFQDNSql(value, udf),
122
+ },
114
123
  accepts: [FieldType.String],
115
124
  };
116
125
  //# sourceMappingURL=isFQDN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isFQDN.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isFQDN.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,QAAQ,GAAyD;IACnE;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,aAAa;KACxB;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,8BAA8B;QACrC,MAAM,EAAE,8BAA8B;KACzC;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;KACrB;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;KACf;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAwB;IAC7C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,mFAAmF;IAChG,QAAQ;IACR,MAAM;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"isFQDN.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isFQDN.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,QAAQ,GAAyD;IACnE;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,aAAa;KACxB;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,8BAA8B;QACrC,MAAM,EAAE,8BAA8B;KACzC;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;KACrB;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,IAAI;KACf;IACD;QACI,IAAI,EAAE,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB;aACJ;SACJ;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;KACf;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAwB;IAC7C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,mFAAmF;IAChG,QAAQ;IACR,MAAM;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IACD;;;MAGE;IACF,GAAG,EAAE;QACD,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;KACxD;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;CAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"isHash.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isHash.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAC1B,KAAK,GACD,KAAK,GACL,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,OAAO,GACP,QAAQ,CAAC;AAkBnB,eAAO,MAAM,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAyCxD,CAAC"}
1
+ {"version":3,"file":"isHash.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isHash.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAC1B,KAAK,GACD,KAAK,GACL,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,OAAO,GACP,QAAQ,CAAC;AAkBnB,eAAO,MAAM,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAiDxD,CAAC"}
@@ -2,6 +2,7 @@ import { FieldType } from '@terascope/types';
2
2
  import { isString, joinList } from '@terascope/core-utils';
3
3
  import validator from 'validator';
4
4
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
5
+ import { HASH_LENGTHS } from './sql-utils.js';
5
6
  const listOfAlgorithms = [
6
7
  'md4',
7
8
  'md5',
@@ -42,6 +43,14 @@ export const isHashConfig = {
42
43
  create({ args: { algo } }) {
43
44
  return (input) => isString(input) && validator.isHash(input, algo);
44
45
  },
46
+ /**
47
+ * `validator.isHash` is `^[a-fA-F0-9]{N}$`, with N taken from a per-algorithm length table.
48
+ */
49
+ sql: {
50
+ applies: (args) => HASH_LENGTHS[String(args.algo)] != null,
51
+ expression: ({ value, args }) => `regexp_matches(${value},`
52
+ + ` '^[a-fA-F0-9]{${HASH_LENGTHS[String(args.algo)]}}$')`,
53
+ },
45
54
  accepts: [FieldType.String],
46
55
  argument_schema: {
47
56
  algo: {
@@ -1 +1 @@
1
- {"version":3,"file":"isHash.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAqB1B,MAAM,gBAAgB,GAAG;IACrB,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,OAAO;IACP,QAAQ;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAoC;IACzD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,oEAAoE;IACjF,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,kEAAkE;YACzE,MAAM,EAAE,kEAAkE;SAC7E;QACD;YACI,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACrB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,kEAAkE;YACzE,MAAM,EAAE,IAAI;SACf;KACJ;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;QACrB,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,CAC1D,KAAK,EAAE,IAA+B,CACzC,CAAC;IACN,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,eAAe,EAAE;QACb,IAAI,EAAE;YACF,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,+CAA+C;SAC/D;KACJ;IACD,kBAAkB,EAAE,CAAC,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,2BAA2B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;IACL,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"isHash.js","sourceRoot":"","sources":["../../../../src/function-configs/string/isHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EACkB,WAAW,EAAE,sBAAsB,EACxD,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAqB9C,MAAM,gBAAgB,GAAG;IACrB,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,OAAO;IACP,QAAQ;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAoC;IACzD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,sBAAsB,CAAC,gBAAgB;IAC7C,YAAY,EAAE,WAAW,CAAC,iBAAiB;IAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;IAC3C,WAAW,EAAE,oEAAoE;IACjF,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,kEAAkE;YACzE,MAAM,EAAE,kEAAkE;SAC7E;QACD;YACI,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACrB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;YACzE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,kEAAkE;YACzE,MAAM,EAAE,IAAI;SACf;KACJ;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;QACrB,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,CAC1D,KAAK,EAAE,IAA+B,CACzC,CAAC;IACN,CAAC;IACD;;MAEE;IACF,GAAG,EAAE;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI;QAC1D,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,kBAAkB,KAAK,GAAG;cACrD,kBAAkB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;KAChE;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3B,eAAe,EAAE;QACb,IAAI,EAAE;YACF,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,+CAA+C;SAC/D;KACJ;IACD,kBAAkB,EAAE,CAAC,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,2BAA2B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;IACL,CAAC;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"isLength.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isLength.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,YAAY;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,YAAY,CAsE5D,CAAC"}
1
+ {"version":3,"file":"isLength.d.ts","sourceRoot":"","sources":["../../../../src/function-configs/string/isLength.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,mBAAmB,EAEtB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,YAAY;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,YAAY,CAyF5D,CAAC"}
@@ -2,12 +2,35 @@ import { FieldType } from '@terascope/types';
2
2
  import { isString, isNil } from '@terascope/core-utils';
3
3
  import validator from 'validator';
4
4
  import { ProcessMode, FunctionDefinitionType, FunctionDefinitionCategory } from '../interfaces.js';
5
+ import { sqlLiteral, HAS_ASTRAL, allowsNumericArgs } from '../sql-helpers.js';
5
6
  export const isLengthConfig = {
6
7
  name: 'isLength',
7
8
  type: FunctionDefinitionType.FIELD_VALIDATION,
8
9
  process_mode: ProcessMode.INDIVIDUAL_VALUES,
9
10
  category: FunctionDefinitionCategory.STRING,
10
11
  description: 'Returns the input if it either matches a certain length, or is within the specified range. Otherwise returns null.',
12
+ /**
13
+ * `length()` compared against the arguments, for values without astral characters.
14
+ *
15
+ * `isLength` counts UTF-16 code units, so five emoji have a length of 10 where `length()`
16
+ * returns 5. Astral input keeps the UDF.
17
+ */
18
+ sql: {
19
+ applies: allowsNumericArgs('size', 'min', 'max'),
20
+ needs_udf_fallback: true,
21
+ expression: ({ value, args, udf }) => {
22
+ const parts = [];
23
+ if (args.size != null)
24
+ parts.push(`length(${value}) = ${Number(args.size)}`);
25
+ if (args.min != null)
26
+ parts.push(`length(${value}) >= ${Number(args.min)}`);
27
+ if (args.max != null)
28
+ parts.push(`length(${value}) <= ${Number(args.max)}`);
29
+ const check = parts.length ? parts.join(' AND ') : 'TRUE';
30
+ return `CASE WHEN regexp_matches(${value}, ${sqlLiteral(HAS_ASTRAL)})`
31
+ + ` THEN ${udf(value)} ELSE ${check} END`;
32
+ },
33
+ },
11
34
  accepts: [FieldType.String],
12
35
  examples: [
13
36
  {