- Simplify string normalization: numeric strings now stay as strings instead of being converted to numbers. This fixes issues where
device.appBuildString == "5690201"would fail because the string was incorrectly converted to an integer. Only "true" and "false" strings are converted to booleans; all other strings remain as strings. Removed the complexextract_string_compared_variablesmechanism in favor of this simpler approach.
- Bump version
- Fixes comparison issue of padded numbers by skipping expression conversion and normalization in special cases
- Removes modulemap from outputs
- Ensures XC projects also work with module SPM setup
- Fix generic module name
- Fix iOS build script
- Ensure new module headers point to right places
- Fixes namespaces for SPM module headers
- Disable Android Cleaner in UniFFI builds
- Ensure that previously set compilation flags do not affect Android compilation
- Add flags to ensure common page size is being passed to Cross
- Removes log print, reduces binary size
- Adds
hasFnfunction that checks for the existance of a function or returnsfalse - Enhance
hasFnandhaschecks to do the following:- If a
device.orcomputed.function is used, or a variable is accessed in an expression - Wrap the accessor in
hasorhasFn - Wrap the evaluation to:
- Evaluate
has/hasFnfirst - if true, run the expression.
- if false and the right side is atomic, we evaluate the default fallback value (
0forint/float,""forString) - if false and the right side is not atomic, we wrap the whole expression to return
false(to avoid error due to comparing different types)
- Evaluate
- If a
- Removes
string.toBool(),string.toInt(),string.toFloat()functions as every possible valid atom conversion is done in the AST
- Adds more tests, improves test coverage, adds displaying coverage badge
- Improves
README.MDand adds aninterpretation-flow.mdto serve as a guide for how things are interpreted
- Adds truthiness and string normalization so value such as "true", "false", "1.1" etc are treated as true, false, 1.1. This occurs on both left and right side of an expression.
- Adds conversion methods
bool.toString(),float.toString(),int.toString(),bool.toString()andstring.toBool(),string.toInt(),string.toFloat()to enable typecasting in CEL
- Fixes issues with undeclared references for properties and functions by wrapping them in a has(x)? x : Null tertiary expression
- Pass linker flags for 16kb architecture on Android
- Version bump
- Removes string return requirement from HostContext methods
- Moves the HostContext to a Sync version with callback
- Updates Android NDK to support 16kb page sizes
- Updates Uniffi version
- Fix aarch64 build for Android
- Fix aarch64 build for Android
- Version bump for deployment purposes
- Readme and example updates
- Add typescript wrapper for the JS library
- Add aarch64 support for Android
- Bumped version for iOS cocoapods fix.
- Add watchOS, visionOS and Catalyst targets
- Adds Result types to fix issues when building for iOS.
- Adds new Android target
- Ensures JSON deserialization is done in a safe manner
- Updates github workflow for the renaming of the iOS repository.
- Added returning of a JSON encoded
Result<PassableValue,String>from the exposed methods instead of relying on panics. Example JSON:- Error:
{"Err":"No such key: should_display"} - Ok:
{"Ok":{"type":"bool","value":true}}
- Error:
- Fixed a bug where getting properties from
devicewould panic whendevicefunctions were defined