{
    "$string": {
        "args": "arg",
        "desc": "通過以下的類型轉換規則將參數*arg*轉換成字串:\n\n - 字串不轉換。\n -函數轉換成空的字串。\n - JSON的值無法用數字表示所以用無限大或者NaN（非數）表示。\n - 用’JSON.stringify’函數將其他值轉換成JSON字串。"
    },
    "$length": {
        "args": "str",
        "desc": "輸出字串’str’的字數。如果’str’不是字串，拋出錯誤。"
    },
    "$substring": {
        "args": "str, start[, length]",
        "desc": "輸出`start`位置後的的首次出現的包括`str`的子字串。 如果`length`被指定，那麼的字串中將只包括前`length`個文字。如果`start`是負數則輸出從`str`末尾開始的`length`個文字"
    },
    "$substringBefore": {
        "args": "str, chars",
        "desc": "輸出’str’中首次出現的’chars’之前的子字串，如果’str’中不包括’chars’則輸出’str’。"
    },
    "$substringAfter": {
        "args": "str, chars",
        "desc": "輸出’str’中首次出現的’chars’之後的子字串，如果’str’中不包括’chars’則輸出’str’。"
    },
    "$uppercase": {
        "args": "str",
        "desc": "`將’str’中的所有字母變為大寫後輸出。"
    },
    "$lowercase": {
        "args": "str",
        "desc": "將’str’中的所有字母變為小寫後輸出。"
    },
    "$trim": {
        "args": "str",
        "desc": "將以下步驟應用於`str`來去除所有空白文字並實現標準化。\n\n – 將全部tab定位字元、Enter鍵、換行字元用空白代替。\n- 將連續的空白文字變成一個空白文字。\n- 消除開頭和末尾的空白文字。\n\n如果`str`沒有被指定(即在無輸入參數的情況下調用本函數)，將上下文的值作為`str`來使用。 如果`str` 不是字串則拋出錯誤。"
    },
    "$contains": {
        "args": "str, pattern",
        "desc": "字串`str` 和 `pattern`匹配的話輸出`true`，不匹配的情況下輸出 `false`。 不指定`str`的情況下(比如用一個參數調用本函數時)、將上下文的值作為`str`來使用。參數 `pattern`可以為字串或正則表達。"
    },
    "$split": {
        "args": "str[, separator][, limit]",
        "desc": "將參數`str`分解成由子字串組成的陣列。 如果`str`不是字串拋出錯誤。可以省略的參數 `separator`中指定字串`str`的分隔符號。分隔符號可以是文字或規則運算式。在不指定`separator`的情況下、將分隔符號看作空的字串並把`str`拆分成由單個字母組成的陣列。如果`separator`不是字串則拋出錯誤。在可省略的參數`limit`中指定分割後的子字串的最大個數。超出個數的子字串將被捨棄。如果`limit`沒有被指定，`str` 將不考慮子字串的個數而將字串完全分隔。如果`limit`是負數則拋出錯誤。"
    },
    "$join": {
        "args": "array[, separator]",
        "desc": "用可以省略的參數 `separator`來把多個字元串連接。如果`array`不是字串則拋出錯誤。 如果沒有指定`separator`，則用空字串來連接字元(即字串之間沒有`separator`)。 如果`separator`不是字元則拋出錯誤。"
    },
    "$match": {
        "args": "str, pattern [, limit]",
        "desc": "對字串`str`使用規則運算式`pattern`並輸出與`str`相匹配的部分資訊。"
    },
    "$replace": {
        "args": "str, pattern, replacement [, limit]",
        "desc": "在字串`str`中搜索`pattern`並用`replacement`來替換。\n\n可選參數`limit`用來指定替換次數的上限。"
    },
    "$now": {
        "args": "",
        "desc": "生成ISO 8601互換格式的時刻，並作為字串輸出。"
    },
    "$base64encode": {
        "args": "string",
        "desc": "將ASCII格式的字串轉換為Base 64格式。將字串中的文字視作二進位形式的資料處理。包含URI編碼在內的字串文字必須在0x00到0xFF的範圍內，否則不會被支持。"
    },
    "$base64decode": {
        "args": "string",
        "desc": "用UTF-8內碼表將Base 64形式二進位值轉換為字串。"
    },
    "$number": {
        "args": "arg",
        "desc": "用下述的規則將參數 `arg`轉換為數值。:\n\n – 數值不做轉換。\n – 將字串中合法的JSON數値表示轉換成數値。\n – 其他形式的值則拋出錯誤。"
    },
    "$abs": {
        "args": "number",
        "desc": "輸出參數`number`的絕對值。"
    },
    "$floor": {
        "args": "number",
        "desc": "輸出比`number`的值小的最大整數。"
    },
    "$ceil": {
        "args": "number",
        "desc": "輸出比`number`的值大的最小整數。"
    },
    "$round": {
        "args": "number [, precision]",
        "desc": "輸出四捨五入後的參數`number`。可省略的參數 `precision`指定四捨五入後小數點下的位數。"
    },
    "$power": {
        "args": "base, exponent",
        "desc": "輸出底數`base`的`exponent`次冪。"
    },
    "$sqrt": {
        "args": "number",
        "desc": "輸出參數 `number`的平方根。"
    },
    "$random": {
        "args": "",
        "desc": "輸出比0大，比1小的偽亂數。"
    },
    "$millis": {
        "args": "",
        "desc": "返回從UNIX時間 (1970年1月1日 UTC/GMT的午夜）開始到現在的毫秒數。在同一個運算式的測試中所有對`$millis()`的調用將會返回相同的值。"
    },
    "$sum": {
        "args": "array",
        "desc": "輸出陣列`array`的總和。如果`array`不是數值則拋出錯誤。"
    },
    "$max": {
        "args": "array",
        "desc": "輸出陣列`array`的最大值。如果`array`不是數值則拋出錯誤。"
    },
    "$min": {
        "args": "array",
        "desc": "輸出陣列`array`的最小值。如果`array`不是數值則拋出錯誤。。"
    },
    "$average": {
        "args": "array",
        "desc": "輸出陣列`array`的平均數。如果`array`不是數值則拋出錯誤。。"
    },
    "$boolean": {
        "args": "arg",
        "desc": "用下述規則將資料轉換成布林值。:\n\n - 不轉換布林值`Boolean`。\n – 將空的字串`string`轉換為`false`\n – 將不為空的字串`string`轉換為`true`\n – 將為0的數位`number`轉換成`false`\n –將不為0的數位`number`轉換成`true`\n –將`null`轉換成`false`\n –將空的陣列`array`轉換成`false`\n –如果陣列`array`中含有可以轉換成`true`的要素則轉換成`true`\n –如果`array`中沒有可轉換成`true`的要素則轉換成`false`\n – 空的物件`object`轉換成`false`\n – 非空的物件`object`轉換成`true`\n –將函數`function`轉換成`false`"
    },
    "$not": {
        "args": "arg",
        "desc": "輸出做反轉運算後的布林值。首先將`arg`轉換為布林值。"
    },
    "$exists": {
        "args": "arg",
        "desc": "如果算式`arg`的值存在則輸出`true`。如果算式的值不存在(比如指向不存在區域的引用)則輸出`false`。"
    },
    "$count": {
        "args": "array",
        "desc": "輸出陣列中的元素數。"
    },
    "$append": {
        "args": "array, array",
        "desc": "將兩個陣列連接。"
    },
    "$sort": {
        "args": "array [, function]",
        "desc": "輸出排序後的陣列`array`。\n\n如果使用了比較函數`function`，則下述兩個參數需要被指定。\n\n`function(left, right)`\n\n該比較函數是為了比較`left`和`right`兩個值而被排序演算法調用的。如果使用者希望left的值被置於`right`的值之後，那麼該函數必須輸出布林值`true`來表示位置交換。而在不需要位置交換時函數必須輸出`false`。"
    },
    "$reverse": {
        "args": "array",
        "desc": "輸出倒序後的陣列`array`。"
    },
    "$shuffle": {
        "args": "array",
        "desc": "輸出隨機排序後的陣列 `array`。"
    },
    "$zip": {
        "args": "array, ...",
        "desc": "將陣列中的值按索引順序打包後輸出。"
    },
    "$keys": {
        "args": "object",
        "desc": "輸出由物件內的鍵組成的陣列。如果參數是物件的陣列則輸出由所有物件中的鍵去重後組成的佇列。"
    },
    "$lookup": {
        "args": "object, key",
        "desc": "輸出對象中與參數`key`對應的值。如果第一個參數`object`是陣列，那麼陣列中所有的物件都將被搜索並輸出這些物件中與參數`key`對應的值。"
    },
    "$spread": {
        "args": "object",
        "desc": "將物件中的鍵值對分隔成每個要素中只含有一個鍵值對的陣列。如果參數`object`是陣列，那麼返回值的陣列中包含所有物件中的鍵值對。"
    },
    "$merge": {
        "args": "array&lt;object&gt;",
        "desc": "將輸入陣列`objects`中所有的鍵值對合併到一個`object`中並返回。如果輸入陣列的要素中含有重複的鍵，則返回的`object`中將只包含陣列中最後出現要素的值。如果輸入陣列中包括物件以外的元素，則拋出錯誤。"
    },
    "$sift": {
        "args": "object, function",
        "desc": "輸出參數`object`中符合`function`的鍵值對。\n\n`function`必須含有下述參數。\n\n`function(value [, key [, object]])`"
    },
    "$each": {
        "args": "object, function",
        "desc": "將函數`function`應用於`object`中的所有鍵值對並輸出由所有返回值組成的陣列。"
    },
    "$map": {
        "args": "array, function",
        "desc": "將函數`function`應用於陣列`array`中所有的值並輸出由返回值組成的陣列。\n\n`function`中必須含有下述參數。\n\n`function(value [, index [, array]])`"
    },
    "$filter": {
        "args": "array, function",
        "desc": "輸出陣列`array`中符合函數`function`條件的值組成的陣列。\n\n`function`必須包括下述參數。\n\n`function(value [, index [, array]])`"
    },
    "$reduce": {
        "args": "array, function [, init]",
        "desc": "將`function`依次應用於陣列中的各要素值。 其中，前一個要素值的計算結果將參與到下一次的函數運算中。。\n\n函數`function`接受兩個參數並作為中綴標記法中的操作符。\n\n可省略的參數`init`將作為運算的初始值。"
    },
    "$flowContext": {
        "args": "string",
        "desc": "獲取流上下文(流等級的上下文，可以讓所有節點共用)的屬性。"
    },
    "$globalContext": {
        "args": "string",
        "desc": "獲取全域上下文的屬性。"
    },
    "$pad": {
        "args": "string, width [, char]",
        "desc": "根據需要，向字串`string`的副本中填充文字使該字串的字數達到`width`的絕對值並返回填充文字後的字串。\n\n如果`width`的值為正，則向字串`string`的右側填充文字，如果`width`為負，則向字串`string`的左側填充文字。\n\n可選參數`char`用來指定填充的文字。如果未指定該參數，則填充空白文字。"
    },
    "$fromMillis": {
        "args": "number",
        "desc": "將表示從UNIX時間 (1970年1月1日 UTC/GMT的午夜）開始到現在的毫秒數的數值轉換成ISO 8601形式時間戳記的字串。"
    },
    "$formatNumber": {
        "args": "number, picture [, options]",
        "desc": "將`number`轉換成具有`picture`所指定的數值格式的字串。\n\n此函數的功能與XPath F&O 3.1規格中定義的XPath/XQuery函數的fn:format-number功能相一致。參數`picture`用於指定數值的轉換格式，其語法與fn:format-number中的定義一致。\n\n可選的第三參數`options`用來覆蓋預設的局部環境格式，如小數點分隔符號。如果指定該參數，那麼該參數必須是包含name/value對的物件，並且name/value對必須符合XPath F&O 3.1規格中記述的數值格式。"
    },
    "$formatBase": {
        "args": "number [, radix]",
        "desc": "將`number`變換為以參數`radix`的值為基數形式的字串。如果不指定`radix`的值，則默認基數為10。指定的`radix`值必須在2～36之間，否則拋出錯誤。"
    },
    "$toMillis": {
        "args": "timestamp",
        "desc": "將ISO 8601格式的字串`timestamp`轉換為從UNIX時間 (1970年1月1日 UTC/GMT的午夜）開始到現在的毫秒數。如果該字串的格式不正確，則拋出錯誤。"
    },
    "$env": {
        "args": "arg",
        "desc": "返回環境變量的值。\n\n這是Node-RED定義的函數。"
    },
    "$eval": {
        "args": "expr [, context]",
        "desc": "使用當前上下文來作為評估依據，分析並評估字符串`expr`，其中包含文字JSON或JSONata表達式。"
    },
    "$formatInteger": {
        "args": "number, picture",
        "desc": "將“數字”轉換為字符串，並將其格式化為“圖片”字符串指定的整數表示形式。圖片字符串參數定義了數字的格式，並具有與XPath F&O 3.1 規範中的fn：format-integer相同的語法。"
    },
    "$parseInteger": {
        "args": "string, picture",
        "desc": "使用“圖片”字符串指定的格式將“字符串”參數的內容解析為整數（作為JSON數字）。圖片字符串參數與$formatInteger格式相同。."
    },
    "$error": {
        "args": "[str]",
        "desc": "引發錯誤並顯示一條消息。 可選的`str`將替代$error()函數評估的默認消息。"
    },
    "$assert": {
        "args": "arg, str",
        "desc": "如果`arg`為真，則該函數返回。 如果`arg`為假，則拋出帶有`str`的異常作為異常消息。"
    },
    "$single": {
        "args": "array, function",
        "desc": "返回滿足參數function謂語的array參數中的唯一值 (比如：傳遞值時，函數返回布林值“true”)。如果匹配值的數量不唯一時，則拋出異常。\n\n應在以下簽名中提供函數：`function（value [，index [，array []]]）`其中value是數組的每個輸入，index是該值的位置，整個數組作為第三個參數傳遞。"
    },
    "$encodeUrlComponent": {
        "args": "str",
        "desc": "通過用表示字符的UTF-8編碼的一個，兩個，三個或四個轉義序列替換某些字符的每個實例，對統一資源定位符（URL）組件進行編碼。\n\n示例：`$encodeUrlComponent(\"?x=test\")` => `\"%3Fx%3Dtest\"`"
    },
    "$encodeUrl": {
        "args": "str",
        "desc": "通過用表示字符的UTF-8編碼的一個，兩個，三個或四個轉義序列替換某些字符的每個實例，對統一資源定位符（URL）進行編碼。\n\n示例： `$encodeUrl(\"https://mozilla.org/?x=шеллы\")` => `\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\"`"
    },
    "$decodeUrlComponent": {
        "args": "str",
        "desc": "解碼以前由encodeUrlComponent創建的統一資源定位器（URL）組件。\n\n示例： `$decodeUrlComponent(\"%3Fx%3Dtest\")` => `\"?x=test\"`"
    },
    "$decodeUrl": {
        "args": "str",
        "desc": "解碼先前由encodeUrl創建的統一資源定位符（URL）。\n\n示例： `$decodeUrl(\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\")` => `\"https://mozilla.org/?x=шеллы\"`"
    },
    "$distinct": {
        "args": "array",
        "desc": "返回一個數組，其中重復的值已從`數組`中刪除"
    },
    "$type": {
        "args": "value",
        "desc": "以字符串形式返回`值`的類型。 如果該`值`未定義，則將返回`未定義`"
    },
    "$moment": {
        "args": "[str]",
        "desc": "使用Moment庫獲取日期對象。"
    },
    "$clone": {
      "args": "value",
      "desc": "安全克隆對象."
    }
}
