########################################################################
Version 5.0.0
########################################################################

March 6, 2024

Pro Version


New Functions

	BE_CreateKeyPair: Create and RSA key pair and return the private key
	BE_CurlGetInfo: get information about the most recent curl (HTTP/FTP/SMTP) connection
	BE_DecryptWithKey: Encrypt the supplied base 64 encoded text using an X509 certificate
	BE_EncryptWithKey: Decrypt the supplied text using an X509 certificate
	BE_GetPublicKey: return a public key for the supplied private key
	BE_JSON_jq: an adaption of the jq JSON command line tool (macOS, Ubuntu only)


	Pro Version Only

	BE_BackgroundTaskAdd: perform a HTTPPost and set the result into a field in the "background"
	BE_BackgroundTaskList: return a value list of ids for pending background tasks
	BE_ContainerConvertImage: convert images between JPG, PNG, GIF and HEIC (read-only) formats
	BE_SMTPServer: new parameter to control reuse of the SMTP connection when sending bulk email


Functions Removed

BE_JSONPath_Deprecated
BE_JSON_Error_Description_Deprecated
BE_WriteTextFileToContainer_Deprecated


New Named Constants

BE_ScriptControlHalt: an option for the "scriptControl" parameter of BE_ScriptExecute
BE_ScriptControlExit: an option for the "scriptControl" parameter of BE_ScriptExecute
BE_ScriptControlResume: an option for the "scriptControl" parameter of BE_ScriptExecute
BE_ScriptControlPause: an option for the "scriptControl" parameter of BE_ScriptExecute


Changes

German Localization on macOS, iOS & Windows

BE_ClipboardGetText: correctly get FMP Theme data on Windows
BE_ExecuteSystemCommand: try not to leave zombie processes behind [Github #212]
BE_FileCopy: added parameter to replaceDestinationFile
BE_FileMove: added parameter to replaceDestinationFile
BE_FileReadText: fix for bugs/crashes when reading unicode text
BE_RegularExpression: support the g option for match in addition to replace
BE_SMTPSend: do not send single part messages as "multipart"
BE_XMLStripNodes: now accepts text/xml input (as per BE_XMLParse)
BE_XMLValidate: rename parameters to more accurately reflect the data type required
BE_XSLTApply: rename to BE_XSLT_Apply
BE_XSLT_Apply: correct an issue relating to Unicode in stylesheets
BE_Unzip: return a value list of paths to the extracted files

Get ( InstalledFMPlugins ): Pro version identifies itself as "BaseElements" [Jira #34]


curl updated from 7.76.1 to 7.84.0
duktape updated from 2.6.0 to 2.7.0
FileMaker plug-in SDK updated to version 19.5.4.401



########################################################################
Version 4.2.6
########################################################################

November 21, 2022


Changes

BE_Curl_Set_Option: Support for CURLOPT_XOAUTH2_BEARER


########################################################################
Version 4.2.5
########################################################################

November 11, 2022


Changes

BE_ScriptExecute: pass in the parameter when script control is supplied


########################################################################
Version 4.2.4
########################################################################

March 16, 2022


Changes

BE_EvaluateJavaScript: now available on all platforms
BE_ExecuteSystemCommand: fix for sometime "hang" on Windows [Jira #104]


########################################################################
Version 4.2.3
########################################################################

December 21, 2021


Changes

BE_SMTPSend: don't bracket full name/address of MailRecipients in the To Header


########################################################################
Version 4.2.2
########################################################################

November 3, 2021


iOS Support for 4.2.x

Changes

BE_SMTPSend: work around MS's interpretation of MIME::Content-Type::name [Jira #93]


########################################################################
Version 4.2.1
########################################################################

September 20, 2021


Changes

BE_FileOpen: correctly support/encode unicode paths (macOS)
BE_ExecuteSystemCommand: fix "too many parameters" error
BE_ExecuteSystemCommand: correctly tokenize command arguments when executing using a shell on Windows

Restore support for FM17


########################################################################
Version 4.2
########################################################################

August 11, 2021

Now native for Apple Silicon ( M1 etc )

New Functions

BE_FTP_Upload_File
BE_FileReplaceText
BE_XMLTidy


Functions Removed

BE_Base64_Decode_Deprecated
BE_Base64_Encode_Deprecated
BE_Base64_URL_Encode_Deprecated
BE_HMAC_Deprecated
BE_JPEG_Recompress_Deprecated
BE_JSON_Encode_Deprecated
BE_OAuthRequestAccessToken_Deprecated
BE_XeroGenerateKeys_Deprecated
BE_XeroSetTokens_Deprecated


Changes

BE_AlternateButton: renamed to BE_ButtonAlternate
BE_CancelButton: renamed to BE_ButtonCancel
BE_ConvertContainer: convert images types from container files natively
BE_ConvertContainer: width & height parameters removed
BE_ConvertContainer: plug memory leak
BE_ContainerCompress: plug memory leak
BE_Decrypt_AES: renamed to BE_DecryptAES
BE_Encoding_Base64: renamed to BE_EncodingBase64
BE_Encoding_Hex: renamed to BE_EncodingHex
BE_Encrypt_AES: renamed to BE_EncryptAES
BE_ExecuteSystemCommand: executeUsingShell parameter added
BE_ExtractScriptVariables: plug memory leak
BE_ExtractScriptVariables: renamed to BE_TextExtractWords
BE_FileImport: plug memory leak
BE_FileMakerSQL: return container/binary data in addition to text (new asText parameter) 
BE_FileMakerSQL: outputPath parameter added 
BE_HTTP_GET_File: renamed to BE_HTTP_GETFile
BE_HTTP_PUTData: plug memory leak
BE_JSON_Encode_Deprecated: plug memory leak
BE_JSONPath_Deprecated: plug memory leak
BE_MessageDigestAlgorithm_MD5: renamed to BE_MessageDigestAlgorithmMD5
BE_MessageDigestAlgorithm_MDC2: renamed to BE_MessageDigestAlgorithmMDC2
BE_MessageDigestAlgorithm_SHA: renamed to BE_MessageDigestAlgorithmSHA
BE_MessageDigestAlgorithm_SHA1: renamed to BE_MessageDigestAlgorithmSHA1
BE_MessageDigestAlgorithm_SHA224: renamed to BE_MessageDigestAlgorithmSHA224
BE_MessageDigestAlgorithm_SHA256: renamed to BE_MessageDigestAlgorithmSHA256
BE_MessageDigestAlgorithm_SHA384: renamed to BE_MessageDigestAlgorithmSHA384
BE_MessageDigestAlgorithm_SHA512: renamed to BE_MessageDigestAlgorithmSHA512
BE_OKButton: renamed to BE_ButtonOK
BE_PDFAppend: correctly append more than one PDF document
BE_PDFGetPagaes: add garbage collection to reduce file size
BE_ScriptExecute: scriptControl Parameter added
BE_SMTPSend: plug memory leak
BE_SMTPSend: do not send a bare line feed after the end of the message
BE_StripInvalidUTF16CharactersFromXMLFile: renamed to BE_XMLStripInvalidCharacters
BE_TextExtractWords: make visible in dialog boxes
BE_ValuesContainsDuplicates: plug memory leak
BE_XML_Canonical: renamed to BE_XMLCanonical
BE_XMLStripInvalidCharacters: make visible in dialog boxes
BE_XMLStripNodes: make visible in dialog boxes
BE_XPath: plug memory leak
BE_XSLTApply: plug memory leak
BE_UnZip: UnZip archives from containers
BE_Zip: Zip files from containers
BE_Zip: remove blank/empty paths from the input prior to archiving

 	
Curl Options Changes

Added
- CURLOPT_CONNECT_TO
- CURLOPT_TCP_FASTOPEN
- CURLOPT_KEEP_SENDING_ON_ERROR
- CURLOPT_SUPPRESS_CONNECT_HEADERS
- CURLOPT_SOCKS5_AUTH
- CURLOPT_REQUEST_TARGET
- CURLOPT_SSH_COMPRESSION
- CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
- CURLOPT_DNS_SHUFFLE_ADDRESSES
- CURLOPT_HAPROXYPROTOCOL
- CURLOPT_DISALLOW_USERNAME_IN_URL
- CURLOPT_TLS13_CIPHERS
- CURLOPT_PROXY_TLS13_CIPHERS
- CURLOPT_UPLOAD_BUFFERSIZE
- CURLOPT_DOH_URL
- CURLOPT_MAXAGE_CONN
- CURLOPT_MAIL_RCPT_ALLLOWFAILS
- CURLOPT_PROXY_ISSUERCERT
- CURLOPT_AWS_SIGV4

Removed
- CURLOPT_DNS_USE_GLOBAL_CACHE


Added support for macOS on Apple M1 hardware
Added support for Ubuntu
Removed support for Centos


boost libraries updated to 1.75_0 from 1.70_0
duktape updated from 2.3.0 to 2.6.0
FMWrapper updated to 19.3.1.43
Fontconfig library updated from 2.12.1 to 2.13.1
Freetype library updated from 2.7 to 2.10.4
libcurl updated from 7.48.0 to 7.75.0
libiconv updated from 1.14 to 1.16 (and build our own for all platforms)
libjpeg-turbo updated from 1.4.2 to 2.0.6
libssh2 upated from 1.7.0 to 1.9.0
libxml2 updated from 2.9.4 to 2.9.10
lib(e)xslt updated from 1.1.29 to 1.1.34
OpenSSL updated from 1.0.2g to 1.1.1
poco updated from 1.9.2 to 1.10.1
podofo updated from 0.9.4 to 0.9.7


########################################################################
Version 4.1.4
########################################################################

September 9, 2020


New Functions

BE_FilePatternCount: a PatternCount that works with text files


Changes

BE_Encoding_Base64: Reinstated
BE_Encoding_Hex: Reinstated
BE_FileReadText: Added option to pull only some lines from a file
BE_OAuthRequestAccessToken: Deprecated
BE_DialogProgress: force immediate display on macOS
BE_PDFAppend: appendPathOrContainer may now specify a value list of paths
BE_XeroGenerateKeys: Deprecated
BE_XeroSetTokens: Deprecated
BE_XPath: ignore xml text encoding hint
BE_XSLTApply: ignore xml text encoding hint

Update to v19 of the FMX SDK


########################################################################
Version 4.1.3
########################################################################

May 3, 2020


New Functions

BE_XML_Canonical: create the canonized image of the XML input


Changes

BE_ExecuteSystemCommand: Do not crash when attempting to execute an empty command
BE_ExecuteSystemCommand: MacOS, Linux and iOS enable multiple calls to shell like version 4.0.5
BE_FileListFolder: Correctly handle file names containing Unicode Characters on Windows
BE_Zip: don't crash when there's nothing to archive
		return an error if more than one file with the same name is added to the archive
		
Update to v18 of the FMX SDK


Breaking Change:

BE_HTTP_SetCustomHeader: Setting a header with ( "HeaderName"; "") now sets the header to ""
To remove the header call BE_HTTP_SetCustomHeader with ( "HeaderName" ) as before.


########################################################################
Version 4.1.2
########################################################################

August 7, 2019


Changes

Correct an issue where the plugin did not load under Windows 7.


Update to Poco 1.9.2


########################################################################
Version 4.1.1 [macOS only]
########################################################################

July 17, 2019

BE_GetSystemDrive: fix an issue which resulted in the function crashing for some users on macOS


########################################################################
Version 4.1
########################################################################

July 16, 2019


New Functions

BE_ContainerGetType
BE_ContainerListTypes
BE_GetSystemDrive
BE_PreferenceDelete
BE_StackPush
BE_StackPop
BE_StackCount
BE_StackDelete
BE_VariableGet
BE_VariableSet


Changes

BE_Encrypt_AES: reverse deprecation
BE_ExecuteSystemCommand: error on timeout
BE_Decrypt_AES: reverse deprecation
BE_JSON_ArraySize: optional path parameter added
BE_RegularExpression: new option, v, to treat the input as a value list
BE_ScriptExecute: returns not implemented for server versions

Update to Duktape 2.3.0


########################################################################
Version 4.0.5
########################################################################

April 26, 2019


New Functions

BE_DebugInformation


Changes

BE_FileSaveDialog: Set the message rather than the title (which is no longer shown)
BE_PDFGetPages: "to" parameter behaves as documented
BE_PDFGetPages: output files should be smaller in some cases
BE_RegularExpression: handle the expression "()"
BE_SetTextEncoding: correct function description

Code Signing for Windows
Improved support for running in multi-threaded applications

Update to Boost 1.7.0
Update to Poco 1.9.0


########################################################################
Version 4.0.4
########################################################################

February 8, 2019


Changes

BE_EvaluateJavaScript: not implemented on FMS/Cloud
BE_MessageDigest: no longer deprecated
BE_SMTPSend: Don't store the date for the rfc1123 date header


########################################################################
Version 4.0.3
########################################################################

October 9, 2018


New Functions

BE_ClipboardGetFile
BE_ClipboardSetFile


Changes

BE_ArraySetFromValueList: Correctly remove all empty values
BE_SMTPSend: Use local time rather than utc for the rfc1123 date header
BE_XMLParse: allow the input to be XML Text or a file path


Code Signing for Apple platforms


########################################################################
Version 4.0.2
########################################################################

July 18, 2018


Deprecated

BE_WriteTextFileToContainer


Renamed

BE_ApplyXSLT => BE_XSLTApply
BE_ApplyXSLTInMemory => BE_XSLT_ApplyInMemory
BE_Array_Change_Value => BE_ArrayChangeValue
BE_Array_Delete => BE_ArrayDelete
BE_Array_Find => BE_ArrayFind
BE_ClipboardText => BE_ClipboardGetText
BE_CopyFile => BE_FileCopy
BE_CreateFolder => BE_FolderCreate
BE_Curl_Set_Option => BE_CurlSetOption
BE_Curl_Trace => BE_CurlTrace
BE_CurrentTimeMilliseconds => BE_TimeCurrentMilliseconds
BE_DeleteFile => BE_FileDelete
BE_DisplayDialog => BE_DialogDisplay
BE_ExecuteScript => BE_ScriptExecute
BE_File_Modification_Timestamp => BE_FileModificationTimestamp
BE_FileType_All => BE_FileTypeAll
BE_FileType_File => BE_FileTypeFile
BE_FileType_Folder => BE_FileTypeFolder
BE_Get_Machine_Name => BE_GetMachineName
BE_GetPreference => BE_PreferenceGet
BE_HTTP_PUT_DATA => BE_HTTP_PUTData
BE_HTTP_PUT_FILE => BE_HTTP_PUTFile
BE_HTTP_Response_Code => BE_HTTP_ResponseCode
BE_HTTP_Set_Custom_Header => BE_HTTP_SetCustomHeader
BE_HTTP_Set_Proxy => BE_HTTP_SetProxy
BE_ImportFile => BE_FileImport
BE_JPEG_Recompress => BE_JPEGRecompress
BE_MoveFile => BE_FileMove
BE_OAuth_RequestAccessToken => BE_OAuthRequestAccessToken
BE_OpenFile => BE_FileOpen
BE_PDF_Append => BE_PDFAppend
BE_PDF_GetPages => BE_PDFGetPages
BE_PDF_PageCount => BE_PDFPageCount
BE_ProgressDialog => BE_DialogProgress
BE_ProgressDialog_Update => BE_DialogProgressUpdate
BE_ReadTextFromFile => BE_FileReadText
BE_SaveFileDialog => BE_FileSaveDialog
BE_SelectFile => BE_FileSelectDialog
BE_SelectFolder => BE_FolderSelectDialog
BE_SetClipboardText => BE_ClipboardSetText
BE_SetPreference => BE_PreferenceSet
BE_SignatureGenerate_RSA => BE_SignatureGenerateRSA
BE_SignatureVerify_RSA => BE_SignatureVerifyRSA
BE_SMTP_AddAttachment => BE_SMTPAddAttachment
BE_SMTP_Send => BE_SMTPSend
BE_SMTP_Server => BE_SMTPServer
BE_SMTP_Set_Header => BE_SMTPSetHeader
BE_StripXMLNodes => BE_XMLStripNodes
BE_UTCMilliseconds => BE_TimeUTCMilliseconds
BE_Values_ContainsDuplicates => BE_ValuesContainsDuplicates
BE_Values_FilterOut => BE_ValuesFilterOut
BE_Values_Sort => BE_ValuesSort
BE_Values_TimesDuplicated => BE_ValuesTimesDuplicated
BE_Values_Trim => BE_ValuesTrim
BE_Values_Unique => BE_ValuesUnique
BE_Vector_DotProduct => BE_VectorDotProduct
BE_Vector_EuclideanDistance => BE_VectorEuclideanDistance
BE_WriteTextToFile => BE_FileWriteText
BE_Xero_GenerateKeys => BE_XeroGenerateKeys
BE_Xero_SetTokens => BE_XeroSetTokens
BE_XML_Parse => BE_XMLParse
BE_XML_Validate => BE_XMLValidate


########################################################################
Version 4.0.1
########################################################################

June 29, 2018


Changes

BE_SMTP_Send: correct an issue where mail with multiple "to" recipients would cause an error


########################################################################
Version 4.0
########################################################################

June 20, 2018


New Functions

BE_Array_Change_Value
BE_Array_Delete
BE_Array_Find
BE_CipherDecrypt
BE_CipherEncrypt
BE_InstallScriptStep
BE_PDF_Append
BE_PDF_GetPages
BE_PDF_PageCount
BE_PerformScriptStep
BE_RemoveScriptStep
BE_SMTP_Set_Header
BE_SignatureGenerate_RSA
BE_SignatureVerify_RSA
BE_XML_Validate


Deprecated

BE_Base64_Decode
BE_Base64_Encode
BE_Base64_URL_Encode
BE_Encoding_Base64
BE_Encoding_Hex
BE_Encrypt_AES
BE_Decrypt_AES
BE_HMAC
BE_JSON_ArraySize
BE_JSON_Encode
BE_JSON_Error_Description
BE_JSONPath
BE_MessageDigest
BE_MessageDigestAlgorithm_MD5
BE_MessageDigestAlgorithm_SHA256
BE_MessageDigestAlgorithm_MDC2
BE_MessageDigestAlgorithm_SHA
BE_MessageDigestAlgorithm_SHA1
BE_MessageDigestAlgorithm_SHA224
BE_MessageDigestAlgorithm_SHA384
BE_MessageDigestAlgorithm_SHA51
BE_WriteTextFileToContainer


Changes

BE_ApplyXSLT: xml_path parameter may point to a container
BE_ArraySetFromValueList: optional parameter, retainEmptyValues (default = false) added
BE_ClipboardText:	retrieve utf-16 in addition to utf-8 on macOS for FileMaker Custom Menus only
					do not crash when there is no text/utf-8 coercion available for a data type (macOS)
					return error 3, command not available on Linux
BE_ClipboardFormats: return error 3, command not available on iOS and Linux
BE_DisplayDialog: return error 3, command not available on iOS, Linux and under FMS
BE_ExportFieldContents:	allow for images with resource forks
						return a path to temporary file if one in not specified
BE_ExtractScriptVariables:	no longer appears in calculation dialogs
							optional parameter to specify the variable prefix (default $)
BE_FileSize: return the size for directories in addition to files
BE_FMS_* functions removed
BE_GetLastError: thread safe
BE_GetPreference: return error 3, command not available on Linux
BE_HMAC: set BE_GetLastError when the key or message encoding is invalid
BE_HTTP_*: use Authorization header for Xero OAuth
BE_HTTP_POST: filename parameter added so that the response can be saved to a container as a file
BE_HTTP_Set_Custom_Header: call with no parameters to delete all Headers
BE_InstallScriptStep: renamed to BE_ScriptStepInstall
BE_ListFilesInFolder: option added to not include hidden files in the result
BE_OpenFile: return error 3, command not available on iOS and Linux
BE_OpenURL: return error 3, command not available on Linux
BE_PerformScriptStep: renamed to BE_ScriptStepPerform
BE_ProgressDialog: return error 3, command not available on iOS, Linux and under FMS
BE_ProgressDialog_Update: return error 3, command not available on iOS, Linux and under FMS
BE_ReadTextFromFile:	read text from a file in a container
						do not exit after the first invalid from encoding
						read text from a file in a container
BE_RemoveScriptStep: renamed to BE_ScriptStepRemove
BE_SaveFileDialog: return error 3, command not available on iOS, Linux and under FMS
BE_SelectFile: return error 3, command not available on iOS, Linux and under FMS
BE_SelectFolder: return error 3, command not available on iOS, Linux and under FMS
BE_SetClipboardText: return error 3, command not available on Linux
BE_SetPreference: return error 3, command not available on Linux
BE_SMTP_AddAttachment:	use the OS temp directory when running under fms
						allow the content-type for an attachment to be set
						attachment may be either a container or a file
BE_SMTP_Send: rfc 1123 date header added
BE_SplitBEFileNodes: no longer appears in calculation dialogs
BE_StripXMLNodes: no longer appears in calculation dialogs

Other

XML/XSLT functions thread safe
Added support for function descriptions when registering functions


########################################################################
Version 3.3.8
########################################################################

June 21, 2018


Changes

BE_HTTP_*: use Authorization header for Xero OAuth


########################################################################
Version 3.3.7
########################################################################

February 16, 2018


Changes

BE_XPath: do not crash when attempting to get a non-existent value as xml
BE_SMTP_Send:	do not fold (long) header lines
				encode email subjects per rfc 1342 / 2047
BE_StripInvalidUTF16CharactersFromXMLFile: optional parameter, resultPath, added


########################################################################
Version 3.3.6
########################################################################

August 30, 2017


Changes

BE_HTTP_POST: Allow a file (@/path/...) to be specified as the post args for a POST
BE_SMTP_Send:	do not send bare line feeds
				use network line endings when encoding base64 attachments


########################################################################
Version 3.3.5
########################################################################

August 14, 2017


Changes

BE_ApplyXSLT: fix errors with some unicode file paths on Windows
BE_RegularExpression: do not hang when the expression is empty
BE_HTTP_POST: always use POST (even when no post args are present)
BE_SMTP_Send: don't show bcc addresses


########################################################################
Version 3.3.4
########################################################################

March 7, 2017


Changes

BE_JSON_Path: correct crashing bug when loading json documents
BE_ListFilesInFolder: do not push directories when not recursing
BE_StripInvalidUTF16CharactersFromXMLFile: return the number of characters stripped
BE_StripInvalidUTF16CharactersFromXMLFile: correctly handle Ascii 26

Use Poco 1.7.8
Use updated jansson
Use libc++11


########################################################################
Version 3.3.3
########################################################################

December 9, 2016


Changes

BE_JSON_Encode: encode empty number fields as 0


########################################################################
Version 3.3.2
########################################################################

December 5, 2016


Changes

BE_Curl_Set_Option: CURLOPT_LOW_SPEED_LIMIT added
BE_HTTP_Response_Headers: "header" parameter added so that the named header only is returned


########################################################################
Version 3.3.1
########################################################################

November 7, 2016


Changes

BE_JSONPath, BE_JSON_Encode: Workaround for number rounding problems in jansson (Zendesk #141)
BE_SMTP_Send: Add "MIME-Version" header to SMTP messages (GitHub #124)

Use poco 1.7.6


########################################################################
Version 3.3
########################################################################

July 29, 2016


New Functions

BE_ArraySetFromValueList
BE_ArrayGetSize
BE_ArrayGetValue
BE_Gzip
BE_HTTP_PATCH
BE_Pause
BE_SMTP_AddAttachment
BE_Values_Trim
BE_UnGzip

Hidden

BE_FMS_Close_Files
BE_FMS_Download_Database
BE_FMS_List_Files
BE_FMS_List_Clients
BE_FMS_List_Schedules
BE_FMS_Open_Files
BE_FMS_Pause_Files
BE_FMS_Remove_Files
BE_FMS_Resume_Files
BE_FMS_Run_Schedule
BE_FMS_Upload_Database


Changes

BE_ExportFieldContents: recurively create any directories needed
BE_GetURL renamed to BE_HTTP_GET
BE_HTTP_POST:james correct a problem where Xero connections could fail under FMS on Windows
BE_ListFilesInFolder: follow aliases/symlinks when listing directory contents
BE_SaveURLToFile renamed to BE_HTTP_GET_File
BE_SMTP_Send: can send files/images in container fields as attachments
BE_SMTP_Send: correct a problem where messages would fail to send through some SMTP servers when multiple to/cc/bcc addresses were specified
BE_StripInvalidUTF16CharactersFromXMLFile: do not show in calculation dialogs
BE_Values_Sort: add parameters to allow ascending/descending and numeric sort order
BE_WriteTextToFile: recurively create any directories needed

Update third-party libraries: libxml2 2.9.4, libxslt 1.1.29, poco 1.7.3, libcurl-2.48, libssh2-1.7.0, openssl-1.0.2g

Fix github #123


########################################################################
Version 3.2
########################################################################

January 14, 2016


New Functions

BE_FTP_Delete
BE_Values_TimesDuplicated
BE_Vector_DotProduct
BE_Vector_EuclideanDistance


Changes

BE_ConvertContainer: visible in calculation dialogs
BE_Gzip: renamed to BE_ContainerCompress
BE_JPEG_Recompress: takes a scaling factor rather than width and height
BE_SMTP_Send: explicitly set the charset for the text & html parts
BE_UnGzip: renamed to BE_ContainerUncompress
BE_XOR: visible in calculation dialogs
Use libcurl 7.46 (compiled against Secure Transport on OS X)
Use OpenSSL 1.0.2e
Static link libxml2 (2.9.1) & libxslt/libexslt (1.1.28)
Support for new curl otpions:
- CURLOPT_DEFAULT_PROTOCOL
- CURLOPT_STREAM_WEIGHT


########################################################################
Version 3.1.2
########################################################################

November 23, 2015


New Functions

BE_File_Modification_Timestamp


Changes

Build OpenSSL rather than use the Apple supplied one on OS X
Strip names from email addresses before passing them to curl
Use libcurl 7.44
Support additional curl options
- CURLOPT_PIPEWAIT
- CURLOPT_PROXY_SERVICE_NAME
- CURLOPT_SERVICE_NAME
- CURLOPT_CERTINFO
- CURLOPT_SSL_FALSESTART
- CURLOPT_PATH_AS_IS
- CURLOPT_SSL_VERIFYSTATUS
- CURLOPT_UNIX_SOCKET_PATH
- CURLOPT_PINNEDPUBLICKEY
- CURLOPT_PROXYHEADER
- CURLOPT_HEADEROPT
- CURLOPT_EXPECT_100_TIMEOUT_MS
- CURLOPT_SSL_ENABLE_NPN
- CURLOPT_SSL_ENABLE_ALPN
- CURLOPT_XFERINFOFUNCTION
- CURLOPT_TCP_KEEPALIVE
- CURLOPT_TCP_KEEPIDLE
- CURLOPT_TCP_KEEPINTVL
Add the plugin specific curl option: BE_CURLOPT_FORCE_STARTTLS for use with SMTP
Use Poco 1.6.1
Set the message area rather than the dialog title for Open File dialogs on OS X
Correct an issue where BE_ApplyXSLT could fail to load external entities on Windows
Use libjpeg-turbo 1.4.2
BE_JPEG_Recompress: use FMP like behaviour when no image is supplied rather than generate an error
BE_JPEG_Recompress: resize/scale for all values


########################################################################
Version 3.1.1
########################################################################

July 22, 2015


Changes

Get inner rather than outer xml for BE_SplitBEXMLFiles


########################################################################
Version 3.1
########################################################################

July 16, 2015


New Functions

BE_ContainerIsCompressed
BE_ConvertContainer
BE_Curl_Trace
BE_Gzip
BE_ImportFile
BE_JPEG_Recompress
BE_UnGzip
BE_Values_ContainsDuplicates
BE_Xero_GenerateKeys

Experimental (Hidden) Functions

BE_RegularExpression
BE_XOR


Changes

BE_Curl_Set_Option: label function parameters as optional
BE_Curl_Set_Option: the options CURLOPT_HTTPAUTH & CURLOPT_PROXYAUTH take named constants
BE_EvaluateJavaScript: add the ability to call FM scripts and evaluate FM calculations from JavaScript
BE_EvaluateJavaScript: now visible in calculation dialogs
BE_HMAC: add a parameter to allow and input encoding for Base64 and Hex
BE_HTTP_POST: allow post args to specify file paths using the @ syntax
BE_HTTP_POST: do not crash when a http post contains a parameter that is not a key=value pair
BE_JSON_Encode: correctly handle leading 0 for real numbers
BE_JSON_Error_Description: do not change the value of BE_GetLastError
BE_SMTP_Send: allow the use of custom curl options and headers
BE_SMTP_Send: force attachments to the end of the message
BE_SMTP_Send: now visible in calculation dialogs
BE_SMTP_Send: now works with self signed SSL certificates by default
BE_SMTP_Send: replyTo parameter added
BE_SMTP_Server: now visible in calculation dialogs
BE_SplitBEXMLFiles: correct a problem with accessing xml nodes
BE_Values_Unique, BE_Values_FilterOut: add option to be case insensitive

Ensure that Get ( InstalledFMPlugins ) returns the same value on both OS X and Windows
Remove support for Windows XP


########################################################################
Version 3.0
########################################################################

December 19, 2014


New Functions

BE_ExportFieldContents
BE_FTP_Upload
BE_HMAC
BE_Xero_SetTokens

Experimental (Hidden) Functions

BE_EvaluateJavaScript
BE_SMTP_Server
BE_SMTP_Send

Removed

BE_ExecuteShellCommand
BE_FileMaker_Tables
BE_FileMaker_Fields

Changes

BE_ProgressDialog, BE_ProgressDialog_Update: improved error handling
BE_ListFilesInFolder: force the use of the correct path separator for the platform
BE_MessageDigest: return an error when an invalid algorithm is supplied
BE_Zip, BE_Unzip: improved error handling, create empty directories in archives

Improved handling of file paths containing unicode characters on Windows
Transparently handle compressed file streams in container fields


########################################################################
Version 2.3.1
########################################################################

August 29, 2014


Changes

BE_Decrypt_AES: fix a crash when attempting to decrypt data not encrypted with the plug-in
BE_ListFilesInFolder: improved unicode support

Correct a focus problem with dialog boxes on Windows


########################################################################
Version 2.3
########################################################################

June 23, 2014


New Functions

BE_Decrypt_AES
BE_Encrypt_AES
BE_SaveFileDialog

Changes

BE_ExecuteShellCommand, BE_ExecuteSystemCommand: improved error handling
BE_ClipboardFormats, BE_ClipboardText, BE_SetClipboardText: support CF_FILEGROUPDESCRIPTORW, CF_FILENAMEW & CF_FILENAMEMAPW clipboard formats (Win)
BE_FileMakerSQL: fix memory leak
BE_ListFilesInFolder: option to list contents recursively
BE_ListFilesInFolder: option to return full, rather than relative paths
BE_SaveURLToFile: optionally show a progress dialog
BE_Zip: zip multiple files/folders

Load correctly on XP (broken in 2.1)


########################################################################
Version 2.2.2
########################################################################

April 11, 2014


Changes

Update OpenSSL for the "Heartbleed" bug (Win)


########################################################################
Version 2.2.1
########################################################################

March 12, 2014


Changes

Allow working with large files for all XML functions
BE_XPath, BE_XPathAll: return an empty string when getting an empty node set as xml
BE_Zip: correctly set the path delimiters when adding files to an archive (Win)


########################################################################
Version 2.2
########################################################################

February 25, 2014


New Functions

BE_SplitBEFileNodes


Changes

BE_ExecuteShellCommand: work-around for crashing bug
BE_ExecuteSystemCommand: never return output when the timeout is 0
BE_ListFilesInFolder: return "?" and sets BE_GetLastError when the directory does not exist
BE_MessageDigest: correctly handle unicode input
BE_SelectFile: allow selection of multiple files
BE_SelectFile, BE_SelectFolder: use modern dialogs on Vista and later (Win)
BE_XPAth: optionally return node values as XML
BE_XPath, BE_XPathAll: support objects of type XPATH_BOOLEAN, XPATH_NUMBER and XPATH_STRING
BE_Unzip, BE_Zip: allow control over the name/destination of the output


########################################################################
Version 2.1
########################################################################

June 19, 2013


New Functions

BE_Curl_Set_Option
BE_HTTP_PUT_Data
BE_HTTP_PUT_File
BE_JSON_ArraySize
BE_JSON_Encode
BE_JSON_Error_Description
BE_JSONPath
BE_OAuth_RequestAccessToken
BE_ProgressDialog
BE_ProgressDialog_Update
BE_Values_FilterOut
BE_Values_Sort
BE_Values_Unique


Changes

BE_CreateFolder: create directory structures recursively
BE_ClipboardFormats, BE_ClipboardText, BE_SetClipboardText: support default/system clipboard format names on (Win)
BE_StripXMLNodes: handle nested CDATA sections correctly


########################################################################
Version 2.0
########################################################################

February 5, 2013


New Functions

BE_Base64_URL_Encode
BE_CurrentTimeMilliseconds
BE_ExecuteSystemCommand
BE_FileSize
BE_HTTP_Delete
BE_HTTP_PUT
BE_HTTP_Set_Proxy
BE_StripXMLNodes
BE_TimeZoneOffset
BE_UTCMilliseconds


Changes

BE_Base64_Decode: Base 64 URL decode support added
BE_Base64_Encode: encode images in container fields
BE_ExecuteShellCommand: depreciated
BE_FileMakerTables, BE_FileMakerFields: depreciated
BE_GetLastError: do not reset the last error when calling BE_GetURL, BE_SaveURLToFile & BE_HTTP_[POST|PUT|DELETE]
BE_GetPreferences, BE_SetPreferences: fix memory leak (OS X)
BE_HTTP_POST: added options for username and password
BE_SelectFolder: "New Folder" button added
BE_VersionAutoUpdate: now uses the form: xx Major version xx Minor version xx Revision xx Build
BE_Zip: bug fix

64-bit support


########################################################################
Version 1.3.2
########################################################################

June 19, 2012


Changes

BE_GetURL: bug fix
BE_Unzip: bug fix


########################################################################
Version 1.3.1
########################################################################

March 2, 2012


Changes

BE_Base64_Decode: both parameters are required
BE_Base64_Decode, BE_Base64_Encode: bug fix


########################################################################
Version 1.3
########################################################################

January 31, 2012


New Functions

BE_Base64_Decode
BE_Base64_Encode
BE_GetLastDDLError
BE_GetPreferences
BE_HTTP_POST
BE_HTTP_Response_Code
BE_HTTP_Response_Headers
BE_HTTP_Set_Custom_Header
BE_OpenFile
BE_SetPreferences
BE_SetTextEncoding
BE_Unzip
BE_Zip


Changes

BE_FileMakerSQL: accept multi-character delimiters
BE_FileMakerSQL: option to specify the database
BE_GetURL, BE_SaveURLToFile: HTTPS enabled
BE_SelectFile, BE_SelectFolder: option to specify the folder to start in


########################################################################
Version 1.2.1
########################################################################

August 19, 2011


Changes

BE_ExecuteShellCommand: bug fix


########################################################################
Version 1.2
########################################################################

July 26, 2011


New Functions

BE_ApplyXSLTInMemory
BE_ExecuteScript
BE_FileMakerSQL
BE_GetLastError
BE_GetURL
BE_MessageDigest
BE_SaveURLToFile
BE_XPath
BE_XPathAll


Changes

BE_CopyFiles: handle directories
BE_ExecuteShellCommand: waitForResponse parameter added


########################################################################
Version 1.1
########################################################################

May 2, 2011


New Functions

BE_CopyFile
BE_ExecuteShellCommand
BE_FileMaker_Fields
BE_FileMaker_Tables
BE_ListFilesInFolder
BE_MoveFile
BE_OpenURL


Changes

BE_CreateFolder & BE_DeleteFile return error codes rather than ? for filesystem errors
BE_FileExists, BE_ReadTextFromFile, BE_WriteTextToFile & BE_StripInvalidUTF16CharactersFromXMLFile use the boost filesystem error code rather than the generic kFilesystemError where possible
BE_WriteTextToFile: allow text to be appended to a file (not just create/overwrite it)
BE_WriteTextToFile returns an error code, 0 on success, not a boolean, true on success

########################################################################
Version 1.0
########################################################################

October 8, 2010


BE_Version
BE_VersionAutoUpdate
BE_ClipboardFormats
BE_ClipboardText
BE_SetClipboardText
BE_CreateFolder
BE_DeleteFile
BE_FileExists
BE_ReadTextFromFile
BE_WriteTextToFile
BE_SelectFile
BE_SelectFolder
BE_DisplayDialog
BE_ApplyXSLT
BE_ExtractScriptVariables
BE_StripInvalidUTF16CharactersFromXMLFile
