Built-In Functions
Label Functions
hasLabel
hasLabel(token: Token, label: String) -> Bool
Returns whether an given token has the specified label
Map Functions [TODO]
mapGet
mapGet(map: Map, key: String) -> Any
Given a map object, returns the specified key if found, otherwise returns NULL
mapSet
mapGet(map: Map, key: String, value: Any)
Given a object, set the provided key
to specified value
JSON Functions
jsonExtract
jsonExtract(jval: JVal, jsonPath: String) -> Any
Given a JSON object, extract the value specified by jsonPath
, returning NULL
if the path does not exist.
When assigning the return value of jsonExtract
to a feature, the feature must be type annotated otherwise compilation will fail.
Ex. Given a JSON EventData
with value {"score": 12.0}
, we can write the following test (see testing for how to write test)
LET Score: Number = jsonExtract(EventData, "$.score");
ASSERT Score = 12.0;
jsonExtract
does not return the resulting value in a wrapper array.
jsonStringify
jsonStringify(val: Any) -> String
jsonParse
jsonParse(jstr: String) - JVal
String Functions
concat
concat(a: String, b: String) -> String
len
len(str: String) -> Number
Returns the unicode character len of a given string
startsWith
startsWith(str: String, prefix: String) -> Boolean
Checks whether given input has given prefix
endsWith
endsWith(str: String, suffix: String) -> Boolean
Checks whether given input has given suffix
Array Functions
join
join(array: Array<String>, separator: String) -> String
Given an array of string, concat the items separated by separator
.
IP Functions TODO
ipToCountry
ipToCountry(ip: String) -> String
Given an IP string (ip4 or ip6), return the geolocated two letter country code
Time Functions
now
now() -> Number
Returns the seconds since UNIX epoch
Regex Functions
match
match(patterns: Array<String>, text: String) -> Bool
Given the a list of regex patterns, return whether the provided text
matches any of the provided patterns.
Key Value Database
A simple key value storage for storing data across events.
setKv
setKv(ns: String, key: String, val: String, expiry_duration: Duration)
getKv
getKv(ns: String, key: String, val: String, expiry_duration: Duration) - String | NULL
Set Database
A persistent storage for storing a unique set of events grouped under a particular key.
addToSet
addToSet(ns: String, key: Token, item: String)
isInSet
isInSet(ns: String, key: Token, item: String) -> Boolean
Counter Database
A simple counter implementation that provides second level granularity
incCount
incCount(ns: String, by: By, incr: Number)
getCount
getCount(ns: String, by: By, lookback_window: OptionDuration) -> Number
Token Functions
toToken
toToken(type: String, val: String) -> Token
Type Functions
toNum
toNum(input: Any) -> Number | null
Tries to convert the given input to a number, returning null
if conversion fails
toString
toString(input: Any) -> String
Convert the given input to string
toBool
toBool(input: Any) -> Boolean
Convert the given input to boolean.
false
, null
, empty container ([]
, {}
), empty string (""
), and zero (0
) convert to false
everything else evaluates to true
.
Misc Functions
random
random() -> Number
Returns a value uniformly sampled between (0, 1), exclusive of the bound.