### MBS FileMaker Plugin - Release notes

### Version history:

### 16.1 - 17th March 2026

- Added Llama functions to load local large language models to query them.
- Added grouping to script search.
- Added a tool button for search window with a copy results command.
- Added Command-W for the search all scripts window on macOS to close the dialog via shortcut.
- Added CurrentOutput and LEDArray as device for Phidget.Create function.
- Added Dialog.GetTitleIcon and Dialog.SetTitleIcon functions.
- Added EnvironmentVariables.JSON function.
- Added Files.ApplicationPathWithBundleIdentifier function.
- Added Files.OpenFiles function.
- Added FM.SQL.InsertOrUpdateRecords and Matrix.InsertOrUpdateRecords functions.
- Added FM.SQL.InsertOrUpdateRecordsToSQL and Matrix.InsertOrUpdateRecordsToSQL functions.
- Added GMImage.Profiles function.
- Added group parameter to ScriptWorkspace.OpenScript function.
- Added groups for SystemInfo.ADSystemInfo function.
- Added HeaderTitle, FooterUri, ShouldPrintHeaderAndFooter and ShouldPrintSelectionOnly as options for WebView.SetPrintParameter for Windows.
- Added JSON.ToToon function for passing data to LLMs.
- Added OCR.RenderPDF function.
- Added OutputType and Duplex as options for WebView.SetPrintParameter for iOS.
- Added Phidget.ClearLEDs, Phidget.SetAnimation, Phidget.SetLED, Phidget.SetLEDs, Phidget.StopAnimation and Phidget.SynchronizeAnimations functions.
- Added ScriptWorkspace.SelectGroup function.
- Added SyntaxColoring.GetFormatAddSpaceBeforeSemicolon and SyntaxColoring.SetFormatAddSpaceBeforeSemicolon function to set whether to add space before semicolon for our calculation formatting.
- Added Translation.DetectLanguage function.
- Added XL.Book.Clear and XL.Book.ErrorCode functions.
- Added XL.Book.ConditionalFormat and XL.Book.ConditionalFormatSize functions.
- Added XL.LoadBookInfo function.
- Added XL.Sheet.ConditionalFormatSize and XL.Sheet.ConditionalFormatting functions.
- Added XL.Sheet.RemoveConditionalFormatting function.
- Changed DynaPDF.ImportPDFPage to only require a Lite instead of a Pro license.
- Changed DynaPDF.InitColorManagement and DynaPDF.InitColorManagementEx, so you can call without profiles to deactivate color management.
- Changed Files.List, Files.ListAsJSON and Files.ListRecursive to accept a list for ExtensionFilter parameter.
- Changed how we load python on linux to improve handling of custom installations.
- Changed install name for our plugin on macOS and iOS to be correct with @rpath.
- Changed iOS deployment target to iOS 15.0 as minimum, since that is Xcode's minimum. That is iPhone 6S and newer.
- Changed JSON.Import to take "-" for the root table name and then only use the prefix.
- Changed PageSetupDialog and PrintDialog functions to return an error if called on server.
- Changed script search results to number the search results and allow you to click them to mark where you are in the list.
- Changed script search results to show commented lines better.
- Changed tag to tagValue for PhidgetsRFID values to report the tag for a RFID card.
- Changed the script search button on Windows to be the right side of the window and move with resizing.
- Changed Vision.RecognizeText and Vision.RecognizeTextJSON to auto detect the language.
- Changed XL.Book.AddConditionalFormat function to take area as parameters.
- Changed XL.Sheet.AddConditionalFormatting so you pass the first range with the function call.
- Changed XML.Import and JSON.Import to report an error if you pass invalid characters for the table name prefix or root name.
- Clipboard is now preserved when opening the script search.
- Deprecated FM.GetSQLBatchMode and FM.SetSQLBatchMode.
- Enabled Dialog.ClearFields, Dialog.AddField, Dialog.GetFieldText and Dialog.SetFieldText functions for Windows since we got an alternative dialog with edit fields, which does most of our dialog functions.
- Enabled native CA for CURL on Windows.
- Fixed a bug where the search window could trigger a license dialog even if you have a license.
- Fixed a crash with Translation functions for macOS 15.x.
- Fixed a problem with FM.TableStatistics function not counting JPEGs in container correctly.
- Fixed a problem with the search box for relationship graph disappearing on Windows.
- Fixed a text encoding problem with copy & paste of XML from Script Workspace on Windows.
- Fixed an issue with If/Loop highlighting causing a crash on MacOS Tahoe.
- Fixed an issue with JSON.InsertRecord where we passed date as timestamp and FileMaker complained about incompatible types.
- Fixed Archive functions to recognize zstd library within the plugin, so Archive.ZStdVersion reports the version.
- Fixed script search to select scripts on macOS if folder and script names are the same.
- Implemented Files.GetPathFromNodeID for iOS and Linux. Linux uses recursive search.
- Implemented Files.USBSerialNumber for Windows.
- Improved ClearRegistration to clear more keys on the Registry on Windows.
- Improved Files.RenameFile on Windows to try an alternative way if the rename failed.
- Improved Files.USBSerialNumber function on Windows to report hard disk and SSD serial numbers, too.
- Improved formatting rules for calculations to better handle ${} in the formulas.
- Improved functions taking path to report an error about an empty text passed as path instead continuing normally.
- Improved Hash.CRC16 function to better handle some special variants.
- Improved Hash.Digest and Hash.DigestFile functions to work with shake128 and shake256.
- Improved Matrix.InsertRecordsToSQL and FM.SQL.InsertRecordsToSQL functions to pass NULL if a number or date field is empty. Otherwise SQL would complain about passing invalid date or number.
- Improved NSDate passing to return date with milliseconds if available, e.g. for Files.CreationDate.
- Improved Printer.Print function to wait a bit if the combobox is not yet loaded on Windows.
- Improved script search to allow scripts to collapse.
- Improved script search to better handle cases with thousands of scripts on Windows.
- Improved search field in relationship graph to resize better on macOS.
- Improved search in our search inside custom functions dialog, so we can search the content of the custom functions.
- Improved search window to show an error message if the WebView can't be created (on Windows).
- Improved SSH tunnel for macOS/iOS to mark the thread with background priority.
- Improved Text.ReadTextFile and other functions to read files on Windows instead of complaining about file in use.
- Improved the field picker link to allow it to link to current table.
- Improved variable check to ignore Set Variable lines with $index = $index + 1.
- Please note that DynaPDF 5 sets UseTransparency to false by default instead of true in version 4 and the UseImageColorSpace flag is now enabled by default, instead of disabled.
- Rebuild libarchive to dynamically load lzma library on macOS/iOS.
- Removed unneeded empty path check for XL.Initialize function.
- Rewrote FM.InsertOrUpdateRecordQuery to use newer code base.
- Rewrote FM.InsertRecordQuery and FM.InsertRecordQueryIgnoreDuplicates to use newer code base.
- Rewrote FM.SQL.InsertRecords and Matrix.InsertRecords functions to use same code internal.
- Rewrote FM.SQL.InsertRecordsToSQL and Matrix.InsertRecordsToSQL functions to use same code internal.
- Rewrote SQL.InsertRecords to use newer code base.
- Updated CURL library to version 8.19.0.
- Updated DynaPDF to version 5.0.0.6.
- Updated expat to version 2.7.4.
- Updated libarchive to version 3.8.6.
- Updated LibXL to version 5.1.
- Updated openssl to version 3.5.5.
- Updated Phidgets library headers to current version (28th January 2026).
- Updated SQLite to version 3.51.2.
- Updated taglib to version 2.2.1
- Updated Xcode to version 26.2.
- Updated zlib to version 1.3.2.

### 16.0 - 13rd January 2026

- Added search button for Script Workspace to open a window to search all scripts for macOS and Windows.
- Added Translation functions for macOS and iOS.
- Added CURL.VersionDetails function.
- Added exponential2 as mode to Math.MovingAverage function.
- Added Hash.CRC16 function.
- Added HotKey.SetFileMakerWindowOnly and HotKey.GetFileMakerWindowOnly functions to only run hotkey when a FileMaker document window is frontmost.
- Added JSON.SetFormatOptions function.
- Added Linux and iOS support for Files.GetNodeID function.
- Added MarkDown.Colorize function.
- Added password parameter for XL.LoadBook and XL.LoadBookPartially functions.
- Added SaltLength parameters for RSA.SignPSS and RSA.VerifyPSS.
- Added StructuredAppend key for the JSON used with Barcode.GenerateJSON to create barcodes with sequence information.
- Added SyntaxColoring.ScriptSearchButton.GetEnabled and SyntaxColoring.ScriptSearchButton.SetEnabled functions.
- Added SystemInfo.IsiOSAppOnVision function.
- Changed CURL to list paths in quoted SFTP commands.
- Changed FM.SQL.InsertRecordsToSQL and related functions to use backtick to quote table names for ODBC connections.
- Changed JSON formatting to use space instead of tab after object keys.
- Changed minimum iOS version for deployment to iOS 13.2.
- Changed SyntaxColoring.ClipboardConverter.GetEnabled and SyntaxColoring.ClipboardConverter.SetEnabled to work on Windows.
- Changed Text.HTMLtoStyledText to add return after DIV element.
- Deprecated CURL.SetOptionKRBLevel function as CURL library deprecated that option.
- Deprecated MongoDB.MaxMessageSize and MongoDB.MaxBSONSize functions.
- Disabled FoundationModels for macOS on Intel as they are not available there.
- Enabled Apple SecTrust for CURL to validate SSL certificates on macOS and iOS. Unless you opt-out of SSL validation checks with CURL.SetOptionSSLVerifyHost and CURL.SetOptionSSLVerifyPeer properties.
- Fixed a crash with XML conversion for clipboard in older FileMaker Pro.
- Fixed a mutex problem with UNNotification and triggering the action script.
- Fixed a possible crash with option clicking in script workspace.
- Fixed a problem with CLibrary.Symbols reporting back OK in case of failure.
- Fixed a problem with DynaPDF where it crashed on saving after calling DynaPDF.CheckConformance.
- Fixed a problem with JSON.InsertRecord not handling timestamps correctly.
- Fixed a problem with our table occurence link not moving when resizing the panel.
- Fixed a problem with reading comments in GraphicsMagick library.
- Fixed a text encoding problem for FM.AddErrorMessage function.
- Fixed an incompatibility in Swift, which prevented the plugin from loading in older FileMaker versions.
- Fixed an issue with Files.MoveFile on Windows when using normal slashes in the path.
- Fixed an issue with FM.InsertOrUpdateRecord and field names containing double colon.
- Fixed handling of block elements for Text.HTMLtoStyledText function.
- Fixed Text.HTMLtoStyledText to show DEL tag as strikethrough.
- Improved field picker shortcut links to not suggest current table.
- Improved format button to ignore RTF.
- Improved opening scripts on macOS to scroll script list.
- Improved our format button in the data viewer, we now recognize text with HTML and format it as html instead of XML.
- Improved Overlay.AddWebViewer on handle fmp:// URL within the WebViewer and trigger them in FileMaker.
- Improved syntax coloring to be a bit more resilient against you closing the window while an asynchronous operation still runs.
- Rebuild linux plugins without references to CXXABI_1.3.9 in libc++ for compatibility to older Linux versions..
- Rewrote MongoDB.ClientCommandQuery function.
- Stripped debug symbols from the linux plugin builds to reduce file size.
- Updated CURL library to version 8.18.0.
- Updated DynaPDF to version 4.0.102.302.
- Updated GraphicsMagick library to version 1.3.46.
- Updated lcms2 library to version 2.18.
- Updated mongo-c-driver to version 2.2.0.
- Updated SQLAPI to version 5.4.1.
- Updated to LibXL 5.0.1.
- Updated to Xcode 26.1.1.

### 15.5 - 18th November 2025

- Added FoundationModels functions.
- Added SchemaChange functions to track schema changes server side.
- Added Container.GetMimeType function.
- Added CURL.GetMultiTransfersAdded, CURL.GetMultiTransfersCurrent, CURL.GetMultiTransfersDone, CURL.GetMultiTransfersPending and CURL.GetMultiTransfersRunning functions.
- Added CURL.NetworkChanged function.
- Added Files.BSDVolumeName and Files.USBSerialNumber functions for macOS.
- Added flag 8 for Plugin.RegisterFunction function to secure a function and prevent unregister or replacement.
- Added FM.AddErrorMessage function.
- Added List.DeleteColumn and QuickList.DeleteColumn functions.
- Added MarkDown.HTMLDocument function.
- Added MarkDown.StyledText using Text.HTMLtoStyledText to convert HTML to styled text.
- Added newer error codes for FileMaker 2025 to the FM.ErrorMessage function.
- Added Phidget.WriteRFID function.
- Added Plugin.CustomFunctionIDs function to query IDs of custom functions.
- Added Plugin.CustomFunctions function to query JSON with details about custom functions.
- Added RSA.SignPSS and RSA.VerifyPSS functions for 2048-bit RSA electronic signature with PSS padding and SHA-256.
- Added SyntaxColoring.GetDataViewerFormatButtonEnabled and SyntaxColoring.SetDataViewerFormatButtonEnabled function. Pass 2 to do formatting automatically.
- Added table occurrence links for calculation dialog.
- Added Text.HTMLtoStyledText function.
- Added Text.ZLibCompress and Text.ZLibDecompress functions.
- Added UUID.UUIDv7 and UUID.TimeFromUUIDv7 functions.
- Added Webview.GetDefaultDownloadFolderPath and Webview.SetDefaultDownloadFolderPath functions for Windows.
- Added WebView.GetHeight, WebView.GetWidth, WebView.SetHeight and WebView.SetWidth functions.
- Added Webview.GetPreferredColorScheme and Webview.SetPreferredColorScheme functions for Windows.
- Added Webview.GetProfilePath function for Windows.
- Added WMIQuery.JSON function.
- Changed DynaPDF.Initialize und XL.Initialize to not check if you have a MBS license, so you can run this before our Register function.
- Changed Phidget.Release to automatically call Phidget.Close internally if needed.
- Changed plugin information string in the FileMaker preferences dialog to include license information if it gets stored with StoreRegistration function.
- Deprecated CURL.SetOptionSSLFalseStart function.
- Enabled the remembering of column widths again.
- Fixed a problem on Windows with DynaPDF.Table.Release causing trouble with mutex.
- Fixed a problem on Windows with ZipFile.CompressFiles function not working.
- Fixed Files.Mount to return the path. Broken in 15.4.
- Fixed LDAP.Bind to remove ldaps:// or ldap:// prefixes on Windows.
- Fixed LDAP.Search to allow call with only 5 parameters.
- Fixed Plugin.CustomFunctionIDs function to return correct IDs.
- Fixed Plugin.RegisterFunction to handle optional parameters better and create temporary variables for the calculations.
- Fixed ProgressDialog functions to work better if you run Hash.DigestFile and click cancel.
- Fixed Python functions to better handle imports.
- Fixed ScriptWorkspace functions to better find the frontmost script workspace window.
- Fixed XL.ConditionalFormat.Font to return correct font index.
- Implemented WebView.GetFormattedText for Windows using Text.HTMLtoStyledText internally.
- Improved clipboard converter to preserve image content.
- Improved Container.GetDataURL to recognize more types.
- Improved field finding functions in DynaPDF to better find fields.
- Improved LDAP.Connect for Windows to remove ldap:// prefix from domain or IP as Windows doesn't like this.
- Improved Trace to also log the layout you are on.
- Improved WIA.DevicePropertyValue, WIA.ItemPropertyValue and WMIQuery.PropertyValue to better return various numeric array types.
- Improved WMI.Query to better handle security and impersonate automatically if needed.
- In CURL the Upload and Put flags are aliases. We do the same in the plugin now.
- In our preferences dialog you can now paste the whole license string and we separate it to the five fields.
- Removed dependency to GLIBCXX 3.4.29 to make the plugin compatible again with older Linux versions.
- Removed Secure Transport in CURL library.
- Removed tesseract 3 support. Please use version tesseract 5.x.
- Updated CURL to version 8.16.0.
- Updated DynaPDF to version 4.0.102.299.
- Updated expat library to version 2.7.3.
- Updated jsoncons library to version 1.4.3.
- Updated libarchive to version 3.8.2.
- Updated OpenSSL to version 3.5.2.
- Updated Saxon library to 12.9.
- Updated to Xcode 26.0.

### 15.4 - 9th September 2025

- Added a clipboard converter feature for macOS and Windows. When you switch to other application, we add XML text to the clipboard for FileMaker's XML data. And when coming back, we convert text to XML to paste in FileMaker. This allows you to easier copy and paste FileMaker XML text to other applications.
- Added ASF support for Files.AudioCoverArt function.
- Added checkbox for the preferences dialog to enable the clipboard conversion.
- Added Command-G as shortcut for the field picker go to link.
- Added COPY and MOVE verbs for CURL.SetupAWS function.
- Added DetectJSON flag to FM.SQL.JSONColumn, FM.SQL.JSONRecord and FM.SQL.JSONRecords.
- Added DetectJSON flag to Matrix.JSONRecord and Matrix.JSONRecords.
- Added DNSLookup.JSON function.
- Added flags for JSON.FindValueInArray and JSON.FindValueInObjectArray functions.
- Added flags for Plugin.RegisterFunction and Plugin.RegisterScriptStep functions, so you can turn on JavaScript.
- Added FM.Get function.
- Added Menu.IsOpen function.
- Added OLEDB for the client types in SQL.SetClient.
- Added Plugin.UnregisterFunction and Plugin.UnregisterScriptStep functions.
- Added Python.GetRecursionLimit and Python.SetRecursionLimit functions.
- Added QRCode detection for AVRecorder for Windows.
- Added SharingService.ShareHTML function to share HTML text to a service.
- Added sorting for the part style submenu in the layout editor.
- Added SyntaxColoring.ClipboardConverter.SetEnabled and SyntaxColoring.ClipboardConverter.GetEnabled functions.
- Added SyntaxColoring.SortStyleMenu.SetEnabled and SyntaxColoring.SortStyleMenu.GetEnabled functions.
- Added SystemInfo.MacProductName and SystemInfo.MacProductSOCName functions.
- Added WebView.Favicon and WebView.FaviconURI functions for Windows.
- Added WebView.GetMemoryUsageTargetLevel and WebView.SetMemoryUsageTargetLevel for Windows.
- Added WordFile.SetSkipDeletedText and WordFile.GetSkipDeletedText functions.
- Deprecated Secure Transport in CURL. Will be removed later this year.
- Fixed a bug in SQL.ConvertDateTimeFromSQL not returning proper error status.
- Fixed a C++ exception in DynaPDF.Initialize if called without parameters.
- Fixed a case where FindBar in database designing dialog doesn't work.
- Fixed an issue when the plugin reduced the calculation font size instead of keeping the size from FileMaker.
- Fixed Barcode.Generate to handle NUL characters in text better (hex encoded input), broken in 15.3.
- Fixed CURL.OpenInputFile to work for files over 4 GB in size to read chunks.
- Fixed link detection to work again in calculations.
- Fixed Links in syntax coloring to once again be able to disable them via preferences.
- Fixed Math.BitwiseRotate to better rotate to right.
- Fixed problem with LibArchive on Windows not doing all encryptions, broken in 15.2.
- Fixed Updater.CheckForUpdates to work in FileMaker 21 and newer.
- Implemented WebView.CanZoomPageIn, WebView.CanZoomPageOut, WebView.CanResetPageZoom, WebView.ZoomPageIn, WebView.ZoomPageOut, WebView.ResetPageZoom, WebView.SetPageSizeMultiplier and WebView.GetPageSizeMultiplier for Windows in FileMaker 19.4 or newer.
- Implemented WebView.SetZoom and WebView.GetZoom for macOS and iOS.
- Improved custom functions with Plugin.RegisterFunction to handle optional parameters better. Use {} in the parameters to declare optional ones.
- Improved custom functions with Plugin.RegisterFunction to properly pass through errors, so Get(LastError) can see it.
- Improved EmailParser.HTMLToPlainText to avoid initial return character.
- Improved JSON.ToCSV to take an JSON array of arrays in addition to arrays of objects.
- Improved ListDialog for iOS to have more spacing around buttons and to select line on double click.
- Improved using Python on threads.
- Improved Window.SetRoundCorners function to work on iOS.
- Improved WordFile.Texts to skip a couple of node types.
- Rewrote Files.Mount for macOS to user newer API and get mounting of folders on shares via SMB.
- Updated DynaPDF to version 4.0.102.295.
- Updated SQLAPI to version 5.4.0.
- Updated SQLite to version 3.50.4.

### 15.3 - 15th July 2025

- Added a search button to find function on documentation website.
- Added bzip2 and zstd as filter for zip archives for Archive.Compress, Archive.CompressContainer, Archive.CompressText and Archive.Create functions.
- Added Control-Up and Control-Down shortcuts for calculation editor to move lines up or down.
- Added CSV extension for the built-in SQLite library in SQL.InternalSQLiteLibrary.Activate function.
- Added CURL.SetOptionSSLSignatureAlgorithms function.
- Added DynaPDF.SetActiveSigField function.
- Added Encryption.ProviderNames function.
- Added FileDialog.SetCanCreateDirectories and FileDialog.GetCanCreateDirectories functions.
- Added Files.PrintFile function for macOS and Windows.
- Added Format button for current value dialog in FileMaker's data viewer for XML and JSON.
- Added GMail oAuth SMTP example.
- Added Java.GetClassFields, Java.GetClassMethods and Java.GetLoadedClasses functions.
- Added JSON support for Saxon.XPathQuery, Saxon.XQuery and Saxon.XSLT functions.
- Added Math.BitwiseRotate function.
- Added Math.SetBit, Math.ClearBit and Math.GetBit functions.
- Added Matrix.Append function.
- Added Matrix.InsertRow and Matrix.InsertColumn functions.
- Added missing names GS1_128_CC and GS1_128 for the barcode symbology list.
- Added Plugin.CustomFunctionNames to list custom functions.
- Added Plugin.CustomFunctionParameter and Plugin.CustomFunctionParameterCount to query parameters for the custom function.
- Added Plugin.RegisterFunction function to register custom functions on the fly. These show up in calculation dialogs just like regular custom functions.
- Added Plugin.RegisterScriptStep function.
- Added Saxon.LicenseeName function.
- Added ScriptWorkspace.GetBackgroundColor and ScriptWorkspace.SetBackgroundColor functions.
- Added scroll feature for debugger, which seems to work better.
- Added search: prefix for comment links to jump to whatever text you provide.
- Added SelectedOnly and EndOfLine parameters for ScriptWorkspace.StyledScriptText function.
- Added SharingService.ShareValues function to pass text, that looks like an URL.
- Added SQL.InternalSQLiteLibrary.Dump function.
- Added SQL.InternalSQLiteLibrary.GetBase64ExtensionEnabled, SQL.InternalSQLiteLibrary.GetUUIDExtensionEnabled, SQL.InternalSQLiteLibrary.SetBase64ExtensionEnabled and SQL.InternalSQLiteLibrary.SetUUIDExtensionEnabled functions.
- Added SQL.InternalSQLiteLibrary.GetCSVExtensionEnabled and SQL.InternalSQLiteLibrary.SetCSVExtensionEnabled functions.
- Added SyntaxColoring.DebuggerScrolling.GetEnabled and SyntaxColoring.DebuggerScrolling.SetEnabled functions.
- Added SystemInfo.AppResourceUsageStatistics function.
- Added SystemInfo.isTahoe function.
- Added uuid and base64 extensions for the built-in SQLite library in SQL.InternalSQLiteLibrary.Activate function.
- Added Window.GetWindowDisplayAffinity and Window.SetWindowDisplayAffinity functions.
- Added Window.SetRoundCorners function for round corners in card windows.
- Changed Barcode.GenerateJSON to allow text to be an array for a stacked barcode.
- Changed copy text/selection in ScriptWorkspace to indent the lines.
- Changed CURL functions to set OptionForbidReuse automatically when you do use PostFields.
- Changed findbar to appear automatically in database design dialog if you use it there frequently.
- Changed Vision.DetectBarcode to detect OS version and use newer engine if available.
- Deprecated MBS CustomScriptSteps.xml feature.
- Enhanced JSON.UpdateRecords to take keys as JSON array, so you can update multiple records with different primary keys.
- Fixed a crash with variable check if your line length is over 5 million characters.
- Fixed a little problem with AutoComplete duplicating the completed text.
- Fixed a possible crash in Process.GetCurrentDirectory function for macOS, iOS and Linux.
- Fixed an issue where our plugin would remove selection in ScriptWorkspace if you switch to another application and back.
- Fixed an issue with SQL.SetParamAsContainer and Firebird.
- Fixed changing font size for future FileMaker version.
- Fixed FILEVERSION on Windows to sort bug and build numbers correctly.
- Fixed JSON.JSONPatch.FromDiff to do the copy key feature again, broken with jsoncons update in version 15.1.
- Fixed JSON.ToHTML to not get confused with invalid JSON when handling embedded JSON.
- Fixed ListDialog functions to return OK instead of Select on success.
- Fixed possible crash with script workspace enhancements for future FileMaker version.
- Fixed syntax coloring to work if you open custom functions dialog before opening script workspace.
- Implemented ListDialog for iOS.
- Improved debugger in FileMaker to scroll better and show a few rows adhead on stepping.
- Improved GMImage.GetAttribute and GMImage.GetAttributesJSON to decode high characters in text values.
- Improved how we scroll lists to make sure more rows below and after a visible.
- Improved loading LDAP library on Linux to work on Ubuntu 22 and 24.
- Improved OCR error messages to state whether tesseract or leptonica library is not loaded.
- Improved our CopyButton to not show the warning in console about adding a button to the title bar.
- Improved our CoreML functions to handle Int8 data type in addition to Float16, Float32, Int32 and Float64 data types that your models may use.
- Improved Plugin.RegisterFunction to pass parameters as they appear in prototype.
- Improved search in tables to work for the dialog for importing custom functions.
- Improved SerialPort functions to work better with suspended ports.
- Improved SharingService.ShareItems to better work with sharing styled text.
- Improved SQL.InternalSQLiteLibrary.Dump function.
- Improved Text.RemoveControlCharacters function to also remove BOM character.
- Improved the caching for CLGeocoder and MapView functions to better avoid duplicate lookups.
- Improved Vision.DetectBarcode function to report more details like coordinates.
- Improved Vision.DetectBarcode to return swapped coordinates.
- Rewrote macOS part of Files.LaunchFile to use newer API on macOS 10.15 or higher.
- Tuned auto complete a bit.
- Updated CURL library to version 8.14.1.
- Updated DynaPDF to version 4.0.102.292.
- Updated LibArchive to version 3.8.1.
- Updated mongo-c-driver to version 1.30.5.
- Updated Saxon library to version 12.8. Download
- Updated SQLAPI to version 5.3.7.
- Updated SQLite to version 3.50.2.
- Updated to Xcode 16.4.

### 15.2 - 6th May 2025

- Added AbortProc and an event processing loop to DynaPDF printing to help with updating a progress dialog.
- Added Audit.GetAuditLogTableName and Audit.SetAuditLogTableName functions.
- Added Audit.SetUUIDFields and Audit.GetUUIDFields function.
- Added CURL.SetOptionTCPKeepCount and CURL.SetOptionUploadFlags functions.
- Added DynaPDF.ReadImageFormatFile and DynaPDF.ReadImageResolutionFile function to inspect images files on disk.
- Added DynaPDF.RenderJob function.
- Added DynaPDF.SetBidiMode and DynaPDF.GetBidiMode functions.
- Added ExtensionFilter parameter to Files.ListRecursive function.
- Added flag 128 for matching substring with the ExtensionFilter parameter for the Files.List, Files.ListAsJSON and Files.ListRecursive functions.
- Added Folders.UbiquityContainer function.
- Added JSON.ToCSV function.
- Added ListDialog.GetCancelButtonValue, ListDialog.GetOtherButtonValue and ListDialog.GetSelectButtonValue functions.
- Added ListDialog.SetCancelButtonValue, ListDialog.SetOtherButtonValue and ListDialog.SetSelectButtonValue to set what value is returned by ListDialog.ShowDialog function.
- Added ListDialog.SetOtherButtonNeedsSelection and ListDialog.GetOtherButtonNeedsSelection functions.
- Added ListDialog.SetSwapButtons and ListDialog.GetSwapButtons functions.
- Added MapView.GetWindow function.
- Added more Python functions to query time and library information.
- Added PremulAlpha as a possible raster flag for DynaPDF.RenderPage, DynaPDF.RenderPDFFile and DynaPDF.RenderPDFFileEx functions.
- Added ScriptWorkspace.IsFocusOnScriptList and ScriptWorkspace.SetFocusToScriptList functions.
- Added shortcuts to calculation dialog to pick return type just like field types.
- Added Variable.AppendJSON and Variable.PopJSON functions.
- Added Variable.AppendValue and Variable.PopValue functions.
- Added Variable.ValueCount function.
- Added XL.Sheet.AddTable to add a table to a sheet.
- Added XL.Sheet.SetBorder to set border fo sheet.
- Changed Container.GetHex to have name or index parameter optional.
- Changed shortcut to show invisibles in calculation dialog to using command-option-I.
- Changed shortcut to show ruler in calculation dialog to using command-option-R.
- Changed tooltips for fields to use FieldType() instead of SQL for better performance.
- Changed tracing to log time with start script if Trace.SetWithTimes function.
- Enabled MBS Auto complete for more specify file dialogs, so we can auto complete variable for file paths.
- Fixed a bug in DuckDB client for SQL functions.
- Fixed a bug in DynaPDF.PageStatistics function, so it works on the last page of the document.
- Fixed a bug in Path.LastPathComponent function where the last character got cut off.
- Fixed a bug in Process.GetCurrentDirectory function.
- Fixed a problem with linux and endless loop with BeginLayer function in DynaPDF.
- Fixed an error in XL.Sheet.SetProtectEx function parsing the protection flags.
- Fixed an issue with Audit.BuildCaches function missing the FieldName.
- Fixed an issue with ListDialog.AddSQL function where filename parameter was ignored if no other parameters followed.
- Fixed Archive.Compress to better compress folder itself if file list is empty.
- Fixed SQL.ConvertDateTimeFromSQL to return empty result if the date value is not valid.
- Fixed SSH2 library for Windows to use OpenSSL instead of Windows API again. Broken in last release.
- Fixed XL.CopyCellValue, XL.CopyColumn and XL.CopyRow to work if second document has more sheets.
- Implemented a maximum for sockets. Now limited to 1000 concurrent sockets to avoid crashing FileMaker when running out of file handles.
- Implemented text selector for ScriptWorkspace.StyledScriptText function.
- Improved Archive.Compress to compress folder itself if file list is empty.
- Improved auto complete to work better with XL functions.
- Improved Bonjour functions to cleanup threads better.
- Improved Container.GetBase64 to work better if you don't specify a name or index.
- Improved exceptions handling for GraphicsMagick functions.
- Improved functions like Container.ReadFile to return empty result if file size is zero.
- Improved ListDialog.SetOtherButtonEvaluate and ListDialog.SetOtherButtonLabel to allow three other buttons.
- Improved OCR error messages about missing functions to show the function name. you may see such an error if you have an older tesseract or leptonica library, which doesn't contain the functions we look for.
- Improved PDFKit.SelectPrinter to return an error when we fail to create the dialog.
- Improved performance of DynaPDF generating previews for container values for large files.
- Improved showing IDs for Database Design dialog to not rebuild cache for new fields.
- Improved the If/Loop highlighting to also highlight Enter Find Mode and Perform Find.
- Moved FM.Variable* functions into Variable.*. The old names stay valid.
- Rewrote parts of TOTP.Calculate function, broken with Xcode upgrade.
- Updated CURL library to version 8.13.0.
- Updated DynaPDF to version 4.0.100.285.
- Updated expat library to version 2.7.1.
- Updated libarchive to version 3.7.9.
- Updated LibXL to version 4.6.
- Updated plugin SDK.
- Updated Saxon library to 12.6.
- Updated SQLAPI to version 5.3.6.
- Updated to Xcode 16.3 with the newer clang and stdc++ library.
- Upgraded NSAttributedString handling to better work with postscript font names. This affects Clipboard.SetStyledText, Clipboard.GetStyledText and other functions on macOS using styled text.

### 15.1 - 11th March 2025

- Added an OutputJSON option to the JSON for Barcode.GenerateJSON function to output drawing commands as JSON.
- Added AvailabilityExpression parameter to SyntaxColoring.AddContextMenuCommand function.
- Added check for menu sorting to not do it when a dialog shows.
- Added CNContactStore.ChangeHistory function to better track changes in contacts database.
- Added CNContactStore.GetTransactionAuthor and CNContactStore.SetTransactionAuthor functions.
- Added DynaPDF.CustomerID function.
- Added ECKey.BuiltInCurvesJSON function.
- Added ECKey.CurveNameToID function.
- Added ECKey.ES256Sign and ECKey.ES256Verify.
- Added Files.ShareFile function.
- Added Files.ShowPropertyDialog function for Windows to show a property dialog of a file.
- Added flag 2048 for JSON.Import and XML.Import functions to check field types and convert number, time, date and timestamp if needed.
- Added flags MediaBox and CropBox to DynaPDF.Parser.ExtractText, DynaPDF.ExtractText and DynaPDF.ExtractDocumentText.
- Added link detection for calculations.
- Added List.RemoveValues and QuickList.RemoveValues functions.
- Added mitigation against buffer overflow in Windows for snprintf function.
- Added Plugin.LimitToFile function.
- Added preferences option to toggle whether auto complete for custom functions shows parameters.
- Added Python.AddSysPath function.
- Added RoundHighlightAP flag to DynaPDF.SetGStateFlags function.
- Added Saxon example to validate the ZUGFeRD, Factur-X or X-Rechnung invoice.
- Added Saxon example to visualize electronic invoices in UBL, ZUGFeRD, Factur-X or X-Rechnung format.
- Added Saxon.SetLicense and Saxon.ClearLicense function.
- Added SendMail.GetUse8BitMime and SendMail.SetUse8BitMime functions.
- Added SendMail.GetUseSSL and SendMail.SetUseSSL functions.
- Added SyntaxColoring.AutoCompleteCustomFunctionsParameters.GetEnabled and SyntaxColoring.AutoCompleteCustomFunctionsParameters.SetEnabled functions.
- Added SyntaxColoring.SortMenuEntries.GetEnabled and SyntaxColoring.SortMenuEntries.SetEnabled functions.
- Added SyntaxColoring.TurnErrorsBlue.SetEnabled and SyntaxColoring.TurnErrorsBlue.GetEnabled functions to help colorblind people to read errors in debugger.
- Added Text.SplitByLength function.
- Added timeout parameter to ImageCapture.RequestScan function.
- Added useProgressDialog flag for DynaPDF.Print to tell the plugin to update the progress dialog while printing.
- Added WebView.ClearPrintParameters function.
- Added WebView.List function.
- Added workaround for a bug in Plugin SDK for returning text in UTF-16 back to FileMaker.
- Changed SerialPort.Resume and SerialPort.Clear to allow script trigger.
- Changed XL functions to accept letters for column parameters.
- Enabled EXSLT extensions for XML.ApplyStylesheet.
- Fixed a problem with a mutex deadlock OCR functions cleaning up on server scripts.
- Fixed a problem with our Audit Cache not finding a table because the query was case sensitive.
- Fixed a problem with WebView.PrintToFile not passing paper height correctly.
- Fixed a problem with XML.GetPathValue function crashing with name spaces, broken in 15.0.
- Fixed an issue with SerialPort function where script trigger would not be reset if you read zero bytes.
- Fixed CNContact.Value function to return empty value for birthday if there is none, instead of an error.
- Fixed memory issue for SyntaxColoring.AddContextMenuCommand causing crashes.
- Fixed Phidgets functions to not leak some JSON objects when using script triggers.
- Fixed search field in script workspace to scroll horizontally as you type.
- Fixed WebView.SetPrintParameter to use points in 72 dpi instead of inches for paper size and margins.
- Implemented keep alive for MQTT feature in CURL functions. Use CURL.SetOptionUpkeepIntervalMS function to enable.
- Improved auto complete for custom functions to show parameters when you type on end of line.
- Improved CNContactStore.SetChangeScript to deliver when no script is running and not too often.
- Improved CURL.GetResultAsGIF, CURL.GetResultAsJPEG, CURL.GetResultAsPDF and CURL.GetResultAsPNG to return empty if the data is not the expected type.
- Improved List.RegExMatch and QuickList.RegExMatch to take options in text form in addition to integers.
- Improved Menu.PopUp to report an error if the item for the positioning is not in the menu.
- Improved SerialPort.SetBaudRate to not try to change if the baud rate if the old and new rate are the same.
- Improved SyntaxColoring.AddContextMenuCommand to add entries to the menu, if you have a spelling suggestion.
- Improved SyntaxColoring.AddContextMenuCommand to better detect layout vs. browse mode.
- Improved Text.ReadTextFile to read things from /proc/ folder on Linux.
- Improved XML.Canonical, XML.Compact, XML.Format and XML.Colorize functions to return empty text for empty output.
- Removed dependency to CXXABI_1.3.13 for Linux, introduced in 15.0.
- Removed old tesseract 3 from the Linux plugin as it conflicted with tesseract 5 and we could not have both together.
- Tuned auto complete in custom functions to be less aggressive.
- Updated CURL library to version 8.12.1.
- Updated DynaPDF to version 4.0.98.278.
- Updated for next FileMaker version.
- Updated jsoncons library to version 1.3.0.
- Updated lcms library to version 2.17.
- Updated OpenSSL to version 3.3.3.
- Updated png library to version 1.6.47.
- Updated SQLite to version 3.49.1.

### 15.0 - 14th January 2025

- Added ImagePlayground functions for macOS Sequoia.
- Added Saxon functions (Preview) to do XSLT, XQuery and XPathQuery in FileMaker.
- Added a sort feature to the plugin for the Show Window list.
- Added Archive.IsOpen function.
- Added Audit.GetIgnoreEmptyFieldsForCreate and Audit.SetIgnoreEmptyFieldsForCreate functions.
- Added Barcode.Version function.
- Added checkbox for custom functions autocomplete.
- Added DataRate as property name for Phidget.SetProperty function.
- Added Dialog.SetKeyEquivalent and Dialog.GetKeyEquivalent functions for macOS to control key equivalents for dialog buttons.
- Added DoBlanksForEmptyText parameter to XL.Sheet.CellWriteTexts function.
- Added DragDrop.GetPathList function.
- Added DynaPDF.CheckEmbeddedFileCheckSum function.
- Added DynaPDF.ConvToFreeTextCallout function.
- Added DynaPDF.DeleteOutputIntent function.
- Added DynaPDF.GetLastTextPosXAbs and DynaPDF.GetLastTextPosYAbs functions.
- Added FileNames parameter for Plugin.LimitFunction function.
- Added flags parameter for Files.AudioTags to request dumping all ID3v2Tags.
- Added formatDescription as selector for AVAsset.TrackInfo to query format description information.
- Added JSON.SetVariables and JSON.ClearVariables.
- Added MinDataInterval, MaxDataInterval, DataRate, MinDataRate, MaxDataRate and isOpen as property names for Phidget.GetProperty function.
- Added more parameter checks for MongoDB functions.
- Added our field picker extension to another field picker dialog in FileMaker, which you see when you duplicate a portal and reassign the fields. This dialog also now gets tooltips for fields.
- Added Plugin.LibExpatVersion function.
- Added Process.LoadFramework function.
- Added Shell.SetMergeErrorAndOutput and Shell.GetMergeErrorAndOutput functions.
- Added StoreKit.LastError function.
- Added StoreKit.SetRequestFailedTrigger function to set a script trigger for an error.
- Added SyntaxColoring.AutoCompleteCustomFunctions.GetEnabled and SyntaxColoring.AutoCompleteCustomFunctions.SetEnabled functions.
- Added Unit parameter to Screen.Height, Screen.Left, Screen.Top and Screen.Width functions.
- Added UTF-8 validation checks to WordFile functions to avoid creating invalid word files with invalid text.
- Added VolumeUUID to Files.DiskInfo function for macOS, iOS and Windows.
- Added XL.Book.GetCoreProperty and XL.Book.SetCoreProperty functions.
- Added XL.Book.RemoveAllCoreProperties and XL.Book.RemoveAllPhonetics functions.
- Added XL.Sheet.ColFormat and XL.Sheet.RowFormat functions.
- Changed custom function auto complete to not add bracket for function name if you are not at the end of the text.
- Changed functions returning CURL errors to mark this as error, so IsError function returns true. This affects CURL.Perform, CURL.FormClear, CURL.FormFinish, CURL.Upkeep, CURL.SendText, CURL.SendData, CURL.PerformAsync, CURL.WebSocketSend, CURL.WebSocketReceive, CURL.SetSocketNonBlocking, CURL.SetSocketNonBlocking, SendMail.PrepareCURL and various CURL.SetOption functions.
- Changed Script ID column for script workspace to be wider and allow more digits to show.
- Changed syntax coloring to keep gray lines gray, broken in 14.5.
- Deprecated Calendar functions. Please move to Events functions.
- Fixed a problem where our mutex handling for DynaPDF would log warnings.
- Fixed a problem with CGImageSource.SetProperty function not passing floating point numbers in automatic mode.
- Fixed a problem with Container.IdentifyData not recognizing a HEIF file.
- Fixed a problem with font handling for XL functions.
- Fixed a problem with text encoding being wrong in an error message with GMImage.WriteFile.
- Fixed a timing problem with DragDrop functions for macOS where not all paths arrived when you had a lot of files.
- Fixed an insufficient escaping for JSON.SortWithEvaluate function, which sometimes caused an internal error and prevented sorting.
- Fixed an issue where custom function auto complete would show Get multiple times.
- Fixed an issue with Path.NativePathToFileMakerPath on Linux adding an extra / to the path.
- Fixed crash in DuckDB client for SQL functions.
- Fixed DynaPDF.GetEmbeddedFile to return checksum as Hex string.
- Fixed Path.AddPathComponent function for Windows to automatically use slash or backslash depending on what the path has already.
- Fixed RSA.Verify function to work better reading private key.
- Improved auto complete for custom functions to delay suggestions, so you can type better without using auto complete.
- Improved auto complete for custom functions to show MBS FileMaker Plugin names.
- Improved code formatting to better handle listings with [] lines like in JSONSetElement.
- Improved JSON.SetVariables and XML.SetVariables functions to work better with multi line texts.
- Improved Math.FormatNumber function to work better with 11 or more digits.
- Improved menu sorting to ignore bracket on the beginning.
- Improved overlay to allow moving window with webviewer for macOS.
- Improved stack printing for Windows to help debugging issues.
- Improved SyntaxColoring.AddContextMenuCommand function to allow them to show in browse and layout mode.
- Improved SystemInfo.OSVersionString to better recognize Windows Server 2019 and newer.
- Improved Time.Format function to return empty result for empty timestamp.
- Improved WordFile.GetProperty and WordFile.SetProperty to work on custom and app properties, too.
- Improved XML.SetPathValue to not create duplicate nodes when finding them using namespaces.
- Increased the column width for script IDs so you see more digits.
- Tuned auto complete for custom functions to not make suggestions when entering brackets.
- Tuned custom function auto complete to not interfere with command-a.
- Tuned formatting of calculations to break behind and/or for long lines.
- Updated curl library to version 8.11.1.
- Updated DynaPDF to version 4.0.96.273.
- Updated expat library to version 2.6.4.
- Updated for future FileMaker version.
- Updated LibXL to version 4.5.0.
- Updated mongo-c-driver library to version 1.29.1.
- Updated plugin for Linux to work from Ubuntu 16 to 24.
- Updated ShowURL function for iOS to work again in newest iOS SDK version.
- Updated SQLAPI to version 5.3.5.
- Updated SQLite to version 3.47.2.
- Updated ssh2 library to version 1.11.1.
- Updated taglib to version 2.0.2.
- Updated to Xcode 16.2.
- Updated zlib to version 1.3.1.
- Updated zxing library to version 2.3.
- When logging that you have a ton of objects, we now list the object type and script name.
- Enabled XSLT extensions.

### 14.5 - 12th November 2024

- Added Overlay.AddWebViewer function.
- Added Barcode.DetectAsJSON function.
- Added some auto complete for custom functions for parameters and function names:
  - Table occurrences
  - Field names after ::
  - Operator names
  - Function names from function list
  - Parameter names
  - Get/Hole/Obtenir functions
  Invoke with fn-F5 in the dialog or we auto invoke it for you.
- Added a check to GMImage.Scale to return an error if width or height is > 99999.
- Added a field to database design dialog for tables to show comments. To add a comment, define a field _TableComment and put comment text there.
- Added Audit.BuildCaches function.
- Added CURL fix #15102 to fix a bug with FTP over SSL.
- Added CurrentTimeStamp field to the JSON for FM.TableStatistics, FM.RecordStatistics and FM.FieldStatistics functions.
- Added DynaPDF.ClearLicense function.
- Added DynaPDF.GetAnnotColor and DynaPDF.GetTextBBox functions.
- Added DynaPDF.GetAnnotTextAlign function.
- Added DynaPDF.GetGlyphIndex and DynaPDF.GetGlyphOutline functions.
- Added DynaPDF.Parser.DeleteAllImages, DynaPDF.Parser.DeleteImage and DynaPDF.Parser.ListImages functions.
- Added field comment text to the tooltips in the debugger for macOS.
- Added field comment to the tooltips for the export dialog.
- Added field value and comment tooltips to calculation dialog, script workspace and debugger for macOS.
- Added FM.UpdateRecord4, FM.UpdateRecord5, FM.UpdateRecords4 and FM.UpdateRecords5 functions.
- Added JSON.InsertRecords function to insert array of records in JSON.
- Added List.Intersection function.
- Added Math.Rate function.
- Added MYSQL_OPT_LOCAL_INFILE option for SQL.SetConnectionOption for use with MySQL connections.
- Added sample script into extras to launch two FileMaker on macOS, one with HTTP tunneling on and one with it being off.
- Added SharedMemory.DeleteValue function.
- Added Text.FilterSwissQRCode function.
- Added Vision.RectifyDocument function.
- Added WordFile.GetProperty and WordFile.SetProperty functions.
- Changed Archive.Content to skip GID, UID, Permissions, RDev, FileType and HardLink fields, if not set.
- Changed Barcode.Generate, Barcode.GenerateJSON and Barcode.WriteFile to use 4 as default scale.
- Disabled remembering column widths for FileMaker 21.1.1 since this feature is now built-in to FileMaker.
- Fixed a bug in the Gamutcheck for lcms2.
- Fixed a problem on Windows with shared memory objects not accessible for other users.
- Fixed a problem with Events.Reset with not clearing all cached events, so Events.RemoveEvent function failed.
- Fixed a problem with Preview, MapView, DragDrop and ImageView controls to avoid control disappearing.
- Fixed an edge case with plugin registration.
- Fixed an edge case with swiss keyboard layout for RemoteControl.PressKey function and the virtual key lookup.
- Fixed an issue in Window.PositionNextDialog function for Windows.
- Fixed an issue with GMImage.WriteToPDFContainer and Twain.Acquire on Windows.
- Fixed crash with running Python on Windows.
- Fixed CURL Multi functions, broken in 14.4.
- Fixed SharedMemory.GetValue and SharedMemory.SetValue functions to work with empty values.
- Fixes a crash in Python functions when using older Python 3.9.x version.
- Implemented Process.List for Linux.
- Improved auto complete when you are in the middle of text.
- Improved Barcode.Detect by using newer zxing library.
- Improved Container.ReadImage to read HEIC images on iOS.
- Improved custom function auto complete to cache table and field names.
- Improved DynaPDF.GeneratePreview, DynaPDF.ReadImageResolution, DynaPDF.ReadImageFormat, DynaPDF.InsertImage, DynaPDF.AttachFileContainer, DynaPDF.AddOutputIntentEx, DynaPDF.CreateICCBasedColorSpaceContainer and DynaPDF.OpenPDFFromContainer to return proper error if container is empty.
- Improved error handling for XML.ApplyStylesheet.
- Improved FM.QueryBaseTableNames to use newer API in FileMaker 21.0 and newer.
- Improved FM.TableStatistics function to ignore summary fields.
- Improved JSON.InsertRecord to be a bit faster and data type conversion to do numbers and texts, too.
- Improved script search to include comments.
- Improved styled text conversion on macOS to include better support for highlight, underline and strikethrough, e.g. for RichText.SetFormattedText and Clipboard.SetStyledText functions.
- Improved type detection for FM.InsertRecordCSV function.
- Improved Vision functions to better read HEIC images directly.
- Note: SSLv3 is disabled now.
- Optimized XML functions to better handle thread locking.
- Removed the dependency on VCRUNTIME140_1.DLL file.
- Updated CURL to version 8.10.1.
- Updated discount library to version 2.2.7d.
- Updated DynaPDF to version 4.0.94.265.
- Updated for next FileMaker version.
- Updated jpeg library to version 9.6.
- Updated libarchive to version 3.7.6.
- Updated LibXL to version 4.4.0.
- Updated OpenSSL to version 3.3.2.
- Updated plugin SDK.
- Updated SQLite to version 3.47.0.
- Updated to libxml2 version 2.13.4.
- Updated to libxslt version 1.1.42.
- Updated to Xcode 16.0.
- Updated unicode tables for removing accents for Text.RemoveAccents function.
- Updated zxing library to newer branch.

### 14.4 - 17th September 2024

- Added JSON.InsertRecord and JSON.InsertOrUpdateRecord functions.
- Added JSON.UpdateRecord and JSON.UpdateRecords functions.
- Added JSON.DeleteRecord and JSON.DeleteRecords functions.
- Added Text.Tidy and Text.TidyErrorLog functions to tidy XML and HTML.
- Added XML.Tidy function.
- Added Text.HTMLtoJSON function.
- Added BaseFont as selector for DynaPDF.SysFontInfo function.
- Added BaseFont value to JSON for DynaPDF.SysFontInfoAsJSON function.
- Added ClearBuffer parameter to WebRequest.GetRawData function.
- Added DynaPDF.CreateExtGState and DynaPDF.SetExtGState functions.
- Added DynaPDF.CreateURIAction function.
- Added DynaPDF.GetInEncryptionInfo function.
- Added DynaPDF.TestPassword function.
- Added FieldName entry for FM.FieldStatistics function result.
- Added Flags parameter for DynaPDF.ExtractDocumentText function.
- Added FM.FieldStatistics function.
- Added MongoDB.CursorRecords function.
- Added OptionsJSON parameter for MongoDB.ReplaceOne function.
- Added Python.RunFile function.
- Added shortcut for layout editor to use Command-Option-Shift-F on macOS to jump to the objects search field.
- Added SyntaxColoring.AutoCompleteVariables.SetLocals and SyntaxColoring.AutoCompleteVariables.GetLocals functions.
- Added tooltips for specify field dialog to show field type.
- Added WebHook.GetTag, WebHook.SetTag, WebRequest.GetTag and WebRequest.SetTag functions.
- Added XL.Book.RemovePrinterSettings and XL.Book.RemoveVBA functions.
- Changed JSON.GetArrayItemsAsList to return empty result if JSON is empty.
- Changed linux version to include version number and build number for Get(InstalledFMPlugins).
- Changed plugin to return empty results as really empty and trace to log that as nothing. It makes a difference whether we return nothing or empty text.
- Changed tooltips to show container instead of binary, text instead of varchar.
- Disabled trace logging for MongoDB by default.
- Fixed a bug in FM.FieldStatistics function. Now properly quotes field names.
- Fixed a bug with Matrix.Text function where it would skip some columns if they were constants in SQL used to create the matrix.
- Fixed a memory leak in Clipboard.SetFileMakerData, Clipboard.DetectFileMakerDataType and XML.Import functions.
- Fixed a problem in Files.RenameFile function to rename folders on Windows if the path ended with a backslash.
- Fixed a problem with AVRecorder.AddPreviewWithControl positioning the layer for FileMaker 21.
- Fixed a problem with GMImage.NewFromFile and Japanese characters on Windows.
- Fixed an issue in SyntaxColoring.AutoCompleteVariables.SetGlobals function.
- Fixed crash in DynaPDF.GetFontsAsJSON function for font with missing values.
- Fixed DynaPDF.ImportPDFFile to return proper error message.
- Fixed incorrect returning of result for DynaPDF.SetRenderingIntent, DynaPDF.SetUserUnit and DynaPDF.SetLineWidth functions.
- Fixed possible crashes with Phidgets script triggers.
- Fixed thread naming to avoid renaming main thread.
- Improved Archive functions and UnZipFile.OpenContainer function to better read zip archives downloaded via Insert From URL script step.
- Improved check to XL.Initialize to return an error if the license key includes invalid characters like a space character.
- Improved CURL.GetResultAsEMailList function, so it includes In-Reply-To and References headers if you have them in the query.
- Improved GMImage.ReadContainer to better pick decoder based on file name.
- Improved JSON functions to return error if you pass non JSON parameters to JSON.AddItemToArray, JSON.AddItemToObject, JSON.Replace and related functions.
- Improved MapView.PlanRoute function to use less memory.
- Improved PDFKit.RestorePrintSettings to better read PDF from container.
- Improved Twain.Initialize to return better error messages on Windows.
- Reduced number of dependencies on Linux version of our plugin. Requires GLIBCXX_3.4.26 now.
- Updated CURL to version 8.10.0.
- Updated DynaPDF to version 4.0.92.261.
- Updated openssl to version 3.1.6.
- Updated SQLAPI to version 5.3.4 with DuckDB 1.0 support.
- Updated SQLite to version 3.46.1.
- Upgraded all linux compilers to newer versions.

### 14.3 - 9th July 2024

- Added Python functions.
- Added MQTT example using CURL.
- Added Archive.CompressText function.
- Added CFunction.GetTag, CFunction.SetTag, CLibrary.GetTag and CLibrary.SetTag functions.
- Added check to XL.Initialize and DynaPDF.Initialize to return an error if the license key includes invalid characters like a space character.
- Added CURL.GetMQTTMessages function.
- Added CURL.SetMQTTScript, CURL.GetMQTTFileName and CURL.GetMQTTScriptName functions.
- Added Dictionary.GetTag and Dictionary.SetTag functions.
- Added DragDrop.AttachToOverlay function to accept drops on an overlay.
- Added DX, DY and ClassID parameters to Preview.CreateWithControl and Preview.Create functions.
- Added DynaPDF.SetLineAnnotPoints and DynaPDF.EnableImageCache functions.
- Added EmailParser.ReleaseAll function.
- Added FM.RecordStatistics function.
- Added header row flag for Matrix.CSVSplit to put first row into column names.
- Added Java.GetTag and Java.SetTag functions.
- Added KeepUnsupportedAnnots option for DynaPDF.FlattenAnnots function.
- Added kstSearchAsIs flag for DynaPDFParserMBS class.
- Added Mutex.GetTag and Mutex.SetTag functions.
- Added Mutex.ReleaseAll function.
- Added Options parameter for Archive.Content, Archive.Extract, Archive.ExtractFile, Archive.FileList and Archive.GZipDecompress functions.
- Added Plugin.LockedFunctions function.
- Added Plugin.SetLicenseKeyHidden and Plugin.IsLicenseKeyHidden functions.
- Added QuickList.JSONArray function.
- Added Schedule.GetTag and Schedule.SetTag functions.
- Added SyntaxColoring.AutoCompleteVariables.GetGlobals and SyntaxColoring.AutoCompleteVariables.SetGlobals functions.
- Added SystemInfo.isSequoia function.
- Added SystemInfo.MacMemoryHostStatistics function.
- Added TotalSize entry for FM.TableStatistics and FM.RecordStatistics.
- Added WebView.ClearVirtualHostNameToFolderMapping and WebView.SetVirtualHostNameToFolderMapping functions.
- Added Window.HasFormattingBar function.
- Changed CURL debug messages to include the full URL you requested for review. We include a warning, if URL has no scheme.
- Changed ListDialog.SetShowCheckboxes to allow flag 4 to have checkboxes with only one checkbox checked at maximum.
- Changed Matrix.CSVSplit to handle CSV with multi line values better.
- Changed Matrix.JSONRecord and Matrix.JSONRecords to take field names from column names, if you have some and you don't pass field names.
- Changed StoreKit.FinishTransaction to allow passing of index in additional of transaction Identifier.
- Changed trace function to not log the password for a Files.Mount call.
- Changed WindowsUserNotification and UNNotification functions to be free to use without license.
- Changed XL.Book.Version to have the book parameter optional.
- Deprecated SystemInfo.isElCapitan, SystemInfo.isMavericks, SystemInfo.isSierra and SystemInfo.isYosemite functions.
- Enhanced check syntax button for calculation dialog to allow pressing shift key to only check the selected text.
- Enhanced execute button for calculation dialog to allow pressing shift key to only evaluate the selected text.
- Enhanced format button for calculation dialog to allow pressing shift key to only format the selected text.
- Fixed a bug in IBAN.Format function.
- Fixed a bug in WebLink() function in DynaPDFMBS class returning negative number.
- Fixed a memory leak in loading Excel file from disk with XL.LoadBook function.
- Fixed a problem with copying script text with duplicate field names or calculations.
- Fixed a problem with XL functions where license key was not recognized properly.
- Fixed an issue with server calling WMIQuery.Connect function.
- Fixed Archive.AddContainer function to allow relative paths in file name parameter.
- Fixed Archive.AddText function to allow relative paths in file name parameter.
- Fixed DynaPDF.DeletePage to return remaining pages on success.
- Fixed JSON.GetArraySize to return no error for empty JSON and just return zero.
- Fixed JSON.GetPathItem to not return error for invalid JSON if flag 2 is used.
- Fixed problem with JSON returning negative floating point numbers without leading 0.
- Fixed problem with variable checking and "target:" in lines.
- Fixed the WordFile.ReplaceTag function, which broke in 14.2.
- Improved code formatting to detect semicolon first and then formats this way.
- Improved Files.ResolveAlias function to handle symbolic links, too.
- Improved JSON.Import to report SQL statements in the error list for JSON.Import.Errors alongside the error messages.
- Improved JSON.SetPathItem to take the given value as text if it doesn't parse as JSON.
- Improved list functions to better split lists with CRLF as delimiter.
- Improved the formatting code for calculations to handle special words like OR and AND better.
- Improved UNNotification functions to work better in FileMaker 21, so both ways can be used together.
- Improved variable auto completion to better handle custom functions starting with underscore.
- Improved XML.Import to report SQL statements in the error list for XML.Import.Errors alongside the error messages.
- Reimplemented JSON.IsValid using newer JSON functions internally, so it catches more errors.
- Renamed EmailParser.Free to EmailParser.Release, but old name will stay valid.
- Renamed Mutex.Free to Mutex.Release, but old name will stay valid.
- Update LibXL libraries for macOS and Windows to version 4.3.
- Updated CURL to version 8.8.0
- Updated DynaPDF to version 4.0.89.256.
- Updated for future FileMaker version.
- Updated our ICU integration for SQLite to the new SQLite version.
- Updated SQLAPI to version 5.3.2.
- Updated SQLite to version 3.46.0.
- Updated to newer plugin SDK for FileMaker 21.
- Updated to Xcode 15.4.

### 14.2 - 14th May 2024

- Added JSON.Merge function.
- Added JSON.ReplaceEvaluate function and related JSON.CurrentMatch and JSON.CurrentMatchPath functions.
- Added new XL functions to create conditional formatting including XL.Book.AddConditionalFormat and XL.Sheet.AddConditionalFormatting.
- Added functions for iOS to print including PDFKit.SelectPrinter to pick a printer.
- Added AnimationTime parameter for Overlay.Move function.
- Added CertificateName parameter to DynaPDF.SaveAndSignFileWinCryptDialog function to skip dialog and pick certificate by name.
- Added Container.RemovePreview function to remove preview from container.
- Added CURL.AvailableSSLBackends and CURL.SetSSLBackend functions.
- Added Files.IsSystemImmutable, Files.IsUserImmutable, Files.SetSystemImmutable and Files.SetUserImmutable functions.
- Added firstRow and lastRow parameter to FM.SQL.JSONRecords and FM.SQL.XMLRecords functions.
- Added firstRow and lastRow parameter to Matrix.JSONRecords function.
- Added flag 16 for Matrix.JSONRecords to include field names as first row if outputting arrays.
- Added flag value 2 for JSON.ToHTML function to process embedded JSON.
- Added GMImage.Flatten function to remove alpha channel from image.
- Added IsSwipeNavigationEnabled and HiddenPdfToolbarItems as options to WebView.SetPreferences and WebView.GetPreferences for Windows.
- Added JSON.Import.SetExtraField and JSON.Import.SetBaseFields functions.
- Added keepAllSheets parameter for XL.LoadBookPartially function.
- Added ListDialog.GetShowCloseBox and ListDialog.SetShowCloseBox functions.
- Added Math.MovingAverage function.
- Added MongoDB.ClientCommand, MongoDB.ClientCommandQuery and MongoDB.ClientCommandWithServerId functions.
- Added MongoDB.GetAppName, MongoDB.SetAppName and MongoDB.GetCredentials functions.
- Added parameter for Hash.DigestFile to update progress dialog.
- Added QuickList.HasValues and Dictionary.HasKeys functions.
- Added SVG for XL.Book.GetPictureType and XL.Book.GetPicture.
- Added Text.LeftTrim and Text.RightTrim functions.
- Added tooltip for Script IDs.
- Added widget to field picker to jump to last selected table occurence.
- Added Windows support for SystemInfo.CPULoad function.
- Added work around for XL.Book.GetPicture to return image data, even if LibXL returns an error, but does provide data.
- Built curl with our Apple IDN implementation for CURL. see commit.
- Enabled ALTER and CREATE commands to be used on server with FM.ExecuteFileSQL function.
- Fixed a bug in FM.SQL.InsertRecords that prevented containers from being transferred.
- Fixed a problem with DynaPDF.ExtractText introduced in 14.x.
- Fixed a problem with ListDialog freezing on Windows if you use alt-tab to switch to other apps and you switch back to the FileMaker window instead of the dialog itself.
- Fixed an issue in auto complete where our underscore variable completion would prevent you from typing field names with underscores.
- Fixed an issue with EmailParser.ReceiveDate and EmailParser.SentDate function with east asian time zones.
- Fixed QLPreviewPanel.Show to make sure that a change in focus doesn't clear the content.
- Fixed the ListDialog functions to allow the red close widget to be used on the dialog to close it.
- Implemented PDFKit.Print and related functions for iOS.
- Improved auto complete to not suggest completions while inside a variable or function name to avoid in-word completions.
- Improved control placing for newer FileMaker version for AVPlayer, DragDrop, MapView and WebViewer.
- Improved Dialog.SetMode function for Note and Stop mode to use the given icon instead of the application icon.
- Improved DynaPDF.TestGlyphs to return error message in case you call it outside an open page.
- Improved EmailParser.HTMLToPlainText to handle title tag.
- Improved FM.SQL.JSONRecords function to return empty array for empty result.
- Improved handling of font and format reference numbers in XL functions to cache the objects and reuse the indexes.
- Improved localization for script IDs.
- Improved localization of format button.
- Improved Matrix.HTML and JSON.ToHTML to use CSS for right alignment.
- Improved Overlay functions to resize the image automatically to fill window size on Windows.
- Improved Path.NativePathToFileMakerPath to not put in the disk name if it is already there.
- Improved script IDs to better find script Ids if script name are not unique.
- Improved SQL functions in FileMaker to better provide an error message.
- Improved WordFile.ReplaceTag and WordFile.Substitute functions to remove control characters from replacement text to avoid creating broken word files.
- Improved XL.Book.GetPicture to return future pictures types as FILE containers.
- Improved XL.Book.GetPictureType to report future types as number.
- Updated CURL to version 8.7.1.
- Updated DynaPDF to version 4.0.87.250.
- Updated LibXL to version 4.3.0.
- Updated SQLAPI to version 5.3.1.
- Updated SQLite to version 3.45.3.
- Updated to Xcode 15.3.

### 14.1 - 12th March 2024

- Added Overlay functions to show little graphics on screen independent of FileMaker.
- Added "Copy Full Field Specification" menu command for field specify dialog in FileMaker.
- Added AVRecorder.GetVideoOrientation and AVRecorder.SetVideoOrientation function.
- Added CF function as a shortcut for FM.CF function, which assumes you store custom functions in a dictionary named CF.
- Added check to LibXL.Initialize to return error if you use the license key for a different platform.
- Added Clipboard.Clear function.
- Added DynaPDF.CreateGoToEAction function.
- Added DynaPDF.GetActionsAsJSON function.
- Added DynaPDF.Parser.SelectionText function.
- Added empty check for debugger tooltips, so we show "$variable is empty", if IsEmpty() returns true for the variable.
- Added Events.RequestFullAccessToEvents, Events.RequestFullAccessToReminders and Events.RequestWriteOnlyAccessToEvents functions.
- Added fallback to Clipboard.GetText for Windows to read ANSI text if unicode text is not available.
- Added Flags parameter to Window.List to return names instead of IDs and filter for database windows only and/or visible windows.
- Added GMImage.Statistics function.
- Added JSON.AddValueToArray and JSON.AddValueToObject functions.
- Added KeyToCopy parameter to JSON.JSONPatch.FromDiff to copy primary keys.
- Added LastErrorDetail function for Get() function links.
- Added ListDialog.SetCloseDialogOnDoubleClick and ListDialog.GetCloseDialogOnDoubleClick to decide whether the dialog closes on double click.
- Added possibility to hold option key for format button to get a calculation made compact.
- Added RemoteControl.IsAltKeyDown, RemoteControl.IsCapsLockKeyDown, RemoteControl.IsCommandKeyDown, RemoteControl.IsControlKeyDown, RemoteControl.IsFunctionKeyDown, and RemoteControl.IsShiftKeyDown functions to check if a modifier key is down.
- Added support for orientation in WebView.SetPrintParameter function for iOS.
- Added SyntaxColoring.FormatCalculation function.
- Added timeout for CLGeocoder.GeocodeAddressString and CLGeocoder.ReverseGeocodeLocation functions.
- Changed Audit.Changed to ignore empty field names.
- Changed JSON.Replace to accept text or number as replacement and convert it to JSON internally automatically instead of returning a parsing error.
- Changed PageSetupDialog.GetLastSettings, PrintDialog.GetLastSettings and PDFKit.GetPrintLastSettings to log all text for trace log.
- Changed Text.TextToRTF function to use RTF parser from macOS/iOS and Windows for these platforms.
- Changed Trace function to not shorten texts with CURL.DebugMessages or returned error.
- Disabled syntax coloring explicitly for preferences and file option dialogs.
- Enabled auto complete for dialog to specify output file. Use Option-ESC or F5 depending on macOS version to trigger auto complete.
- Fixed a bug in our syntax check button when using fancy quotes.
- Fixed a crash in ListDialog.Sort when there is no list to sort.
- Fixed a possible crash with deactivated MBS FileMaker Plugin. Still we welcome if you keep MBS FileMaker Plugin activated in FileMaker.
- Fixed a problem in Container.Decompress function.
- Fixed a problem where relationship graph search didn't work for macOS.
- Fixed a problem with auto completion with underscore variables on macOS Sonoma.
- Fixed a problem with Command - - shortcut in FileMaker.
- Fixed a problem with SendMail.AddAttachmentContainer function where the file name included the remote: prefix for external containers.
- Fixed a problem with Socket.SendMessageHex function.
- Fixed an edge case with JSON.Replace where it didn't catch all spots.
- Fixed an issue in SQL functions where an error message would be cut on the first character improperly encoded.
- Fixed bug in Events.Item.SetTimeZone function.
- Fixed bug in StoreKit.FinishTransaction function not finding the transaction.
- Fixed headers in ListDialog functions to not show check boxes.
- Fixed Window.FindByName for Windows to not find other applications windows.
- Fixed Window.FindByName to return first matching window in case of a prefix match, not last.
- Improved calculation formatting code.
- Improved Clipboard.GetRTFText, Clipboard.GetHTMLText, Clipboard.GetStyledText and Clipboard_GetText for Windows to strip out an ending NULL character if the other application added it to the clipboard text.
- Improved copying table contextual menu command to copy checkboxes as 0 or 1.
- Improved Data Detector example to include a contextual menu routine for showing actions based on RegEx.DataDetector function.
- Improved dialog functions on macOS to show buttons with borders if you have more than three buttons.
- Improved DynaPDF.GetEmbeddedFileAsContainer to return images with preview.
- Improved font mapping for DynaPDF.WriteStyledText to better handle bold fonts.
- Improved formula formatting to keep comments on the end of the line there and better handle inline comments.
- Improved IKScannerDevicePanel.Reset to clear values set with IKScannerDevicePanel.SetDocumentName, IKScannerDevicePanel.SetScanControlLabel and IKScannerDevicePanel.SetOverviewControlLabel, too.
- Improved ImageCapture functions to connect scan dialogs with other functions. This allows you to set parameters without the GUI.
- Improved ListDialog functions to match headers with all their items if you search for them.
- Improved ListDialog functions to not show empty header lines if you filter entries.
- Improved our RTF parser for Text.TextToRTF and Clipboard.GetStyledText function.
- Improved SendMail functions to allow the creation of attachment only emails.
- Improved SQL functions to better return error messages if the ODBC driver provided them with ASCII instead of UTF16/32 encoding.
- Improved variable check to run better for smaller scripts.
- Marked path functions to be free to use.
- Updated DynaPDF to version 4.0.84.246.
- Updated dyncall library to version 1.4.
- Updated our headers for NetSNMP library.
- Updated SQLite to version 3.45.1.
- Updated to newer plugin SDK.

### 14.0 - 16th January 2024

- Added a Search Scripts example file to allow you searching your Script Workspace on Windows (and macOS) with the F8 hotkey.
- Added caching for variable check to improve performance for longer scripts.
- Added CaseSensitive flag for List.FindDuplicateItems, List.HasDuplicateItems, List.RemoveDuplicateItems, QuickList.FindDuplicateItems, QuickList.HasDuplicateItems, QuickList.RemoveDuplicateItems.
- Added checks for SQL functions in multiple places to avoid crashes if SQL command text is empty.
- Added CNContactStore.ContactsMatchingURL function.
- Added Command-+ and Command-- as keyboard shortcuts for calculation fields to directly adjust font size.
- Added command-J to format text as JSON in a text view, e.g. in data viewer result.
- Added Command-Option-Cursor key shortcuts for relationship graph on macOS to align items.
- Added Command-Option-Shift-Cursor key shortcuts for relationship graph on macOS to resize items to smallest/biggest size.
- Added Command-Shift-G for find bar to find previous match.
- Added Container.IdentifyData, Files.IdentifyData and Text.IdentifyData functions.
- Added CSS parameter for Matrix.HTML function.
- Added curl triggers for success and failure: CURL.GetFailedEvaluate, CURL.GetFailedFileName, CURL.GetFailedScriptName, CURL.GetSucceededEvaluate, CURL.GetSucceededFileName, CURL.GetSucceededScriptName, CURL.SetFailedEvaluate, CURL.SetFailedScript, CURL.SetSucceededEvaluate, and CURL.SetSucceededScript.
- Added CurrentTimeUTCMicroseconds for Audit as possible field.
- Added CurrentTimeUTCMicroseconds for our get function links.
- Added DynaPDF parser functions: DynaPDF.Parser.ChangeAltFont, DynaPDF.Parser.Create, DynaPDF.Parser.DeleteText, DynaPDF.Parser.ExtractText, DynaPDF.Parser.FindText, DynaPDF.Parser.Line, DynaPDF.Parser.ParsePage, DynaPDF.Parser.ReplaceSelText, DynaPDF.Parser.SetAltFont, DynaPDF.Parser.TextMatrix, DynaPDF.Parser.WriteToPage.
- Added DynaPDF.GetFullyQualifiedFieldName function.
- Added flags for List.BestMatch and QuickList.BestMatch to use Jaro-Winkler distance optionally and optionally return list of top 5.
- Added FM.SQL.ToMatrix function.
- Added FullyQualifiedFieldName as new field for DynaPDF.GetFieldAsJSON and DynaPDF.GetFieldAsJSON results.
- Added JSON.JSONPatch.ApplyPatch, JSON.JSONPatch.FromDiff, JSON.MergePatch.ApplyPatch and JSON.MergePatch.FromDiff functions.
- Added links to syntax coloring goodies from help pages.
- Added List.Shuffle and QuickList.Shuffle functions.
- Added Math.Random.ExponentialDistribution, Math.Random.NormalDistribution and Math.Random.PoissonDistribution functions.
- Added Matrix.IndexOfFirstValueMatching function.
- Added more Phidgets examples.
- Added new parameter for Archive.AddContainer, Archive.AddFile and Archive.AddText to pass a timestamp to use.
- Added Phidget.DisableServerDiscovery and Phidget.EnableServerDiscovery functions.
- Added Phidget.GetTag and Phidget.SetTag functions.
- Added QuickList.Release function as new name for QuickList.Free. Old name stays valid.
- Added Reset Colors button to the preferences dialog.
- Added SyntaxColoring.GetCodeFoldingEnabled and SyntaxColoring.SetCodeFoldingEnabled function.
- Added XL.FormControl.JSON function.
- Added XML.ToHTML function.
- Changed DynaPDF.FontInfo to return numbers for FontBBox as list of values with numbers.
- Changed FM.DeleteRecords to return OK if no record was found.
- Enabled Folders.UserDownloads to work in iOS.
- Fixed a bug for comment links which prevented them from working in older macOS versions.
- Fixed a problem in Matrix.CopyRow when using row names.
- Fixed a problem with custom web viewer to show PDF documents.
- Fixed a problem with Get function links and non breaking space.
- Fixed a problem with ImageView.CreateWithSize not working properly on macOS.
- Fixed a problem with int32 read as string in SQL functions.
- Fixed an edge case with auto complete of variables causing an exception.
- Fixed an edge case with Path.LastPathComponent to return last path name, even if a slash is on the end of the path.
- Fixed an endless loop in JSON.Search function with a bad query. Now propergates the error properly.
- Fixed an issue where calculation coloring would run, even when it was disabled.
- Fixed an issue with auto completing underscore prefixed local variables.
- Fixed AppleScript.Compile to clear last error for AppleScript.LastErrorMessage function.
- Fixed control placing on iOS to find layout view for a card window.
- Fixed copy variables command to not limit it to 500 lines.
- Fixed CURL.SetupAWS and CURL.SetupOAuth to reset NoBody flag if new transfer is not head.
- Fixed DynaPDF field functions to try different field structure sizes, if the DynaPDF DLL is much newer/older than our plugin and prevent errors about different structure sizes.
- Fixed Events.Item.GetCalendar function to not always return JSON.
- Fixed ListDialog functions to not use column widths if you have only one column.
- Fixed WebView.InstallUserMediaAccess to not return error when called a second time.
- Fixed window functions for future FileMaker version, e.g. affect Printer.Print.
- Implemented Time.Parse for Windows.
- Improved animation for ProgressDialog functions on macOS.
- Improved comment links with script: scheme to use script IDs in addition to names.
- Improved format button to handle <=, >= and <> correctly. But you can also use ≤, ≥ or ≠ of course.
- Improved handling of arrays for our JSON to HTML conversion in JSON.ToHTML function.
- Improved performance for newer JSON functions.
- Improved preferences dialog to not show Touch Bar ESC feature if you don't have a Mac with a Touch Bar.
- Improved script coloring to better read script lines.
- Improved SyntaxColoring.FactoryDefaults function to reset both dark and light colors.
- Improved XL functions for form controls to take name of control in addition to index.
- Removed support for Claris Pro/Server.
- Rewrote DynaPDF.ExtractDocumentText using newer DynaPDF.ExtractText function internally.
- The comment links to scripts can now recognize option key to open script in new window.
- Updated CURL to version 8.5.0.
- Updated DynaPDF to version 4.0.82.239.
- Updated for future FileMaker version.
- Updated openssl library to version 3.1.4.
- Updated SQLAPI to version 5.3.0.
- Updated SQLite to version 3.44.1.
- Updated to LCMS 2.16.
- Updated to Xcode 15.2.
- Updated Visual Studio to version 2022.

### 13.5 - 7th November 2023

- Added calculation formatting function with ƒ button for custom function and calculation dialogs.
- Added JSON.Query function for JSON Path queries.
- Added JSON.Replace to replace within a JSON.
- Added JSON.Search to perform JMESPath queries in FileMaker.
- Added support for having checkboxes in a list dialog for ListDialog functions.
- Added "DefaultPDFA4" flag for DynaPDF.CheckConformance function.
- Added "PDF/A 4", "PDF/A 4e" and "PDF/A 4f" conformation types for DynaPDF.CheckConformance function.
- Added Command-Option-Shift-C to calculation text field for macOS to copy text with formatting as html:
  - Command-C: Copy as text
  - Command-Option-C: Copy as styled text
  - Command-Option-Shift-C: Copy as HTML
- Added Command-Shift-F shortcut to show find & replace interface in calculation text field.
- Added DynaPDF.CreateGeospatialMeasure function.
- Added Files.IsApplication and Files.IsPackage functions.
- Added Flags Parameter for Matrix.HTML function.
- Added Flags Parmeter for Matrix.Evaluate. Pass 2 to continue after error.
- Added functions to work with reaction effects on macOS 14 and iOS 17 with AVRecorder: AVRecorder.AvailableReactionTypes, AVRecorder.CanPerformReactionEffects, AVRecorder.PerformEffectForReaction, AVRecorder.ReactionEffectGesturesEnabled and AVRecorder.ReactionEffectsEnabled functions.
- Added goto: and script: for comment URLs in script workspace to quickly jump to lines or scripts.
- Added highlight support for Text.TextToHTML function.
- Added IsApplication and IsPackage for Files.ListAsJSON function.
- Added Matrix.Lookup function to get a value without error for invalid parameters.
- Added MongoDB Audit.fmp12 example file.
- Added new flags 512 to ignore duplicates (with FileMaker's validation) and 1024 to not create UUID fields to XML.Import and JSON.Import functions.
- Added PDF/A 4, PDF/A 4e and PDF/A 4f for DynaPDF.SetPDFVersion function.
- Added Phidget.ClearScriptTrigger function.
- Added Plugin.ObjectCounts and Plugin.UsedFunctionCounts function.
- Added Preview.SetFocus function.
- Added SkaleAnnotIcons flag for DynaPDF.SetGStateFlags function.
- Added Window.AddToTaskbar and Window.RemoveFromTaskbar functions.
- Added Window.Parent function.
- Added XML.Import.GetExtraFieldDefinitions and XML.Import.SetExtraFieldDefinitions functions to create custom fields.
- Changed AVRecorder.Release to stop session if it is running.
- Changed DynaPDF.Table.SetFont to have Style, Embed and CodePage parameters be optional with default style, embed = 1 and CodePage = Unicode.
- Changed ListDialog.ShowDialog to allow two line prompt line.
- Changed SQL functions, so you can load Actual Tech ODBC drivers directly without using iODBC.
- Changed XL.Sheet.CellReadStyledText function to fall back to XL.Sheet.CellReadText for non styled cells.
- Enabled fortified source checks for libc on Linux.
- Enabled support for WebP pictures to GraphicsMagick functions for macOS ARM target.
- Enabled WindowsOCR functions for server usage.
- Fixed a problem with AVRecorder.AddPreviewWithControl and AVRecorder.StartRecording functions when they returned OK instead of the error.
- Fixed a problem with AVRecorder.AddPreviewWithControl picking wrong window if layout and window had same name.
- Fixed an edge case for shifting formula text left.
- Fixed an exception in syntax coloring for empty texts.
- Fixed an issue with RtlProcessFlsData crashing on Windows.
- Fixed an issue with WebHook functions and HTTP headers sent in chunks.
- Fixed error message for Text.FileExtensionToMimeType function.
- Fixed Files.ListAsJSON function to not filter invisible files on macOS without asked to do that.
- Fixed find bar in data viewer for the case you got actually two of them.
- Fixed font for ListDialog's filter to make it bigger.
- Fixed OpenSSL to not depend on GLIBC_2.25, so you can use our plugin on older linux versions again.
- Fixed plugin not loading on macOS 10.13.
- Fixed problem with ListDialog functions on Windows.
- Fixed Shell.Terminate for Windows to work better.
- Fixed XML.Import.ErrorCount and XML.Import.Errors to work better.
- Improved IKDeviceBrowserPanel.Show and IKScannerDevicePanel.Show functions to internally call ImageCapture.Initialize if needed.
- Improved Matrix.Evaluate and Matrix.Current to work better in multi threading environments.
- Improved syntax coloring to recognize variable names in calculation comments, if a comment color and variable color is defined.
- Improved SystemInfo.OSVersionString, SystemInfo.MacMajorVersion and SystemInfo.MacMinorVersion to return Ubuntu version on Linux.
- Improved variable check to recognize /* or // @var $test or similar in front of Let statements to define new variables in a comment. Works with @constant, @variable or @parameter like normal comments and with multiple variables.
- Rewrote script triggers for Phidget functions to not queue up too many scripts.
- Updated CURL to version 8.4.0.
- Updated DynaPDF to version 4.0.80.232.
- Updated SQLAPI to version 5.2.6.
- Updated SQLite to version 3.44.0.
- Updated to Xcode 15.0.

### 13.4 - 12th September 2023

- Added Phidget functions to control various USB devices from Phidgets Inc.
- Added AsJSON parameters to Events.Calendars, Events.Source.Calendars, Events.Item.GetCalendar, Events.defaultCalendarForNewEvents, Events.defaultCalendarForNewReminders, Events.SourceWithType, Events.Sources and Events.DelegateSources functions to return result as JSON.
- Added check to LDAP.ModifyJSON and LDAP.Modify to complain if dn is empty.
- Added CURL.ProcessRelativeURL function.
- Added DynaPDF.DeleteDPartNode function.
- Added Files.EvictUbiquitousItem and Files.StartDownloadingUbiquitousItem functions.
- Added Files.UbiquitousItemStatus function.
- Added Flags parameter for QLPreviewPanel.Show function.
- Added ForceInterpolation flag for DynaPDF.RenderPage function.
- Added iOSApp.GetOrientationDidChangeEvaluate, iOSApp.GetOrientationDidChangeScript, iOSApp.SetOrientationDidChangeEvaluate and iOSApp.SetOrientationDidChangeScript functions.
- Added MongoDB.IsTracing and MongoDB.Trace functions.
- Added MongoDB.Ping function.
- Added MongoDB.SetSSLOptions function.
- Added MongoDB.SSLLibrary function.
- Added new parameter useDetached for DynaPDF.SaveAndSignFileExt1 function.
- Added new PhotoPicker functions.
- Added SerialPort.OpenPath function, so you can use SerialPort functions to open special files or pipes.
- Added SerialPort.WaitNamedPipe function to wait for a pipe and use with SerialPort.OpenPath on Windows.
- Added SkipDPartData option for DynaPDF.SetImportFlags2 function.
- Added TOTP.DecodeFromBase32 and TOTP.EncodeToBase32 functions.
- Added XL.Sheet.SetHidden function.
- Added XML.InsertRecords function.
- Changed FileDialog functions to return error when called server side.
- Changed JSON.GetStringValue, JSON.GetBooleanValue, JSON.GetDoubleValue, JSON.GetIntegerValue and JSON.GetValue to return empty result if called with empty value.
- Changed plugin to free all MongoDB connections if needed when FileMaker quits.
- Changed window searching on Windows to prefer visible windows for finding by title.
- Fixed a bug in setting numeric values in SQL functions with floating numbers, caused by a bug fix in version 13.3. Values showed up as zero incorrectly.
- Fixed a crash with Preview functions on macOS when releasing the temp file.
- Fixed a possible crash in CURL.GetResultAsContainer function.
- Fixed a problem with Dialog.SetTimeout closing a FileMaker custom dialog by accident on macOS.
- Fixed a problem with handling of Shift JIS text encoding.
- Fixed a problem with Path.FilePathToFileURL for Windows.
- Fixed a problem with syntax coloring failing to color formulas in variable editing dialog.
- Fixed a problem with WordFile.ReplaceTag and WordFile.Substitute functions when passing in NULL characters in the text.
- Fixed an issue with CNContactPicker.Show raising an exception on iOS.
- Fixed CNContactStore.Contacts to work better on newer macOS versions.
- Fixed CURL.GetHeaderAsJSON function to make array for duplicate headers and filter duplicates.
- Fixed exception for CNContact.JSON function.
- Fixed loop highlighting in case you use bigger fonts.
- Improved DynaPDF.FindField to better find a field in a group.
- Improved JSON.Import to better handle arrays in arrays.
- Marked a dozen files and text functions to be free to use.
- Rebuild MongoDB-c library with tracing support.
- Switched MongoDB on macOS and iOS to use OpenSSL for SSL.
- Updated curl to version 8.2.1.
- Updated DynaPDF to version 4.0.77.228.
- Updated for future FileMaker version.
- Updated SQLAPI to version 5.2.5.
- Updated SQLite to version 3.43.1.
- Upgraded WebDownloadDelegate functions to work on WebKit 2.0 on macOS and iOS.

### 13.3 - 18th July 2023

- Added Preview functions to add a simple PDF file viewer for Windows and macOS on a layout.
- Added auto completion for custom function dialog, but you need to press Function-F5 to trigger it.
- Added DynaPDF.AddDPartNode, DynaPDF.CreateDPartRoot, DynaPDF.DeleteWatermark, DynaPDF.GetLastTextOffset, DynaPDF.HaveDPartRoot, DynaPDF.MarkTemplateAsWatermark and DynaPDF.OpenTagEx functions.
- Added DynaPDF.AddFieldToFormAction, DynaPDF.CreateResetAction and DynaPDF.CreateSubmitAction functions.
- Added DynaPDF.CreateAnnotAP function.
- Added Files.DeleteLater function.
- Added GMImage.Describe function.
- Added JSON.FilterObjectArray function.
- Added JSON.GetArrayItemsAsQuickList and QuickList.JoinJSON functions.
- Added Matrix.HTML function.
- Added new flag to XL.Book.GetText and XL.Sheet.GetText to return texts as rich text.
- Added OCR.GetTextAsJSON function.
- Added password parameter to WebHook.SetSSL function.
- Added Schedule.GetEnabled and Schedule.SetEnabled functions to temporarily pause all schedules.
- Added SystemInfo.isSonoma function.
- Added Text.ConcatWithDelimiter function.
- Added translation in German, Dutch, Italian, French, Swedish, Polish, Portuguese, Spanish, Chinese, Japanese and Korean for preferences dialog on macOS and various FileMaker enhancements. Please let us know if you see a typo or wrong translation.
- Added XL.Sheet.CellWriteMatrix function.
- Added XL.Sheet.SetColPx and XL.Sheet.SetRowPx functions.
- Changed Audit functions to return SQL errors from Insert, so you may debug when something goes wrong.
- Changed DynaPDF.Initialize to ignore calls with old license key, if a valid key was set before.
- Changed DynaPDF.StampAnnot to have the last 3 parameters optional.
- Changed ListDialog functions to allow cancel button to be hidden if it has empty label.
- Changed ListDialog functions to have select button enabled on macOS if no selection is made, but empty selection is allowed (same as on Windows).
- Changed reason parameter in ProcessActivity.beginActivity function to be optional.
- Deprecated CGPSConverter.Convert function.
- Deprecated WindowTransition functions.
- Extended our search for links in the script workspace to also cover links in text of calculations.
- Fixed a crash in script workspace for next FileMaker version.
- Fixed a crash with SQL.SetParamAsNumber when parsing a string.
- Fixed a memory leak with reusing shell on macOS to run multiple commands.
- Fixed a possible bug in XML.SubTree function when XML is empty.
- Fixed a problem with colorspace warning printed on console due to a change in NSColor handling by macOS.
- Fixed a problem with Text.ReadTextFile reporting an error for zero byte files.
- Fixed an issue on Linux with encoding text in native encoding.
- Fixed an issue with SystemInfo.ADSystemInfo function reporting an error about not having initialized COM.
- Fixed an issue with variable length keys in Encryption.Cipher function.
- Fixed CURL.GetResultAsContainer function to prefer the download name over the given fallback name.
- Fixed Events.RequestAccessToEntityType to return "Wait" not as error. And to wait up to 10 seconds for dialog response.
- Fixed Files.AudioTags function for macARM target.
- Fixed FM.ScriptNames for database file with dots inside.
- Fixed problem with ProcessActivity.beginActivity not working well on Windows.
- Fixed variable check, which broken in tuning in v13.2.
- Fixed WebView.GetSourceData to return empty result if no data is available.
- Improved if/loop highlights for transaction blocks when using Czech, Turkish or Polish localization.
- Improved JSON.Text function to output less commas.
- Improved showing script IDs when you have two files with same name open.
- Our plugin now requires glibc 2.25 for openssl on Linux (from 2017)
- Relaxed seats usage count checks a bit to complain less for being over the limit for a short time.
- Removed PHP functions.
- Rewrote Files.LaunchFile function for macOS to use newer API.
- The plugin now prints a message on server to state whether license is loaded with expiration date for maintenance.
- Updated CURL library to version 8.1.2.
- Updated DynaPDF to version 4.0.75.218.
- Updated LibSSH to version 1.11.0.
- Updated LibXL to version 4.2.
- Updated MongoDB-c library to version 1.23.4.
- Updated openssl library to version 3.1.1.
- Updated plugin to support next FileMaker version.
- Updated SQLite to version 3.42.0.

### 13.2 - 9th May 2023

- Added Linux ARM 64-bit version of MBS FileMaker Plugin.
- Added support for WebP pictures to GraphicsMagick functions.
- Added WinPDF functions to use built-in PDF features on Windows.
- Added AppleScript.LastErrorPosition function.
- Added Archive.BZip2Version, Archive.LZ4Version, Archive.ZLibVersion, Archive.ZStdVersion and Archive.lzmaVersion functions.
- Added automatic loading of zbar library if needed.
- Added Clipboard.AddText function.
- Added Dictionary.ToMatrix function.
- Added DynaPDF.AddJavaScript, DynaPDF.ChangeJavaScript, DynaPDF.ChangeJavaScriptAction, DynaPDF.ChangeJavaScriptName, DynaPDF.GetActionCount, DynaPDF.GetJavaScript, DynaPDF.GetJavaScriptAction, DynaPDF.GetJavaScriptName.
- Added DynaPDF.GetNeedAppearance and DynaPDF.SetNeedAppearance functions.
- Added DynaPDF.OpenTag and DynaPDF.CloseTag functions to add tags for a tagged PDFs.
- Added DynaPDF.SetTabLen and DynaPDF.SetTabLen functions.
- Added flag 32 to XML.ToJSON function to keep empty nodes as text nodes instead of empty objects.
- Added flags parameter for Icon.GetIconWithQuickLook function.
- Added GMImage.WriteToWebPContainer function.
- Added identifier value to the JSON returned by CNContact.JSON function.
- Added ImagePicker.SetMediaTypes function.
- Added Linux ARM 64-bit versions of DynaPDF and LibXL libraries.
- Added ListDialog.IsVisible function.
- Added MongoDB.ContainerToBinary and MongoDB.TextToBinary functions.
- Added MongoDB.NowUTC and MongoDB.Time function.
- Added new highlight style for DynaPDF.ConvertStyledText, DynaPDF.WriteStyledText and DynaPDF.WriteStyledTextEx.
- Added PhotoPicker.SetSize function.
- Added Plugin.WebPVersion function.
- Added possibility to copy a field content or variable content via context menu (in addition to showing it via tooltip).
- Added RegEx.Release and RegEx.ReleaseAll functions.
- Added root name parameter to Dictionary.ToXML function.
- Added sorting of scripts by IDs in addition by names. Press shift key to do sort by ID and option key for descending order.
- Added WebView.SetPrintParameter and WebView.GetPrintParameter for Windows with this parameters: paperWidth, paperHeight, bottomMargin, topMargin, leftMargin, rightMargin, orientation and shouldPrintBackgrounds.
- Added Window.HideKeyboard function.
- Added Window.IsKeyboardVisible function.
- Added WMFP.GetAudioBitsPerSample, WMFP.GetAudioChannels, WMFP.GetAudioSamplesPerSecond and WMFP.GetVideoFrameRate functions.
- Added XL.Sheet.AreCellsEmpty function.
- Added XL.Sheet.HyperlinkIndex function.
- Adjusted plugin for FileMaker 2023.
- Changed Audit.Delete and Audit.Delete2 to record new fields found before deleting with Delete instead of Create.
- Changed container handler to only put in MAIN item for FileMaker 13 or newer.
- Changed DynaPDF functions returning PDF containers to include preview via PDFKit or WinPDF, if you don't have a DynaPDF Pro license.
- Changed field quoting for FM.SQL.InsertRecordsToSQL and Matrix.InsertRecordsToSQL to handle non ANSI quotes for MySQL/MariaDB.
- Changed ListDialog.SetOtherButtonEvaluate to query selection, so you can query it using ListDialog.GetSelectedTag and ListDialog.GetSelectedTitle in your expression.
- Changed minimum version of macOS to 10.13.
- Changed our error notifications to show script name and file name.
- Changed Vision.RecognizeText to handle PDF documents on Windows, too.
- Enabled lz4 and zstd for Archive functions.
- Enabled web socket support for curl for Windows.
- Enabled zstd for curl library.
- Fixed a bug for WebView.Passwords.Install not installing the event.
- Fixed a bug in MessageComposer functions on newer iOS versions.
- Fixed a possible memory leak in Dictionary.AddSQL function.
- Fixed a problem in PrintDialog.GetLastSettings function reporting an exception about a nil value.
- Fixed a problem where WMIQuery.Query would not report the error message.
- Fixed a problem which prevents Java.Initialize to initialize on macOS and Linux with current JDK 19.
- Fixed a problem with Archive.Create and creating 7zip archive.
- Fixed a problem with empty attributes causing an error in JSON for XML.ToJSON function.
- Fixed an issue redraw problems in debugger with code folding while scrolling.
- Fixed code to automatically find libjvm.dylib on macOS to work with JDK 19.
- Fixed debugger tooltips to show variable name again.
- Fixed DynaPDF.ParseContent to not complain about open page.
- Fixed FM.SQL.Field function to handle flags better.
- Fixed FM.SQL.Field function to return a name if there is no FNAM stream.
- Fixed issue with indentation for copied script text. Now correct for 30+ level of nesting.
- Fixed JavaScript.Available to return 1 on macOS and iOS, broken in 13.1.
- Fixed problem in WinPDF.PageImageAtSize when passing width and height as zero.
- Fixed script font color to use Menlo-Regular if you pick default since that seems to be what FileMaker uses without plugin instead of system font.
- Fixed SyntaxColoring.SetFontSize to allow passing value zero to disable font size change.
- Fixed variable auto completion to work for $~variables to work better.
- Fixed WebView.FindByName function to find web viewer better on other windows for macOS.
- Implemented PDFKit.GeneratePreview for Windows by using WinPDF functions.
- Improved AppleScript.Compile function to return error code and position.
- Improved Clipboard.GetTypes for Windows to report format list better.
- Improved EmailParser.Attachment function to better handle PDF documents and return them as PDF container with preview.
- Improved scroll performance for script workspace related to our search feature.
- Improved turning off syntax highlighting features.
- Improved WebView.Scrollbar.getHorizontalMaximum, WebView.Scrollbar.getHorizontalPosition, WebView.Scrollbar.getVerticalMaximum, WebView.Scrollbar.getVerticalPosition and WebView.Scrollbar.set to work on macOS when the web viewer is an interactive container showing a PDF document.
- Removed MatrixDongle functions.
- Rewrote parts of the variable check in Script Workspace to better recognize variables defined via target parameter.
- Updated curl to version 8.0.1.
- Updated DynaPDF to version 4.0.73.213.
- Updated LibArchive to version 3.6.2.
- Updated libwebp to version 1.3.0.
- Updated LibXL to version 4.1.2.
- Updated SQLAPI to version 5.2.4.
- Updated SQLite to version 3.41.2.
- Updated Xcode to version 14.3.
- Upgraded PhotoPicker functions to work on macOS.

### 13.1 - 7th March 2023

- Added 45 new functions for XL functions to work on form controls and XL.Sheet.FormControlCount function.
- Added Archive.Create, Archive.AddContainer, Archive.AddFile, Archive.AddText and Archive.Close functions.
- Added Audit.BaseTableNameForID function.
- Added ContinuityCamera.CanImport and ContinuityCamera.HasPopupMenu functions.
- Added dot as valid character for field names for syntax coloring.
- Added DynaPDF.ChangeNamedDest function.
- Added DynaPDF.CreateStructureTreeEx function.
- Added DynaPDF.SaveAndSignFileExt1 and DynaPDF.SaveAndSignFileExt2 functions to sign a PDF using external PKCS7 signature provider.
- Added flag 32 for Text.TextToHTML function to use paragraphs.
- Added flags parameter to Matrix.Text function and a flag for Matrix.CSV and Matrix.Text to include column names in first row.
- Added FM.TextWithDataType function.
- Added iOSApp.AddSwipeGestureRecognizer and iOSApp.ClearSwipeGestureRecognizer functions to recognize a swipe gesture on your layout.
- Added JavaScript.LoadLibrary and JavaScript.Available functions.
- Added MongoDB.Command, MongoDB.AggregateDatabase and MongoDB.AggregateCollection functions.
- Added MongoDB.GetOptions, MongoDB.GetTLS and MongoDB.SetDatabase functions.
- Added PDF/UA-1 for DynaPDF.SetPDFVersion function.
- Added PKCS12.SignData function.
- Added Plugin.IsMaintenanceExpired function.
- Added Plugin.State function.
- Added Process.GetDllDirectory and Process.SetDllDirectory functions.
- Added Queue Length parameter for WebHook.Listen function.
- Added shouldPrintBackgrounds parameter for WebView.SetPrintParameter for use in WebKit 1 and 2.
- Added shouldPrintBackgrounds to WebView.SetPreferences and WebView.GetPreferences for WebKit 2 to control printing of backgrounds.
- Added support for JavaScriptWebKit functions to work on Windows and Linux if you provide a JavaScriptEngine library file to load.
- Added SyntaxColoring.ScriptSearchBox.GetRegEx and SyntaxColoring.ScriptSearchBox.SetRegEx functions.
- Added Windows support for Clipboard.SetPDF and Clipboard.GetPDF functions.
- Added Windows support for Container.ReadImage and Container.ReadImageFile functions to e.g. load HEIF/HEIC files on Windows.
- Added WindowsML.List function.
- Added WindowsOCR functions.
- Added WindowsUserNotification.List function.
- Added WindowsUserNotification.SetExpiresOnReboot and WindowsUserNotification.GetExpiresOnReboot functions.
- Added WindowsUserNotification.SetExpiresOnReboot and WindowsUserNotification.GetExpiresOnReboot functions.
- Added WindowsUserNotification.SetGroup and WindowsUserNotification.GetGroup functions.
- Added WindowsUserNotification.SetNotificationMirroring and WindowsUserNotification.GetNotificationMirroring functions.
- Added WindowsUserNotification.SetPriority and WindowsUserNotification.GetPriority functions.
- Added WindowsUserNotification.SetRemoteId and WindowsUserNotification.GetRemoteId functions.
- Added WindowsUserNotification.SetSuppressPopup and WindowsUserNotification.GetSuppressPopup functions.
- Added WindowsUserNotification.SetTag and WindowsUserNotification.GetTag functions.
- Added XL.Book.IsWriteProtected, XL.Sheet.DefaultRowHeight, XL.Sheet.GetTabColor, XL.Sheet.GetTabColorRGB and XL.Sheet.SetDefaultRowHeight functions.
- Added XL.Sheet.AddSelectionRange, XL.Sheet.GetActiveCell, XL.Sheet.RemoveSelection, XL.Sheet.SelectionRange and XL.Sheet.SetActiveCell functions.
- Adjusted various internals for future FileMaker versions.
- Applied SQLAPI patch for Oracle fix in memory leak.
- Changed all SystemInfo functions to be free to use without license.
- Changed CURL.SetOptionPassword function to not show password in log.
- Changed plugin to ignore Registration calls with older keys if a newer license was already set to avoid complaining dialogs when opening older solutions.
- Changed script search to do regular repressions (opt-in via preferences dialog).
- Changed search field for relationship graph on Windows to be a combo box.
- Changed SQL functions to log SQL statements when trace is active.
- Deprecated PHP functions.
- Deprecated SystemInfo.isLeopard, SystemInfo.isSnowLeopard, SystemInfo.isLion and SystemInfo.isMountainLion.
- Deprecated SystemInfo.isWindows2000, SystemInfo.isWindowsXP, SystemInfo.isWindowsVista and SystemInfo.isWindows7.
- Deprecated SystemInfo.WinCSDVersion and SystemInfo.WindowsAero functions.
- Deprecated SystemInfo.WinServicePackMajor and SystemInfo.WinServicePackMinor functions.
- Deprecated WebView.Cookies.Count and WebView.Cookies.Query in favor of WebView.AllCookies function.
- Disabled FTP access in libxml to avoid unintended network access.
- Enabled the WindowsML functions again for the public release.
- Fixed a bug in MongoDB.ChangeStreamErrorDocument, MongoDB.ChangeStreamResumeToken and MongoDB.NextChange functions.
- Fixed a bug with library loading for aarch64 on Linux for libusb, libidn2, libiconv and libldap.
- Fixed a crash in JSON.ToHTML function.
- Fixed a crash in trace function.
- Fixed a link error in the simulator plugin for Apple Silicon which prevented it from loading when used in newer iOS SDK versions when using newer Xcode version.
- Fixed a problem loading iconv on Linux.
- Fixed a problem with Container.ReadImage function returning error about NSRange being wrong.
- Fixed a problem with CURL.SetProgressScriptName causing a crash when transfer went too fast.
- Fixed a problem with export dialog tooltips not showing when using the script step.
- Fixed a timing crash with option click on Set Field in newer FileMaker Pro being too quick.
- Fixed Clipboard.SetPicture to better pass transparency.
- Fixed CURL.GetProgressFileName and CURL.GetProgressScriptName functions.
- Fixed FM.SQL.InsertRecords, FM.SQL.InsertRecordsToSQL, Matrix.InsertRecordsToSQL and Matrix.InsertRecords to quote the table name for the SQL used internally.
- Fixed JavaScript.New to work on iOS again.
- Fixed problem in Barcode.Generate and Barcode.GenerateJSON functions, where a warning from the zint library would be treated as an error.
- Fixed relationship graph search box not showing in Dutch.
- Fixed ScreenshotRect, Container.Screenshot and WebView.Screenshot for Windows to better use right DPI for high DPI screens.
- Implemented local Hotkeys for Windows. So if HotKey.Register is passed Local = 1, we run a different code path to monitor keyboard instead of registering global hotkey.
- Implemented Vision.RecognizeText for Windows using WindowsOCR functions.
- Implemented WebView.AllCookies and WebView.PrintToFile for Windows.
- Improved Clipboard.GetPicture to take JPEG, PNG or GIF directly from the clipboard if available. Falls back to bitmap if that is not available.
- Improved Clipboard.SetPicture to put PNG on the clipboard in addition to a bitmap for applications, that can read PNG forever.
- Patched SQLAPI to work again with Field() query without FetchNext.
- Rewrote the WindowsUserNotification functions.
- Updated CURL library to version 7.88.1.
- Updated DynaPDF to version 4.0.72.208.
- Updated DynaPDF.GetBookmark and DynaPDF.GetBookmarksAsJSON functions to return Action and NamedDest properties.
- Updated LCMS2 library to version 2.15.
- Updated LibXL to version 4.1.
- Updated libxml to version 2.10.3.
- Updated openssl library to 1.1.1t.
- Updated SQLite to version 3.41.0.
- Updated tiff library to version 4.5.0.

### 13.0 - 17th January 2023

- Added WebSocket support for CURL functions.
- Added functions to watch changes in MongoDB: MongoDB.ChangeStreamErrorDocument, MongoDB.ChangeStreamResumeToken, MongoDB.CloseChangeStream, MongoDB.NextChange, MongoDB.WatchClient, MongoDB.WatchCollection and MongoDB.WatchDatabase.
- Added example database for SMTP with OAuth for Office 365 in FileMaker.
- Add PATCH support for CURL.SetupAWS function.
- Added AppleScript.List function.
- Added AVExport.List function.
- Added AVPlayer.List function.
- Added AVRecorder.List function.
- Added BinaryFile.List function.
- Added CFunction.List and CLibrary.List functions.
- Added CGImageSource.List function.
- Added checkbox to preferences dialog for code folding and for export dialog tooltips.
- Added checkbox to preferences dialog on Windows for relationship search box.
- Added checkbox to preferences dialog to control the option-click feature in Script Workspace.
- Added checkbox to preferences dialog to control the syntax highlighting for formulas independent of scripts.
- Added control-F shortcut for Relationship search field on Windows to move focus to the search field. Press control-G to search next.
- Added CoreML.List function.
- Added CURL.GetDebugMessages to replace deprecated CURL.GetDebugAsText, but old name will stay around for a long time.
- Added CURL.GetHeaders to replace deprecated CURL.GetHeaderAsText.
- Added CURL.SetOptionCACacheTimeout and CURL.SetOptionQuickExit functions.
- Added CURL.SetOptionWebSocketOptions, CURL.WebSocketReceive and CURL.WebSocketSend functions.
- Added DNSLookup.List function.
- Added DynaPDF.CreateICCBasedColorSpace and DynaPDF.CreateICCBasedColorSpaceContainer.
- Added DynaPDF.GetPageField and DynaPDF.GetPageFieldAnnotation functions.
- Added DynaPDF.Table.List function.
- Added DynaPDF.TestGlyphs function.
- Added ECKey.List function.
- Added Events.Event.EventIdentifier function.
- Added find and go to line commands to contextual menu for ScriptWorkspace to make them more visible.
- Added fontname and fontsize as keys for the XML for Menu.DefineQuickMenuXML function. Now works for submenus, too.
- Added FSEvents.List function.
- Added ImageView.List function.
- Added iOSApp.GetDidBecomeActiveScript, iOSApp.GetDidEnterBackgroundScript, iOSApp.GetDidReceiveMemoryWarningScript, iOSApp.GetSignificantTimeChangeScript, iOSApp.GetWillEnterForegroundScript and iOSApp.GetWillResignActiveScript functions.
- Added Java.List function.
- Added JavaScript.List function.
- Added JSON.Text function.
- Added LDAP.List function.
- Added MapView.List function.
- Added MarkDown.List function.
- Added MetaDataQuery.List function.
- Added new flags parameter to FM.SQL.CSV and Matrix.CSV.
- Added new Get() function names in FileMaker 19.6 for our links in calculations.
- Added new option to XML.Compact and XML.Format to skip the ?xml line with version details.
- Added option key for code folding to decide whether we fold until next Else or End If.
- Added PDFKit.List function.
- Added PKCS7.List, PKCS12.List and PKey.List functions.
- Added PortMidi.List function.
- Added recursive parameter to Menu.FindItemWithTag and Menu.FindItemWithTitle functions.
- Added RichText.CopyToClipboard and RichText.ReadFromClipboard functions.
- Added SerialPort.GetTag and SerialPort.SetTag functions.
- Added SerialPort.Path function.
- Added Shell.GetTag and Shell.SetTag functions.
- Added Shell.List function.
- Added special handling in LDAP functions for returning objectSid and objectGUID values in order to return them formatted.
- Added SSH.List function.
- Added SyntaxColoring.GetExportTooltipsEnabled and SyntaxColoring.SetExportTooltipsEnabled functions.
- Added TouchBar.List function.
- Added UNNotification.List function.
- Added WebRequest.GetMode function.
- Added WhitespaceHeight, GuardDescent and WarnLevel options for Barcode.GenerateJSON functions.
- Added Windows support for ProcessActivity.beginActivity function.
- Added WMFP.List function.
- Added WordFile.List function.
- Added X509.List function.
- Added XL.List function.
- Added XL.Sheet.ReadCellsAsMatrix function to copy cell values into a new matrix.
- Adjusted maximum object counts. Now DynaPDF.Table.Create can have 10000 tables at the same time in memory.
- Changed context menu command to show "sort descending" only when you press option key. Without option key we sort ascending.
- Changed DynaPDF.Initialize function to return an error, if the license key contains invalid characters on the beginning.
- Changed Files.DeleteFolder for Linux to do recursive deletion.
- Changed FM.SQL.Text and FM.SQL.CSV functions to return empty text if there are no rows and no row parameter.
- Changed font popup in preferences dialog to list monospace fonts first.
- Changed JPEG loader for GMImage.NewFromContainer, GMImage.NewFromFile and related to not stop loading of an image on a warning.
- Changed JSON parser to skip non breaking spaces like regular spaces.
- Changed JSON.SetPathItem to do nothing if value is empty (like v12.4 and before).
- Changed minimum iOS version for deployment to iOS 12.0.
- Changed search field in ScriptWorkspace to be a real search field with history menu.
- Changed variable check to disable while scrolling on macOS Ventura with multi line comments in use to avoid layout trouble.
- Deprecated CURL.GetProtocol function.
- Deprecated CURL.SetOptionEGDSocket, CURL.SetOptionSSLEnableNPN, CURL.SetOptionSocks5GSSAPIService and CURL.SetOptionRandomFile functions.
- Deprecated CURL.SetOptionProtocols in favor of CURL.SetOptionProtocolsString function.
- Deprecated CURL.SetOptionRedirProtocols in favor of CURL.SetOptionRedirProtocolsString function.
- Deprecated DynaPDF.ExtractPageRectText and DynaPDF.ExtractPageText functions in favor of DynaPDF.ExtractText function.
- Deprecated FM.GetDictionary and FM.GetDictionaryList functions.
- Deprecated Proj functions.
- Deprecated SyntaxColoring.LineNumbers.Disable, SyntaxColoring.LineNumbers.Enable, SyntaxColoring.LineNumbers.Enabled, SyntaxColoring.LineNumbers.GetColor and SyntaxColoring.LineNumbers.SetColor functions.
- Fixed a bug in LDAP.Search passing attribute names on macOS.
- Fixed a crash in JSON function when parsing invalid JSON code, broken in 12.5 while fixing another bug.
- Fixed a memory leak in LDAP.AddJSON and LDAP.ModifyJSON and added additional checks for the passed in JSON.
- Fixed a problem with iOS plugins missing the version number.
- Fixed a problem with macOS using same class name for a class as MBS. This may lead to a crash if one side tries to use the class and gets the one from the other side. We renamed our classes.
- Fixed a problem with shifting text to left or right in first row of a calculation.
- Fixed a problem with SQL.InsertOrUpdateRecords not finding the primary key field.
- Fixed a problem with text jumping down when coloring in calculations.
- Fixed a problem with XL.Book.AddSheet function not passing correct name each time.
- Fixed an issue with relationship search box not hidden correctly when switching tabs.
- Fixed bugs for search field for relationship graph on Windows.
- Fixed PrintDialog.GetLastSettings to not return an error if there are no print settings yet.
- Fixed problem passing field index to DynaPDF.FlattenAnnotOrField function.
- Fixed problem with Schedule functions with storing result from evaluate.
- Fixed Shell.ExitCode to work better on Linux.
- Fixed Window.PositionNextDialog to work on Windows with the progress dialog shown by Insert From URL script step.
- Fixed XL.Sheet.SetColumn and XL.Sheet.SetRow to better.
- Improved Files.MoveFile on Linux to allow you to specify a folder as destination.
- Improved our link detection for comment lines in ScriptWorkspace to better work with new line and all unicode space characters.
- Improved Vision.SupportedRecognitionLanguages to report more languages.
- Linux for ARM 64-bit now is compiled with C++11 standard library.
- Optimized initialization to log better if something gets wrong to help debugging.
- Removed syntax coloring support for FileMaker 13 and older since our plugin doesn't run there any more (since we moved to 64-bit only).
- Updated CURL library to version 7.87.0.
- Updated DynaPDF to version 4.0.70.201.
- Updated for Claris Pro v40.1.
- Updated GraphicsMagick to version 1.3.38.
- Updated Plugin SDK or FileMaker 19.6.
- Updated SQLAPI to version 5.2.3.
- Updated SQLite to version 3.40.0.
- Updated Xcode to version 14.2.
- Updated zint library to version 2.11.1. Barcode text may be bigger.
- Updated zlib to version 1.2.13.