Skip to content

Commit

Permalink
Revert "Merge branch 'development' of https://github.com/GoyaPtyLtd/B…
Browse files Browse the repository at this point in the history
…aseElements-Plugin into development"

This reverts commit bcc0713, reversing
changes made to 5477a4f.
  • Loading branch information
nickorr committed Jul 16, 2024
1 parent b80863c commit 967b7b3
Show file tree
Hide file tree
Showing 123 changed files with 171 additions and 4,793 deletions.
153 changes: 153 additions & 0 deletions docs/Compatiblity.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,156 @@ BE Plugins prior to 4.2.0 run just fine under Apple Silicon such as the M1 under
Version 3.0.x was the last release to run under Windows XP.

BE Plugin Version 1.2 and later requires FMP 11 or later because of the new SQL engine. BE 1.1 will run in ffm Pro 10 and earlier.

## Function Compatibility

Definitions for the table below :

✔︎ : Tested and functional.
✕ : Does not work on this platform.
NA : Does not apply.
No value - untested or functionality is indeterminate.
Active : still in development and supported

Also used :

**Obsolete** : has been made redundant by native FMP functionality, but we haven't yet removed it from the plugin.  Some functions like the HTTP functions can be removed but are in use heavily so we recommend switching to native functions where you can. There are still some small uses cases that the BE function covers that the internal functions don't, so they will remain in the plugin for the foreseeable future.  However, other functions that have exact matching functionality might still have a use : eg the ValuesSort function in BE has shown to be faster in some situations than the internal one.

**Deprecated** : has been made redundant or otherwise no longer supported, and will be removed in a future version, likely in the next major release.  These functions have native alternatives in the current BE release and will no longer appear in the function list, but do still work if used.

**Beta** : new functionality with an as yet indeterminate feature set, so may change, or may even be removed.  Likely to change based on feedback.

**Internal** : a very specific and custom function designed for use in BaseElements and likely not very applicable to the general public.  May not appear in function lists.

Function Name Status Mac FMP Win FMP Mac FMS Win FMS Linux FMS iOS Thread Safe prior to 4.0.4
ArrayChangeValue Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
ArrayDelete Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
ArrayFind Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
ArrayGetSize Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
ArrayGetValue Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
ArraySetFromValueList Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
ArrayDelete Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
CipherDecrypt Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
CipherEncrypt Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
ClipboardFormats Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
ClipboardGetText Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
ClipboardSetText Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
ClipboardGetFile Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
ClipboardSetFile Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
ContainerCompress Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ContainerIsCompressed Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ContainerUncompress Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ContainerConvert Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ContainerGetType Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ContainerListTypes Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
DialogDisplay Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
DialogProgress Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
DialogProgressUpdate Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
Decrypt_AES Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
Encrypt_AES Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
EvaluateJavaScript Beta ✔︎ ✔︎ ✕ ✕ ✔︎ ✔︎ NA
ExecuteSystemCommand Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕ ✕
ExportFieldContents Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FileCopy Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FileDelete Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FileExists Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FileImport Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FilesListInFolder Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FileMakerSQL Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
FileModificationTimestamp Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FileMove Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FileOpen Active ✔︎ ✔︎ ✔︎ ✔︎ ✕ ✕ ✔︎
FileReadText Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FileSaveDialog Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
FileSelectDialog Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
FileSize Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FileWriteText Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FolderCreate Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FolderSelectDialog Active ✔︎ ✔︎ ✕ ✕ ✕ ✕ NA
GetLastDDLError Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ NA
GetLastError Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ NA
GetMachineName Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
GetSystemDrive Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Gzip Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
JPEG_Recompress Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
OAuth_RequestAccessToken Beta ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
JSON_ArraySize Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
OpenURL Active ✔︎ ✔︎ ✕ ✕ ✕ ✔︎ NA
MessageDigest Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
Pause Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
PDFAppend Active ✔︎ ✔︎ ✕ ✕ ✔︎ NA
PDFPageCount Active ✔︎ ✔︎ ✕ ✕ ✔︎ NA
PDFGetPages Active ✔︎ ✔︎ ✕ ✕ ✔︎ NA
PreferenceGet Active ✔︎ ✔︎ ✔︎ ✔︎ ✕ ✔︎ ✔︎
PreferenceSet Active ✔︎ ✔︎ ✔︎ ✔︎ ✕ ✔︎ ✔︎
PreferenceDelete Active ✔︎ ✔︎ ✔︎ ✔︎ ✕ ✔︎ ✔︎
RegularExpression Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ScriptExecute Active ✔︎ ✔︎ ✕ ✕ ✔︎ ✔︎ NA
ScriptStepInstall Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ScriptStepRemove Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ScriptStepPerform Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
SetTextEncoding Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
SignatureGenerate_RSA Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
SignatureVerify_RSA Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
StackPush Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ NA
StackPop Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ NA
StackCount Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ NA
StackDelete Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ NA
SMTP_AddAttachment Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
SMTP_Send Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
SMTP_Server Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
SMTP_SetHeader Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
TimeZoneOffset Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
TimeCurrentMilliseconds Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
UnGzip Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Unzip Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
TimeUTCMilliseconds Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ValuesContainsDuplicates Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ValuesFilterOut Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ValuesSort Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ValuesTimesDuplicated Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ValuesTrim Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ValuesUnique Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
VariableGet Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ NA
VariableSet Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ NA
Vector_DotProduct Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Vector_EuclideanDistance Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Version Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
VersionAutoUpdate Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Xero_GenerateKeys Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Xero_SetTokens Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✕
XML_Parse Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
XML_Validate Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
XOR Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
XPath Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
XPathAll Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
XSLTApply Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
XSLTApplyInMemory Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Zip Active ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎

SplitBEFileNodes Internal ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
StripXMLNodes Internal ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
ExtractScriptVariables Internal ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎

FTP_Delete Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
FTP_Upload Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
JSONPath Deprecated ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
JSON_Encode Deprecated ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
JSON_Error_Description Deprecated ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Curl_SetOption Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Curl_Trace Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HMAC Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_DELETE Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_GET Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_GET_File Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_PATCH Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_POST Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_PUT_DATA Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_PUT_FILE Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_Response_Code Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_Response_Headers Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_Set_Custom_Header Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
HTTP_Set_Proxy Obsolete ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Base64_Decode Deprecated ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Base64_Encode Deprecated ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
Base64_URL_Encode Deprecated ✔︎ ✔︎ ✔︎ ✔︎ ✔︎ ✔︎
2 changes: 1 addition & 1 deletion docs/Functions/BE_ArrayChangeValue.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

**Description**

Changes the *array* item at *valueNumber* to *newValue*.
Changes the array item at valueNumber to newValue in array number array.

**Parameters**

Expand Down
2 changes: 1 addition & 1 deletion docs/Functions/BE_ArrayDelete.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

**Description**

Removes *array* from memory.
Removes the array from memory.

**Parameters**

Expand Down
Empty file.
Empty file.
Empty file.
47 changes: 0 additions & 47 deletions docs/Functions/BE_CipherDecrypt.md
Original file line number Diff line number Diff line change
@@ -1,47 +0,0 @@
## BE_CipherDecrypt

BE_CipherDecrypt ( cipher ; encryptedData ; key ; iv ; { paddingBoolean ; fileNameWithExtension } )

**Description**

Decrypt *encryptedData* using *cipher*.

**Parameters**

* *cipher* ( default:AES-256-CBC ) : The cipher name to use. If the value is empty, "AES-256-CBC" will be used.
* *encryptedData* : The data to decrypt. It can be HEX encoded text or container field.
* *key* : The key to decrypt with. It can be HEX encoded text or container field.
* *iv* : The IV (initialization vector). It can be HEX encoded text or container field.
* *paddingBoolean* ( optional, default:True ) : Set false to disable padding. Padding is enabled if the parameter is true, empty or not specified.
* *fileNameWithExtension* : The filename and extension for the decrypted data if being set into a container field.

**Keywords**

Cipher Decrypt

**Version History**

* 4.0.0 : First Release

**Notes**

Modes that require authenticated encryption (e.g. GCM) are not supported. These ciphers return 'authentication tag' in addition to encrypted data.

The max data length is limited to 2GB.

The code uses OpenSSL for it's base library, so the list of ciphers and their details are here : https://www.openssl.org/docs/man1.0.2/man1/ciphers.html however not all available ciphers may work, and this list may change with future releases of openssl.

Not all possible ciphers will work, and thorough testing on Encryption and Decryption should be done before putting code into production.

**Compatibility**

| Platform | Compatibility |
|-----------|-----------|
| Status | Active |
| Mac FMP | Yes |
| Win FMP | Yes |
| FMS | Yes |
| iOS | Yes |
| Linux | Yes |

**Example Code**
49 changes: 0 additions & 49 deletions docs/Functions/BE_CipherEncrypt.md
Original file line number Diff line number Diff line change
@@ -1,49 +0,0 @@
## BE_CipherEncrypt

BE_CipherEncrypt ( cipher ; data ; key ; iv ; { paddingBoolean ; fileNameWithExtension } )

**Description**

Decrypt *encryptedData* using *cipher*.

**Parameters**

* *cipher* ( default:AES-256-CBC ) : The cipher name to use. If the value is empty, "AES-256-CBC" will be used.
* *data* : The data to encrypt. It can be HEX encoded text or container field.
* *key* : The key to encrypt with. It can be HEX encoded text or container field.
* *iv* : The IV (initialization vector). It can be HEX encoded text or container field.
* *paddingBoolean* ( optional, default:True ) : Set false to disable padding. Padding is enabled if the parameter is true, empty or not specified.
* *fileNameWithExtension* : The filename and extension for the encrypt data.

**Keywords**

Cipher Encrypt

**Version History**

* 4.0.0 : First Release

**Notes**

Be careful, there is no undo. Modes that require authenticated encryption (e.g. GCM) are not supported. These ciphers return 'authentication tag' in addition to encrypted data.

The max data length is limited to 2GB.

The code uses OpenSSL for it's base library, so the list of ciphers and their details are here : https://www.openssl.org/docs/man1.0.2/man1/ciphers.html however not all available ciphers may work, and this list may change with future releases of openssl.

Not all possible ciphers will work, and thorough testing on Encryption and Decryption should be done before putting code into production.

**Compatibility**

| Platform | Compatibility |
|-----------|-----------|
| Status | Active |
| Mac FMP | Yes |
| Win FMP | Yes |
| FMS | Yes |
| iOS | Yes |
| Linux | Yes |

**Example Code**

BE_CipherEncrypt ( "aes-256-cbc" ; HexEncode ( "Plain text" ) ; "603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" ; "000102030405060708090a0b0c0d0e0f" )
5 changes: 2 additions & 3 deletions docs/Functions/BE_ClipboardFormats.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@ or copying plain text from FileMaker on the Mac will give :

So it's possible to utilise different types depending on your intended use. The different formats can be quite different, content wise, for example if you copied RichText with formatting, you clipboard may contain types of :

public.rtf
public.utf8-plain-text
public.rtf public.utf8-plain-text

Only the first type would retain the format information.

Expand All @@ -55,7 +54,7 @@ Only the first type would retain the format information.
| Status | Active |
| Mac FMP | Yes |
| Win FMP | Yes |
| FMS | No |
| FMS | Yes |
| iOS | No |
| Linux | No |

Expand Down
2 changes: 1 addition & 1 deletion docs/Functions/BE_ClipboardGetFile.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ If the format is a binary file type, and has a filename, then that parameter is
| Status | Active |
| Mac FMP | Yes |
| Win FMP | Yes |
| FMS | No |
| FMS | Yes |
| iOS | No |
| Linux | No |

Expand Down
2 changes: 1 addition & 1 deletion docs/Functions/BE_ClipboardGetText.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ The *BE_SetTextEncoding* function does have an effect on how this result is used
| Status | Active |
| Mac FMP | Yes |
| Win FMP | Yes |
| FMS | No |
| FMS | Yes |
| iOS | No |
| Linux | No |

Expand Down
2 changes: 1 addition & 1 deletion docs/Functions/BE_ClipboardSetFile.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ You can only set a single format when setting the clipboard from BE, even though
| Status | Active |
| Mac FMP | Yes |
| Win FMP | Yes |
| FMS | No |
| FMS | Yes |
| iOS | No |
| Linux | No |

Expand Down
2 changes: 1 addition & 1 deletion docs/Functions/BE_ClipboardSetText.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ You can only set a single format when setting the clipboard from BE.
| Status | Active |
| Mac FMP | Yes |
| Win FMP | Yes |
| FMS | No |
| FMS | Yes |
| iOS | No |
| Linux | No |

Expand Down
Loading

0 comments on commit 967b7b3

Please sign in to comment.