Custom Fuuz Only JSONata Library

Custom Fuuz Only JSONata Library

Article Type: Concept / Reference
Audience: App Admins, Developers, Solution Architects
Module: Fuuz Platform (Screen Designer, Data Flows, Transforms)
Applies to Versions: 3.0+

1. Overview

The Fuuz Industrial Operations Platform extends the standard JSONata expression language with a comprehensive library of 294 custom bindings (functions) developed specifically for industrial automation and enterprise integration scenarios. These bindings enable powerful data transformations, UI interactions, file manipulations, and system integrations without requiring specialized knowledge of underlying technologies.

Note: These custom bindings are available exclusively within the Fuuz Platform and extend the standard JSONata specification. Standard JSONata functions documented at docs.jsonata.org remain fully supported.

2. Complete Bindings Reference

This comprehensive table documents all 294 custom bindings available in the Fuuz Platform, organized by Type, Category, Name, Signature, Description, and Example usage.

Type Category Name Signature Description Example
Frontend Clipboard $writeToClipboard() $writeToClipboard(data) Write data to clipboard $writeToClipboard({"a":1})
Frontend Clipboard $readFromClipboard() $readFromClipboard() Read data from clipboard $readFromClipboard()
Frontend Other $addNotificationMessage(title, options) Adds a notification message to the UI for the current user, optionally d= isplaying a snackbar.  Severity can be info, error, warning, or succes= s.  Note: This binding is frontend-only. $addNotificationMessage("Error processing request", {"message": "This is a longer message describing what wen= t wrong.  It will be displayed in the message popup.","severity": "error","data": {"additionalInformation": "This additional in= formation will also be displayed alongside the message in the popup."}})
Frontend Other $navigateBack() Navigate back one page. $navigateBack()
Frontend Other $navigateTo(pathname,options) Navigate to the pathname provided.options: {newWindow: Open a new window and navigate to pathname, i= f set to true.replace: Replace the pathname of the page to a new one, = if set to true.} $navigateTo('/system/configuration/calendars?CalendarTable.view=3DDefaul= t',{'newWindow': true, 'replace': false })
Frontend Other $navigateReload() Reload the current page. $navigateReload()
Frontend Other $showAlertDialog(message,options) Show an alert dialog, it operates identically to the alert HOC function<= br>     options : {title: String,icon: String or Object,buttonColor: String} $showAlertDialog("Text to display",{'title': 'Title','icon': 'save','buttonColor':'red'})
Frontend Other $showConfirmDialog(message,options) Show Confirm Dialog, it operates identically to the confirm HOC function= .options:{title : String,delayTimeinSeconds : Number,icon : Object or String,buttonColor: String} $showConfirmDialog("Text to display",{'title': 'Title','delayTimeinSeconds' : 5,'icon' : 'file','buttonColor': 'secondary'})
Frontend Other $showFormDialog(object) Show Form Dialog, it operates identically to the showFormDialog HOC func= tion. It displays a form from the provided json object. $showFormDialog({'title': 'Create Screen Version'= ,'formInputs': [{'name': = 'description','descrip= tion': 'The description of the screen version.','type': = 'markdown','dataPat= h': 'description','label':= 'Description','validat= ion': { 'required': false}},{'name': = 'versionNumber','descrip= tion': 'The initial version number for the screen.','type': = 'text','dataPat= h': 'versionNumber','label':= 'Version Number','validat= ion': { 'required': true }}],'submitIcon': 'plus','data': {'description': '','versionNumber': '0.= 0.1'}})
Frontend Screen Designer $loadData() $components.Table1.fn.loadData({filter: { field : {condition : value}}, = rowLimit: 500}) Load data from backend in a table, with filter and pagination,Replace Table1 with table name,filter and rowLimit are optional parameters $components.Table1.fn.loadData({filter: {id: {_contains: '123'}}, rowLimit: 500})
Frontend Screen Designer $search() $components.Table1.fn.search( {rowsPerPage : 500}) Search data in a table base on the filter provided in filter form,Replace Table1 with table name,rowsPerPage is optional parameter $components.Table1.fn.search({rowsPerPage : 500})
Frontend Screen Designer $setData() $components.Table1.fn.setData([{id : 1, field1 : "value1", field2 : "val= ue2"},{id : 2, field1 : "value1", field2 : "value2"}]) Set custom data in a table, overwrite the entire table data,Replace Table1 with table name,id field is require to set data in the tablefield1, field2, field3 are optional fields which can be set as columns in t= able $components.Table1.fn.setData([{id : 1, field1 : "value1", field2 : "val= ue2"},{id : 2, field1 : "value1", field2 : "value2"}])
Frontend Screen Designer $addRows() $components.Table1.fn.addRows([{id : 1, field1 : "value1", field2 : "val= ue2"},{id : 2, field1 : "value1", field2 : "value2"}]) Add custom rows to the end of tableReplace Table1 with table nameid field is require to set data in the table,field1 field2 field3 are optional fields which can be add as columns in tab= le $components.Table1.fn.addRows([{id : 1, field1 : "value1", field2 : "val= ue2"},{id : 2, field1 : "value1", field2 : "value2"}])
Frontend Screen Designer $updateRows() $components.Table1.fn.updateRows([{id : 1, field1 : "value1", field2 : "= value2"},{id : 2, field1 : "value1", field2 : "value2"}]) Match rows based on "id" from that object and update rows already in the= table,Replace Table1 with table name,id field is require to set data in the table,field1 field2 field3 are optional fields which can be add as columns in tab= le $components.Table1.fn.updateRows([{id : 1, field1 : "value1", field2 : "= value2"},{id : 2, field1 : "value1", field2 : "value2"}])
Frontend Screen Designer $upsertRows() $components.Table1.fn.upsertRows([{id : 1, field1 : "value1", field2 : "= value2"},{id : 2, field1 : "value1", field2 : "value2"}]) Match rows based on "id" from that object and add new rows that aren't a= lready in the table, also update rows that are already in the table,Replace Table1 with table name,id field is require to set data in the table,field1 field2 field3 are optional fields which can be add as columns in tab= le $components.Table1.fn.upsertRows([{id : 1, field1 : "value1", field2 : "= value2"},{id : 2, field1 : "value1", field2 : "value2"}])
Frontend Screen Designer $deleteRows() $components.Table1.fn.deleteRows([id1,id2,id3]) Delete row in a table by id,Replace Table1 with table name,id1,id2,id3 are row ids to delete rows in the table $components.Table1.fn.deleteRows([1,2,3])
Frontend Screen Designer $selectRow() $components.Table1.fn.selectRow([id1,id2,id3]) Select row in a table,Replace Table1 with table name,id1, id2, id3 are row ids to select rows in the table $components.Table1.fn.selectRow([1,2,3])
Frontend Screen Designer $deselectRow() $components.Table1.fn.deselectRow([id1,id2,id3]) Deselect selection of row in a table,Replace Table1 with table name,id1, id2, id3 are row ids to deselect rows in the table. $components.Table1.fn.deselectRow([1,2,3])
Frontend Screen Designer $toggleRowSelection() $components.Table1.fn.toggleRowSelection([id1,id2,id3]) Toggle selection row in a table,Replace Table1 with table name,id1, id2, id3 are row ids to deselect rows in the table. $components.Table1.fn.toggleRowSelection([1,2,3])
Frontend Screen Designer $selectAllRows() $components.Table1.fn.selectAllRows() Select all rows, regardless of filtering and rows that are not visible d= ue to grouping being enabled and their groups not expanded,Replace Table1 with table name. $components.Table1.fn.selectAllRows()
Frontend Screen Designer $deselectAllRows() $components.Table1.fn.deselectAllRows() Clear all row selections, regardless of filtering,Replace Table1 with table name. $components.Table1.fn.deselectAllRows()
Frontend Screen Designer $selectAllFiltered() $components.Table1.fn.selectAllFiltered() Select all filtered rows,Replace Table1 with table name. $components.Table1.fn.selectAllFiltered()
Frontend Screen Designer $deselectAllFiltered() $components.Table1.fn.deselectAllFiltered() Clear all filtered selections,Replace Table1 with table name. $components.Table1.fn.deselectAllFiltered()
Frontend Screen Designer $setSelectedRows() $components.Table1.fn.setSelectedRows([id1,id2,id3]) Set selection of rows by id(s) in a table,Replace Table1 with table name. $components.Table1.fn.setSelectedRows([1,2,3])
Frontend Screen Designer $setValue() $components.Form1.fn.setValue(field, data) Set value of field in a form,Replace Form1 with form name,field is the data path of the form field,data is the value to set in the form field $components.Form1.fn.setValue('Text1', 'dummy text')
Frontend Screen Designer $focus() $components.Form1.fn.focus(field) Set cursor focus of field in a formReplace Form1 with form name,field is the data path of the form field. $components.Form1.fn.focus('Text1')
Frontend Screen Designer $blur() $components.Form1.fn.blur(field) Blur cursor focus of field in a formReplace Form1 with form name,field is the data path of the form field. $components.Form1.fn.blur('Text1')
Frontend Screen Designer $loadData() $components.Form1.fn.loadData() Reload data in a form, Replace Form1 with form name $components.Form1.fn.loadData()
Frontend Screen Designer $getUpdateMutation() $components.Form1.fn.getUpdateMutation() Get mutation query for update data in a form,Replace Form1 with form name,it will genereate mutation query for the form if and only if the Data Model= for the form is set. $components.Form1.fn.getUpdateMutation()
Frontend Screen Designer $getUpdatePayload() $components.Form1.fn.getUpdatePayload() Get payload for mutation of data in a form,Replace Form1 with form name $components.Form1.fn.getUpdatePayload()
Frontend Screen Designer $validate() $components.Form1.fn.validate() Validate form and return array of errors,Replace Form1 with form name $components.Form1.fn.validate()
Frontend Screen Designer $save() $components.Form1.fn.save(isSaveAll =3D false) Save the details of a form,Replace Form1 with form name,By default it save modified fields only. If want to modify all the fields p= ass true to save function $components.Form1.fn.save()
Frontend Screen Designer $getVariables() $components.Form1.fn.getVariables() Get all the variables of the form,Replace Form1 with form name $components.Form1.fn.getVariables()
Frontend Screen Designer $delete() $components.Form1.fn.delete() Delete the form data,Replace Form1 with form name $components.Form1.fn.delete()
Frontend Screen Designer $hide() $components.Container1.fn.hide() Container visibility set to hideReplace Container1 with container name $components.Container1.fn.hide()
Frontend Screen Designer $show() $components.Container1.fn.show() Container visibility set to showReplace Container1 with container name $components.Container1.fn.show()
Frontend Screen Designer $toggle() $components.Container1.fn.toggle() Container visibility toggle,Replace Container1 with container name $components.Container1.fn.toggle()
Frontend Screen Designer $resetHidden() $components.Container1.fn.resetHidden() Container visibility reset all the hidden fields,Replace Container1 with container name $components.Container1.fn.resetHidden()
Frontend Screen Designer $execute() $components.ActionButton1.fn.execute({field:value}) Execute action of other action button,Replace ActionButton1 with action button name,Field and value are the optional parameters for the action button, you can = pass any number of parameters. $components.ActionButton1.fn.execute({'Text1': 'dummy text'})
Backend EDINation $readEDI(x12) $readEDI(string,object,object) Reads an EDI Document with EDINations API and returns JSON $readEDI('x12',{"fileName":"","fileContents":""},{"options":{"apiOpti= ons": {&nb= sp; "ignoreNullValues": false,&nb= sp; "continueOnError": false,&nb= sp; "charSet": 'utf-8',&nb= sp; "model":undefined}}})
Backend EDINation $readEDI(edifact) $readEDI(string,object,object) Reads an EDI Document with EDINations API and returns JSON $readEDI('edifact',{"fileName":"","fileContents":""},{"options":{"apiOpti= ons": {&nb= sp; "ignoreNullValues": false,&nb= sp; "continueOnError": false,&nb= sp; "charSet": 'utf-8',&nb= sp; "model":undefined,&nb= sp; "eancomS3": false}}})
Backend EDINation $writeEDI(x12) $writeEDI(string,object,object) Writes JSON EDI document to EDINation returning EDI String $writeEDI('x12',data,{"options":{"apiOpti= ons": {&nb= sp; "preserveWhitespace": false,&nb= sp; "charSet": 'utf-8',&nb= sp; "postfix": undefined}}})
Backend EDINation $writeEDI(edifact) $writeEDI(string,object,object) Writes JSON EDI document to EDINation returning EDI String $writeEDI('edifact',data,{"options":{"apiOpti= ons": {&nb= sp; "preserveWhitespace": false,&nb= sp; "charSet": 'utf-8',&nb= sp; "postfix": undefined,&nb= sp; "sameRepetionAndDataElement": false,&nb= sp; "eancomS3": false}}})
Backend EDINation $validateEDI(x12) $validateEDI(string,object,object) Validates JSON EDI document against EDINation API $validateEDI('x12',data,{"options":{"apiOpti= ons": {&nb= sp; "basicSyntax": false,&nb= sp; "syntaxSet": undefined,&nb= sp; "skipTrailer": false,&nb= sp; "structureOnly": false}}})
Backend EDINation $validateEDI(edifact) $validateEDI(string,object,object) Validates JSON EDI document against EDINation API $validateEDI('edifact',data,{"options":{"apiOpti= ons": {&nb= sp; "syntaxSet": undefined,&nb= sp; "skipTrailer": false,&nb= sp; "structureOnly": false,&nb= sp; "decimalPoint": '.',&nb= sp; "eancomS3": false}}})
Backend EDINation $ackEDI(x12) $ackEDI(string,object,object) Writes an EDI document and returns an ACK $ackEDI('x12',data,{"options":{"apiOptions": {"basicSy= ntax": false,"syntaxS= et": undefined,"detectD= uplicates": false,"tranRef= Number": 1,"interch= angeRefNumber": 1,"ackForV= alidTrans": false,"batchAc= ks": true,"technic= alAck": undefined,"ack": '= 997',"ak901is= P": false}}})
Backend EDINation $ackEDI(edifact) $ackEDI(string,object,object) Writes an EDI document and returns an ACK $ackEDI('edifact',data,{"options":{"apiOpti= ons": {&nb= sp; "syntaxSet": undefined,&nb= sp; "detectDuplicates": false,&nb= sp; "tranRefNumber": 1,&nb= sp; "interchangeRefNumber": 1,&nb= sp; "ackForValidTrans": false,&nb= sp; "batchAcks": true,&nb= sp; "technicalAck": undefined,&nb= sp; "eancomS3": false}}})
Shared Files $pdfToJson() $pdfToJson(string, object?) Converts a PDF file into JSON $pdfToJson("+kUKKbEVU8fDa2jHfjwcXdMDKzVt5S8s...")
Shared Files $mergePDFs() $mergePDFs([string]) Merges multiple base-64 encoded PDFs into a single document. $mergePDFs(["+kUKKbEVU8fDa2...", "+kUKKbEVU8fDa2...", ...])
Shared Files $rotatePDF() $rotatePDF(string, angle) Rotates a base-64 encoded PDF to a specified angle in degrees.  Ang= le must be a multiple of 90. $rotatePDF("+kUKKbEVU8fDa2...", 90)
Shared Calendars $eventsBetween() $eventsBetween(momentObject,momentObject,object) Returns the events for a calendar between two dates. $eventsBetween($moment(),$moment(),calendar)
Shared Calendars $getEventEnd() $getEventEnd(object) Returns the end of the first occurrence of an event. $getEventEnd(event)
Shared Calendars $getEventEnd() $getEventEnd(object,momentObject) Returns the end of the next occurrence of an event after the given momen= t. $getEventEnd(event,$moment())
Shared Calendars $getEventsAt() $getEventsAt(momentObject, object) Returns the events occurring in the given moment. $getEventsAt($moment("2000-07-23T18:36:00.000Z"), calendar)
Shared Calendars $getEventsAt() $getEventsAt(string, object) Returns the events occurring in the given moment. $getEventsAt("2000-07-23T18:36:00.000Z", calendar)
Shared Calendars $getAvailabilityBetween() $getAvailabilityBetween(momentObject,momentObject,object) Returns the events for a calendar between two dates, categorized by avai= lability. $getAvailabilityBetween($moment(), $moment(), calendar)
Shared Calendars $availableAt() $availableAt(momentObject, calendar) Returns true if there is at least one event marked as available in the g= iven moment. $availableAt($moment(), calendar)
Shared Core $cuid() $cuid() Generates a CUID. $cuid()
Shared Core $uuid() $uuid() Generates a V4 UUID. $uuid()
Shared Core $throw() $throw(string, object?) Throws a ThrowBindingError which halts execution of the transform. The e= rror will use the provided string as message and the data property will inc= lude any properties on the object passed to the second parameter. $throw("Oh no, something broke!", { "moreDetail": true })
Shared Core $coalesce() $coalesce(array) Returns the first value from the array that is not null or undefined. $coalesce([undefined, null, "test"])
Shared Core $identity() $identity(any) Returns the value it is given. $identity("hello")
Shared Core $tryCatch() $tryCatch(function, function) Will return a new function that takes the same arguments as first functi= on and will run in a try catch block. The catching function will have to be= either anonymous or have a signature matching the trying function with the= addition of a starting error object $tryCatch($fn1, $fn2)
Shared Core $nullIf() $nullIf(any, any) Returns null if the given value is equal to the comparison value. Otherw= ise, it returns the value. $nullIf("", "")
Shared Core $cronConverter() $cronConverter(string, string?) Returns the object from cron-converter. $cronConverter("*/10 9-17 1 * *", "Etc/UTC")
Shared Core $wait() $wait(number) Pause execution for the given number of milliseconds. $wait(1000)
Shared Core $retry() $retry(function, object?, function?) Returns a function to retry a number of times. Options object accepts re= tries and delay (ms) between retries. Optional function to return when a re= try fails. $retry(function() { $http("get", {"url": "https://testnotreal.com"= }) }, {"retries": 5, "delay": 1000})
Shared Core $arrayToCsv() $arrayToCsv(array<object>, object?) Converts an array of objects into a CSV string. Documentation on options= are located athttps://= www.npmjs.com/package/json-2-csv. $arrayToCsv([{"name":"Bill","city= ":"Troy","state":"MI"},{"name":"Ted","city"= :"Clarkston","state":"MI"},{"name":"John","city= ":"Orange County","state":"CA"}],{"checkSchemaDifferen= ces": false,"delimiter": {"field":= ',',"wrap": = '"',"eol": '='},"emptyFieldValue": n= one,"excelBOM": false,"expandArrayObjects"= : false,"keys": null,"prependHeader":true= ,"sortHeader":false,<= br>           "trimHeaderFields": = false,"trimFieldValues": f= alse});
Shared Core $csvToArray() $csvToArray(string, object?) Converts a csv string into an array of objects. Documentation on options= are located athttps://= www.npmjs.com/package/json-2-csv. $csvToArray('Name,City,StateJohn,"Orange County",CABill,Troy,MITed,Waterford,MI',{"delimiter": {"field": ',',<= br>            "wrap": '"',"eol": ''},"excelBOM": false,"keys": null,"trimHeaderFields": false,="trimFieldValues": false});
Shared Core $epcToUrn() $epcToUrn(string, object?) Converts an RFID tags EPC value to a URN value. Default standard is set = to GRAI96. User defined parsing logic can be implemented using the userDefi= ned object in options. $epcToUrn('330C4C06E8700440000AB45C',{paddWithZeros: false= ,standard: "GRAI96",<= br>           userDefined: {partitio= n: {&nb= sp; startPos: 11,&nb= sp; endPos: 14},prefixBi= ts: {&nb= sp; 0: 40,&nb= sp; 1: 37,&nb= sp; 2: 34,&nb= sp; 3: 30,&nb= sp; 4: 27,&nb= sp; 5: 24,&nb= sp; 6: 20},assetBit= s: {&nb= sp; 0: 4,&nb= sp; 1: 7,&nb= sp; 2: 10,&nb= sp; 3: 14,&nb= sp; 4: 17,&nb= sp; 5: 20,&nb= sp; 6: 24,},}});
Shared Core $numeral() $numeral(value) Converts a JSON value to a Numeral.js object for parsing or formatting. = Documentation is located athttp://numeralj= s.com/. $numeral("5000").format("0,0.00")
Shared Core $parseInt() $parseInt(string, number?) Converts a string to a number using the default or a specified base (rad= ix, default 10) $parseInt('FF00', 16)
Shared Core $decimalToString() $decimalToString(array<number>, string?) Decodes a decimal array into a string using the specified encoding (defa= ults to utf-8). For a list of supported encodings checkhttps://encoding.spec.whatwg.org/#encodi= ngs $decimalToString([116, 101, 115, 116], 'utf-8')
Shared Core $parseNumber() $parseNumber(value) Converts a JSON value to a number.  Returns undefined if the provid= ed value is unable to be parsed into a number. $parseNumber("5")
Shared Core $pluralize() $pluralize(string, string) Returns the provided string in pluralized form, using standard grammatic= al rules for the provided locale. $pluralize('dog','en')
Shared Core $singularize() $singularize(string, string) Returns the provided string in singular form, using standard grammatical= rules for the provided locale. $singularize('dogs', 'en')
Shared Core $camelCase() $camelCase(string) Returns the provided string in lowerCamelCase. $camelCase('one two three')
Shared Core $snakeCase() $snakeCase(string) Returns the provided string in snake_case. $snakeCase('one two three')
Shared Core $kebabCase() $kebabCase(string) Returns the provided string in kebab-case. $kebabCase('one two three')
Shared Core $lowerFirst() $lowerFirst(string) Returns the provided string with the first character changed to lowercas= e. $lowerFirst('one two three')
Shared Core $upperFirst() $upperFirst(string) Returns the provided string with the first character changed to uppercas= e. $upperFirst('one two three')
Shared Core $startCase() $startCase(string) Returns the provided string in Start Case. $startCase('one two three')
Shared Core $htmlEscape() $htmlEscape(string) Converts the characters "&", "<", ">", '"', and "'" in string = to their corresponding HTML entities. $htmlEscape("&")
Shared Core $htmlUnescape() $htmlUnescape(string) Converts the HTML entities &amp;, &lt;, &gt;, &quot;, an= d &#39; in string to their corresponding characters. $htmlUnescape("&amp;")
Shared Core $uriEscape() $uriEscape(string) URI escapes the given string. Does not handle the following characters: = ?, =3D, /, and &. $uriEscape("https://= mozilla.org/?x=3D=C3=91=CB=86=C3=90=C2=B5=C3=90=C2=BB=C3=90=C2=BB=C3=91=E2= =80=B9")
Shared Core $uriUnescape() $uriUnescape(string) Reverses URI escaping on the given string. Does not handle the following= characters: ?, =3D, /, and &. $uriUnescape("https://mozilla.org/?x=3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B")<= /td>
Shared Core $uriEscapeComponent() $uriEscapeComponent(string) URI escapes the given string, including the following characters: ?, =3D= , /, and &. $uriEscapeComponent("?x=3D=C3=91=CB=86=C3=90=C2=B5=C3=90=C2=BB=C3=90=C2= =BB=C3=91=E2=80=B9")
Shared Core $uriUnescapeComponent() $uriUnescapeComponent(string) Reverses URI escaping on the given string, including handling of the fol= lowing characters escape sequences: ?, =3D, /, and &. $uriUnescapeComponent("%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B")
Shared Core $markdownToHtml() $markdownToHtml(string) Convert markdown content to HTML. $markdownToHtml('# Marked in Node.jsRendered by **marked**.')
Shared Core $richTextToMarkdown() $richTextToMarkdown(object) Convert serialized RawDraftContent to Markdown $richTextToMarkdown({"blocks": [{&nb= sp; "key": "butoo",&nb= sp; "text": "Reg BOLD BOLD ITALIC UNDERLINE",&nb= sp; "type": "unstyled",&nb= sp; "depth": 0,&nb= sp; "inlineStyleRanges": [&nb= sp;   { "offset": 4, "length": 26, "style": "BOLD" },&nb= sp;   { "offset": 9, "length": 21, "style": "ITALIC" },&nb= sp;   { "offset": 21, "length": 9, "style": "UNDERLINE" }&nb= sp; ],&nb= sp; "entityRanges": [],&nb= sp; "data": {}},{&nb= sp; "key": "acsru",&nb= sp; "text": "Code Block Entity",&nb= sp; "type": "code",&nb= sp; "depth": 0,&nb= sp; "inlineStyleRanges": [],&nb= sp; "entityRanges": [],&nb= sp; "data": {}}],"entityMap": {}})
Shared Core $markdownToRichText() $markdownToRichText(string) Converts Markdown to serializable RichText objects $markdownToRichText("**Markdown** text here")
Shared Core $plainTextToRichText() $plainTextToRichText(string) Converts plain text to serializable RichText objects $plainTextToRichText("Plain text here")
Shared Core $richTextToPlainText() $richTextToPlainText(object) Convert serialized RawDraftContent to plain text. $richTextToPlainText({"blocks": [{&nb= sp; "key": "butoo",&nb= sp; "text": "Reg BOLD BOLD ITALIC UNDERLINE",&nb= sp; "type": "unstyled",&nb= sp; "depth": 0,&nb= sp; "inlineStyleRanges": [&nb= sp;   { "offset": 4, "length": 26, "style": "BOLD" },&nb= sp;   { "offset": 9, "length": 21, "style": "ITALIC" },&nb= sp;   { "offset": 21, "length": 9, "style": "UNDERLINE" }&nb= sp; ],&nb= sp; "entityRanges": [],&nb= sp; "data": {}},{&nb= sp; "key": "acsru",&nb= sp; "text": "Code Block Entity",&nb= sp; "type": "code",&nb= sp; "depth": 0,&nb= sp; "inlineStyleRanges": [],&nb= sp; "entityRanges": [],&nb= sp; "data": {}}],"entityMap": {}})
Shared Core $richTextToHTML() $richTextToHTML(object) Convert serialized RawDraftContent to HTML. $richTextToHTML({"blocks": [{&nb= sp; "key": "butoo",&nb= sp; "text": "Reg BOLD BOLD ITALIC UNDERLINE",&nb= sp; "type": "unstyled",&nb= sp; "depth": 0,&nb= sp; "inlineStyleRanges": [&nb= sp;   { "offset": 4, "length": 26, "style": "BOLD" },&nb= sp;   { "offset": 9, "length": 21, "style": "ITALIC" },&nb= sp;   { "offset": 21, "length": 9, "style": "UNDERLINE" }&nb= sp; ],&nb= sp; "entityRanges": [],&nb= sp; "data": {}},{&nb= sp; "key": "acsru",&nb= sp; "text": "Code Block Entity",&nb= sp; "type": "code",&nb= sp; "depth": 0,&nb= sp; "inlineStyleRanges": [],&nb= sp; "entityRanges": [],&nb= sp; "data": {}}],"entityMap": {}})
Shared Core $path() $path(object, string | array<string>) Returns the value at the provided path in the object. $path({"parent":{"child":[1,2,3]}},"parent.child")
Shared Core $omit() $omit(object, array<string>) Returns the object with the provided properties omitted. $omit({"parent":{"child":[1,2,3],"name":"Daphne"}},"parent.name")
Shared Core $pick() $pick(object, array<string>) Returns the object with only the provided properties included. $pick({"parent":{"child":[1,2,3],"name":"Daphne"}},"parent.name")
Shared Core $values() $values(object) Returns an array of values in the given object. $values({"a":1,"b":2,"c":3})
Shared Core $mapValues() $mapValues(object, function) Returns an array of values in the given object based on the function. $mapValues({"a":1,"b":2,"c":3}, function($v){$v})
Shared Core $mapKeys() $mapKeys(object, function) Returns an array of keys in the given object based on the function.<= /td>$mapKeys({"a":1,"b":2,"c":3}, function($v) { $v }) $mapKeys({"a":1,"b":2,"c":3}, function($v) { $v })
Shared Core $mergeDeep() $mergeDeep(array<object>) Returns an object which includes all properties from the provided object= s, recursively merged.  In the event that multiple objects contain the= same property, properties from objects with higher array indexes override = properties from lower array indexes. $mergeDeep()
Shared Core $has() $has(object, string) Returns true or false depending on whether the provided property exists = in the provided object. $has({"parent":{"child":[1,2,3],"name":"Daphne"}},"parent.name")
Shared Core $toPairs() $toPairs(object) Returns an array of key-value pair arrays, in the shape of [ [ key1, val= ue1 ], [ key2, value2] ]. $toPairs({ "key": "value" })
Shared Core $fromPairs() $fromPairs(array<array>) Transforms an array of key value pairs into an object. $fromPairs([["key", "value"]])
Shared Core $jsonParse() $jsonParse(string) Parses a string representation of a JSON value into the value it represe= nts. $jsonParse('{ "value": true }')
Shared Core $jsonStringify() $jsonStringify(any JSON type, object?) Serializes a JSON value into a string. $jsonStringify({ "value": true }, { "space": 2 })
Shared Core $chunk() $chunk(array, number) Creates an array of elements split into groups the length of size. If ar= ray can't be split evenly, the final chunk will be the remaining elements.<= /p> $chunk([1..200], 10)
Shared Core $uniq() $uniq(array) Returns the provided array with duplicate values removed.  Equality= is determined by reference for objects. $uniq([1,1,2,3,4,5,5,5])
Shared Core $partition() $partition(array, function) Creates an array of elements split into two groups, the first of which c= ontains elements predicate returns truthy for, the second of which contains= elements predicate returns falsey for. The predicate is invoked with one a= rgument: (value). $partition(a, function($v) {});
Shared Core $groupBy() $groupBy(array, function) Takes an array and a key function, returns an object. All values with th= e same key are added to an array property in the object named based on the = key. $groupBy([{ "id": 1, "name": "test 1" }, { "id": 1, "name": "test 2" }],= function ($v) { $v.id});
Shared Core $indexBy() $indexBy(array, function) Similar to $groupBy, except the properties contain only the last matchin= g element for the key. $indexBy([{ "id": 1, "name": "test 1" }, { "id": 2, "name": "test 2" }, = { "id": 1, "name": "test 3" }], function ($v) { $v.id});
Shared Core $uniqBy() $uniqBy(array, function) Similar to $uniq, except this function takes a function that returns the= value to determine uniqueness by. $uniqBy([{ "value": 1 }, { "value": 1 }], function ($v) { $v.value });
Shared Core $flatten() $flatten(array, number?) Given an array of arrays, this will flatten the arrays to the given dept= h. Depth defaults to 1. $flatten([[[1]]], 2)
Shared Core $first() $first(array) Returns the first element of the array. $first([1, 2, 3])
Shared Core $last() $last(array) Returns the last element of the array. $last([1, 2, 3])
Shared Core $takeFirst() $takeFirst(array, number?) Returns an array containing the first n element from the given array. $takeFirst([1, 2, 3], 2)
Shared Core $takeLast() $takeLast(array, number?) Returns an array containing the last n element from the given array.= $takeLast([1, 2, 3], 2)
Shared Core $findFirst() $findFirst(array, function) Return the first element where the predicate function returns true.<= /td>$findFirst([obj1, obj2, obj3], myPredFunc) $findFirst([obj1, obj2, obj3], myPredFunc)
Shared Core $findLast() $findLast(array, function) Return the last element where the predicate function returns true.$findLast([obj1, obj2, obj3], myPredFunc) $findLast([obj1, obj2, obj3], myPredFunc)
Shared Core $findFirstIndex() $findFirstIndex(array, function) Return the first index where the predicate function returns true.$findFirstIndex([obj1, obj2, obj3], myPredFunc) $findFirstIndex([obj1, obj2, obj3], myPredFunc)
Shared Core $findLastIndex() $findLastIndex(array, function) Return the last Index where the predicate function returns true.$findLastIndex([obj1, obj2, obj3], myPredFunc) $findLastIndex([obj1, obj2, obj3], myPredFunc)
Shared Core $flatMap() $flatMap(array, function) Returns a new transformed array but flatend. $flatMap([1, 2, 3, 4, 5], myFunc)
Shared Core $dropFirst() $dropFirst(array, number) Returns all but the first n elements of the given list $dropFirst([1, 2, 3, 4, 5], 2)
Shared Core $dropLast() $dropLast(array, number) Returns all but the last n elements of the given list $dropLast([1, 2, 3, 4, 5], 2)
Shared Core $partitionBetween() $partitionBetween(array, function, function, object) Partitions an array based on beginning and ending predicate functions, c= ollecting all values between matching elements. $partitionBetween([{ "name": "ST" }, { "name": "N1" }, { "name": "SE" }]= , function ($i) { $i.name=3D "ST" }, function ($i) { $i.name=3D "SE" }, { "includ= eEndElement": true })
Shared Core $isArray() $isArray(any JSON type) Determines whether the given value is an array. $isArray([])
Shared Core $isString() $isString(any JSON type) Determines whether the given value is a string. $isString("")
Shared Core $isBoolean() $isBoolean(any JSON type) Determines whether the given value is a boolean. $isBoolean(true)
Shared Core $isInteger() $isInteger(any JSON type) Determines whether the given value is an integer number. $isInteger(1)
Shared Core $isFloat() $isFloat(any JSON type) Determines whether the given value is a floating point number. Integer n= umbers also count as floating point numbers as JSON only has a singular num= ber type. $isFloat(1.5)
Shared Core $isNumber() $isNumber(any JSON type) Determines whether the given value is a number. $isNumber(1.5)
Shared Core $isObject() $isObject(any JSON type) Determines whether the given value is an object. $isObject({})
Shared Core $isUndefined() $isUndefined(any JSON type) Determines whether the given value is undefined. $isUndefined(undefined)
Shared Core $isNil() $isNil(any JSON type) Determines whether the given value is null or undefined. $isNil(null)
Shared Core $isNaN() $isNaN(any JSON type) Determines whether the given value is NaN. $isNaN(null)
Shared Core $isEmpty() $isEmpty(any JSON type) Determines whether the given value is an empty array, object, or string.= $isEmpty({})
Shared Core $isNilOrEmpty() $isNilOrEmpty(any JSON type) Determines whether the given value is undefined, null, or an empty array= , object, or string. $isNilOrEmpty(null)
Shared Core $pathSatisfies() $pathSatisfies(object, string | array<string>, function) Given an object, a path, and a predicate function, this function will re= turn true if the predicate returns true for the value at the given path. $pathSatisfies({ "name": "Henry Nord" }, "name", function ($v) { $v =3D = "Henry Nord" })
Shared Core $visitPreorder() $visitPreorder(array | object, function) Uses a preorder traversal to visit each element of a JSON object and all= ows recursive replacement of any nested objects. $visitPreorder(tree, function ($v) {( $merge([$v, { "hello": "world" }])= ; )})
Shared Core $convertCharacterSet() $convertCharacterSet(string, string, string?) Converts a string from a source encoding to a target encoding. $convertCharacterSet("=C3=A4=C2=BD =C3=A5=C2=A5=C2=BD=C3=AF=C2=BC= =C5=92=C3=A4=C2=B8=E2=80=93=C3=A7=E2=80=A2=C5=92", "ascii")
Shared Core $parseUrl() $parseUrl(string) Parse a url into a JSON Object. $parseUrl("https://mfgx.io/path?query=3Dtrue")
Shared Core $urlStringify() $urlStringify(any JSON type, optional json options) Takes JSON data and optionally options from the qs library in json forma= t and returns the JSON data formatted as querystring. $urlStringify({"param1":1, "param2":"2"},{addQueryPrefix: true})
Shared Core $parseGraphQLStatement() $parseGraphQLStatement(string) Parse a GraphQL statement to the AST format $parseGraphQLStatement()
Shared Core $parseExpression() $parseExpression(string) Parse a JSONata expression to the AST format $parseExpression("$sum(example.value)")
Shared Core $semverParse() $semverParse(any) Attempt to parse a string as a semantic version, returning either a SemV= er object or null. $semverParse('1.2.3')
Shared Core $semverValid() $semverValid(string) Return the parsed version, or null if it's not valid. The optional boole= an argument will let you choose to interpret versions or ranges loosely= $semverValid('1.2.2')
Shared Core $semverClean() $semverClean(string, boolean?) Clean a string to be a valid semver if possible. This will return a clea= ned and trimmed semver version. If the provided version is not valid a null= will be returned. This does not work for ranges. The optional boolean argu= ment will let you choose to interpret versions loosely $semverClean('1.2.2')
Shared Core $semverInc() $semverInc(string, string, boolean?, string?) Return the version incremented by the release type (major, premajor, min= or, preminor, patch, prepatch, or prerelease), or null if it's not valid. T= he third argument is an optional  additional identifier string argumen= t that will append the value of the string as a prerelease identifier$semverInc('1.2.3', 'prerelease', 'beta') $semverInc('1.2.3', 'prerelease', 'beta')
Shared Core $semverDiff() $semverDiff(string, string, boolean?) Returns difference between two versions by the release type (major, prem= ajor, minor, preminor, patch, prepatch, or prerelease), or null if the vers= ions are the same. An optional third argument can be passed in as a boolean= which will let you choose to interpret versions or ranges loosely $semverDiff('1.2.2', '2.0.1')
Shared Core $semverMajor() $semverMajor(string, boolean?) Return the major version number. Optionally, include a boolean to interp= ret the version loosely $semverMajor('1.2.2')
Shared Core $semverMinor() $semverMinor(string, boolean?) Return the minor version number. Optionally, include a boolean to interp= ret the version loosely $semverMinor('1.2.2')
Shared Core $semverPatch() $semverPatch(string, boolean?) Return the patch version number. Optionally, include a boolean to interp= ret the version loosely $semverPatch('1.2.2')
Shared Core $semverPrerelease() $semverPrerelease(string) Returns an array of prerelease components, or null if none exist.$semverPrerelease('1.2.3-alpha.1') $semverPrerelease('1.2.3-alpha.1')
Shared Core $semverCompare() $semverCompare(string, string, boolean?) Return 0 if v1 =3D=3D v2, or 1 if v1 is greater, or -1 if v2 is greater.= Sorts in ascending order if passed to Array.sort(). An optional third argu= ment can be passed in as a boolean which will let you choose to interpret v= ersions or ranges loosely $semverCompare('1.2.2', '2.0.1')
Shared Core $semverRcompare() $semverRcompare(string, string, boolean?) The reverse of compare. Sorts an array of versions in descending order w= hen passed to Array.sort(). An optional third argument can be passed in as = a boolean which will let you choose to interpret versions or ranges loosely= $semverRcompare('1.2.2', '2.0.1')
Shared Core $semverCompareLoose() $semverCompareLoose(string, string) Compare while interpreting versions and ranges loosely. Be more forgivin= g about not-quite-valid semver strings. (Any resulting output will always b= e 100% strict compliant, of course.) For backwards compatibility reasons, i= f the options argument is a boolean value instead of an object, it is inter= preted to be the loose param $semverCompareLoose('1.2.2', '2.0.1')
Shared Core $semverCompareBuild() $semverCompareBuild(string, string) The same as compare but considers build when two versions are equal. Sor= ts in ascending order if passed to Array.sort(). v2 is greater. Sorts in as= cending order if passed to Array.sort(). $semverCompareBuild('1.2.2', '2.0.1')
Shared Core $semverSort() $semverSort(array<string>, boolean?) Sorts an array of semver entries in ascending order using compareBuild()= . Additionally, an optional argument can be passed in as a boolean which wi= ll let you choose to interpret versions or ranges loosely $semverSort([ 'v0.0.9','v0.0.2','1.1.1', 'v0.1.1', '1.2.2', '2.0.1' ])
Shared Core $semverRsort() $semverRsort(array<string>, boolean?) Sorts an array of semver entries in descending order using compareBuild(= ). Optionally, an additional argument can be passed in as a boolean which w= ill let you choose to interpret versions or ranges loosely $semverRsort([ 'v0.0.9','v0.0.2','1.1.1', 'v0.1.1', '1.2.2', '2.0.1' ])<= /p>
Shared Core $semverGt() $semverGt(string, string, boolean?) Greater than comparison. The third argument is optional and can be passe= d in as a boolean which will let you choose to interpret versions or ranges= loosely $semverGt('1.2.3', '9.8.7')
Shared Core $semverLt() $semverLt(string, string, boolean?) Less than comparison. The third argument is optional and can be passed i= n as a boolean which will let you choose to interpret versions or ranges lo= osely $semverLt('1.2.3', '9.8.7')
Shared Core $semverEq() $semverEq(string, string, boolean?) Equality comparison. The third argument is optional and can be passed in= as a boolean which will let you choose to interpret versions or ranges loo= sely $semverEq('1.1.1', '1.1.1')
Shared Core $semverNeq() $semverNeq(string, string, boolean?) Inequality comparison. The third argument is optional and can be passed = in as a boolean which will let you choose to interpret versions or ranges l= oosely $semverNeq('1.1.1', '1.1.1')
Shared Core $semverGte() $semverGte(string, string, boolean?) Greater-than or equal-to comparison. The third argument is optional and = can be passed in as a boolean which will let you choose to interpret versio= ns or ranges loosely $semverGte('1.2.3', '1.1.1')
Shared Core $semverLte() $semverLte(string, string, boolean?) Less-than or equal-to comparison. The third argument is optional and can= be passed in as a boolean which will let you choose to interpret versions = or ranges loosely $semverLte('1.2.3', '1.1.1')
Shared Core $semverCmp() $semverCmp(string, string, string, boolean?) Pass in a comparison string, and it'll call the corresponding semver com= parison function. "=3D=3D=3D" and "!=3D=3D" do simple string comparison, bu= t are included for completeness. Throws if an invalid comparison string is = provided. The fourth argument is optional and can be passed in as a boolean= which will let you choose to interpret versions or ranges loosely $semverCmp('1.2.3', '<=3D', '1.1.1')
Shared Core $semverCoerce() $semverCoerce(string, string) Coerces a string to SemVer if possible. $semverCoerce('1.2.3', '1.1.1')
Shared Core $semverSatisfies() $semverSatisfies(string, string, boolean?) Return true if the version satisfies the range. The third argument is op= tional and can be passed in as a boolean which will let you choose to inter= pret versions or ranges loosely $semverSatisfies('1.2.3', '1.x || >=3D2.5.0 || 5.0.0 - 7.2.3')
Shared Core $semverMaxSatisfying() $semverMaxSatisfying(array<string>, string, boolean?) Return the highest version in the list that satisfies the range, or null= if none of them do. The third argument is optional and can be passed in as= a boolean which will let you choose to interpret versions or ranges loosel= y $semverMaxSatisfying([ 'v0.0.9','v0.0.2','1.1.1', 'v0.1.1', '1.2.2', '2.= 0.1' ],'<1.1.1')
Shared Core $semverMinSatisfying() $semverMinSatisfying(array<string>, string, boolean?) Return the lowest version in the list that satisfies the range, or null = if none of them do. The third argument is optional and can be passed in as = a boolean which will let you choose to interpret versions or ranges loosely= $semverMaxSatisfying([ 'v0.0.9','v0.0.2','1.1.1', 'v0.1.1', '1.2.2', '2.= 0.1' ],'<1.1.1')
Shared Core $semverToComparators() $semverToComparators(string, string, boolean?) Mostly just for testing and legacy API reasons. The third argument is op= tional and can be passed in as a boolean which will let you choose to inter= pret versions or ranges loosely $semverToComparators('<=3D 1.1.1','1.2.3')
Shared Core $semverMinVersion() $semverMinVersion(string, boolean?) Return the lowest version that can possibly match the given range. The s= econd argument is optional and can be passed in as a boolean which will let= you choose to interpret versions or ranges loosely $semverMinVersion('<=3D 2.1.2')
Shared Core $semverValidRange() $semverValidRange(string, boolean?) Return the valid range or null if it's not valid. The second argument is= optional and can be passed in as a boolean which will let you choose to in= terpret versions or ranges loosely $semverValidRange('<=3D1.1.1 || >=3D 1.1.1')
Shared Core $semverOutside() $semverOutside(string, string, string, boolean?) Return true if the version is outside the bounds of the range in either = the high or low direction. The hilo argument must be either the string '>= ;' or '<'. (This is the function called by gtr and ltr.). The fourth arg= ument is optional and can be passed in as a boolean which will let you choo= se to interpret versions or ranges loosely $semverOutside('1.3.2', '<=3D 2.1.2', '<')
Shared Core $semverGtr() $semverGtr(string, string, boolean?) Return true if version is greater than all the versions possible in the = range. The third argument is optional and can be passed in as a boolean whi= ch will let you choose to interpret versions or ranges loosely $semverGtr('1.1.1', '<=3D1.0.0')
Shared Core $semverLtr() $semverLtr(string, string, boolean?) Return true if version is less than all the versions possible in the ran= ge. The third argument is optional and can be passed in as a boolean which = will let you choose to interpret versions or ranges loosely $semverLtr('1.1.1', '<=3D1.0.0')
Shared Core $semverIntersects() $semverIntersects(string, string, boolean?) Return true if any of the ranges comparators intersect. The third argume= nt is optional and can be passed in as a boolean which will let you choose = to interpret versions or ranges loosely $semverIntersects('>=3D 1.0.0', '<=3D1.2.3')
Shared Core $semverSimplifyRange() $semverSimplifyRange(array<string>, string) Return a "simplified" range that matches the same items in versions list= as the range specified. Note that it does not guarantee that it would matc= h the same versions in all cases, only for the set of versions provided. Th= is is useful when generating ranges by joining together multiple versions w= ith || programmatically, to provide the user with something a bit more ergo= nomic. If the provided range is shorter in string-length than the generated= range, then that is returned. $semverSimplifyRange(['1.1.3', '3.2.3'], '>=3D 2.1.1')
Shared Core $semverRangeSubset() $semverRangeSubset(string, string, string?) Return true if the subRange range is entirely contained by the superRang= e range. The fourth argument is optional and can be passed in as a boolean = which will let you choose to interpret versions or ranges loosely $semverRangeSubset('<1.1.1', '>3.2.1')
Shared Core $validateSchema() $validateSchema(any JSON type) Takes a JSON object and validates that it is a JSON schema object.$validateSchema({"id":1,"label":2}) $validateSchema({"id":1,"label":2})
Shared Core $validateJson() $validateJson(any JSON type, json schema) Takes JSON data and a schema and validates that the JSON matches the sch= ema, throwing any validation errors. $validateJson([1, 2, 3, 4, 5],{"type": "array", "items": {"type": "numbe= r"}})
Shared Core $isValidJson() $isValidJson(any JSON type, json schema) Takes JSON data and a schema and returns a boolean indicating if the dat= a matches the schema. $isValidJson([1, 2, 3, 4, 5],{"type": "array","items": {"type": "number"= }})
Shared Core $mapParallel() $mapParallel(object, function, number?) Takes an array and a mapping function, returns a new array where the val= ues have been replaced with the output of the mapping function. The default= degree of parallelism is 8. $mapParallel([{ "id": 1, "name": "test 1" }, { "id": 1, "name": "test 2"= }], function ($v) { $v.name}, 2);
Shared Core $mapValuesParallel() $mapValuesParallel(object, function, number?) Takes an object and a mapping function, returns a new object where the v= alues have been replaced with the output of the mapping function. The defau= lt degree of parallelism is 8. $mapValuesParallel({ "hello": "John", "goodbye": "Joan" }, function ($v)= { $v =3D "John" ? "Joan" : $v }, 2);
Shared Core $filterParallel() $filterParallel(array, function, number?) Takes an array and a predicate function, returns an array. The resulting= array contains all the values for which the predicate returns true. The de= fault degree of parallelism is 8. $filterParallel([{ "id": 1, "name": "test 1" }, { "id": 1, "name": "test= 2" }], function ($v) { $v.name=3D "test 1" }, 2);
Shared Core $groupByParallel() $groupByParallel(array, function, number?) Takes an array and a key function, returns an object. All values with th= e same key are added to an array property in the object named based on the = key. The default degree of parallelism is 8. $groupByParallel([{ "id": 1, "name": "test 1" }, { "id": 1, "name": "tes= t 2" }], function ($v) { $v.id}, 2);
Shared Core $timesParallel() $timesParallel(number, function, number?) Executes a function N number of times, in parallel. Results are collecte= d as an array. This is essentially a functional version of a for loop. The = default degree of parallelism is 8. $timesParallel(5, function ($n) { $n }, 2);
Shared Core $flattenObject() $flattenObject(object,options) Flattens the object - it'll return an object one level deep, regardless = of how nested the original object was.options:{delimiter: Use= a custom delimiter for (un)flattening your objects, instead of {.},safe: When ena= bled, will preserve arrays and their contents. This is disabled by default.= ,maxDepth: Maxi= mum number of nested objects to flatten.} $flattenObject({'key1': {&nb= sp; 'keyA': 'valueI'},'key2': {&nb= sp; 'keyB': 'valueII'},'key3': { 'a': { 'b'= : { 'c': 2 } } },'this': [&nb= sp; { 'contains': 'arrays' },&nb= sp; { 'preserving': {&nb= sp;       'them': 'for you'&nb= sp; }}]}, {'maxDepth':2,'safe':true,'delimiter':'/'})
Shared Core $unflattenObject() $unflattenObject(object,options) Unflattens an object which is flattend.options: {delimiter: Use a cus= tom delimiter for (un)flattening your objects, instead of {.},object: When enabled= , arrays will not be created automatically when calling unflatten.,overwrite: When enab= led, existing keys in the unflattened object may be overwritten if they can= not hold a newly encountered nested value.,} $unflattenObject({"key1/keyA": "valueI= ","key2":true,"key2/ke= yB": "valueII","key3/a/= b/c": 2,"this/0/= contains": "array to object","this/1/= preserving/them": "for you"}, {&nb= sp; 'object':true,&nb= sp; 'delimiter':'/',&nb= sp; 'overwrite':true&nb= sp; })
Shared Core $objectDiff() $objectDiff(object, object, options) Compares two objects and returns the differences.options: {detailed: [boolean] = Show a breakdown of which properties were added, removed, and changed.ignore: [array of ar= rays] Exclude key paths from comparison.} $objectDiff({ "a":1, "b":2, "foo= ":{"bar":true} },{ "a":1, "b":3, "c":= 4, "foo":{"bar":false} },{"detailed": true,"ignore": [["foo","b= ar"]]})
Shared Core $urlJoin() $urlJoin(array) Join an array of url paths using a url join. The joined url will remove = any duplicate / in the path and add them if they are not provided. $urlJoin(["http://www.google.com", = "a", "/b/cd", "?foo=3D123"])
Shared Core $startsWith() $startsWith(string, pattern) Checks to see if string starts with pattern $startsWith('foobar', 'foo')
Shared Core $endsWith() $endsWith(string, pattern) Checks to see string ends with pattern $endsWith('foobar', 'bar')
Shared Core $removeLeadingValues() $removeLeadingValues(string, pattern) Removes specified leading values from string. This will loop until strin= g no longer begins with pattern $removeLeadingValues('foobar', 'foo')
Shared Core $replaceLeadingValues() $replaceLeadingValues(string, pattern, replacement) String is what is being modified. If string begins with pattern, it will= be replaced by replacement. If pattern appears multiple times in a row, it= will be replaced for each time it appears. $replaceLeadingValues('foobar', 'foo', 'replace')
Shared Core $jsonToJsonSchema() $jsonToJsonSchema(json, options) Converts a JSON object into JSON Schema, lists which fields are required= and finds most compatible type for array. $jsonToJsonSchema({"test" : [1,"str",3]}, {"required": true, "arrays": {= "mode": "all"}})
Shared Core $jsonToJsonSchema() $jsonToJsonSchema(json, options) Converts a JSON object into JSON Schema and classifies array type by fir= st element. $jsonToJsonSchema({"test" : [1,"str",3]}, {"required": false, "arrays": = {"mode": "first"}})
Shared Core $jsonToJsonSchema() $jsonToJsonSchema(json, options) Converts a JSON object into JSON Schema and lists type of each element i= n an array. $jsonToJsonSchema({"test" : [1,"str",3]}, {"required": false, "arrays": = {"mode": "tuple"}})
Shared Core $jsonToJsonSchema() $jsonToJsonSchema(json, options) Converts a JSON object into JSON Schema if all elements in arrays to be = the same type. If not, an error is thrown. $jsonToJsonSchema({"test" : [1,2,3]}, {"required": false, "arrays": {"mo= de": "uniform"}}})
Shared Core $all() $all(array, function) Returns true if all elements of the array satisfy the predicate function= and false otherwise. $all([3, 5, 7, 9], function($el) { $el % 2 =3D 1 })
Shared Core $any() $any(array, function) Returns true if any element of the array satisfies the predicate functio= n and false otherwise. $any([2, 3, 5, 7], function($el) { $el % 2 =3D 0 })
Shared Core $jsonToMarkdown() $jsonToMarkdown(array<object>) Converts a JSON input to markdown. Documentation:https://www.npmjs.com/package/json2md$jsonToMarkdown([{"h1":"John"} , {"blockquote":30} , {"h3":"New York"}])= $jsonToMarkdown([{"h1":"John"} , {"blockquote":30} , {"h3":"New York"}])=
Shared EDI $parseX12() $parseX12(string) Converts an X12 EDI string into a JSON object. $parseX12("ISA*00*         = *00*          *ZZ*EMEDNYBAT&n= bsp;     *ZZ*ETIN...")
Shared EDI $formatX12() $formatX12([string]) Converts a parsed X12 EDI array of objects into a formatted JSON object.= Includes parseX12 binding. $formatX12($parseX12("ISA*00*       &= nbsp;  *00*          *ZZ*= EMEDNYBAT      *ZZ*ETIN..."))
Shared Encryption $encryptHmac() $encryptHmac(algorithm, key, string, encoding?) Returns a digest encrypted with the key based on the supplied algorithm = in the supplied (optional, default base64) encoding. Algorithm can be any s= upported OpenSSL method. $encryptHmac('sha256', 'foo', 'bar', 'base64')
Shared Encryption $hash() hash(algorithm, string, encoding?) Returns a hash of the string based on the algorithm provided in the supp= lied (optional, default base64) encoding. Algorithm can be any supported Op= enSSL method. $hash('sha256', 'foobar', 'base64')
Shared Joins $crossJoin() $crossJoin(array, array, string, object?) Cross-joins the left and right arrays. Every value in the left array wil= l be joined to every value in the right array. $crossJoin( left, right, 'joinedKey', { 'grouped': false } )
Shared Joins $innerJoin() $innerJoin(array, array, string | array<string> | function, string= | array<string> | function, string, object?) Performs an inner join between the left and right arrays. The accessors = can be either a path string (separated by periods), an array of path elemen= ts, or a function. Only values from the left side with a match on the right= side will be returned. $innerJoin( left, right, 'leftKey', 'rightKey', 'joinedKey', { 'grouped'= : false } )
Shared Joins $leftAntiJoin() $leftAntiJoin(array, array, string | array<string> | function, str= ing | array<string> | function) Performs an anti semi-join against the left array. Only values from the = left side without a match on the right side will be kept. $leftAntiJoin( left, right, 'leftKey', 'rightKey')
Shared Joins $leftOuterJoin() $leftOuterJoin(array, array, string | array<string> | function, st= ring | array<string> | function, string, object?) Performs an outer join between the left and right arrays. The accessors = can be either a path string (separated by periods), an array of path elemen= ts, or a function. All values from the left side will be returned, regardle= ss of whether there is a match on the right side. $leftOuterJoin( left, right, 'leftKey', 'rightKey', 'joinedKey', { 'grou= ped': false } )
Shared Joins $leftSemiJoin() $leftSemiJoin(array, array, string | array<string> | function, str= ing | array<string> | function) Performs a semi-join against the left array. Only values from the left s= ide with a match on the right side will be kept. $leftSemiJoin( left, right, 'leftKey', 'rightKey' )
Shared Moment $moment() $moment(string?, string?, string? | boolean?, boolean?) Returns a moment.js instance of the given date string. $moment("01/01/2019 09:00:00AM", "MM/DD/YYYY hh:mm:ssA" )
Shared Moment $moment() $moment(string?, string?, string? | boolean?, boolean?) Returns begining of day $moment().subtract(1, 'days').startOf('day')
Shared Moment $moment() $moment(string?, string?, string? | boolean?, boolean?) Returns end of day $moment().subtract(1, 'days').endOf('day')
Shared Moment $moment() $moment(string?, string?, string? | boolean?, boolean?) Returns start of Last Month $moment().subtract(1, 'month').startOf('month')
Shared Moment $moment() $moment(string?, string?, string? | boolean?, boolean?) Returns end of Last Month $moment().subtract(1, 'month').endOf('month')
Shared Moment $moment() $moment(string?, string?, string? | boolean?, boolean?) Returns start of Current Month $moment().startOf('month')
Shared Moment $moment() $moment(string?, string?, string? | boolean?, boolean?) Returns end of Current Month $moment().endOf('month')
Shared Moment $momentTz() $momentTz(string?, string?, string?) Returns a moment.js instance of the given date string, with the timezone= assumed to be the given timezone. $momentTz( "01/01/2019 09:00:00AM", "MM/DD/YYYY hh:mm:ssA", "America/Det= roit" )
Shared Moment $momentTzTimezones() $momentTzTimeZones() Returns Moment Timezones $momentTzTimezones()
Shared Moment $momentTzGuess() $momentTzGuess(boolean?) Moment Tz guess uses the Internationalization API (Intl.DateTimeFormat()= .resolvedOptions().timeZone) in supported browsers to determine the user's = time zone. You can optionally pass a boolean that will ignore cached values= . This function will only work correctly when ran through a frontend transf= orm. When this function is ran in the backend it will return UTC. $momentTzGuess()
Shared Moment $momentMax(array, boolean?) Moment Max receives an array of $moment objects or moment compatible val= ues and returns the maximum (most distant future) value. You can optionally= pass a boolean that will ignore invalid dates. $momentMax([$moment("2030-12-15").subtract(1, "days"), $moment("2030-12-= 15").add(10, "days"), $moment("2030-12-15").subtract(5, "days")])
Shared Moment $momentMin(array, boolean?) Moment Min receives an array of $moment objects or moment compatible val= ues and returns the minimum (most distant past) value. You can optionally p= ass a boolean that will ignore invalid dates. $momentMin([$moment("2030-12-15").subtract(1, "days"), $moment("2030-12-= 15").add(10, "days"), $moment("2030-12-15").subtract(5, "days")])
Shared XML $jsonToXml() $jsonToXml(object | array<object>,object?) Returns an XML string representation of the given JSON object or array. = For options go tohttps://ww= w.npmjs.com/package/xml2js $jsonToXml({ "parent": { "child": [1,2,3] } }, {"headless": false})<= /td>
Shared XML $xmlToJson() $xmlToJson(string,object?) Returns a JSON representation of the given XML string. For options go to=https://www.npmjs.com/packa= ge/xml2js $xmlToJson('<?xml version=3D"1.0" encoding=3D"UTF-8" standalone=3D"ye= s"?><parent><child>1</child><child>2</child><child>3</child></parent>')
Shared JSONata $string(arg) Casts the arg parameter to a string using the following casting rules $string(arg)
Shared JSONata $length(str) Returns the number of characters in the string str. $length("Hello World")
Shared JSONata $substring(str, start[, length]) Returns a string containing the characters in the first parameter str st= arting at position start (zero-offset). $substring("Hello World", 3)
Shared JSONata $substringBefore(str, chars) Returns the substring before the first occurrence of the character seque= nce chars in str. $substringBefore("Hello World", " ")
Shared JSONata $substringAfter(str, chars) Returns the substring after the first occurrence of the character sequen= ce chars in str. $substringAfter("Hello World", " ")
Shared JSONata $uppercase(str) Returns a string with all the characters of str converted to uppercase.<= /p> $uppercase("Hello World")
Shared JSONata $lowercase(str) Returns a string with all the characters of str converted to lowercase.<= /p>
Shared JSONata $trim(str) Normalizes and trims all tabs, carriage returns, line feeds, contiguous = whitespaces, Trailing and leading whitespaces characters in str $trim(" HelloWorld ")
Shared JSONata $pad(str, width [, char]) Returns a copy of the string str with extra padding, if necessary, so th= at its total number of characters is at least the absolute value of the wid= th parameter. $pad("foo", -5, "#")
Shared JSONata $contains(str, pattern) Returns true if str is matched by pattern, otherwise it returns false. $contains("abracadabra", "bra")
Shared JSONata $split(str, separator [, limit]) Splits the str parameter into an array of substrings. $split("so many words", " ")
Shared JSONata $join(array[, separator]) Joins an array of component strings into a single concatenated string wi= th each component string separated by the optional separator parameter.= $join(['a','b','c'])
Shared JSONata $match(str, pattern [, limit]) Applies the str string to the pattern regular expression and returns an = array of objects, with each object containing information about each occurr= ence of a match withing str. $match("ababbabbcc",/a(b+)/)
Shared JSONata $replace(str, pattern, replacement [, limit]) Finds occurrences of pattern within str and replaces them with replaceme= nt. $replace("John Smith and John Jones", "John", "Mr")
Shared JSONata $eval(expr [, context]) Parses and evaluates the string expr which contains literal JSON or a JS= ONata expression using the current context as the context for evaluation. $eval("[1,2,3]")
Shared JSONata $base64encode(str) Converts an ASCII string to a base 64 representation. $base64encode("myuser:mypass")
Shared JSONata $base64decode(str) Converts base 64 encoded bytes to a string, using a UTF-8 Unicode codepa= ge. $base64decode("bXl1c2VyOm15cGFzcw=3D=3D")
Shared JSONata $number(arg) Casts the arg parameter to a number. $number("5")
Shared JSONata $abs(number) Returns the absolute value of the number parameter, i.e. if the number i= s negative, it returns the positive value. $abs(-5)
Shared JSONata $floor(number) Returns the value of number rounded down to the nearest integer that is = smaller or equal to number. $floor(5.8)
Shared JSONata $ceil(number) Returns the value of number rounded up to the nearest integer that is gr= eater than or equal to number. $ceil(5.3)
Shared JSONata $round(number [, precision]) Returns the value of the number parameter rounded to the number of decim= al places specified by the optional precision parameter. $round(123.456, 2)
Shared JSONata $power(base, exponent) Returns the value of base raised to the power of exponent (baseexponent)= . $power(2, 8)
Shared JSONata $sqrt(number) Returns the square root of the value of the number parameter. $sqrt(4)
Shared JSONata $random() Returns a pseudo random number greater than or equal to zero and less th= an one (0 =C3=A2=E2=80=B0=C2=A4 n < 1) $random()
Shared JSONata $formatNumber(number, picture [, options]) Casts the number to a string and formats it to a decimal representation = as specified by the picture string. $formatNumber(12345.6, "#,###.00")
Shared JSONata $formatBase(number [, radix]) Casts the number to a string and formats it to an integer represented in= the number base specified by the radix argument. $formatBase(100, 2)
Shared JSONata $formatInteger(number, picture) Casts the number to a string and formats it to an integer representation= as specified by the picture string. $formatInteger(2789, "w") /*A,a,i,I,w,W,Ww...*/
Shared JSONata $parseInteger(string, picture) Parses the contents of the string parameter to an integer (as a JSON num= ber) using the format specified by the picture string. $parseInteger("twelve thousand, four hundred and seventy-six", "w") = ; /*A,a,i,I,w,W,Ww...*/
Shared JSONata $sum(array) Returns the arithmetic sum of an array of numbers. It is an error if the= input array contains an item which isn't a number. $sum([5,1,3,7,4])
Shared JSONata $max(array) Returns the maximum number in an array of numbers. It is an error if the= input array contains an item which isn't a number. $max([5,1,3,7,4])
Shared JSONata $min(array) Returns the minimum number in an array of numbers. It is an error if the= input array contains an item which isn't a number. $min([5,1,3,7,4])
Shared JSONata $average(array) Returns the mean value of an array of numbers. It is an error if the inp= ut array contains an item which isn't a number. $average([5,1,3,7,4])
Shared JSONata $boolean(arg) Casts the argument to a Boolean. $boolean(0)
Shared JSONata $not(arg) Returns Boolean NOT on the argument. arg is first cast to a boolean.= $not(true)
Shared JSONata $exists(arg) Returns Boolean true if the arg expression evaluates to a value, or fals= e if the expression does not match anything (e.g. a path to a non-existent = field reference). $exists(SomeObject)
Shared JSONata $count(array) Returns the number of items in the array parameter. $count([1,2,3,1])
Shared JSONata $append(array1, array2) Returns and array containing the values in array1 followed by the values= in array2. $append([1,2,3], [4,5,6])
Shared JSONata $sort(array [, function(left, right)]) Returns an array containing all the values in the array parameter, but s= orted into order. $sort(Account.Order.Product, function($l, $r) {$l.Description.Weight > $r.Description.Weight})
Shared JSONata $reverse(array) Returns an array containing all the values from the array parameter, but= in reverse order. $reverse(["Hello", "World"])
Shared JSONata $shuffle(array) Returns an array containing all the values from the array parameter, but= shuffled into random order. $shuffle([1..9])
Shared JSONata $zip(array1, ...) Returns a convolved (zipped) array containing grouped arrays of values f= rom the array1 ... arrayN arguments from index 0, 1, 2, etc. $zip([1,2,3],[4,5],[7,8,9])
Shared JSONata Array slice Returns a portion of the specified array. array[[0..$count(array)]]
Shared JSONata $keys(object) Returns an array containing the keys in the object. If the argument is a= n array of objects, then the array returned contains a de-duplicated list o= f all the keys in all of the objects. $keys(object)
Shared JSONata $lookup(object, key) Returns the value associated with key in object. If the first argument i= s an array of objects, then all of the objects in the array are searched, a= nd the values associated with all occurrences of key are returned. $lookup(object, key)
Shared JSONata $spread(object) Splits an object containing key/value pairs into an array of objects, ea= ch of which has a single key/value pair from the input object. $spread(object)
Shared JSONata $merge(array<object>) Merges an array of objects into a single object containing all the key/v= alue pairs from each of the objects in the input array. $merge(array<object>)
Shared JSONata $each(object, function) Returns an array containing the values return by the function when appli= ed to each key/value pair in the object. $each(Address, function($v, $k) {$k & ": " & $v})
Shared JSONata $now([picture [, timezone]]) Generates a UTC timestamp in ISO 8601 compatible format and returns it a= s a string. All invocations of $now() within an evaluation of an expression= will all return the same timestamp value. $now()
Shared JSONata $millis() Returns the number of milliseconds since the Unix Epoch (1 January, 1970= UTC) as a number. All invocations of $millis() within an evaluation of an = expression will all return the same value. $millis()
Shared JSONata $fromMillis(number [, picture [, timezone]]) Convert the number representing milliseconds since the Unix Epoch (1 Jan= uary, 1970 UTC) to a formatted string representation of the timestamp as sp= ecified by the picture string. $fromMillis(1510067557121)
Shared JSONata $toMillis(timestamp [, picture]) Convert a timestamp string to the number of milliseconds since the Unix = Epoch (1 January, 1970 UTC) as a number. $toMillis("2017-11-07T15:07:54.972Z")
Shared JSONata $map(array, function(value [, index [, array]]) Returns an array containing the results of applying the function paramet= er to each value in the array parameter. $map(Email.address, function($v, $i, $a) {'Item ' & ($i+1) & ' of ' & $count($a) & ': ' & $v})
Shared JSONata $filter(array, function(value [, index [, array]])) Returns an array containing only the values in the array parameter that = satisfy the function predicate (i.e. function returns Boolean true when pas= sed the value). $filter(Account.Order.Product, function($v, $i, $a) {$v.Price > $average($a.Price)})
Shared JSONata $reduce(array, function(i, j) [, init]) Returns an aggregated value derived from applying the function parameter= successively to each value in array in combination with the result of the = previous application of the function. $product :=3D function($i, $j){$i * $j};$reduce([1..5], $product)
Shared JSONata $sift(object, function(value [, key [, object]])) Returns an object that contains only the key/value pairs from the object= parameter that satisfy the predicate function passed in as the second para= meter. Account.Order.Product.$sift(function($v, $k) {$k ~> /^Product/})<= /td>
Shared Other $log(message,meta,level) Logs a statement with a 'message' of a 'level' and optionally a 'meta' o= bject.  The level argument is optional; valid values include ('error',= 'warn','info','verbose','debug','silly'); invalid values default to 'info'.=   This object is stored as a JSONB blob within postgres. Check your co= nsole log. $log('some message',{'some object':{'some key':'some value'}},'info')
Shared Other $getCalendar(object) Returns MFGx Calendar and events by the id $getCalendar({"id":id})
Shared Other $getCalendar(object) Returns MFGx Calendar and events by the calendars name $getCalendar({"name":calendarName})
Shared Other $query(object) Returns relevant information to the GraphQL query and variables provided= $query({"statement":'',"variables":{}})
Shared Other $document(object[, options]) Generates and returns an MFGx document based on the id and payload in a = base64 encoded PDF string $document({"documentDesignId": "","payload": {},"name": "","documentRenderFormatId": undefined,"culture": undefined}, { "returnContent": true })
Shared Other $mutate(object) Returns relevant information to the GraphQL mutation and variables provi= ded $mutate({"statement":'',"variables":{}})
Shared Other $integrate(object) Executes the request provided and returns revelant information $integrate({"Request": {"connectionName": "","payload": []}})
Shared Other $integrate(array) Executes the request provided and returns revelant information $integrate([{"connectionName": "","payload": []}])
Shared Other $executeFlow(string,object) Executes a request/response flow based on the id and payload and returns= the value of the response node. $executeFlow(flowId,payload)
Shared Other $executeTransform(string,object) Executes a saved transform based on the id of the transform. Returning t= he evaluation of the response. $executeTransform(transformId,payload)
Shared Other $executeDeviceGatewayFunction(object) Executes a device gateway function. $executeDeviceGatewayFunction({"deviceGatewayId": "","functionId": "","request": {}})
Shared Other $executeDeviceFunction(object) Executes a device function. $executeDeviceFunction({"deviceId": "","functionId": "","request": {}})
Shared Other $executeDeviceFunction(object) Executes a device function. $executeDeviceFunction({"requestId": "","deviceId": "","functionId": "","request": {} ,"functionTimeoutSeconds": 10})

3. Summary Statistics

By Type

  • Frontend: 39 bindings (Screen Designer only)
  • Shared: 247 bindings (Screen Designer + Data Flows + Transforms)
  • Backend: 8 bindings (Data Flows + Transforms only)

By Category

Category Type Count Description
Core Shared 145 Utility functions for strings, arrays, objects, type checking, validation
JSONata Extended Shared 56 Standard JSONata functions with enhanced implementations
Screen Designer Frontend 30 UI component manipulation, table/form operations
Integration Shared 13 GraphQL, external systems, device functions
Moment (Date/Time) Shared 12 Date/time manipulation using Moment.js
EDINation Backend 8 X12 and EDIFACT EDI processing
Calendars Shared 7 Production calendar and scheduling operations
Navigation Frontend 7 Page navigation, dialogs, notifications
Joins Shared 5 SQL-style join operations on arrays
Files Shared 3 PDF manipulation
Clipboard Frontend 2 Read/write clipboard
XML Shared 2 JSON/XML conversion
Encryption Shared 2 Encrypt/decrypt functions
EDI Shared 2 EDI utility functions

4. Revision History

Version Date Editor Description
2.0 2026-01-29 AI Assistant Complete rewrite - all 294 bindings documented in comprehensive table format
1.0 2025-01-11 Craig Scott Initial Release - 294 custom bindings documented
Related Resources: Standard JSONata: docs.jsonata.org | Fuuz Platform: fuuz.com

Fuuz Industrial Operations Platform • JSONata Custom Bindings Reference v2.0 • © 2026 Fuuz

    • Related Articles

    • Script & Validation Nodes

      Article Type: Node Reference Audience: Developers, App Admins Module: Data Flows / Node Designer Applies to Versions: Platform 3.0+ Prerequisites: Basic understanding of Data Flow concepts, familiarity with JSONata or JavaScript 1. Overview What are ...
    • Fuuz Platform Nodes

      Article Type: Node Reference Audience: Developers, App Admins Module: Data Flows / Node Designer Applies to Versions: Platform 3.0+ Prerequisites: Basic understanding of Data Flow concepts, familiarity with GraphQL 1. Overview What are Fuuz Platform ...
    • Fuuz Bindings: $predicateFilter

      Executive Summary Every model in the Fuuz GraphQL API has a generic WhereInput type used to filter queries against that model. These WhereInput types assign a PredicateInput type to each field on the model. If you have made a query against a Fuuz ...
    • Terms And Definitions: Integration

      This article introduces the following terms and their definitions: Connection, Custom Handler, Endpoint, Generic Handlers, Fuuz Scripting Language, Pagination, and Transformation. Connection Custom Handler Endpoint Generic Handlers Fuuz Scripting ...
    • Python and Fuuz Data Flows

      Fuuz does not natively support Python Scripting within our framework. However, you can execute remote python scripts using our RestAPI integrations Continue reading for a better understanding of why we have opted to not support Python natively within ...