diff --git a/Package.swift b/Package.swift
index c83f50644..cecb91133 100644
--- a/Package.swift
+++ b/Package.swift
@@ -12,7 +12,7 @@ let package = Package(
targets: [
.binaryTarget(
name: "SoulverCore",
- url: "https://github.com/soulverteam/SoulverCore/releases/download/1.4.2/SoulverCore.xcframework.zip",
- checksum: "25235e6f60129bf02205922a20e9a547ae510da2f2a2c10e1c3d8dbc982cc8d7"),
+ url: "https://github.com/soulverteam/SoulverCore/releases/download/1.4.3/SoulverCore.xcframework.zip",
+ checksum: "010c9ab721106d078f1510bc997e94e76729864b17c3ff79ed3dcc227f0ca867"),
]
)
diff --git a/README.md b/README.md
index 7919645d9..4789e9c41 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ SoulverCore is the math engine from the popular notepad calculator app [Soulver]
Soulver uses **exactly the same** version of SoulverCore that is available here. Everything you can do in Soulver, you can do using SoulverCore.
-SoulverCore has been designed to have no 3rd party dependencies. It is written in 100% Swift. As such it works wherever Swift is available (including on Windows & Linux).
+SoulverCore has been designed to have no 3rd party dependencies. It is written in 100% Swift.
## Apps using SoulverCore
@@ -48,21 +48,21 @@ To calculate the result of a single expression, use a `Calculator` object:
import SoulverCore
let calculator = Calculator(customization: .standard)
-let result = calculator.evaluate("123 + 456")
+let result = calculator.calculate("123 + 456")
print("The answer is \(result.stringValue)") // prints 579
```
SoulverCore can perform all sorts of calculations, including unit conversions, date & calendar math, rate calculations, percentage phrase functions, time zone conversions, and much more. It also cleverly ignores "meaningless" words:
```swift
-calculator.evaluate("$10 for lunch + 15% tip") // $11.50
-calculator.evaluate("65 kg in pounds") // 154.32 lb
-calculator.evaluate("40 as % of 90") // 44.44%
-calculator.evaluate("$150 is 25% on what") // $120
-calculator.evaluate("$25/hour * 14 hours of work") // $350.00
-calculator.evaluate("January 30 2020 + 3 months 2 weeks 5 days") // 19 May
-calculator.evaluate("9:35am in New York to Japan") // 10:35 pm
-calculator.evaluate("$25k over 10 years at 7.5%") // $51,525.79 (compound interest)
+calculator.calculate("$10 for lunch + 15% tip") // $11.50
+calculator.calculate("65 kg in pounds") // 154.32 lb
+calculator.calculate("40 as % of 90") // 44.44%
+calculator.calculate("$150 is 25% on what") // $120
+calculator.calculate("$25/hour * 14 hours of work") // $350.00
+calculator.calculate("January 30 2020 + 3 months 2 weeks 5 days") // 19 May
+calculator.calculate("9:35am in New York to Japan") // 10:35 pm
+calculator.calculate("$25k over 10 years at 7.5%") // $51,525.79 (compound interest)
```
@@ -77,7 +77,7 @@ let variableList = VariableList(variables:
Variable(name: "b", value: "456"),
]
)
-calculator.evaluate("a + b", with: variableList) // 579
+calculator.calculate("a + b", with: variableList) // 579
```
## Custom Units
@@ -186,14 +186,12 @@ calculator.calculate("π") // 3.14
SoulverCore is *fast*. You can disable certain features for even greater performance (see `EngineCustomization.featureFlags`), but with the complete feature set most expressions are processed in 1-5 ms on an Intel Mac, and <1ms on an Apple Silicon Mac.
-This performance is due to months of work optimizing every part of the calculation engine. Like the original Safari team, performance is measured after every change and commits with performance regressions are not accepted.
-
-SoulverCore has an excellent test suite with more than 1,500 tests. Most bugs are fixed the same week they are reported.
+Like the original Safari team, performance is measured after every change and commits with performance regressions are not accepted.
## Localizations
In addition to English, SoulverCore is fully localized into German 🇩🇪, Russian 🇷🇺, and simplified Chinese 🇨🇳.
-Support for the romance languages (French, Spanish, etc) is planned for 2021.
+Support for additional romance languages (French, Spanish, etc) is planned for 2022.
## See Also
__Adding calculation capabilities to an NSTextView or UITextView__
diff --git a/SoulverCore.xcframework/Info.plist b/SoulverCore.xcframework/Info.plist
index 96e274639..53abe4c95 100644
--- a/SoulverCore.xcframework/Info.plist
+++ b/SoulverCore.xcframework/Info.plist
@@ -21,19 +21,22 @@
LibraryIdentifier
- ios-arm64
+ ios-arm64_x86_64-simulator
LibraryPath
SoulverCore.framework
SupportedArchitectures
arm64
+ x86_64
SupportedPlatform
ios
+ SupportedPlatformVariant
+ simulator
LibraryIdentifier
- ios-arm64_x86_64-simulator
+ macos-arm64_x86_64
LibraryPath
SoulverCore.framework
SupportedArchitectures
@@ -42,22 +45,19 @@
x86_64
SupportedPlatform
- ios
- SupportedPlatformVariant
- simulator
+ macos
LibraryIdentifier
- macos-arm64_x86_64
+ ios-arm64
LibraryPath
SoulverCore.framework
SupportedArchitectures
arm64
- x86_64
SupportedPlatform
- macos
+ ios
CFBundlePackageType
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h
index 7d53417b7..518dd9153 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h
@@ -1,4 +1,4 @@
-// Generated by Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// Generated by Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
#ifndef SOULVERCORE_SWIFT_H
#define SOULVERCORE_SWIFT_H
#pragma clang diagnostic push
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist
index e9b9cc2e9..088c37ecc 100644
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc
index 744349e36..b1d872426 100644
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
index 05cbdd7ae..c6d8c24b8 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target arm64-apple-ios13.6 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc
index 744349e36..b1d872426 100644
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
index 05cbdd7ae..c6d8c24b8 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target arm64-apple-ios13.6 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore
index 93cfb1df8..cc9dc0781 100755
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/_CodeSignature/CodeResources b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/_CodeSignature/CodeResources
index 3112aa2d8..b3ca1f614 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/_CodeSignature/CodeResources
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/_CodeSignature/CodeResources
@@ -6,7 +6,7 @@
Headers/SoulverCore-Swift.h
- ACTXpTGuTnagWLbww4+G5QQnnM4=
+ 2ME+uAFvCDpqvY79J1okUrArl34=
Headers/SoulverCore.h
@@ -14,31 +14,31 @@
Info.plist
- /z8xdFIVSTN7bSjfhi77I6DhVs8=
+ uzrrCu83HEJW4Fgdf0zF7J3dy6Y=
Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc
- n2maL8qHuMGWrdUZ1SU3M73gBLo=
+ n18RYnC6z5nfCKtB2gCbM3qDmEM=
Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
- 2y3PC+jdJyGG0mLr42v+6Bv++ZI=
+ yhF1NPW/rtlR6jRa5I91O/DCzSo=
Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftmodule
- QxjLC9wwDJt8xIKEb/HGr3eFA84=
+ bvuRLyEOi/EZYatCBisPCKe5LwA=
Modules/SoulverCore.swiftmodule/arm64.swiftdoc
- n2maL8qHuMGWrdUZ1SU3M73gBLo=
+ n18RYnC6z5nfCKtB2gCbM3qDmEM=
Modules/SoulverCore.swiftmodule/arm64.swiftinterface
- 2y3PC+jdJyGG0mLr42v+6Bv++ZI=
+ yhF1NPW/rtlR6jRa5I91O/DCzSo=
Modules/SoulverCore.swiftmodule/arm64.swiftmodule
- QxjLC9wwDJt8xIKEb/HGr3eFA84=
+ bvuRLyEOi/EZYatCBisPCKe5LwA=
Modules/module.modulemap
@@ -138,7 +138,7 @@
hash
- 5DEULbRz7Scm4ddYycpblEdS+fg=
+ /KMJYMp21Cz6xVNsDzr+gixkDx0=
optional
@@ -147,7 +147,7 @@
hash
- eEcxNg6shSit9/QlzFQhRuFi2fg=
+ LBFpKTcGuMQMwsd1bJWPjkdLyBE=
optional
@@ -156,7 +156,7 @@
hash
- izg+3fvHFEVk1t9BwHMuXftorfM=
+ Kz5cYm6hoov66WW0VLAq7mew80E=
optional
@@ -183,7 +183,7 @@
hash
- njljjFUXLA7Jt8JrZxLg8T/sYgo=
+ Kjr/SHLo/LaTgAOqwGJK1t+mOv8=
optional
@@ -291,7 +291,7 @@
hash
- kJ/JHS8kaErLsFpiFY0hmxLQAOk=
+ GECBzuCoSwaDYAZz6O+Iw1+ki1w=
optional
@@ -300,7 +300,7 @@
hash
- XanHL05AascxxlCGUBquFBj4zZg=
+ RTyOUpV/m0kZpW/3Kxsl+r1nOYg=
optional
@@ -318,7 +318,7 @@
hash
- bGUPk7Zf8v/KQAsj3jy5jFcsTxI=
+ Wus9hSNMEwzhCUFIJ4fflUfsRZU=
optional
@@ -393,7 +393,7 @@
hash2
- mQqwXdgbHEriWJfduRXnSJc7HHTSdTA10PWgu7/ZBgM=
+ ypKdzT3A5hDlPfDNnBlWjLbo4qB3rqqtqEhCEX/muKk=
Headers/SoulverCore.h
@@ -407,42 +407,42 @@
hash2
- uETQgTArawQ4+r0xoAiWisKuXQxfYGdQjkkzUQaMOfY=
+ +sFm847aW0Gl6SUWJ/KsWrLf79dCH0Q8KLMpk8RKQd0=
Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
hash2
- lbaMC3xT9VZOo2e8xgk7BkY0bTWiEaQHooRq8KPOSJ0=
+ FfZoix7Nax9LhM8k1C9OKJa05yHOB/89yg2lyj6R5Hw=
Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftmodule
hash2
- VMB9NzvfaayVBRJF6MdJRA+UXK6dpsdcbnKXkN2MIlM=
+ tgEcASRCNoS0Y9Sk3rnlL4xF30C0e9T+a4/0lqg2sPU=
Modules/SoulverCore.swiftmodule/arm64.swiftdoc
hash2
- uETQgTArawQ4+r0xoAiWisKuXQxfYGdQjkkzUQaMOfY=
+ +sFm847aW0Gl6SUWJ/KsWrLf79dCH0Q8KLMpk8RKQd0=
Modules/SoulverCore.swiftmodule/arm64.swiftinterface
hash2
- lbaMC3xT9VZOo2e8xgk7BkY0bTWiEaQHooRq8KPOSJ0=
+ FfZoix7Nax9LhM8k1C9OKJa05yHOB/89yg2lyj6R5Hw=
Modules/SoulverCore.swiftmodule/arm64.swiftmodule
hash2
- VMB9NzvfaayVBRJF6MdJRA+UXK6dpsdcbnKXkN2MIlM=
+ tgEcASRCNoS0Y9Sk3rnlL4xF30C0e9T+a4/0lqg2sPU=
Modules/module.modulemap
@@ -546,7 +546,7 @@
hash2
- +iSgf6I9i0iG+yirksSGGGrKMN3vKm9QPWh0NvyhBxs=
+ wAGEOzPngpGass2ixit8iqaaJW3niEyFCqOTsHUc+Lw=
optional
@@ -555,7 +555,7 @@
hash2
- ZdINPWWkvle8yS4tIhFDtnqzsU34pMMvUZz70uyJm/w=
+ lewTxD6xuqK31Z2XkFrakzHRZfVC3QF/2bBNYXFGoz4=
optional
@@ -564,7 +564,7 @@
hash2
- /wagTMP0mtPaDQfpJkTk4vLkKdXcggagMU5rKzeuEYc=
+ BX6SQEj0pd3fxPCrRJ8OOwRObDciEXx9oVNH4umDt9M=
optional
@@ -591,7 +591,7 @@
hash2
- C4dsknec3otW5sIC9NZKn9Pn0GaTWCwXfY0xpQdgbjk=
+ DMO+7oxGfKYsVCrrSpmHTU9jm5iML1BZ/dFPRP/zxio=
optional
@@ -699,7 +699,7 @@
hash2
- /H/XDN8FaDRs6X+QYWsflMu2xSQMSg4h50WOeWyLTLs=
+ iaCRHtMqc2R8ZWN9GZpfT180ccP+YmSf1HUJwfu+qBQ=
optional
@@ -708,7 +708,7 @@
hash2
- GyJNQUibdCrNl0bxpbTZEAQZO9iS9xntt0F0oCuz5rY=
+ HWxe98LT9ed/FXUN8T1laViRWQttrv8RF9UuBPlXBc4=
optional
@@ -726,7 +726,7 @@
hash2
- E8Uwu97QcC+qocYR5JVS9H6fpBrAEI7BYUDjoEd3AsI=
+ 7kAW1tdOQxgzvxMLwT+oFXQM/Wq6THXCmL0Gg4pk4Qs=
optional
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/CurrencyDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/CurrencyDescriptions.json
index c6e0f02fd..f0292909d 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/CurrencyDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/CurrencyDescriptions.json
@@ -198,6 +198,43 @@
],
"symbol": "LTC"
},
+ "SOL": {
+ "aliases": [
+ "solana"
+ ],
+ "symbol": "SOL"
+ },
+ "AVAX": {
+ "aliases": [
+ "avalanche"
+ ],
+ "symbol": "AVAX"
+ },
+ "LUNA": {
+ "aliases": [
+ "terra"
+ ],
+ "symbol": "LUNA"
+ },
+ "DOT": {
+ "aliases": [
+ "polkadot"
+ ],
+ "symbol": "DOT"
+ },
+ "MATIC": {
+ "aliases": [
+ "polygon"
+ ],
+ "symbol": "MATIC"
+ },
+ "SHIB": {
+ "aliases": [
+ "shiba inu"
+ ],
+ "symbol": "SHIB"
+ },
+
"GTQ": {
"aliases": [
"guatemalan quetzal",
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/DefaultCurrencyRates.json
index 3d6f60aa7..176e807b2 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/DefaultCurrencyRates.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/DefaultCurrencyRates.json
@@ -1,30 +1,30 @@
{
"HRK" : {
- "value" : 0.15804035023005933,
+ "value" : 0.15083133708058707,
"code" : "HRK"
},
"HUF" : {
- "value" : 0.0033830675042370471,
+ "value" : 0.0030511245142129219,
"code" : "HUF"
},
"CDF" : {
- "value" : 0.0005007511700700813,
+ "value" : 0.00049950042739479344,
"code" : "CDF"
},
"XMR" : {
- "value" : 121.02161715,
+ "value" : 232.10788493999999,
"code" : "XMR"
},
"ILS" : {
- "value" : 0.31173527440497528,
+ "value" : 0.31908613730276486,
"code" : "ILS"
},
"NGN" : {
- "value" : 0.0024301608999568202,
+ "value" : 0.0024310771397793992,
"code" : "NGN"
},
"GYD" : {
- "value" : 0.0047792022195303312,
+ "value" : 0.004774328268842081,
"code" : "GYD"
},
"BYR" : {
@@ -32,239 +32,243 @@
"code" : "BYR"
},
"BHD" : {
- "value" : 2.6530758434791375,
+ "value" : 2.6524002896421117,
"code" : "BHD"
},
"SZL" : {
- "value" : 0.069777506048663118,
+ "value" : 0.064298414600421031,
"code" : "SZL"
},
"INR" : {
- "value" : 0.013589634196672827,
+ "value" : 0.013342219251354735,
"code" : "INR"
},
"SDG" : {
- "value" : 0.0022547744612465576,
+ "value" : 0.0022856819674773694,
"code" : "SDG"
},
"PEN" : {
- "value" : 0.24356791927964302,
+ "value" : 0.24946552012313619,
"code" : "PEN"
},
"EUR" : {
- "value" : 1.1817607052747889,
+ "value" : 1.1314713087162893,
"code" : "EUR"
},
"TRX" : {
- "value" : 0.026469659999999996,
+ "value" : 0.081818127000000004,
"code" : "TRX"
},
- "QAR" : {
- "value" : 0.27464793567745349,
- "code" : "QAR"
- },
"PGK" : {
- "value" : 0.28117404786032174,
+ "value" : 0.28449421196525754,
"code" : "PGK"
},
+ "QAR" : {
+ "value" : 0.27465457380888492,
+ "code" : "QAR"
+ },
"LRD" : {
- "value" : 0.0058190208744397457,
+ "value" : 0.0069771490067222523,
"code" : "LRD"
},
"ISK" : {
- "value" : 0.0078567156931225613,
+ "value" : 0.0076757790829416672,
"code" : "ISK"
},
"SYP" : {
- "value" : 0.00079518185193483003,
+ "value" : 0.00039801109351087036,
"code" : "SYP"
},
"TRY" : {
- "value" : 0.11824307346856006,
+ "value" : 0.087971653421947765,
"code" : "TRY"
},
"UAH" : {
- "value" : 0.037482203449802035,
+ "value" : 0.036708018984212762,
"code" : "UAH"
},
"SGD" : {
- "value" : 0.74307454523837824,
+ "value" : 0.73684365651296102,
"code" : "SGD"
},
"MMK" : {
- "value" : 0.00060747964796017387,
+ "value" : 0.00056194304981418346,
"code" : "MMK"
},
"NIO" : {
- "value" : 0.028474987044592771,
+ "value" : 0.028219593134421322,
"code" : "NIO"
},
"BIF" : {
- "value" : 0.00050368851071210051,
+ "value" : 0.00050106033963171577,
"code" : "BIF"
},
"AFN" : {
- "value" : 0.01150998450871185,
+ "value" : 0.0096840506803558858,
"code" : "AFN"
},
"LKR" : {
- "value" : 0.0049623385302184483,
+ "value" : 0.0049340636892296168,
"code" : "LKR"
},
"GTQ" : {
- "value" : 0.12916086895816131,
+ "value" : 0.12942676755224344,
"code" : "GTQ"
},
"LTC" : {
- "value" : 47.327861009999999,
+ "value" : 157.16820727999999,
"code" : "LTC"
},
"XRP" : {
- "value" : 0.24379759000000001,
+ "value" : 0.92282003999999995,
"code" : "XRP"
},
"CHF" : {
- "value" : 1.0862245008798419,
+ "value" : 1.0885420068360439,
"code" : "CHF"
},
+ "LUNA" : {
+ "value" : 98.781760340000005,
+ "code" : "LUNA"
+ },
"THB" : {
- "value" : 0.030515628991348909,
+ "value" : 0.029790722853121874,
"code" : "THB"
},
"AMD" : {
- "value" : 0.0020257263519359377,
+ "value" : 0.0020288049606586012,
"code" : "AMD"
},
"AOA" : {
- "value" : 0.0015809452213784549,
+ "value" : 0.0017720945210053761,
"code" : "AOA"
},
"SEK" : {
- "value" : 0.11602597125340536,
+ "value" : 0.10962271479118463,
"code" : "SEK"
},
"DASH" : {
- "value" : 73.134845940000005,
+ "value" : 153.35057456999999,
"code" : "DASH"
},
"SAR" : {
- "value" : 0.26664334426215519,
+ "value" : 0.26625152728532336,
"code" : "SAR"
},
"KWD" : {
- "value" : 3.3246891415652637,
+ "value" : 3.3039283708329203,
"code" : "KWD"
},
"IRR" : {
- "value" : 2.3702299183689224e-05,
+ "value" : 2.3668638936171706e-05,
"code" : "IRR"
},
"WST" : {
- "value" : 0.3905084576321754,
+ "value" : 0.38459009042097614,
"code" : "WST"
},
"BNB" : {
- "value" : 28.650888770000002,
+ "value" : 555.55898833000003,
"code" : "BNB"
},
"BMD" : {
"value" : 1,
"code" : "BMD"
},
- "PHP" : {
- "value" : 0.019948729371667289,
- "code" : "PHP"
- },
"BGN" : {
- "value" : 0.60465158464064039,
+ "value" : 0.57868160128143253,
"code" : "BGN"
},
+ "PHP" : {
+ "value" : 0.019908455744289264,
+ "code" : "PHP"
+ },
"ZMW" : {
- "value" : 0.062023662151157989,
+ "value" : 0.060460650908484764,
"code" : "ZMW"
},
"XAF" : {
- "value" : 0.0018101491398529697,
+ "value" : 0.0017254179769835868,
"code" : "XAF"
},
"BDT" : {
- "value" : 0.011734181135743179,
+ "value" : 0.01165631151035584,
"code" : "BDT"
},
"NOK" : {
- "value" : 0.11477274422779175,
+ "value" : 0.1124922028841876,
"code" : "NOK"
},
"BOB" : {
- "value" : 0.14501746807911747,
+ "value" : 0.14470454443174743,
"code" : "BOB"
},
"TZS" : {
- "value" : 0.00043131333519581621,
+ "value" : 0.00043383950668404703,
"code" : "TZS"
},
"XAG" : {
- "value" : 24.362909905959167,
+ "value" : 22.709208584080844,
"code" : "XAG"
},
"VEF" : {
"value" : 4.6766073993926175e-12,
"code" : "VEF"
},
- "ANG" : {
- "value" : 0.5570562030714965,
- "code" : "ANG"
- },
"VUV" : {
- "value" : 0.0090181957068590762,
+ "value" : 0.0088298152273748511,
"code" : "VUV"
},
"BND" : {
- "value" : 0.74363983440628167,
+ "value" : 0.73686428875648258,
"code" : "BND"
},
- "SCR" : {
- "value" : 0.077646497393678848,
- "code" : "SCR"
- },
"XCD" : {
"value" : 0.37002090618119926,
"code" : "XCD"
},
+ "SCR" : {
+ "value" : 0.075231094877243915,
+ "code" : "SCR"
+ },
+ "ANG" : {
+ "value" : 0.55436920545587998,
+ "code" : "ANG"
+ },
"KYD" : {
- "value" : 1.1998680145184031,
+ "value" : 1.1989933252041585,
"code" : "KYD"
},
"DJF" : {
- "value" : 0.005626837901097183,
+ "value" : 0.0056124169471733947,
"code" : "DJF"
},
"CLF" : {
- "value" : 35.340684195646027,
+ "value" : 31.894874493668869,
"code" : "CLF"
},
"LSL" : {
- "value" : 0.067024488066960153,
+ "value" : 0.06443543923383685,
"code" : "LSL"
},
"MOP" : {
- "value" : 0.12488772593438499,
+ "value" : 0.12438185328463866,
"code" : "MOP"
},
"ALL" : {
- "value" : 0.0097563680741274798,
+ "value" : 0.0093878566403318812,
"code" : "ALL"
},
"UZS" : {
- "value" : 9.3489770333203163e-05,
+ "value" : 9.2531732287490099e-05,
"code" : "UZS"
},
"UYU" : {
- "value" : 0.023475484434227912,
+ "value" : 0.022522417519359763,
"code" : "UYU"
},
"PLN" : {
- "value" : 0.26175201090982381,
+ "value" : 0.24531028070855423,
"code" : "PLN"
},
"LTL" : {
@@ -272,19 +276,19 @@
"code" : "LTL"
},
"LYD" : {
- "value" : 0.22184336305664656,
+ "value" : 0.21743639876617887,
"code" : "LYD"
},
"JPY" : {
- "value" : 0.0090728049684349402,
+ "value" : 0.0087208304246820297,
"code" : "JPY"
},
"MNT" : {
- "value" : 0.00035076628400650231,
+ "value" : 0.00034984794609446847,
"code" : "MNT"
},
"FJD" : {
- "value" : 0.48238103277779121,
+ "value" : 0.47198731675682409,
"code" : "FJD"
},
"ZWL" : {
@@ -292,11 +296,11 @@
"code" : "ZWL"
},
"KPW" : {
- "value" : 0.0011111109037037425,
+ "value" : 0.0011111112061728476,
"code" : "KPW"
},
"PKR" : {
- "value" : 0.0059527408451712166,
+ "value" : 0.0055973950574206817,
"code" : "PKR"
},
"MRO" : {
@@ -304,11 +308,11 @@
"code" : "MRO"
},
"OMR" : {
- "value" : 2.6009764065430163,
+ "value" : 2.6006923042914023,
"code" : "OMR"
},
"GBP" : {
- "value" : 1.3762446412474281,
+ "value" : 1.3399886100968141,
"code" : "GBP"
},
"LVL" : {
@@ -316,215 +320,227 @@
"code" : "LVL"
},
"SHP" : {
- "value" : 0.72600657181148809,
+ "value" : 0.72600762598410329,
"code" : "SHP"
},
"GEL" : {
- "value" : 0.32048570249184044,
+ "value" : 0.32578213775632542,
"code" : "GEL"
},
+ "AVAX" : {
+ "value" : 117.52949112,
+ "code" : "AVAX"
+ },
"TND" : {
- "value" : 0.35848744110947561,
+ "value" : 0.34812832288484191,
"code" : "TND"
},
"DKK" : {
- "value" : 0.15891960098466584,
+ "value" : 0.15215957035006439,
"code" : "DKK"
},
"NPR" : {
- "value" : 0.0085093559560347788,
+ "value" : 0.0083257319400720474,
"code" : "NPR"
},
"KRW" : {
- "value" : 0.00085781689878051059,
+ "value" : 0.00084220810545561234,
"code" : "KRW"
},
"BSD" : {
- "value" : 0.99987401587399982,
+ "value" : 0.9991167807658029,
"code" : "BSD"
},
"CRC" : {
- "value" : 0.0016017348146313579,
+ "value" : 0.0015546703304152047,
"code" : "CRC"
},
"EGP" : {
- "value" : 0.063546192744244875,
+ "value" : 0.063662651102506615,
"code" : "EGP"
},
"MAD" : {
- "value" : 0.11208499270494825,
+ "value" : 0.10793195149494926,
"code" : "MAD"
},
- "BTC" : {
- "value" : 11957.02216748,
- "code" : "BTC"
- },
"AUD" : {
- "value" : 0.73692021880635128,
+ "value" : 0.72142524771939442,
"code" : "AUD"
},
+ "BTC" : {
+ "value" : 50928.71859343,
+ "code" : "BTC"
+ },
"SLL" : {
- "value" : 9.685229880693445e-05,
+ "value" : 8.8222318449108469e-05,
"code" : "SLL"
},
"MWK" : {
- "value" : 0.0012306236506419337,
+ "value" : 0.0012319032245998224,
"code" : "MWK"
},
"RSD" : {
- "value" : 0.010096084333642431,
+ "value" : 0.0096237357045781836,
"code" : "RSD"
},
"NZD" : {
- "value" : 0.70949157833496523,
+ "value" : 0.67977037356780878,
"code" : "NZD"
},
"SRD" : {
- "value" : 0.046893326498162066,
+ "value" : 0.048621637357948846,
"code" : "SRD"
},
"CLP" : {
- "value" : 0.0012807706887000619,
+ "value" : 0.0011558951594028205,
"code" : "CLP"
},
"RUB" : {
- "value" : 0.013613610713737376,
+ "value" : 0.013600079674706765,
"code" : "RUB"
},
- "NAD" : {
- "value" : 0.067022686710292628,
- "code" : "NAD"
- },
"HKD" : {
- "value" : 0.12858974342488494,
+ "value" : 0.12818458580355713,
"code" : "HKD"
},
+ "NAD" : {
+ "value" : 0.064433653955195416,
+ "code" : "NAD"
+ },
"GMD" : {
- "value" : 0.019538930860574819,
+ "value" : 0.019029582627970137,
"code" : "GMD"
},
"VND" : {
- "value" : 4.3939626952567174e-05,
+ "value" : 4.3821209465381244e-05,
"code" : "VND"
},
"LAK" : {
- "value" : 0.00010435298460524862,
+ "value" : 8.9542390578357692e-05,
"code" : "LAK"
},
+ "SHIB" : {
+ "value" : 3.8509123000000003e-05,
+ "code" : "SHIB"
+ },
"CUC" : {
"value" : 1,
"code" : "CUC"
},
"RON" : {
- "value" : 0.23885154444991413,
+ "value" : 0.22862300592156448,
"code" : "RON"
},
"MUR" : {
- "value" : 0.023415617373826119,
+ "value" : 0.023011594576019884,
"code" : "MUR"
},
"XAU" : {
- "value" : 1798.5611510791368,
+ "value" : 1805.0541516245487,
"code" : "XAU"
},
"GGP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "GGP"
},
- "MXN" : {
- "value" : 0.05010622770805246,
- "code" : "MXN"
+ "SOL" : {
+ "value" : 201.83102561999999,
+ "code" : "SOL"
},
"BRL" : {
- "value" : 0.19339748714777,
+ "value" : 0.17617100426104809,
"code" : "BRL"
},
"STD" : {
"value" : 4.8313891080172936e-05,
"code" : "STD"
},
+ "MXN" : {
+ "value" : 0.048387135796077251,
+ "code" : "MXN"
+ },
"AWG" : {
- "value" : 0.5554012774229381,
+ "value" : 0.55555555555555558,
"code" : "AWG"
},
"MVR" : {
- "value" : 0.064724240431912619,
+ "value" : 0.064725736020616445,
"code" : "MVR"
},
"PAB" : {
- "value" : 0.99987401587399982,
+ "value" : 0.99916170333090537,
"code" : "PAB"
},
"TJS" : {
- "value" : 0.088251166349477259,
+ "value" : 0.088587157094617633,
"code" : "TJS"
},
"GNF" : {
- "value" : 0.00010214993633869382,
+ "value" : 0.00010561444928516947,
"code" : "GNF"
},
- "MGA" : {
- "value" : 0.00025465296336866296,
- "code" : "MGA"
- },
"XDR" : {
- "value" : 1.4230337942065447,
+ "value" : 1.3983197789536093,
"code" : "XDR"
},
+ "MGA" : {
+ "value" : 0.00025167106206527335,
+ "code" : "MGA"
+ },
"ETB" : {
- "value" : 0.021682084869490977,
+ "value" : 0.020224401873426796,
"code" : "ETB"
},
"ZAR" : {
- "value" : 0.069809465535241394,
+ "value" : 0.064352114176095057,
"code" : "ZAR"
},
"COP" : {
- "value" : 0.00026255057380427906,
+ "value" : 0.00025053238131028438,
"code" : "COP"
},
"IDR" : {
- "value" : 7.0110739913693687e-05,
+ "value" : 7.0229404349307016e-05,
"code" : "IDR"
},
"SVC" : {
- "value" : 0.11426715729936886,
+ "value" : 0.11418987309394264,
"code" : "SVC"
},
"CVE" : {
- "value" : 0.010768149497923723,
+ "value" : 0.010264816562133709,
"code" : "CVE"
},
"ETC" : {
- "value" : 5.2368606,
+ "value" : 38.293331139999999,
"code" : "ETC"
},
- "TTD" : {
- "value" : 0.14727128401414394,
- "code" : "TTD"
+ "DOGE" : {
+ "value" : 0.19064063000000001,
+ "code" : "DOGE"
},
"GIP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "GIP"
},
+ "TTD" : {
+ "value" : 0.14696487407241282,
+ "code" : "TTD"
+ },
"PYG" : {
- "value" : 0.00014467133719474066,
+ "value" : 0.00014658722962601346,
"code" : "PYG"
},
- "DOGE" : {
- "value" : 0.0025976099999999993,
- "code" : "DOGE"
- },
"MZN" : {
- "value" : 0.015680132816997011,
+ "value" : 0.015666529276427088,
"code" : "MZN"
},
"FKP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "FKP"
},
"KZT" : {
- "value" : 0.002344853462392567,
+ "value" : 0.0023051934815048079,
"code" : "KZT"
},
"USD" : {
@@ -532,199 +548,207 @@
"code" : "USD"
},
"UGX" : {
- "value" : 0.00028358012899350551,
+ "value" : 0.00028225685783391782,
"code" : "UGX"
},
- "GHS" : {
- "value" : 0.16499910322987393,
- "code" : "GHS"
+ "RWF" : {
+ "value" : 0.00096346363419134117,
+ "code" : "RWF"
},
"ARS" : {
- "value" : 0.010215359598126118,
+ "value" : 0.0097784320722245945,
"code" : "ARS"
},
- "RWF" : {
- "value" : 0.00099039921265005695,
- "code" : "RWF"
+ "GHS" : {
+ "value" : 0.16181075293941369,
+ "code" : "GHS"
},
"JEP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "JEP"
},
"DOP" : {
- "value" : 0.017588507922198151,
+ "value" : 0.017507115592061237,
"code" : "DOP"
},
"LBP" : {
- "value" : 0.0006612893342517372,
+ "value" : 0.00066077767418736813,
"code" : "LBP"
},
"BZD" : {
- "value" : 0.49605192274685772,
+ "value" : 0.49567719914624558,
"code" : "BZD"
},
- "ADA" : {
- "value" : 0.10270785,
- "code" : "ADA"
- },
"BTN" : {
- "value" : 0.013614988970088985,
+ "value" : 0.013321759566245641,
"code" : "BTN"
},
+ "ADA" : {
+ "value" : 1.58042777,
+ "code" : "ADA"
+ },
"MYR" : {
- "value" : 0.24070273645312965,
+ "value" : 0.23906344504768121,
"code" : "MYR"
},
"YER" : {
- "value" : 0.0039864413952552854,
+ "value" : 0.0039959992055953577,
"code" : "YER"
},
"JMD" : {
- "value" : 0.0066442652605700446,
+ "value" : 0.0064975773100753769,
"code" : "JMD"
},
"TOP" : {
- "value" : 0.44513628515074316,
+ "value" : 0.43893339185778563,
"code" : "TOP"
},
"SOS" : {
- "value" : 0.0017094027993286224,
+ "value" : 0.0017064854774084164,
"code" : "SOS"
},
"TMT" : {
- "value" : 0.28490028490028491,
+ "value" : 0.2857142857142857,
"code" : "TMT"
},
"MDL" : {
- "value" : 0.056828407702681501,
+ "value" : 0.056052457477064319,
"code" : "MDL"
},
"XOF" : {
- "value" : 0.0018101034056686495,
+ "value" : 0.0017254179769835868,
"code" : "XOF"
},
"ETH" : {
- "value" : 371.33697873,
+ "value" : 4072.3098828399998,
"code" : "ETH"
},
"TWD" : {
- "value" : 0.036066578904657996,
+ "value" : 0.036112825567504933,
"code" : "TWD"
},
"BBD" : {
- "value" : 0.49522430442032267,
+ "value" : 0.49484078992424974,
"code" : "BBD"
},
+ "DOT" : {
+ "value" : 31.597941519999999,
+ "code" : "DOT"
+ },
"CAD" : {
- "value" : 0.78851853925363569,
+ "value" : 0.77926834495092556,
"code" : "CAD"
},
"CNY" : {
- "value" : 0.15481318847360079,
+ "value" : 0.15691436069245052,
"code" : "CNY"
},
"JOD" : {
- "value" : 1.4103258416824622,
+ "value" : 1.4103914823637598,
"code" : "JOD"
},
"XPF" : {
- "value" : 0.0098154865212757552,
+ "value" : 0.0094383730117500956,
"code" : "XPF"
},
"XLM" : {
- "value" : 0.082820000000000005,
+ "value" : 0.29973736000000001,
"code" : "XLM"
},
"IQD" : {
- "value" : 0.00068535032584169102,
+ "value" : 0.00068465018924487766,
"code" : "IQD"
},
"HNL" : {
- "value" : 0.041724355804110325,
+ "value" : 0.040737141840576578,
"code" : "HNL"
},
"AED" : {
- "value" : 0.27225849310369238,
+ "value" : 0.27225997560550619,
"code" : "AED"
},
- "ERN" : {
- "value" : 0.066645282417048451,
- "code" : "ERN"
- },
"EOS" : {
- "value" : 2.5413952100000001,
+ "value" : 3.4663553500000002,
"code" : "EOS"
},
+ "ERN" : {
+ "value" : 0.066666320001802656,
+ "code" : "ERN"
+ },
"KES" : {
- "value" : 0.0090826094849309376,
+ "value" : 0.008834725815697865,
"code" : "KES"
},
"KMF" : {
- "value" : 0.0023866358530657424,
+ "value" : 0.0022968706194370653,
"code" : "KMF"
},
"MKD" : {
- "value" : 0.019248252937134225,
+ "value" : 0.018370283259847915,
"code" : "MKD"
},
"DZD" : {
- "value" : 0.0073472670334079494,
+ "value" : 0.0071879249186740206,
"code" : "DZD"
},
"BSV" : {
- "value" : 157.47286274999999,
+ "value" : 131.02409718999999,
"code" : "BSV"
},
"BWP" : {
- "value" : 0.090993317632739684,
+ "value" : 0.0859755999527822,
"code" : "BWP"
},
- "SBD" : {
- "value" : 0.12409927197162099,
- "code" : "SBD"
- },
"AZN" : {
- "value" : 0.58655464255066803,
+ "value" : 0.58925852421381131,
"code" : "AZN"
},
+ "SBD" : {
+ "value" : 0.12349967958008133,
+ "code" : "SBD"
+ },
"BCH" : {
- "value" : 243.10580897,
+ "value" : 467.49922156999997,
"code" : "BCH"
},
"KGS" : {
- "value" : 0.011793120226226009,
+ "value" : 0.011793887845929179,
"code" : "KGS"
},
+ "MATIC" : {
+ "value" : 2.8421653500000001,
+ "code" : "MATIC"
+ },
"BYN" : {
- "value" : 0.39664265788658476,
+ "value" : 0.39668435349970804,
"code" : "BYN"
},
"KHR" : {
- "value" : 0.0002449549233411167,
+ "value" : 0.00024529671855543688,
"code" : "KHR"
},
"NEO" : {
- "value" : 17.76272552,
+ "value" : 29.8754189,
"code" : "NEO"
},
"ZMK" : {
- "value" : 0.00011109637899061443,
+ "value" : 0.00011109632436315487,
"code" : "ZMK"
},
"HTG" : {
- "value" : 0.010199415920247911,
+ "value" : 0.0099485759106038487,
"code" : "HTG"
},
"CZK" : {
- "value" : 0.04652683027826534,
+ "value" : 0.045075495369552125,
"code" : "CZK"
},
"BAM" : {
- "value" : 0.60708234404206352,
+ "value" : 0.5787057130985408,
"code" : "BAM"
},
"IMP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "IMP"
}
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/FunctionDescriptions.json
index a6d510958..256e2aa64 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/FunctionDescriptions.json
@@ -1,61 +1,175 @@
{
- "tagRelated": [
+ "datetime": [
{
+ "identifier": "calendarUnitBetweenDates",
"prototypeExpressions": [
- "total of __tag",
- "total __tag",
- "__tag total",
- "sum of __tag",
- "sum __tag",
- "__tag sum"
+ "__unit between __datestamp and __datestamp",
+ "__unit between __datestamp to __datestamp",
+ "__unit between __datestamp - __datestamp",
+ "__unit between __datestamp − __datestamp",
+ "__unit from __datestamp to __datestamp",
+ "__unit in __datestamp to __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit to __datestamp",
+ "__unit before __datestamp",
+ "__unit until __datestamp",
+ "__unit till __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit to __datespan",
+ "__unit before __datespan",
+ "__unit until __datespan",
+ "__unit till __datespan"
],
- "identifier": "tagTotal"
+ "identifier": "calendarUnitToDatespan"
},
{
"prototypeExpressions": [
- "average of __tag",
- "average __tag",
- "__tag average",
- "mean of __tag",
- "mean __tag",
- "__tag mean"
+ "__unit in __datestamp"
],
- "identifier": "tagAverage"
+ "identifier": "calendarUnitInDate"
},
{
"prototypeExpressions": [
- "count of __tag",
- "count __tag",
- "__tag count"
+ "__unit in __datespan"
+ ],
+ "identifier": "calendarUnitInDatespan"
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "__datestamp to __datestamp",
+ "difference between __datestamp and __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit between __datestamp through __datestamp",
+ "__unit from __datestamp through __datestamp",
+ "__unit in __datestamp through __datestamp"
+ ],
+ "identifier": "inclusiveCalendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp through __datestamp"
+ ],
+ "identifier": "inclusiveIntervalBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__timestamp to __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit since __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "identifier": "calendarUnitExpressionAfterDate",
+ "prototypeExpressions": [
+ "__timespan from __datestamp",
+ "__timespan after __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitExpressionBeforeDate",
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitExpressionAgo",
+ "prototypeExpressions": [
+ "__timespan ago"
+ ]
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "new timestamp",
+ "current timestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone time",
+ "time __timezone",
+ "time at __timezone",
+ "time in __timezone"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "identifier": "differenceBetweenTimezones",
+ "prototypeExpressions": [
+ "time difference between __timezone and __timezone",
+ "difference between __timezone and __timezone",
+ "time difference between __timezone & __timezone",
+ "difference between __timezone & __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp in __timespan",
+ "__datestamp after __timespan"
],
- "identifier": "tagCount"
+ "identifier": "weekdayAfterTimespan"
+ },
+ {
+ "prototypeExpressions": [
+ "week number on __datestamp",
+ "week number __datestamp"
+ ],
+ "identifier": "weekNumberOnDate"
+ },
+ {
+ "prototypeExpressions": [
+ "week of year"
+ ],
+ "identifier": "weekOfYear"
+ },
+ {
+ "identifier": "halfwayBetweenDates",
+ "prototypeExpressions": [
+ "halfway between __datestamp and __datestamp",
+ "midpoint between __datestamp and __datestamp"
+ ]
}
],
"financial": [
{
+ "identifier": "presentValue",
"prototypeExpressions": [
"present value of 1000 after __timespan at __percentage",
"present value of 1000 over __timespan at __percentage"
- ],
- "identifier": "presentValue"
+ ]
},
{
+ "identifier": "returnOnInvestmentAfter",
"prototypeExpressions": [
"annual return on 500 invested 1000 returned after __timespan",
"yearly return on 500 invested 1000 returned after __timespan",
"annual return on 500 invested 1000 returned over __timespan",
"yearly return on 500 invested 1000 returned over __timespan"
- ],
- "identifier": "returnOnInvestmentAfter"
+ ]
},
{
- "identifier": "returnOnInvestment",
"prototypeExpressions": [
"500 invested 1000 returned"
- ]
+ ],
+ "identifier": "returnOnInvestment"
},
{
- "identifier": "totalLoanRepayment",
"prototypeExpressions": [
"total repayment on 10000 for __timespan at __percentage",
"total repayment on 10000 after __timespan at __percentage",
@@ -63,9 +177,11 @@
"total payment on 10000 for __timespan at __percentage",
"total payment on 10000 after __timespan at __percentage",
"total payment on 10000 over __timespan at __percentage"
- ]
+ ],
+ "identifier": "totalLoanRepayment"
},
{
+ "identifier": "annualLoanRepayment",
"prototypeExpressions": [
"annual repayment on 10000 for __timespan at __percentage",
"annual repayment on 10000 after __timespan at __percentage",
@@ -79,11 +195,9 @@
"yearly payment on 10000 over __timespan at __percentage",
"yearly payment on 10000 after __timespan at __percentage",
"yearly payment on 10000 for __timespan at __percentage"
- ],
- "identifier": "annualLoanRepayment"
+ ]
},
{
- "identifier": "monthlyLoanRepayment",
"prototypeExpressions": [
"monthly repayment on 10000 for __timespan at __percentage",
"monthly repayment on 10000 after __timespan at __percentage",
@@ -91,18 +205,18 @@
"monthly payment on 10000 for __timespan at __percentage",
"monthly payment on 10000 after __timespan at __percentage",
"monthly payment on 10000 over __timespan at __percentage"
- ]
+ ],
+ "identifier": "monthlyLoanRepayment"
},
{
+ "identifier": "totalInterestOnLoanRepayment",
"prototypeExpressions": [
"total interest on 10000 for __timespan at __percentage",
"total interest on 10000 after __timespan at __percentage",
"total interest on 10000 over __timespan at __percentage"
- ],
- "identifier": "totalInterestOnLoanRepayment"
+ ]
},
{
- "identifier": "annualInterestOnLoanRepayment",
"prototypeExpressions": [
"annual interest on 10000 for __timespan at __percentage",
"annual interest on 10000 after __timespan at __percentage",
@@ -110,18 +224,18 @@
"yearly interest on 10000 over __timespan at __percentage",
"yearly interest on 10000 after __timespan at __percentage",
"yearly interest on 10000 for __timespan at __percentage"
- ]
+ ],
+ "identifier": "annualInterestOnLoanRepayment"
},
{
+ "identifier": "monthlyInterestOnLoanRepayment",
"prototypeExpressions": [
"monthly interest on 10000 for __timespan at __percentage",
"monthly interest on 10000 after __timespan at __percentage",
"monthly interest on 10000 over __timespan at __percentage"
- ],
- "identifier": "monthlyInterestOnLoanRepayment"
+ ]
},
{
- "identifier": "compoundInterestCompoundingMonthly",
"prototypeExpressions": [
"100 after __timespan at __percentage compounded monthly",
"100 for __timespan at __percentage compounded monthly",
@@ -135,10 +249,10 @@
"100 at __percentage after __timespan compounding monthly",
"100 at __percentage for __timespan compounding monthly",
"100 at __percentage over __timespan compounding monthly"
- ]
+ ],
+ "identifier": "compoundInterestCompoundingMonthly"
},
{
- "identifier": "compoundInterest",
"prototypeExpressions": [
"100 after __timespan at __percentage",
"100 for __timespan at __percentage",
@@ -146,364 +260,192 @@
"100 at __percentage after __timespan",
"100 at __percentage for __timespan",
"100 at __percentage over __timespan"
- ]
+ ],
+ "identifier": "compoundInterest"
}
],
"percentage": [
{
+ "identifier": "percentOf",
"prototypeExpressions": [
"__percentage of 100"
- ],
- "identifier": "percentOf"
+ ]
},
{
+ "identifier": "percentOff",
"prototypeExpressions": [
"__percentage off 100"
- ],
- "identifier": "percentOff"
+ ]
},
{
+ "identifier": "percentOn",
"prototypeExpressions": [
"__percentage on 100"
- ],
- "identifier": "percentOn"
+ ]
},
{
+ "identifier": "isPercentOfWhat",
"prototypeExpressions": [
"30 is __percentage of what"
- ],
- "identifier": "isPercentOfWhat"
+ ]
},
{
+ "identifier": "isPercentOfWhatClassic",
"prototypeExpressions": [
"__percentage of what is 30"
- ],
- "identifier": "isPercentOfWhatClassic"
+ ]
},
{
+ "identifier": "isPercentOffWhat",
"prototypeExpressions": [
"30 is __percentage off what"
- ],
- "identifier": "isPercentOffWhat"
+ ]
},
{
+ "identifier": "isPercentOffWhatClassic",
"prototypeExpressions": [
"__percentage off what is 30"
- ],
- "identifier": "isPercentOffWhatClassic"
+ ]
},
{
+ "identifier": "isPercentOnWhat",
"prototypeExpressions": [
"30 is __percentage on what"
- ],
- "identifier": "isPercentOnWhat"
+ ]
},
{
+ "identifier": "isPercentOnWhatClassic",
"prototypeExpressions": [
"__percentage on what is 30"
- ],
- "identifier": "isPercentOnWhatClassic"
+ ]
},
{
+ "identifier": "isWhatPercentOf",
"prototypeExpressions": [
"10 is what % of 20",
"10 as a % of 20",
"10 as % of 20"
- ],
- "identifier": "isWhatPercentOf"
+ ]
},
{
+ "identifier": "isWhatPercentOff",
"prototypeExpressions": [
"10 is what % off 20",
"10 as a % off 20",
"10 as % off 20"
- ],
- "identifier": "isWhatPercentOff"
+ ]
},
{
+ "identifier": "isWhatPercentOn",
"prototypeExpressions": [
"20 is what % on 10",
"20 as a % on 10",
"20 as % on 10"
- ],
- "identifier": "isWhatPercentOn"
- },
- {
- "identifier": "xToYIsWhatPercentage",
- "prototypeExpressions": [
- "10 to 20 is what %"
- ]
- }
- ],
- "unitRelated": [
- {
- "prototypeExpressions": [
- "__unit in __unit_expression"
- ],
- "identifier": "unitInUnitExpression"
- },
- {
- "prototypeExpressions": [
- "__unit_expression __substance in __unit",
- "__unit_expression of __substance in __unit",
- "__unit_expression __substance as __unit",
- "__unit_expression of __substance as __unit",
- "__unit_expression __substance to __unit",
- "__unit_expression of __substance to __unit"
- ],
- "identifier": "substanceWeightToVolumeConversion"
- },
- {
- "prototypeExpressions": [
- "density of __substance",
- "__substance density"
- ],
- "identifier": "densityOfSubstance"
- },
- {
- "prototypeExpressions": [
- "__unit in __timespan"
- ],
- "identifier": "unitInTimespan"
- },
- {
- "identifier": "rateUnitChange",
- "prototypeExpressions": [
- "__rate is what / __unit",
- "__rate is how much / __unit",
- "__rate as / __unit",
- "__rate is what /__unit",
- "__rate is how much /__unit",
- "__rate as /__unit",
- "__rate is what per __unit",
- "__rate is how much per __unit",
- "__rate as per __unit",
- "__rate is what per__unit",
- "__rate is how much per__unit",
- "__rate as per__unit"
- ]
- }
- ],
- "datetime": [
- {
- "prototypeExpressions": [
- "__unit between __datestamp and __datestamp",
- "__unit between __datestamp to __datestamp",
- "__unit between __datestamp - __datestamp",
- "__unit between __datestamp − __datestamp",
- "__unit from __datestamp to __datestamp",
- "__unit in __datestamp to __datestamp"
- ],
- "identifier": "calendarUnitBetweenDates"
- },
- {
- "prototypeExpressions": [
- "__unit to __datestamp",
- "__unit before __datestamp",
- "__unit until __datestamp",
- "__unit till __datestamp"
- ],
- "identifier": "calendarUnitToDate"
- },
- {
- "identifier": "calendarUnitToDatespan",
- "prototypeExpressions": [
- "__unit to __datespan",
- "__unit before __datespan",
- "__unit until __datespan",
- "__unit till __datespan"
]
},
{
- "identifier": "calendarUnitInDate",
"prototypeExpressions": [
- "__unit in __datestamp"
- ]
- },
- {
- "identifier": "calendarUnitInDatespan",
- "prototypeExpressions": [
- "__unit in __datespan"
- ]
- },
- {
- "prototypeExpressions": [
- "__datestamp to __datestamp",
- "difference between __datestamp and __datestamp"
+ "10 to 20 is what %",
+ "10 to 20 as %",
+ "10 to 20 as a %",
+ "10 to 20 is what percent",
+ "10 to 20 as percent",
+ "10 to 20 as a percent",
+ "10 to 20 is what percentage",
+ "10 to 20 as percentage",
+ "10 to 20 as a percentage"
],
- "identifier": "intervalBetweenDates"
- },
- {
- "identifier": "inclusiveCalendarUnitBetweenDates",
- "prototypeExpressions": [
- "__unit between __datestamp through __datestamp",
- "__unit from __datestamp through __datestamp",
- "__unit in __datestamp through __datestamp"
- ]
- },
- {
- "identifier": "inclusiveIntervalBetweenDates",
- "prototypeExpressions": [
- "__datestamp through __datestamp"
- ]
- },
- {
- "identifier": "intervalBetweenTimestamps",
- "prototypeExpressions": [
- "__timestamp to __timestamp"
- ]
+ "identifier": "xToYIsWhatPercentage"
},
{
- "identifier": "calendarUnitSinceDate",
"prototypeExpressions": [
- "__unit since __datestamp"
- ]
- },
- {
- "prototypeExpressions": [
- "__timespan from __datestamp",
- "__timespan after __datestamp"
- ],
- "identifier": "calendarUnitExpressionAfterDate"
- },
- {
- "prototypeExpressions": [
- "__timespan before __datestamp"
- ],
- "identifier": "calendarUnitExpressionBeforeDate"
- },
- {
- "prototypeExpressions": [
- "__timespan ago"
- ],
- "identifier": "calendarUnitExpressionAgo"
- },
- {
- "prototypeExpressions": [
- "new timestamp",
- "current timestamp"
- ],
- "identifier": "generateTimestamp"
- },
- {
- "identifier": "timeInTimezone",
- "prototypeExpressions": [
- "__timezone time",
- "time __timezone",
- "time at __timezone",
- "time in __timezone"
- ]
- },
- {
- "prototypeExpressions": [
- "time difference between __timezone and __timezone",
- "difference between __timezone and __timezone",
- "time difference between __timezone & __timezone",
- "difference between __timezone & __timezone"
+ "10 to 20 is what x",
+ "10 to 20 as x",
+ "10 to 20 as a x",
+ "10 to 20 is what multiple",
+ "10 to 20 as multiple",
+ "10 to 20 as a multiple",
+ "10 to 20 is what multiplier",
+ "10 to 20 as multiplier",
+ "10 to 20 as a multiplier"
],
- "identifier": "differenceBetweenTimezones"
- },
- {
- "identifier": "weekdayAfterTimespan",
- "prototypeExpressions": [
- "__datestamp in __timespan",
- "__datestamp after __timespan"
- ]
- },
- {
- "identifier": "weekNumberOnDate",
- "prototypeExpressions": [
- "week number on __datestamp",
- "week number __datestamp"
- ]
- },
- {
- "identifier": "weekOfYear",
- "prototypeExpressions": [
- "week of year"
- ]
- },
- {
- "prototypeExpressions": [
- "halfway between __datestamp and __datestamp",
- "midpoint between __datestamp and __datestamp"
- ],
- "identifier": "halfwayBetweenDates"
+ "identifier": "xToYIsWhatMultiplier"
}
],
"general": [
{
+ "identifier": "remainder",
"prototypeExpressions": [
"remainder of 20 divided by 3"
- ],
- "identifier": "remainder"
+ ]
},
{
+ "identifier": "halfOf",
"prototypeExpressions": [
"half of 20"
- ],
- "identifier": "halfOf"
+ ]
},
{
+ "identifier": "lesserOf",
"prototypeExpressions": [
"smaller of 2 and 30",
"lesser of 2 and 30"
- ],
- "identifier": "lesserOf"
+ ]
},
{
+ "identifier": "greaterOf",
"prototypeExpressions": [
"larger of 2 and 30",
"greater of 2 and 30"
- ],
- "identifier": "greaterOf"
+ ]
},
{
+ "identifier": "midpoint",
"prototypeExpressions": [
"midpoint between 2 and 32"
- ],
- "identifier": "midpoint"
+ ]
},
{
+ "identifier": "lcm",
"prototypeExpressions": [
"lcm of 5 and 8",
"lowest common multiple of 5 and 8"
- ],
- "identifier": "lcm"
+ ]
},
{
+ "identifier": "gcd",
"prototypeExpressions": [
"gcd of 20 and 30",
"greatest common divisor of 5 and 8",
"gcf of 20 and 30",
"greatest common factor of 5 and 8"
- ],
- "identifier": "gcd"
+ ]
},
{
+ "identifier": "proportionsFindNumerator",
"prototypeExpressions": [
"6 is to 600 as what is to 8",
"6 to 600 is what to 8",
"6 to 600 as what to 8"
- ],
- "identifier": "proportionsFindNumerator"
+ ]
},
{
+ "identifier": "proportionsFindDenominator",
"prototypeExpressions": [
"6 is to 600 as 8 is to what",
"6 to 600 as 8 to what",
"6 to 600 is 8 to what"
- ],
- "identifier": "proportionsFindDenominator"
+ ]
},
{
+ "identifier": "makeRandomNumber",
"prototypeExpressions": [
"random number between 1 and 5",
"random between 1 and 5"
- ],
- "identifier": "makeRandomNumber"
+ ]
},
{
+ "identifier": "asMultiplierOf",
"prototypeExpressions": [
"5 as multiplier of 1",
"5 as multiple of 1",
@@ -513,35 +455,35 @@
"5 is what x of 1",
"5 is what multiple of 1",
"5 is what multiplier of 1"
- ],
- "identifier": "asMultiplierOf"
+ ]
},
{
+ "identifier": "squareRoot",
"prototypeExpressions": [
"square root of 100",
"squared root of 100",
"squared root 100",
"square root 100"
- ],
- "identifier": "squareRoot"
+ ]
},
{
+ "identifier": "cubedRoot",
"prototypeExpressions": [
"cubed root of 100",
"cubed root 100",
"cube root of 100",
"cube root 100"
- ],
- "identifier": "cubedRoot"
+ ]
},
{
+ "identifier": "nthRoot",
"prototypeExpressions": [
"5 root of 100",
"root 5 of 100"
- ],
- "identifier": "nthRoot"
+ ]
},
{
+ "identifier": "nthLog",
"prototypeExpressions": [
"log 20 base 4",
"log of 20 to base 4",
@@ -549,8 +491,103 @@
"logarithm 20 base 4",
"logarithm of 20 to base 4",
"logarithm of 20 with base 4"
+ ]
+ },
+ {
+ "identifier": "scrubNumberWithSpecifiedRange",
+ "prototypeExpressions": [
+ "scrub 10 from 0 to 10",
+ "scrubber 10 from 0 to 10",
+ "scrub 10 between 0 and 10",
+ "scrubber 10 between 0 and 10"
+ ]
+ },
+ {
+ "identifier": "xToY",
+ "prototypeExpressions": [
+ "5 to 10"
+ ]
+ }
+ ],
+ "unitRelated": [
+ {
+ "identifier": "unitInUnitExpression",
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ]
+ },
+ {
+ "identifier": "substanceWeightToVolumeConversion",
+ "prototypeExpressions": [
+ "__unit_expression __substance in __unit",
+ "__unit_expression of __substance in __unit",
+ "__unit_expression __substance as __unit",
+ "__unit_expression of __substance as __unit",
+ "__unit_expression __substance to __unit",
+ "__unit_expression of __substance to __unit"
+ ]
+ },
+ {
+ "identifier": "densityOfSubstance",
+ "prototypeExpressions": [
+ "density of __substance",
+ "__substance density"
+ ]
+ },
+ {
+ "identifier": "unitInTimespan",
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__rate is what / __unit",
+ "__rate is how much / __unit",
+ "__rate as / __unit",
+ "__rate is what /__unit",
+ "__rate is how much /__unit",
+ "__rate as /__unit",
+ "__rate is what per __unit",
+ "__rate is how much per __unit",
+ "__rate as per __unit",
+ "__rate is what per__unit",
+ "__rate is how much per__unit",
+ "__rate as per__unit"
],
- "identifier": "nthLog"
+ "identifier": "rateUnitChange"
+ }
+ ],
+ "tagRelated": [
+ {
+ "identifier": "tagTotal",
+ "prototypeExpressions": [
+ "total of __tag",
+ "total __tag",
+ "__tag total",
+ "sum of __tag",
+ "sum __tag",
+ "__tag sum"
+ ]
+ },
+ {
+ "identifier": "tagAverage",
+ "prototypeExpressions": [
+ "average of __tag",
+ "average __tag",
+ "__tag average",
+ "mean of __tag",
+ "mean __tag",
+ "__tag mean"
+ ]
+ },
+ {
+ "identifier": "tagCount",
+ "prototypeExpressions": [
+ "count of __tag",
+ "count __tag",
+ "__tag count"
+ ]
}
]
-}
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/LocalizedFixtures.json
index c7c2da4e4..3ad32e34b 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/LocalizedFixtures.json
@@ -85,6 +85,8 @@
"decimalPlacesTypes": [
"dp",
"digit",
+ "decimal points",
+ "decimal places",
"digits"
],
"laptimeTypes": [
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
index 295869c34..0b398303b 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
@@ -3,8 +3,6 @@
{
"identifier": "reversedPercentOf",
"prototypeExpressions": [
- "100的__percentage",
- "100之__percentage",
"100 的 __percentage",
"100 之 __percentage"
]
@@ -12,8 +10,6 @@
{
"identifier": "reversedPercentOff",
"prototypeExpressions": [
- "100减__percentage",
- "100去__percentage",
"100 减 __percentage",
"100 去 __percentage"
]
@@ -21,8 +17,6 @@
{
"identifier": "reversedPercentOn",
"prototypeExpressions": [
- "100加__percentage",
- "100加上__percentage",
"100 加 __percentage",
"100 加上 __percentage"
]
@@ -31,9 +25,7 @@
"identifier": "isPercentOfWhat",
"prototypeExpressions": [
"30 是多少的 __percentage",
- "30 是什么的 __percentage",
- "30是多少的__percentage",
- "30是什么的__percentage"
+ "30 是什么的 __percentage"
]
},
{
@@ -41,12 +33,8 @@
"prototypeExpressions": [
"多少的 __percentage 是 30",
"多少的 __percentage 为 30",
- "多少的__percentage是30",
- "多少的__percentage为30",
"什么的 __percentage 为 30",
- "什么的 __percentage 是 30",
- "什么的__percentage为30",
- "什么的__percentage是30"
+ "什么的 __percentage 是 30"
]
},
{
@@ -54,12 +42,8 @@
"prototypeExpressions": [
"多少减去 __percentage 是 30",
"多少减 __percentage 是 30",
- "多少减去__percentage是30",
- "多少减__percentage是30",
"什么减去 __percentage 是 30",
- "什么减 __percentage 是 30",
- "什么减去__percentage是30",
- "什么减__percentage是30"
+ "什么减 __percentage 是 30"
]
},
{
@@ -67,12 +51,8 @@
"prototypeExpressions": [
"30 是多少加 __percentage",
"30 是多少加上 __percentage",
- "30 是多少加__percentage",
- "30 是多少加上__percentage",
"30 是什么加 __percentage",
- "30 是什么加上 __percentage",
- "30 是什么加__percentage",
- "30 是什么加上__percentage"
+ "30 是什么加上 __percentage"
]
},
{
@@ -82,30 +62,18 @@
"多少加 __percentage 为 30",
"多少加上 __percentage 是 30",
"多少加上 __percentage 为 30",
- "多少加__percentage是30",
- "多少加__percentage为30",
- "多少加上__percentage是30",
- "多少加上__percentage为30",
"什么加 __percentage 是 30",
"什么加 __percentage 为 30",
"什么加上 __percentage 是 30",
- "什么加上 __percentage 为 30",
- "什么加__percentage是30",
- "什么加__percentage为30",
- "什么加上__percentage是30",
- "什么加上__percentage为30"
+ "什么加上 __percentage 为 30"
]
},
{
"identifier": "isWhatPercentOf",
"prototypeExpressions": [
"10 是 20 里的百分比为",
- "10是20里的百分比为",
"10 在 20 里的百分比为",
- "10在20里的百分比为",
- "10是20里的占比为",
"10 是 20 里的占比为",
- "10在20里的占比为",
"10 在 20 里的占比为"
]
},
@@ -113,26 +81,18 @@
"identifier": "isWhatPercentOff",
"prototypeExpressions": [
"10 是 20 去掉百分之多少",
- "10是20去掉百分之多少",
"10 是 20 减去百分之多少",
- "10是20减去百分之多少",
"10 是 20 减百分之多少",
- "10是20减百分之多少",
"10 是 20 去掉百分之几",
- "10是20去掉百分之几",
"10 是 20 减去百分之几",
- "10是20减去百分之几",
- "10 是 20 减百分之几",
- "10是20减百分之几"
+ "10 是 20 减百分之几"
]
},
{
"identifier": "isWhatPercentOn",
"prototypeExpressions": [
"20 是 10 加百分之多少",
- "20 是 10 加上百分之几",
- "20是10加百分之多少",
- "20是10加上百分之几"
+ "20 是 10 加上百分之几"
]
}
],
@@ -141,27 +101,19 @@
"identifier": "remainder",
"prototypeExpressions": [
"20 除以 3 的余数",
- "20除以3的余数",
- "20 除 3 之余",
- "20除3之余"
+ "20 除 3 之余"
]
},
{
"identifier": "halfOf",
"prototypeExpressions": [
"20 的一半为",
- "20 的一半是",
- "20 的一般",
- "20的一半为",
- "20的一半是"
+ "20 的一半是"
]
},
{
"identifier": "lesserOf",
"prototypeExpressions": [
- "2和30之间小的一个数",
- "2和30之间较小的一个数",
- "2和30之间最小的一个数",
"2 和 30 之间小的一个数",
"2 和 30 之间较小的一个数",
"2 和 30 之间最小的一个数"
@@ -170,9 +122,6 @@
{
"identifier": "greaterOf",
"prototypeExpressions": [
- "2和30之间大的一个数",
- "2和30之间较大的一个数",
- "2和30之间最大的一个数",
"2 和 30 之间大的一个数",
"2 和 30 之间较大的一个数",
"2 和 30 之间最大的一个数"
@@ -183,31 +132,28 @@
"prototypeExpressions": [
"2 与 32 的中间点",
"2 与 32 的中间数",
- "2 与 32 的中间值",
"2 和 32 的中间点",
"2 和 32 的中间数",
"2 和 32 的中间值",
- "2 与 32 的中间点",
- "2 与 32 的中间数",
"2 与 32 的中间值"
]
},
{
"identifier": "proportionsFindNumerator",
"prototypeExpressions": [
- "多少除以8相当于6除以600",
- "多少除以8等于6除以600",
- "什么除以8相当于6除以600",
- "什么除以8等于6除以600"
+ "多少除以 8 相当于 6除以 600",
+ "多少除以 8 等于 6除以 600",
+ "什么除以 8 相当于 6除以 600",
+ "什么除以 8 等于 6除以 600"
]
},
{
"identifier": "proportionsFindDenominator",
"prototypeExpressions": [
- "8除以多少相当于6除以600",
- "8除以多少等于6除以600",
- "8除以什么相当于6除以600",
- "8除以什么等于6除以600"
+ "8 除以多少相当于 6除以 600",
+ "8 除以多少等于 6除以 600",
+ "8 除以什么相当于 6除以 600",
+ "8 除以什么等于 6除以 600"
]
},
{
@@ -215,10 +161,7 @@
"prototypeExpressions": [
"1 到 5 之间的任意数",
"1 与 5 之间的任意数",
- "1 和 5 之间的任意数",
- "1到5之间的任意数",
- "1与5之间的任意数",
- "1和5之间的任意数"
+ "1 和 5 之间的任意数"
]
}
],
@@ -247,7 +190,9 @@
"从 __datestamp 到 __datestamp",
"从 __datestamp 至 __datestamp",
"__datestamp 到 __datestamp",
- "__datestamp 至 __datestamp"
+ "__datestamp 至 __datestamp",
+ "__datestamp 日到 __datestamp",
+
]
},
{
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings
index f6af12ce3..5d6bbb808 100644
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
index 89c0c6c7b..5056142c7 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
@@ -67,8 +67,8 @@
"π"
],
"commas" : [
- ",",
- ","
+ ",",
+ ","
],
"monthOfYearDateAliases": [
],
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h
index ab5d96ef8..898b5fa93 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h
@@ -1,6 +1,6 @@
#if 0
#elif defined(__arm64__) && __arm64__
-// Generated by Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// Generated by Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
#ifndef SOULVERCORE_SWIFT_H
#define SOULVERCORE_SWIFT_H
#pragma clang diagnostic push
@@ -259,7 +259,7 @@ SWIFT_CLASS("_TtC11SoulverCore46VanillaBackgroundEvaluationAndMergingOperation")
#endif
#elif defined(__x86_64__) && __x86_64__
-// Generated by Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// Generated by Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
#ifndef SOULVERCORE_SWIFT_H
#define SOULVERCORE_SWIFT_H
#pragma clang diagnostic push
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftdoc
index bbfe3bd3c..b526cc458 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface
index 9e18679d6..dcb181a16 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target arm64-apple-ios13.6-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc
index bbfe3bd3c..b526cc458 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
index 9e18679d6..dcb181a16 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target arm64-apple-ios13.6-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc
index 9e0979a05..857a88238 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface
index 3301f6023..9a202025d 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target x86_64-apple-ios13.6-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
index 9e0979a05..857a88238 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
index 3301f6023..9a202025d 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target x86_64-apple-ios13.6-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/Info.plist b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/Info.plist
index 85629fe68..b2c560b87 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/Info.plist
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/Info.plist
@@ -3,7 +3,7 @@
BuildMachineOSBuild
- 20G165
+ 21C52
CFBundleDevelopmentRegion
en
CFBundleExecutable
@@ -17,29 +17,29 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 1.4.2
+ 1.4.3
CFBundleSupportedPlatforms
MacOSX
CFBundleVersion
- 20
+ 21
DTCompiler
com.apple.compilers.llvm.clang.1_0
DTPlatformBuild
- 12E507
+ 13A1030d
DTPlatformName
macosx
DTPlatformVersion
- 11.3
+ 12.0
DTSDKBuild
- 20E214
+ 21A344
DTSDKName
- macosx11.3
+ macosx12.0
DTXcode
- 1251
+ 1310
DTXcodeBuild
- 12E507
+ 13A1030d
LSMinimumSystemVersion
10.15
NSHumanReadableCopyright
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json
index c6e0f02fd..f0292909d 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json
@@ -198,6 +198,43 @@
],
"symbol": "LTC"
},
+ "SOL": {
+ "aliases": [
+ "solana"
+ ],
+ "symbol": "SOL"
+ },
+ "AVAX": {
+ "aliases": [
+ "avalanche"
+ ],
+ "symbol": "AVAX"
+ },
+ "LUNA": {
+ "aliases": [
+ "terra"
+ ],
+ "symbol": "LUNA"
+ },
+ "DOT": {
+ "aliases": [
+ "polkadot"
+ ],
+ "symbol": "DOT"
+ },
+ "MATIC": {
+ "aliases": [
+ "polygon"
+ ],
+ "symbol": "MATIC"
+ },
+ "SHIB": {
+ "aliases": [
+ "shiba inu"
+ ],
+ "symbol": "SHIB"
+ },
+
"GTQ": {
"aliases": [
"guatemalan quetzal",
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/DefaultCurrencyRates.json
index 3d6f60aa7..176e807b2 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/DefaultCurrencyRates.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/DefaultCurrencyRates.json
@@ -1,30 +1,30 @@
{
"HRK" : {
- "value" : 0.15804035023005933,
+ "value" : 0.15083133708058707,
"code" : "HRK"
},
"HUF" : {
- "value" : 0.0033830675042370471,
+ "value" : 0.0030511245142129219,
"code" : "HUF"
},
"CDF" : {
- "value" : 0.0005007511700700813,
+ "value" : 0.00049950042739479344,
"code" : "CDF"
},
"XMR" : {
- "value" : 121.02161715,
+ "value" : 232.10788493999999,
"code" : "XMR"
},
"ILS" : {
- "value" : 0.31173527440497528,
+ "value" : 0.31908613730276486,
"code" : "ILS"
},
"NGN" : {
- "value" : 0.0024301608999568202,
+ "value" : 0.0024310771397793992,
"code" : "NGN"
},
"GYD" : {
- "value" : 0.0047792022195303312,
+ "value" : 0.004774328268842081,
"code" : "GYD"
},
"BYR" : {
@@ -32,239 +32,243 @@
"code" : "BYR"
},
"BHD" : {
- "value" : 2.6530758434791375,
+ "value" : 2.6524002896421117,
"code" : "BHD"
},
"SZL" : {
- "value" : 0.069777506048663118,
+ "value" : 0.064298414600421031,
"code" : "SZL"
},
"INR" : {
- "value" : 0.013589634196672827,
+ "value" : 0.013342219251354735,
"code" : "INR"
},
"SDG" : {
- "value" : 0.0022547744612465576,
+ "value" : 0.0022856819674773694,
"code" : "SDG"
},
"PEN" : {
- "value" : 0.24356791927964302,
+ "value" : 0.24946552012313619,
"code" : "PEN"
},
"EUR" : {
- "value" : 1.1817607052747889,
+ "value" : 1.1314713087162893,
"code" : "EUR"
},
"TRX" : {
- "value" : 0.026469659999999996,
+ "value" : 0.081818127000000004,
"code" : "TRX"
},
- "QAR" : {
- "value" : 0.27464793567745349,
- "code" : "QAR"
- },
"PGK" : {
- "value" : 0.28117404786032174,
+ "value" : 0.28449421196525754,
"code" : "PGK"
},
+ "QAR" : {
+ "value" : 0.27465457380888492,
+ "code" : "QAR"
+ },
"LRD" : {
- "value" : 0.0058190208744397457,
+ "value" : 0.0069771490067222523,
"code" : "LRD"
},
"ISK" : {
- "value" : 0.0078567156931225613,
+ "value" : 0.0076757790829416672,
"code" : "ISK"
},
"SYP" : {
- "value" : 0.00079518185193483003,
+ "value" : 0.00039801109351087036,
"code" : "SYP"
},
"TRY" : {
- "value" : 0.11824307346856006,
+ "value" : 0.087971653421947765,
"code" : "TRY"
},
"UAH" : {
- "value" : 0.037482203449802035,
+ "value" : 0.036708018984212762,
"code" : "UAH"
},
"SGD" : {
- "value" : 0.74307454523837824,
+ "value" : 0.73684365651296102,
"code" : "SGD"
},
"MMK" : {
- "value" : 0.00060747964796017387,
+ "value" : 0.00056194304981418346,
"code" : "MMK"
},
"NIO" : {
- "value" : 0.028474987044592771,
+ "value" : 0.028219593134421322,
"code" : "NIO"
},
"BIF" : {
- "value" : 0.00050368851071210051,
+ "value" : 0.00050106033963171577,
"code" : "BIF"
},
"AFN" : {
- "value" : 0.01150998450871185,
+ "value" : 0.0096840506803558858,
"code" : "AFN"
},
"LKR" : {
- "value" : 0.0049623385302184483,
+ "value" : 0.0049340636892296168,
"code" : "LKR"
},
"GTQ" : {
- "value" : 0.12916086895816131,
+ "value" : 0.12942676755224344,
"code" : "GTQ"
},
"LTC" : {
- "value" : 47.327861009999999,
+ "value" : 157.16820727999999,
"code" : "LTC"
},
"XRP" : {
- "value" : 0.24379759000000001,
+ "value" : 0.92282003999999995,
"code" : "XRP"
},
"CHF" : {
- "value" : 1.0862245008798419,
+ "value" : 1.0885420068360439,
"code" : "CHF"
},
+ "LUNA" : {
+ "value" : 98.781760340000005,
+ "code" : "LUNA"
+ },
"THB" : {
- "value" : 0.030515628991348909,
+ "value" : 0.029790722853121874,
"code" : "THB"
},
"AMD" : {
- "value" : 0.0020257263519359377,
+ "value" : 0.0020288049606586012,
"code" : "AMD"
},
"AOA" : {
- "value" : 0.0015809452213784549,
+ "value" : 0.0017720945210053761,
"code" : "AOA"
},
"SEK" : {
- "value" : 0.11602597125340536,
+ "value" : 0.10962271479118463,
"code" : "SEK"
},
"DASH" : {
- "value" : 73.134845940000005,
+ "value" : 153.35057456999999,
"code" : "DASH"
},
"SAR" : {
- "value" : 0.26664334426215519,
+ "value" : 0.26625152728532336,
"code" : "SAR"
},
"KWD" : {
- "value" : 3.3246891415652637,
+ "value" : 3.3039283708329203,
"code" : "KWD"
},
"IRR" : {
- "value" : 2.3702299183689224e-05,
+ "value" : 2.3668638936171706e-05,
"code" : "IRR"
},
"WST" : {
- "value" : 0.3905084576321754,
+ "value" : 0.38459009042097614,
"code" : "WST"
},
"BNB" : {
- "value" : 28.650888770000002,
+ "value" : 555.55898833000003,
"code" : "BNB"
},
"BMD" : {
"value" : 1,
"code" : "BMD"
},
- "PHP" : {
- "value" : 0.019948729371667289,
- "code" : "PHP"
- },
"BGN" : {
- "value" : 0.60465158464064039,
+ "value" : 0.57868160128143253,
"code" : "BGN"
},
+ "PHP" : {
+ "value" : 0.019908455744289264,
+ "code" : "PHP"
+ },
"ZMW" : {
- "value" : 0.062023662151157989,
+ "value" : 0.060460650908484764,
"code" : "ZMW"
},
"XAF" : {
- "value" : 0.0018101491398529697,
+ "value" : 0.0017254179769835868,
"code" : "XAF"
},
"BDT" : {
- "value" : 0.011734181135743179,
+ "value" : 0.01165631151035584,
"code" : "BDT"
},
"NOK" : {
- "value" : 0.11477274422779175,
+ "value" : 0.1124922028841876,
"code" : "NOK"
},
"BOB" : {
- "value" : 0.14501746807911747,
+ "value" : 0.14470454443174743,
"code" : "BOB"
},
"TZS" : {
- "value" : 0.00043131333519581621,
+ "value" : 0.00043383950668404703,
"code" : "TZS"
},
"XAG" : {
- "value" : 24.362909905959167,
+ "value" : 22.709208584080844,
"code" : "XAG"
},
"VEF" : {
"value" : 4.6766073993926175e-12,
"code" : "VEF"
},
- "ANG" : {
- "value" : 0.5570562030714965,
- "code" : "ANG"
- },
"VUV" : {
- "value" : 0.0090181957068590762,
+ "value" : 0.0088298152273748511,
"code" : "VUV"
},
"BND" : {
- "value" : 0.74363983440628167,
+ "value" : 0.73686428875648258,
"code" : "BND"
},
- "SCR" : {
- "value" : 0.077646497393678848,
- "code" : "SCR"
- },
"XCD" : {
"value" : 0.37002090618119926,
"code" : "XCD"
},
+ "SCR" : {
+ "value" : 0.075231094877243915,
+ "code" : "SCR"
+ },
+ "ANG" : {
+ "value" : 0.55436920545587998,
+ "code" : "ANG"
+ },
"KYD" : {
- "value" : 1.1998680145184031,
+ "value" : 1.1989933252041585,
"code" : "KYD"
},
"DJF" : {
- "value" : 0.005626837901097183,
+ "value" : 0.0056124169471733947,
"code" : "DJF"
},
"CLF" : {
- "value" : 35.340684195646027,
+ "value" : 31.894874493668869,
"code" : "CLF"
},
"LSL" : {
- "value" : 0.067024488066960153,
+ "value" : 0.06443543923383685,
"code" : "LSL"
},
"MOP" : {
- "value" : 0.12488772593438499,
+ "value" : 0.12438185328463866,
"code" : "MOP"
},
"ALL" : {
- "value" : 0.0097563680741274798,
+ "value" : 0.0093878566403318812,
"code" : "ALL"
},
"UZS" : {
- "value" : 9.3489770333203163e-05,
+ "value" : 9.2531732287490099e-05,
"code" : "UZS"
},
"UYU" : {
- "value" : 0.023475484434227912,
+ "value" : 0.022522417519359763,
"code" : "UYU"
},
"PLN" : {
- "value" : 0.26175201090982381,
+ "value" : 0.24531028070855423,
"code" : "PLN"
},
"LTL" : {
@@ -272,19 +276,19 @@
"code" : "LTL"
},
"LYD" : {
- "value" : 0.22184336305664656,
+ "value" : 0.21743639876617887,
"code" : "LYD"
},
"JPY" : {
- "value" : 0.0090728049684349402,
+ "value" : 0.0087208304246820297,
"code" : "JPY"
},
"MNT" : {
- "value" : 0.00035076628400650231,
+ "value" : 0.00034984794609446847,
"code" : "MNT"
},
"FJD" : {
- "value" : 0.48238103277779121,
+ "value" : 0.47198731675682409,
"code" : "FJD"
},
"ZWL" : {
@@ -292,11 +296,11 @@
"code" : "ZWL"
},
"KPW" : {
- "value" : 0.0011111109037037425,
+ "value" : 0.0011111112061728476,
"code" : "KPW"
},
"PKR" : {
- "value" : 0.0059527408451712166,
+ "value" : 0.0055973950574206817,
"code" : "PKR"
},
"MRO" : {
@@ -304,11 +308,11 @@
"code" : "MRO"
},
"OMR" : {
- "value" : 2.6009764065430163,
+ "value" : 2.6006923042914023,
"code" : "OMR"
},
"GBP" : {
- "value" : 1.3762446412474281,
+ "value" : 1.3399886100968141,
"code" : "GBP"
},
"LVL" : {
@@ -316,215 +320,227 @@
"code" : "LVL"
},
"SHP" : {
- "value" : 0.72600657181148809,
+ "value" : 0.72600762598410329,
"code" : "SHP"
},
"GEL" : {
- "value" : 0.32048570249184044,
+ "value" : 0.32578213775632542,
"code" : "GEL"
},
+ "AVAX" : {
+ "value" : 117.52949112,
+ "code" : "AVAX"
+ },
"TND" : {
- "value" : 0.35848744110947561,
+ "value" : 0.34812832288484191,
"code" : "TND"
},
"DKK" : {
- "value" : 0.15891960098466584,
+ "value" : 0.15215957035006439,
"code" : "DKK"
},
"NPR" : {
- "value" : 0.0085093559560347788,
+ "value" : 0.0083257319400720474,
"code" : "NPR"
},
"KRW" : {
- "value" : 0.00085781689878051059,
+ "value" : 0.00084220810545561234,
"code" : "KRW"
},
"BSD" : {
- "value" : 0.99987401587399982,
+ "value" : 0.9991167807658029,
"code" : "BSD"
},
"CRC" : {
- "value" : 0.0016017348146313579,
+ "value" : 0.0015546703304152047,
"code" : "CRC"
},
"EGP" : {
- "value" : 0.063546192744244875,
+ "value" : 0.063662651102506615,
"code" : "EGP"
},
"MAD" : {
- "value" : 0.11208499270494825,
+ "value" : 0.10793195149494926,
"code" : "MAD"
},
- "BTC" : {
- "value" : 11957.02216748,
- "code" : "BTC"
- },
"AUD" : {
- "value" : 0.73692021880635128,
+ "value" : 0.72142524771939442,
"code" : "AUD"
},
+ "BTC" : {
+ "value" : 50928.71859343,
+ "code" : "BTC"
+ },
"SLL" : {
- "value" : 9.685229880693445e-05,
+ "value" : 8.8222318449108469e-05,
"code" : "SLL"
},
"MWK" : {
- "value" : 0.0012306236506419337,
+ "value" : 0.0012319032245998224,
"code" : "MWK"
},
"RSD" : {
- "value" : 0.010096084333642431,
+ "value" : 0.0096237357045781836,
"code" : "RSD"
},
"NZD" : {
- "value" : 0.70949157833496523,
+ "value" : 0.67977037356780878,
"code" : "NZD"
},
"SRD" : {
- "value" : 0.046893326498162066,
+ "value" : 0.048621637357948846,
"code" : "SRD"
},
"CLP" : {
- "value" : 0.0012807706887000619,
+ "value" : 0.0011558951594028205,
"code" : "CLP"
},
"RUB" : {
- "value" : 0.013613610713737376,
+ "value" : 0.013600079674706765,
"code" : "RUB"
},
- "NAD" : {
- "value" : 0.067022686710292628,
- "code" : "NAD"
- },
"HKD" : {
- "value" : 0.12858974342488494,
+ "value" : 0.12818458580355713,
"code" : "HKD"
},
+ "NAD" : {
+ "value" : 0.064433653955195416,
+ "code" : "NAD"
+ },
"GMD" : {
- "value" : 0.019538930860574819,
+ "value" : 0.019029582627970137,
"code" : "GMD"
},
"VND" : {
- "value" : 4.3939626952567174e-05,
+ "value" : 4.3821209465381244e-05,
"code" : "VND"
},
"LAK" : {
- "value" : 0.00010435298460524862,
+ "value" : 8.9542390578357692e-05,
"code" : "LAK"
},
+ "SHIB" : {
+ "value" : 3.8509123000000003e-05,
+ "code" : "SHIB"
+ },
"CUC" : {
"value" : 1,
"code" : "CUC"
},
"RON" : {
- "value" : 0.23885154444991413,
+ "value" : 0.22862300592156448,
"code" : "RON"
},
"MUR" : {
- "value" : 0.023415617373826119,
+ "value" : 0.023011594576019884,
"code" : "MUR"
},
"XAU" : {
- "value" : 1798.5611510791368,
+ "value" : 1805.0541516245487,
"code" : "XAU"
},
"GGP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "GGP"
},
- "MXN" : {
- "value" : 0.05010622770805246,
- "code" : "MXN"
+ "SOL" : {
+ "value" : 201.83102561999999,
+ "code" : "SOL"
},
"BRL" : {
- "value" : 0.19339748714777,
+ "value" : 0.17617100426104809,
"code" : "BRL"
},
"STD" : {
"value" : 4.8313891080172936e-05,
"code" : "STD"
},
+ "MXN" : {
+ "value" : 0.048387135796077251,
+ "code" : "MXN"
+ },
"AWG" : {
- "value" : 0.5554012774229381,
+ "value" : 0.55555555555555558,
"code" : "AWG"
},
"MVR" : {
- "value" : 0.064724240431912619,
+ "value" : 0.064725736020616445,
"code" : "MVR"
},
"PAB" : {
- "value" : 0.99987401587399982,
+ "value" : 0.99916170333090537,
"code" : "PAB"
},
"TJS" : {
- "value" : 0.088251166349477259,
+ "value" : 0.088587157094617633,
"code" : "TJS"
},
"GNF" : {
- "value" : 0.00010214993633869382,
+ "value" : 0.00010561444928516947,
"code" : "GNF"
},
- "MGA" : {
- "value" : 0.00025465296336866296,
- "code" : "MGA"
- },
"XDR" : {
- "value" : 1.4230337942065447,
+ "value" : 1.3983197789536093,
"code" : "XDR"
},
+ "MGA" : {
+ "value" : 0.00025167106206527335,
+ "code" : "MGA"
+ },
"ETB" : {
- "value" : 0.021682084869490977,
+ "value" : 0.020224401873426796,
"code" : "ETB"
},
"ZAR" : {
- "value" : 0.069809465535241394,
+ "value" : 0.064352114176095057,
"code" : "ZAR"
},
"COP" : {
- "value" : 0.00026255057380427906,
+ "value" : 0.00025053238131028438,
"code" : "COP"
},
"IDR" : {
- "value" : 7.0110739913693687e-05,
+ "value" : 7.0229404349307016e-05,
"code" : "IDR"
},
"SVC" : {
- "value" : 0.11426715729936886,
+ "value" : 0.11418987309394264,
"code" : "SVC"
},
"CVE" : {
- "value" : 0.010768149497923723,
+ "value" : 0.010264816562133709,
"code" : "CVE"
},
"ETC" : {
- "value" : 5.2368606,
+ "value" : 38.293331139999999,
"code" : "ETC"
},
- "TTD" : {
- "value" : 0.14727128401414394,
- "code" : "TTD"
+ "DOGE" : {
+ "value" : 0.19064063000000001,
+ "code" : "DOGE"
},
"GIP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "GIP"
},
+ "TTD" : {
+ "value" : 0.14696487407241282,
+ "code" : "TTD"
+ },
"PYG" : {
- "value" : 0.00014467133719474066,
+ "value" : 0.00014658722962601346,
"code" : "PYG"
},
- "DOGE" : {
- "value" : 0.0025976099999999993,
- "code" : "DOGE"
- },
"MZN" : {
- "value" : 0.015680132816997011,
+ "value" : 0.015666529276427088,
"code" : "MZN"
},
"FKP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "FKP"
},
"KZT" : {
- "value" : 0.002344853462392567,
+ "value" : 0.0023051934815048079,
"code" : "KZT"
},
"USD" : {
@@ -532,199 +548,207 @@
"code" : "USD"
},
"UGX" : {
- "value" : 0.00028358012899350551,
+ "value" : 0.00028225685783391782,
"code" : "UGX"
},
- "GHS" : {
- "value" : 0.16499910322987393,
- "code" : "GHS"
+ "RWF" : {
+ "value" : 0.00096346363419134117,
+ "code" : "RWF"
},
"ARS" : {
- "value" : 0.010215359598126118,
+ "value" : 0.0097784320722245945,
"code" : "ARS"
},
- "RWF" : {
- "value" : 0.00099039921265005695,
- "code" : "RWF"
+ "GHS" : {
+ "value" : 0.16181075293941369,
+ "code" : "GHS"
},
"JEP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "JEP"
},
"DOP" : {
- "value" : 0.017588507922198151,
+ "value" : 0.017507115592061237,
"code" : "DOP"
},
"LBP" : {
- "value" : 0.0006612893342517372,
+ "value" : 0.00066077767418736813,
"code" : "LBP"
},
"BZD" : {
- "value" : 0.49605192274685772,
+ "value" : 0.49567719914624558,
"code" : "BZD"
},
- "ADA" : {
- "value" : 0.10270785,
- "code" : "ADA"
- },
"BTN" : {
- "value" : 0.013614988970088985,
+ "value" : 0.013321759566245641,
"code" : "BTN"
},
+ "ADA" : {
+ "value" : 1.58042777,
+ "code" : "ADA"
+ },
"MYR" : {
- "value" : 0.24070273645312965,
+ "value" : 0.23906344504768121,
"code" : "MYR"
},
"YER" : {
- "value" : 0.0039864413952552854,
+ "value" : 0.0039959992055953577,
"code" : "YER"
},
"JMD" : {
- "value" : 0.0066442652605700446,
+ "value" : 0.0064975773100753769,
"code" : "JMD"
},
"TOP" : {
- "value" : 0.44513628515074316,
+ "value" : 0.43893339185778563,
"code" : "TOP"
},
"SOS" : {
- "value" : 0.0017094027993286224,
+ "value" : 0.0017064854774084164,
"code" : "SOS"
},
"TMT" : {
- "value" : 0.28490028490028491,
+ "value" : 0.2857142857142857,
"code" : "TMT"
},
"MDL" : {
- "value" : 0.056828407702681501,
+ "value" : 0.056052457477064319,
"code" : "MDL"
},
"XOF" : {
- "value" : 0.0018101034056686495,
+ "value" : 0.0017254179769835868,
"code" : "XOF"
},
"ETH" : {
- "value" : 371.33697873,
+ "value" : 4072.3098828399998,
"code" : "ETH"
},
"TWD" : {
- "value" : 0.036066578904657996,
+ "value" : 0.036112825567504933,
"code" : "TWD"
},
"BBD" : {
- "value" : 0.49522430442032267,
+ "value" : 0.49484078992424974,
"code" : "BBD"
},
+ "DOT" : {
+ "value" : 31.597941519999999,
+ "code" : "DOT"
+ },
"CAD" : {
- "value" : 0.78851853925363569,
+ "value" : 0.77926834495092556,
"code" : "CAD"
},
"CNY" : {
- "value" : 0.15481318847360079,
+ "value" : 0.15691436069245052,
"code" : "CNY"
},
"JOD" : {
- "value" : 1.4103258416824622,
+ "value" : 1.4103914823637598,
"code" : "JOD"
},
"XPF" : {
- "value" : 0.0098154865212757552,
+ "value" : 0.0094383730117500956,
"code" : "XPF"
},
"XLM" : {
- "value" : 0.082820000000000005,
+ "value" : 0.29973736000000001,
"code" : "XLM"
},
"IQD" : {
- "value" : 0.00068535032584169102,
+ "value" : 0.00068465018924487766,
"code" : "IQD"
},
"HNL" : {
- "value" : 0.041724355804110325,
+ "value" : 0.040737141840576578,
"code" : "HNL"
},
"AED" : {
- "value" : 0.27225849310369238,
+ "value" : 0.27225997560550619,
"code" : "AED"
},
- "ERN" : {
- "value" : 0.066645282417048451,
- "code" : "ERN"
- },
"EOS" : {
- "value" : 2.5413952100000001,
+ "value" : 3.4663553500000002,
"code" : "EOS"
},
+ "ERN" : {
+ "value" : 0.066666320001802656,
+ "code" : "ERN"
+ },
"KES" : {
- "value" : 0.0090826094849309376,
+ "value" : 0.008834725815697865,
"code" : "KES"
},
"KMF" : {
- "value" : 0.0023866358530657424,
+ "value" : 0.0022968706194370653,
"code" : "KMF"
},
"MKD" : {
- "value" : 0.019248252937134225,
+ "value" : 0.018370283259847915,
"code" : "MKD"
},
"DZD" : {
- "value" : 0.0073472670334079494,
+ "value" : 0.0071879249186740206,
"code" : "DZD"
},
"BSV" : {
- "value" : 157.47286274999999,
+ "value" : 131.02409718999999,
"code" : "BSV"
},
"BWP" : {
- "value" : 0.090993317632739684,
+ "value" : 0.0859755999527822,
"code" : "BWP"
},
- "SBD" : {
- "value" : 0.12409927197162099,
- "code" : "SBD"
- },
"AZN" : {
- "value" : 0.58655464255066803,
+ "value" : 0.58925852421381131,
"code" : "AZN"
},
+ "SBD" : {
+ "value" : 0.12349967958008133,
+ "code" : "SBD"
+ },
"BCH" : {
- "value" : 243.10580897,
+ "value" : 467.49922156999997,
"code" : "BCH"
},
"KGS" : {
- "value" : 0.011793120226226009,
+ "value" : 0.011793887845929179,
"code" : "KGS"
},
+ "MATIC" : {
+ "value" : 2.8421653500000001,
+ "code" : "MATIC"
+ },
"BYN" : {
- "value" : 0.39664265788658476,
+ "value" : 0.39668435349970804,
"code" : "BYN"
},
"KHR" : {
- "value" : 0.0002449549233411167,
+ "value" : 0.00024529671855543688,
"code" : "KHR"
},
"NEO" : {
- "value" : 17.76272552,
+ "value" : 29.8754189,
"code" : "NEO"
},
"ZMK" : {
- "value" : 0.00011109637899061443,
+ "value" : 0.00011109632436315487,
"code" : "ZMK"
},
"HTG" : {
- "value" : 0.010199415920247911,
+ "value" : 0.0099485759106038487,
"code" : "HTG"
},
"CZK" : {
- "value" : 0.04652683027826534,
+ "value" : 0.045075495369552125,
"code" : "CZK"
},
"BAM" : {
- "value" : 0.60708234404206352,
+ "value" : 0.5787057130985408,
"code" : "BAM"
},
"IMP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "IMP"
}
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/FunctionDescriptions.json
index a6d510958..256e2aa64 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/FunctionDescriptions.json
@@ -1,61 +1,175 @@
{
- "tagRelated": [
+ "datetime": [
{
+ "identifier": "calendarUnitBetweenDates",
"prototypeExpressions": [
- "total of __tag",
- "total __tag",
- "__tag total",
- "sum of __tag",
- "sum __tag",
- "__tag sum"
+ "__unit between __datestamp and __datestamp",
+ "__unit between __datestamp to __datestamp",
+ "__unit between __datestamp - __datestamp",
+ "__unit between __datestamp − __datestamp",
+ "__unit from __datestamp to __datestamp",
+ "__unit in __datestamp to __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit to __datestamp",
+ "__unit before __datestamp",
+ "__unit until __datestamp",
+ "__unit till __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit to __datespan",
+ "__unit before __datespan",
+ "__unit until __datespan",
+ "__unit till __datespan"
],
- "identifier": "tagTotal"
+ "identifier": "calendarUnitToDatespan"
},
{
"prototypeExpressions": [
- "average of __tag",
- "average __tag",
- "__tag average",
- "mean of __tag",
- "mean __tag",
- "__tag mean"
+ "__unit in __datestamp"
],
- "identifier": "tagAverage"
+ "identifier": "calendarUnitInDate"
},
{
"prototypeExpressions": [
- "count of __tag",
- "count __tag",
- "__tag count"
+ "__unit in __datespan"
+ ],
+ "identifier": "calendarUnitInDatespan"
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "__datestamp to __datestamp",
+ "difference between __datestamp and __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit between __datestamp through __datestamp",
+ "__unit from __datestamp through __datestamp",
+ "__unit in __datestamp through __datestamp"
+ ],
+ "identifier": "inclusiveCalendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp through __datestamp"
+ ],
+ "identifier": "inclusiveIntervalBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__timestamp to __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit since __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "identifier": "calendarUnitExpressionAfterDate",
+ "prototypeExpressions": [
+ "__timespan from __datestamp",
+ "__timespan after __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitExpressionBeforeDate",
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitExpressionAgo",
+ "prototypeExpressions": [
+ "__timespan ago"
+ ]
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "new timestamp",
+ "current timestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone time",
+ "time __timezone",
+ "time at __timezone",
+ "time in __timezone"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "identifier": "differenceBetweenTimezones",
+ "prototypeExpressions": [
+ "time difference between __timezone and __timezone",
+ "difference between __timezone and __timezone",
+ "time difference between __timezone & __timezone",
+ "difference between __timezone & __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp in __timespan",
+ "__datestamp after __timespan"
],
- "identifier": "tagCount"
+ "identifier": "weekdayAfterTimespan"
+ },
+ {
+ "prototypeExpressions": [
+ "week number on __datestamp",
+ "week number __datestamp"
+ ],
+ "identifier": "weekNumberOnDate"
+ },
+ {
+ "prototypeExpressions": [
+ "week of year"
+ ],
+ "identifier": "weekOfYear"
+ },
+ {
+ "identifier": "halfwayBetweenDates",
+ "prototypeExpressions": [
+ "halfway between __datestamp and __datestamp",
+ "midpoint between __datestamp and __datestamp"
+ ]
}
],
"financial": [
{
+ "identifier": "presentValue",
"prototypeExpressions": [
"present value of 1000 after __timespan at __percentage",
"present value of 1000 over __timespan at __percentage"
- ],
- "identifier": "presentValue"
+ ]
},
{
+ "identifier": "returnOnInvestmentAfter",
"prototypeExpressions": [
"annual return on 500 invested 1000 returned after __timespan",
"yearly return on 500 invested 1000 returned after __timespan",
"annual return on 500 invested 1000 returned over __timespan",
"yearly return on 500 invested 1000 returned over __timespan"
- ],
- "identifier": "returnOnInvestmentAfter"
+ ]
},
{
- "identifier": "returnOnInvestment",
"prototypeExpressions": [
"500 invested 1000 returned"
- ]
+ ],
+ "identifier": "returnOnInvestment"
},
{
- "identifier": "totalLoanRepayment",
"prototypeExpressions": [
"total repayment on 10000 for __timespan at __percentage",
"total repayment on 10000 after __timespan at __percentage",
@@ -63,9 +177,11 @@
"total payment on 10000 for __timespan at __percentage",
"total payment on 10000 after __timespan at __percentage",
"total payment on 10000 over __timespan at __percentage"
- ]
+ ],
+ "identifier": "totalLoanRepayment"
},
{
+ "identifier": "annualLoanRepayment",
"prototypeExpressions": [
"annual repayment on 10000 for __timespan at __percentage",
"annual repayment on 10000 after __timespan at __percentage",
@@ -79,11 +195,9 @@
"yearly payment on 10000 over __timespan at __percentage",
"yearly payment on 10000 after __timespan at __percentage",
"yearly payment on 10000 for __timespan at __percentage"
- ],
- "identifier": "annualLoanRepayment"
+ ]
},
{
- "identifier": "monthlyLoanRepayment",
"prototypeExpressions": [
"monthly repayment on 10000 for __timespan at __percentage",
"monthly repayment on 10000 after __timespan at __percentage",
@@ -91,18 +205,18 @@
"monthly payment on 10000 for __timespan at __percentage",
"monthly payment on 10000 after __timespan at __percentage",
"monthly payment on 10000 over __timespan at __percentage"
- ]
+ ],
+ "identifier": "monthlyLoanRepayment"
},
{
+ "identifier": "totalInterestOnLoanRepayment",
"prototypeExpressions": [
"total interest on 10000 for __timespan at __percentage",
"total interest on 10000 after __timespan at __percentage",
"total interest on 10000 over __timespan at __percentage"
- ],
- "identifier": "totalInterestOnLoanRepayment"
+ ]
},
{
- "identifier": "annualInterestOnLoanRepayment",
"prototypeExpressions": [
"annual interest on 10000 for __timespan at __percentage",
"annual interest on 10000 after __timespan at __percentage",
@@ -110,18 +224,18 @@
"yearly interest on 10000 over __timespan at __percentage",
"yearly interest on 10000 after __timespan at __percentage",
"yearly interest on 10000 for __timespan at __percentage"
- ]
+ ],
+ "identifier": "annualInterestOnLoanRepayment"
},
{
+ "identifier": "monthlyInterestOnLoanRepayment",
"prototypeExpressions": [
"monthly interest on 10000 for __timespan at __percentage",
"monthly interest on 10000 after __timespan at __percentage",
"monthly interest on 10000 over __timespan at __percentage"
- ],
- "identifier": "monthlyInterestOnLoanRepayment"
+ ]
},
{
- "identifier": "compoundInterestCompoundingMonthly",
"prototypeExpressions": [
"100 after __timespan at __percentage compounded monthly",
"100 for __timespan at __percentage compounded monthly",
@@ -135,10 +249,10 @@
"100 at __percentage after __timespan compounding monthly",
"100 at __percentage for __timespan compounding monthly",
"100 at __percentage over __timespan compounding monthly"
- ]
+ ],
+ "identifier": "compoundInterestCompoundingMonthly"
},
{
- "identifier": "compoundInterest",
"prototypeExpressions": [
"100 after __timespan at __percentage",
"100 for __timespan at __percentage",
@@ -146,364 +260,192 @@
"100 at __percentage after __timespan",
"100 at __percentage for __timespan",
"100 at __percentage over __timespan"
- ]
+ ],
+ "identifier": "compoundInterest"
}
],
"percentage": [
{
+ "identifier": "percentOf",
"prototypeExpressions": [
"__percentage of 100"
- ],
- "identifier": "percentOf"
+ ]
},
{
+ "identifier": "percentOff",
"prototypeExpressions": [
"__percentage off 100"
- ],
- "identifier": "percentOff"
+ ]
},
{
+ "identifier": "percentOn",
"prototypeExpressions": [
"__percentage on 100"
- ],
- "identifier": "percentOn"
+ ]
},
{
+ "identifier": "isPercentOfWhat",
"prototypeExpressions": [
"30 is __percentage of what"
- ],
- "identifier": "isPercentOfWhat"
+ ]
},
{
+ "identifier": "isPercentOfWhatClassic",
"prototypeExpressions": [
"__percentage of what is 30"
- ],
- "identifier": "isPercentOfWhatClassic"
+ ]
},
{
+ "identifier": "isPercentOffWhat",
"prototypeExpressions": [
"30 is __percentage off what"
- ],
- "identifier": "isPercentOffWhat"
+ ]
},
{
+ "identifier": "isPercentOffWhatClassic",
"prototypeExpressions": [
"__percentage off what is 30"
- ],
- "identifier": "isPercentOffWhatClassic"
+ ]
},
{
+ "identifier": "isPercentOnWhat",
"prototypeExpressions": [
"30 is __percentage on what"
- ],
- "identifier": "isPercentOnWhat"
+ ]
},
{
+ "identifier": "isPercentOnWhatClassic",
"prototypeExpressions": [
"__percentage on what is 30"
- ],
- "identifier": "isPercentOnWhatClassic"
+ ]
},
{
+ "identifier": "isWhatPercentOf",
"prototypeExpressions": [
"10 is what % of 20",
"10 as a % of 20",
"10 as % of 20"
- ],
- "identifier": "isWhatPercentOf"
+ ]
},
{
+ "identifier": "isWhatPercentOff",
"prototypeExpressions": [
"10 is what % off 20",
"10 as a % off 20",
"10 as % off 20"
- ],
- "identifier": "isWhatPercentOff"
+ ]
},
{
+ "identifier": "isWhatPercentOn",
"prototypeExpressions": [
"20 is what % on 10",
"20 as a % on 10",
"20 as % on 10"
- ],
- "identifier": "isWhatPercentOn"
- },
- {
- "identifier": "xToYIsWhatPercentage",
- "prototypeExpressions": [
- "10 to 20 is what %"
- ]
- }
- ],
- "unitRelated": [
- {
- "prototypeExpressions": [
- "__unit in __unit_expression"
- ],
- "identifier": "unitInUnitExpression"
- },
- {
- "prototypeExpressions": [
- "__unit_expression __substance in __unit",
- "__unit_expression of __substance in __unit",
- "__unit_expression __substance as __unit",
- "__unit_expression of __substance as __unit",
- "__unit_expression __substance to __unit",
- "__unit_expression of __substance to __unit"
- ],
- "identifier": "substanceWeightToVolumeConversion"
- },
- {
- "prototypeExpressions": [
- "density of __substance",
- "__substance density"
- ],
- "identifier": "densityOfSubstance"
- },
- {
- "prototypeExpressions": [
- "__unit in __timespan"
- ],
- "identifier": "unitInTimespan"
- },
- {
- "identifier": "rateUnitChange",
- "prototypeExpressions": [
- "__rate is what / __unit",
- "__rate is how much / __unit",
- "__rate as / __unit",
- "__rate is what /__unit",
- "__rate is how much /__unit",
- "__rate as /__unit",
- "__rate is what per __unit",
- "__rate is how much per __unit",
- "__rate as per __unit",
- "__rate is what per__unit",
- "__rate is how much per__unit",
- "__rate as per__unit"
- ]
- }
- ],
- "datetime": [
- {
- "prototypeExpressions": [
- "__unit between __datestamp and __datestamp",
- "__unit between __datestamp to __datestamp",
- "__unit between __datestamp - __datestamp",
- "__unit between __datestamp − __datestamp",
- "__unit from __datestamp to __datestamp",
- "__unit in __datestamp to __datestamp"
- ],
- "identifier": "calendarUnitBetweenDates"
- },
- {
- "prototypeExpressions": [
- "__unit to __datestamp",
- "__unit before __datestamp",
- "__unit until __datestamp",
- "__unit till __datestamp"
- ],
- "identifier": "calendarUnitToDate"
- },
- {
- "identifier": "calendarUnitToDatespan",
- "prototypeExpressions": [
- "__unit to __datespan",
- "__unit before __datespan",
- "__unit until __datespan",
- "__unit till __datespan"
]
},
{
- "identifier": "calendarUnitInDate",
"prototypeExpressions": [
- "__unit in __datestamp"
- ]
- },
- {
- "identifier": "calendarUnitInDatespan",
- "prototypeExpressions": [
- "__unit in __datespan"
- ]
- },
- {
- "prototypeExpressions": [
- "__datestamp to __datestamp",
- "difference between __datestamp and __datestamp"
+ "10 to 20 is what %",
+ "10 to 20 as %",
+ "10 to 20 as a %",
+ "10 to 20 is what percent",
+ "10 to 20 as percent",
+ "10 to 20 as a percent",
+ "10 to 20 is what percentage",
+ "10 to 20 as percentage",
+ "10 to 20 as a percentage"
],
- "identifier": "intervalBetweenDates"
- },
- {
- "identifier": "inclusiveCalendarUnitBetweenDates",
- "prototypeExpressions": [
- "__unit between __datestamp through __datestamp",
- "__unit from __datestamp through __datestamp",
- "__unit in __datestamp through __datestamp"
- ]
- },
- {
- "identifier": "inclusiveIntervalBetweenDates",
- "prototypeExpressions": [
- "__datestamp through __datestamp"
- ]
- },
- {
- "identifier": "intervalBetweenTimestamps",
- "prototypeExpressions": [
- "__timestamp to __timestamp"
- ]
+ "identifier": "xToYIsWhatPercentage"
},
{
- "identifier": "calendarUnitSinceDate",
"prototypeExpressions": [
- "__unit since __datestamp"
- ]
- },
- {
- "prototypeExpressions": [
- "__timespan from __datestamp",
- "__timespan after __datestamp"
- ],
- "identifier": "calendarUnitExpressionAfterDate"
- },
- {
- "prototypeExpressions": [
- "__timespan before __datestamp"
- ],
- "identifier": "calendarUnitExpressionBeforeDate"
- },
- {
- "prototypeExpressions": [
- "__timespan ago"
- ],
- "identifier": "calendarUnitExpressionAgo"
- },
- {
- "prototypeExpressions": [
- "new timestamp",
- "current timestamp"
- ],
- "identifier": "generateTimestamp"
- },
- {
- "identifier": "timeInTimezone",
- "prototypeExpressions": [
- "__timezone time",
- "time __timezone",
- "time at __timezone",
- "time in __timezone"
- ]
- },
- {
- "prototypeExpressions": [
- "time difference between __timezone and __timezone",
- "difference between __timezone and __timezone",
- "time difference between __timezone & __timezone",
- "difference between __timezone & __timezone"
+ "10 to 20 is what x",
+ "10 to 20 as x",
+ "10 to 20 as a x",
+ "10 to 20 is what multiple",
+ "10 to 20 as multiple",
+ "10 to 20 as a multiple",
+ "10 to 20 is what multiplier",
+ "10 to 20 as multiplier",
+ "10 to 20 as a multiplier"
],
- "identifier": "differenceBetweenTimezones"
- },
- {
- "identifier": "weekdayAfterTimespan",
- "prototypeExpressions": [
- "__datestamp in __timespan",
- "__datestamp after __timespan"
- ]
- },
- {
- "identifier": "weekNumberOnDate",
- "prototypeExpressions": [
- "week number on __datestamp",
- "week number __datestamp"
- ]
- },
- {
- "identifier": "weekOfYear",
- "prototypeExpressions": [
- "week of year"
- ]
- },
- {
- "prototypeExpressions": [
- "halfway between __datestamp and __datestamp",
- "midpoint between __datestamp and __datestamp"
- ],
- "identifier": "halfwayBetweenDates"
+ "identifier": "xToYIsWhatMultiplier"
}
],
"general": [
{
+ "identifier": "remainder",
"prototypeExpressions": [
"remainder of 20 divided by 3"
- ],
- "identifier": "remainder"
+ ]
},
{
+ "identifier": "halfOf",
"prototypeExpressions": [
"half of 20"
- ],
- "identifier": "halfOf"
+ ]
},
{
+ "identifier": "lesserOf",
"prototypeExpressions": [
"smaller of 2 and 30",
"lesser of 2 and 30"
- ],
- "identifier": "lesserOf"
+ ]
},
{
+ "identifier": "greaterOf",
"prototypeExpressions": [
"larger of 2 and 30",
"greater of 2 and 30"
- ],
- "identifier": "greaterOf"
+ ]
},
{
+ "identifier": "midpoint",
"prototypeExpressions": [
"midpoint between 2 and 32"
- ],
- "identifier": "midpoint"
+ ]
},
{
+ "identifier": "lcm",
"prototypeExpressions": [
"lcm of 5 and 8",
"lowest common multiple of 5 and 8"
- ],
- "identifier": "lcm"
+ ]
},
{
+ "identifier": "gcd",
"prototypeExpressions": [
"gcd of 20 and 30",
"greatest common divisor of 5 and 8",
"gcf of 20 and 30",
"greatest common factor of 5 and 8"
- ],
- "identifier": "gcd"
+ ]
},
{
+ "identifier": "proportionsFindNumerator",
"prototypeExpressions": [
"6 is to 600 as what is to 8",
"6 to 600 is what to 8",
"6 to 600 as what to 8"
- ],
- "identifier": "proportionsFindNumerator"
+ ]
},
{
+ "identifier": "proportionsFindDenominator",
"prototypeExpressions": [
"6 is to 600 as 8 is to what",
"6 to 600 as 8 to what",
"6 to 600 is 8 to what"
- ],
- "identifier": "proportionsFindDenominator"
+ ]
},
{
+ "identifier": "makeRandomNumber",
"prototypeExpressions": [
"random number between 1 and 5",
"random between 1 and 5"
- ],
- "identifier": "makeRandomNumber"
+ ]
},
{
+ "identifier": "asMultiplierOf",
"prototypeExpressions": [
"5 as multiplier of 1",
"5 as multiple of 1",
@@ -513,35 +455,35 @@
"5 is what x of 1",
"5 is what multiple of 1",
"5 is what multiplier of 1"
- ],
- "identifier": "asMultiplierOf"
+ ]
},
{
+ "identifier": "squareRoot",
"prototypeExpressions": [
"square root of 100",
"squared root of 100",
"squared root 100",
"square root 100"
- ],
- "identifier": "squareRoot"
+ ]
},
{
+ "identifier": "cubedRoot",
"prototypeExpressions": [
"cubed root of 100",
"cubed root 100",
"cube root of 100",
"cube root 100"
- ],
- "identifier": "cubedRoot"
+ ]
},
{
+ "identifier": "nthRoot",
"prototypeExpressions": [
"5 root of 100",
"root 5 of 100"
- ],
- "identifier": "nthRoot"
+ ]
},
{
+ "identifier": "nthLog",
"prototypeExpressions": [
"log 20 base 4",
"log of 20 to base 4",
@@ -549,8 +491,103 @@
"logarithm 20 base 4",
"logarithm of 20 to base 4",
"logarithm of 20 with base 4"
+ ]
+ },
+ {
+ "identifier": "scrubNumberWithSpecifiedRange",
+ "prototypeExpressions": [
+ "scrub 10 from 0 to 10",
+ "scrubber 10 from 0 to 10",
+ "scrub 10 between 0 and 10",
+ "scrubber 10 between 0 and 10"
+ ]
+ },
+ {
+ "identifier": "xToY",
+ "prototypeExpressions": [
+ "5 to 10"
+ ]
+ }
+ ],
+ "unitRelated": [
+ {
+ "identifier": "unitInUnitExpression",
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ]
+ },
+ {
+ "identifier": "substanceWeightToVolumeConversion",
+ "prototypeExpressions": [
+ "__unit_expression __substance in __unit",
+ "__unit_expression of __substance in __unit",
+ "__unit_expression __substance as __unit",
+ "__unit_expression of __substance as __unit",
+ "__unit_expression __substance to __unit",
+ "__unit_expression of __substance to __unit"
+ ]
+ },
+ {
+ "identifier": "densityOfSubstance",
+ "prototypeExpressions": [
+ "density of __substance",
+ "__substance density"
+ ]
+ },
+ {
+ "identifier": "unitInTimespan",
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__rate is what / __unit",
+ "__rate is how much / __unit",
+ "__rate as / __unit",
+ "__rate is what /__unit",
+ "__rate is how much /__unit",
+ "__rate as /__unit",
+ "__rate is what per __unit",
+ "__rate is how much per __unit",
+ "__rate as per __unit",
+ "__rate is what per__unit",
+ "__rate is how much per__unit",
+ "__rate as per__unit"
],
- "identifier": "nthLog"
+ "identifier": "rateUnitChange"
+ }
+ ],
+ "tagRelated": [
+ {
+ "identifier": "tagTotal",
+ "prototypeExpressions": [
+ "total of __tag",
+ "total __tag",
+ "__tag total",
+ "sum of __tag",
+ "sum __tag",
+ "__tag sum"
+ ]
+ },
+ {
+ "identifier": "tagAverage",
+ "prototypeExpressions": [
+ "average of __tag",
+ "average __tag",
+ "__tag average",
+ "mean of __tag",
+ "mean __tag",
+ "__tag mean"
+ ]
+ },
+ {
+ "identifier": "tagCount",
+ "prototypeExpressions": [
+ "count of __tag",
+ "count __tag",
+ "__tag count"
+ ]
}
]
-}
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/LocalizedFixtures.json
index c7c2da4e4..3ad32e34b 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/en.lproj/LocalizedFixtures.json
@@ -85,6 +85,8 @@
"decimalPlacesTypes": [
"dp",
"digit",
+ "decimal points",
+ "decimal places",
"digits"
],
"laptimeTypes": [
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
index 295869c34..0b398303b 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
@@ -3,8 +3,6 @@
{
"identifier": "reversedPercentOf",
"prototypeExpressions": [
- "100的__percentage",
- "100之__percentage",
"100 的 __percentage",
"100 之 __percentage"
]
@@ -12,8 +10,6 @@
{
"identifier": "reversedPercentOff",
"prototypeExpressions": [
- "100减__percentage",
- "100去__percentage",
"100 减 __percentage",
"100 去 __percentage"
]
@@ -21,8 +17,6 @@
{
"identifier": "reversedPercentOn",
"prototypeExpressions": [
- "100加__percentage",
- "100加上__percentage",
"100 加 __percentage",
"100 加上 __percentage"
]
@@ -31,9 +25,7 @@
"identifier": "isPercentOfWhat",
"prototypeExpressions": [
"30 是多少的 __percentage",
- "30 是什么的 __percentage",
- "30是多少的__percentage",
- "30是什么的__percentage"
+ "30 是什么的 __percentage"
]
},
{
@@ -41,12 +33,8 @@
"prototypeExpressions": [
"多少的 __percentage 是 30",
"多少的 __percentage 为 30",
- "多少的__percentage是30",
- "多少的__percentage为30",
"什么的 __percentage 为 30",
- "什么的 __percentage 是 30",
- "什么的__percentage为30",
- "什么的__percentage是30"
+ "什么的 __percentage 是 30"
]
},
{
@@ -54,12 +42,8 @@
"prototypeExpressions": [
"多少减去 __percentage 是 30",
"多少减 __percentage 是 30",
- "多少减去__percentage是30",
- "多少减__percentage是30",
"什么减去 __percentage 是 30",
- "什么减 __percentage 是 30",
- "什么减去__percentage是30",
- "什么减__percentage是30"
+ "什么减 __percentage 是 30"
]
},
{
@@ -67,12 +51,8 @@
"prototypeExpressions": [
"30 是多少加 __percentage",
"30 是多少加上 __percentage",
- "30 是多少加__percentage",
- "30 是多少加上__percentage",
"30 是什么加 __percentage",
- "30 是什么加上 __percentage",
- "30 是什么加__percentage",
- "30 是什么加上__percentage"
+ "30 是什么加上 __percentage"
]
},
{
@@ -82,30 +62,18 @@
"多少加 __percentage 为 30",
"多少加上 __percentage 是 30",
"多少加上 __percentage 为 30",
- "多少加__percentage是30",
- "多少加__percentage为30",
- "多少加上__percentage是30",
- "多少加上__percentage为30",
"什么加 __percentage 是 30",
"什么加 __percentage 为 30",
"什么加上 __percentage 是 30",
- "什么加上 __percentage 为 30",
- "什么加__percentage是30",
- "什么加__percentage为30",
- "什么加上__percentage是30",
- "什么加上__percentage为30"
+ "什么加上 __percentage 为 30"
]
},
{
"identifier": "isWhatPercentOf",
"prototypeExpressions": [
"10 是 20 里的百分比为",
- "10是20里的百分比为",
"10 在 20 里的百分比为",
- "10在20里的百分比为",
- "10是20里的占比为",
"10 是 20 里的占比为",
- "10在20里的占比为",
"10 在 20 里的占比为"
]
},
@@ -113,26 +81,18 @@
"identifier": "isWhatPercentOff",
"prototypeExpressions": [
"10 是 20 去掉百分之多少",
- "10是20去掉百分之多少",
"10 是 20 减去百分之多少",
- "10是20减去百分之多少",
"10 是 20 减百分之多少",
- "10是20减百分之多少",
"10 是 20 去掉百分之几",
- "10是20去掉百分之几",
"10 是 20 减去百分之几",
- "10是20减去百分之几",
- "10 是 20 减百分之几",
- "10是20减百分之几"
+ "10 是 20 减百分之几"
]
},
{
"identifier": "isWhatPercentOn",
"prototypeExpressions": [
"20 是 10 加百分之多少",
- "20 是 10 加上百分之几",
- "20是10加百分之多少",
- "20是10加上百分之几"
+ "20 是 10 加上百分之几"
]
}
],
@@ -141,27 +101,19 @@
"identifier": "remainder",
"prototypeExpressions": [
"20 除以 3 的余数",
- "20除以3的余数",
- "20 除 3 之余",
- "20除3之余"
+ "20 除 3 之余"
]
},
{
"identifier": "halfOf",
"prototypeExpressions": [
"20 的一半为",
- "20 的一半是",
- "20 的一般",
- "20的一半为",
- "20的一半是"
+ "20 的一半是"
]
},
{
"identifier": "lesserOf",
"prototypeExpressions": [
- "2和30之间小的一个数",
- "2和30之间较小的一个数",
- "2和30之间最小的一个数",
"2 和 30 之间小的一个数",
"2 和 30 之间较小的一个数",
"2 和 30 之间最小的一个数"
@@ -170,9 +122,6 @@
{
"identifier": "greaterOf",
"prototypeExpressions": [
- "2和30之间大的一个数",
- "2和30之间较大的一个数",
- "2和30之间最大的一个数",
"2 和 30 之间大的一个数",
"2 和 30 之间较大的一个数",
"2 和 30 之间最大的一个数"
@@ -183,31 +132,28 @@
"prototypeExpressions": [
"2 与 32 的中间点",
"2 与 32 的中间数",
- "2 与 32 的中间值",
"2 和 32 的中间点",
"2 和 32 的中间数",
"2 和 32 的中间值",
- "2 与 32 的中间点",
- "2 与 32 的中间数",
"2 与 32 的中间值"
]
},
{
"identifier": "proportionsFindNumerator",
"prototypeExpressions": [
- "多少除以8相当于6除以600",
- "多少除以8等于6除以600",
- "什么除以8相当于6除以600",
- "什么除以8等于6除以600"
+ "多少除以 8 相当于 6除以 600",
+ "多少除以 8 等于 6除以 600",
+ "什么除以 8 相当于 6除以 600",
+ "什么除以 8 等于 6除以 600"
]
},
{
"identifier": "proportionsFindDenominator",
"prototypeExpressions": [
- "8除以多少相当于6除以600",
- "8除以多少等于6除以600",
- "8除以什么相当于6除以600",
- "8除以什么等于6除以600"
+ "8 除以多少相当于 6除以 600",
+ "8 除以多少等于 6除以 600",
+ "8 除以什么相当于 6除以 600",
+ "8 除以什么等于 6除以 600"
]
},
{
@@ -215,10 +161,7 @@
"prototypeExpressions": [
"1 到 5 之间的任意数",
"1 与 5 之间的任意数",
- "1 和 5 之间的任意数",
- "1到5之间的任意数",
- "1与5之间的任意数",
- "1和5之间的任意数"
+ "1 和 5 之间的任意数"
]
}
],
@@ -247,7 +190,9 @@
"从 __datestamp 到 __datestamp",
"从 __datestamp 至 __datestamp",
"__datestamp 到 __datestamp",
- "__datestamp 至 __datestamp"
+ "__datestamp 至 __datestamp",
+ "__datestamp 日到 __datestamp",
+
]
},
{
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings
index af78fe105..266be2ea7 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
index 89c0c6c7b..5056142c7 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
@@ -67,8 +67,8 @@
"π"
],
"commas" : [
- ",",
- ","
+ ",",
+ ","
],
"monthOfYearDateAliases": [
],
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/SoulverCore b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/SoulverCore
index 4cce4defa..3b5852ff7 100755
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/SoulverCore and b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/SoulverCore differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources
index cd01027a8..32a58b981 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-maccatalyst/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources
@@ -6,7 +6,7 @@
Resources/Info.plist
- KHigQ+7gVTvJD9mmsDAtfPzAR40=
+ LwDXLg7JEKovXUl4oJlcetNLCxU=
Resources/de.lproj/Cities.json
@@ -102,7 +102,7 @@
hash
- 5DEULbRz7Scm4ddYycpblEdS+fg=
+ /KMJYMp21Cz6xVNsDzr+gixkDx0=
optional
@@ -111,7 +111,7 @@
hash
- eEcxNg6shSit9/QlzFQhRuFi2fg=
+ LBFpKTcGuMQMwsd1bJWPjkdLyBE=
optional
@@ -120,7 +120,7 @@
hash
- izg+3fvHFEVk1t9BwHMuXftorfM=
+ Kz5cYm6hoov66WW0VLAq7mew80E=
optional
@@ -147,7 +147,7 @@
hash
- njljjFUXLA7Jt8JrZxLg8T/sYgo=
+ Kjr/SHLo/LaTgAOqwGJK1t+mOv8=
optional
@@ -255,7 +255,7 @@
hash
- kJ/JHS8kaErLsFpiFY0hmxLQAOk=
+ GECBzuCoSwaDYAZz6O+Iw1+ki1w=
optional
@@ -264,7 +264,7 @@
hash
- xn+DsE2D0kj/YFd/t0ykdetNs/U=
+ v94uDSZoB5/+jI5rEDRhzbU4NV8=
optional
@@ -282,7 +282,7 @@
hash
- bGUPk7Zf8v/KQAsj3jy5jFcsTxI=
+ Wus9hSNMEwzhCUFIJ4fflUfsRZU=
optional
@@ -357,7 +357,7 @@
hash2
- N68crGFunrtW1cL7aR6Wm+m3FvjAz1QeXk5Mgo+ME3o=
+ YUze+UKx79dVtUUgxlthRyDzycR1fyGYNR/eROkuZdE=
Headers/SoulverCore.h
@@ -371,84 +371,84 @@
hash2
- UKeU3acsK0/KZGBqOtex1El5hs8oipQrhBz68kdDgD8=
+ J2wt4jgRavQ6NogxdFVjENCdSWZklKGvJzcW7hd91s4=
Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftinterface
hash2
- ojcXUVE2CERr4/NDRfxZAdYE+ph65qbQqVeBlJMDlo4=
+ QCKQighxTYNrq+FhEJwtUxOqH77bEojOyHzsgIbXYYA=
Modules/SoulverCore.swiftmodule/arm64-apple-ios-macabi.swiftmodule
hash2
- cw3pXmN2BVf5o9abySaoQKlWFU+UpdFkXbJtKFyIQug=
+ W/hwvXBiUkf4ZvZajO7LEcW9MQRM7WzLrHEfFpJMWew=
Modules/SoulverCore.swiftmodule/arm64.swiftdoc
hash2
- UKeU3acsK0/KZGBqOtex1El5hs8oipQrhBz68kdDgD8=
+ J2wt4jgRavQ6NogxdFVjENCdSWZklKGvJzcW7hd91s4=
Modules/SoulverCore.swiftmodule/arm64.swiftinterface
hash2
- ojcXUVE2CERr4/NDRfxZAdYE+ph65qbQqVeBlJMDlo4=
+ QCKQighxTYNrq+FhEJwtUxOqH77bEojOyHzsgIbXYYA=
Modules/SoulverCore.swiftmodule/arm64.swiftmodule
hash2
- cw3pXmN2BVf5o9abySaoQKlWFU+UpdFkXbJtKFyIQug=
+ W/hwvXBiUkf4ZvZajO7LEcW9MQRM7WzLrHEfFpJMWew=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftdoc
hash2
- rVVxlu0B2vTpUhDQmBYl7bKNgxGMwlTjSrA+wMhEF50=
+ hOxtkSy6Ggo+DcgvrMP1d9w1fzYS5OEw/JxajXps1OE=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftinterface
hash2
- 3MN56Bygg9P7FPyQz0ukediA3e6LbLhWYWdxEGqeXuA=
+ mJPBhtIvqmJxRKYE3nGjUyEPOKrewz/Whb1AptEQnD8=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-macabi.swiftmodule
hash2
- yHn1gWDimPdmo+EVPeJM51OfBIW7eiLcZVeviATXmMY=
+ yRad37FmxvrMzhJQcFQNVc0+eAGkQZVv0ftZvW+9ur0=
Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
hash2
- rVVxlu0B2vTpUhDQmBYl7bKNgxGMwlTjSrA+wMhEF50=
+ hOxtkSy6Ggo+DcgvrMP1d9w1fzYS5OEw/JxajXps1OE=
Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
hash2
- 3MN56Bygg9P7FPyQz0ukediA3e6LbLhWYWdxEGqeXuA=
+ mJPBhtIvqmJxRKYE3nGjUyEPOKrewz/Whb1AptEQnD8=
Modules/SoulverCore.swiftmodule/x86_64.swiftmodule
hash2
- yHn1gWDimPdmo+EVPeJM51OfBIW7eiLcZVeviATXmMY=
+ yRad37FmxvrMzhJQcFQNVc0+eAGkQZVv0ftZvW+9ur0=
Modules/module.modulemap
@@ -462,7 +462,7 @@
hash2
- ZKjacukNeKCReAVxW4bbD8YYH4aOgNqSUYu6I52aXmY=
+ binVoezUFSYUS2kjyc/ExhcwWO/R4Ec4OnI18qKFeVM=
Resources/de.lproj/Cities.json
@@ -559,7 +559,7 @@
hash2
- +iSgf6I9i0iG+yirksSGGGrKMN3vKm9QPWh0NvyhBxs=
+ wAGEOzPngpGass2ixit8iqaaJW3niEyFCqOTsHUc+Lw=
optional
@@ -568,7 +568,7 @@
hash2
- ZdINPWWkvle8yS4tIhFDtnqzsU34pMMvUZz70uyJm/w=
+ lewTxD6xuqK31Z2XkFrakzHRZfVC3QF/2bBNYXFGoz4=
optional
@@ -577,7 +577,7 @@
hash2
- /wagTMP0mtPaDQfpJkTk4vLkKdXcggagMU5rKzeuEYc=
+ BX6SQEj0pd3fxPCrRJ8OOwRObDciEXx9oVNH4umDt9M=
optional
@@ -604,7 +604,7 @@
hash2
- C4dsknec3otW5sIC9NZKn9Pn0GaTWCwXfY0xpQdgbjk=
+ DMO+7oxGfKYsVCrrSpmHTU9jm5iML1BZ/dFPRP/zxio=
optional
@@ -712,7 +712,7 @@
hash2
- /H/XDN8FaDRs6X+QYWsflMu2xSQMSg4h50WOeWyLTLs=
+ iaCRHtMqc2R8ZWN9GZpfT180ccP+YmSf1HUJwfu+qBQ=
optional
@@ -721,7 +721,7 @@
hash2
- 0XREuLBt69XpZ8+VUViMMiKTTVMjOv2J7uloGnJQvtM=
+ kIagA4Hjqfu88Cj5wZAx9unSmwpOOe7KBvSfQgPL0UU=
optional
@@ -739,7 +739,7 @@
hash2
- E8Uwu97QcC+qocYR5JVS9H6fpBrAEI7BYUDjoEd3AsI=
+ 7kAW1tdOQxgzvxMLwT+oFXQM/Wq6THXCmL0Gg4pk4Qs=
optional
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h
index ab5d96ef8..898b5fa93 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h
@@ -1,6 +1,6 @@
#if 0
#elif defined(__arm64__) && __arm64__
-// Generated by Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// Generated by Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
#ifndef SOULVERCORE_SWIFT_H
#define SOULVERCORE_SWIFT_H
#pragma clang diagnostic push
@@ -259,7 +259,7 @@ SWIFT_CLASS("_TtC11SoulverCore46VanillaBackgroundEvaluationAndMergingOperation")
#endif
#elif defined(__x86_64__) && __x86_64__
-// Generated by Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// Generated by Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
#ifndef SOULVERCORE_SWIFT_H
#define SOULVERCORE_SWIFT_H
#pragma clang diagnostic push
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Info.plist b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Info.plist
index 36fdea0df..253c02aca 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Info.plist and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Info.plist differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc
index ce03463dc..0c412e4e3 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface
index cd25d668c..5a5f8a33c 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target arm64-apple-ios13.6-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc
index ce03463dc..0c412e4e3 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
index cd25d668c..5a5f8a33c 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target arm64-apple-ios13.6-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
index 978eacd31..3f63a0e55 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
index b299bf674..72c1347cb 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target x86_64-apple-ios13.6-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
index 978eacd31..3f63a0e55 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
index b299bf674..72c1347cb 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target x86_64-apple-ios13.6-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/SoulverCore b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/SoulverCore
index 365c044bd..3d42a81be 100755
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/SoulverCore and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/SoulverCore differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources
index d0f02ad76..3f7f4ca12 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources
@@ -6,7 +6,7 @@
Headers/SoulverCore-Swift.h
- SQzr4LvvOqjPpFDIWUVuHhzeMgs=
+ kEkCJgJmUwy/uMUzcf/SWMYVGMw=
Headers/SoulverCore.h
@@ -14,55 +14,55 @@
Info.plist
- E17FFNNvDiDwiDSJRZa51ot8ET4=
+ 90tYKgw5RLl28ErcKpaP3AGhCYo=
Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc
- h2biVjusjQ4+QgYltP8e0htfi1c=
+ /84mN6UVi0b5yoDGHIyji9tFDac=
Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface
- RtsguzzaLDOACGegSiLuunYsHD4=
+ XdCYj8t0vVzmmJIo/C9XYlLfWgA=
Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftmodule
- +837hZgQT/v+KLWBHssmnxzU3Ss=
+ u0S0y60STxvjovDI7cPsdcEtzio=
Modules/SoulverCore.swiftmodule/arm64.swiftdoc
- h2biVjusjQ4+QgYltP8e0htfi1c=
+ /84mN6UVi0b5yoDGHIyji9tFDac=
Modules/SoulverCore.swiftmodule/arm64.swiftinterface
- RtsguzzaLDOACGegSiLuunYsHD4=
+ XdCYj8t0vVzmmJIo/C9XYlLfWgA=
Modules/SoulverCore.swiftmodule/arm64.swiftmodule
- +837hZgQT/v+KLWBHssmnxzU3Ss=
+ u0S0y60STxvjovDI7cPsdcEtzio=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
- kgYkzLwUroOt3ivbz/ij1c+U1NU=
+ 8AC/8A2MpiYzwx9htj4c6cQG92k=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
- VNn3osMBH2RUQxiYTV3Mx27+1AA=
+ 3C07RJDA1uwvEdv33a/MnMx8xFo=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
- Z/Kf+TOqLVvBWUKERcc858ho+iU=
+ QOWJ4I6Vxm8E3BMCbiK9N3rUO/0=
Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
- kgYkzLwUroOt3ivbz/ij1c+U1NU=
+ 8AC/8A2MpiYzwx9htj4c6cQG92k=
Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
- VNn3osMBH2RUQxiYTV3Mx27+1AA=
+ 3C07RJDA1uwvEdv33a/MnMx8xFo=
Modules/SoulverCore.swiftmodule/x86_64.swiftmodule
- Z/Kf+TOqLVvBWUKERcc858ho+iU=
+ QOWJ4I6Vxm8E3BMCbiK9N3rUO/0=
Modules/module.modulemap
@@ -162,7 +162,7 @@
hash
- 5DEULbRz7Scm4ddYycpblEdS+fg=
+ /KMJYMp21Cz6xVNsDzr+gixkDx0=
optional
@@ -171,7 +171,7 @@
hash
- eEcxNg6shSit9/QlzFQhRuFi2fg=
+ LBFpKTcGuMQMwsd1bJWPjkdLyBE=
optional
@@ -180,7 +180,7 @@
hash
- izg+3fvHFEVk1t9BwHMuXftorfM=
+ Kz5cYm6hoov66WW0VLAq7mew80E=
optional
@@ -207,7 +207,7 @@
hash
- njljjFUXLA7Jt8JrZxLg8T/sYgo=
+ Kjr/SHLo/LaTgAOqwGJK1t+mOv8=
optional
@@ -315,7 +315,7 @@
hash
- kJ/JHS8kaErLsFpiFY0hmxLQAOk=
+ GECBzuCoSwaDYAZz6O+Iw1+ki1w=
optional
@@ -324,7 +324,7 @@
hash
- XanHL05AascxxlCGUBquFBj4zZg=
+ RTyOUpV/m0kZpW/3Kxsl+r1nOYg=
optional
@@ -342,7 +342,7 @@
hash
- bGUPk7Zf8v/KQAsj3jy5jFcsTxI=
+ Wus9hSNMEwzhCUFIJ4fflUfsRZU=
optional
@@ -417,7 +417,7 @@
hash2
- N68crGFunrtW1cL7aR6Wm+m3FvjAz1QeXk5Mgo+ME3o=
+ YUze+UKx79dVtUUgxlthRyDzycR1fyGYNR/eROkuZdE=
Headers/SoulverCore.h
@@ -431,84 +431,84 @@
hash2
- z7NJvbtKRGFMUhtFgoFa+L3A+cVVVEMI6A5c0yoAi4U=
+ Wv6RWWpfclr8wgTRFp1cmWuL5YI/cF/j45PouYQvfnY=
Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface
hash2
- evA3EWi+6+Po78fXFaBQvk9U/IKLPYJfsIjr2UE1UG0=
+ n5NkrwHskqHJX9CJRRdeiXFU91Znyg0IOwTGuxulWl0=
Modules/SoulverCore.swiftmodule/arm64-apple-ios-simulator.swiftmodule
hash2
- BE6Adj34nBu8GpK0wQ5IPI+tlwzDCL6OqPvLsVN4bes=
+ 2csSs/rFOaFdpx/Q3B+apv/Bt13vUGEUx/PqAIsdWkU=
Modules/SoulverCore.swiftmodule/arm64.swiftdoc
hash2
- z7NJvbtKRGFMUhtFgoFa+L3A+cVVVEMI6A5c0yoAi4U=
+ Wv6RWWpfclr8wgTRFp1cmWuL5YI/cF/j45PouYQvfnY=
Modules/SoulverCore.swiftmodule/arm64.swiftinterface
hash2
- evA3EWi+6+Po78fXFaBQvk9U/IKLPYJfsIjr2UE1UG0=
+ n5NkrwHskqHJX9CJRRdeiXFU91Znyg0IOwTGuxulWl0=
Modules/SoulverCore.swiftmodule/arm64.swiftmodule
hash2
- BE6Adj34nBu8GpK0wQ5IPI+tlwzDCL6OqPvLsVN4bes=
+ 2csSs/rFOaFdpx/Q3B+apv/Bt13vUGEUx/PqAIsdWkU=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
hash2
- O4LNDyvzJFtk6LcQ9+euJ1JU4D0HQws87amwsP85UNA=
+ 5LZyXEtlT23b6bm7fQWj4EIEn4BVG8gkPgqr3LSWXm0=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
hash2
- Jszfzn4AKYoK0WGjm42QGbDJKOd35YSw46Khdg+1AzU=
+ Vyd4YNUbcksfVarLGHHq++YEKdxa/0Umh9WyEaAdov0=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
hash2
- 6Rcf/ZUaBHWDMjly13JxRWw/glKP0UJ2IqUGiQKlGok=
+ 9baSUgFdRIx+yJU6aDOKfdpXOXJdFA2a7hsHp+aMCGk=
Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
hash2
- O4LNDyvzJFtk6LcQ9+euJ1JU4D0HQws87amwsP85UNA=
+ 5LZyXEtlT23b6bm7fQWj4EIEn4BVG8gkPgqr3LSWXm0=
Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
hash2
- Jszfzn4AKYoK0WGjm42QGbDJKOd35YSw46Khdg+1AzU=
+ Vyd4YNUbcksfVarLGHHq++YEKdxa/0Umh9WyEaAdov0=
Modules/SoulverCore.swiftmodule/x86_64.swiftmodule
hash2
- 6Rcf/ZUaBHWDMjly13JxRWw/glKP0UJ2IqUGiQKlGok=
+ 9baSUgFdRIx+yJU6aDOKfdpXOXJdFA2a7hsHp+aMCGk=
Modules/module.modulemap
@@ -612,7 +612,7 @@
hash2
- +iSgf6I9i0iG+yirksSGGGrKMN3vKm9QPWh0NvyhBxs=
+ wAGEOzPngpGass2ixit8iqaaJW3niEyFCqOTsHUc+Lw=
optional
@@ -621,7 +621,7 @@
hash2
- ZdINPWWkvle8yS4tIhFDtnqzsU34pMMvUZz70uyJm/w=
+ lewTxD6xuqK31Z2XkFrakzHRZfVC3QF/2bBNYXFGoz4=
optional
@@ -630,7 +630,7 @@
hash2
- /wagTMP0mtPaDQfpJkTk4vLkKdXcggagMU5rKzeuEYc=
+ BX6SQEj0pd3fxPCrRJ8OOwRObDciEXx9oVNH4umDt9M=
optional
@@ -657,7 +657,7 @@
hash2
- C4dsknec3otW5sIC9NZKn9Pn0GaTWCwXfY0xpQdgbjk=
+ DMO+7oxGfKYsVCrrSpmHTU9jm5iML1BZ/dFPRP/zxio=
optional
@@ -765,7 +765,7 @@
hash2
- /H/XDN8FaDRs6X+QYWsflMu2xSQMSg4h50WOeWyLTLs=
+ iaCRHtMqc2R8ZWN9GZpfT180ccP+YmSf1HUJwfu+qBQ=
optional
@@ -774,7 +774,7 @@
hash2
- GyJNQUibdCrNl0bxpbTZEAQZO9iS9xntt0F0oCuz5rY=
+ HWxe98LT9ed/FXUN8T1laViRWQttrv8RF9UuBPlXBc4=
optional
@@ -792,7 +792,7 @@
hash2
- E8Uwu97QcC+qocYR5JVS9H6fpBrAEI7BYUDjoEd3AsI=
+ 7kAW1tdOQxgzvxMLwT+oFXQM/Wq6THXCmL0Gg4pk4Qs=
optional
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/CurrencyDescriptions.json b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/CurrencyDescriptions.json
index c6e0f02fd..f0292909d 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/CurrencyDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/CurrencyDescriptions.json
@@ -198,6 +198,43 @@
],
"symbol": "LTC"
},
+ "SOL": {
+ "aliases": [
+ "solana"
+ ],
+ "symbol": "SOL"
+ },
+ "AVAX": {
+ "aliases": [
+ "avalanche"
+ ],
+ "symbol": "AVAX"
+ },
+ "LUNA": {
+ "aliases": [
+ "terra"
+ ],
+ "symbol": "LUNA"
+ },
+ "DOT": {
+ "aliases": [
+ "polkadot"
+ ],
+ "symbol": "DOT"
+ },
+ "MATIC": {
+ "aliases": [
+ "polygon"
+ ],
+ "symbol": "MATIC"
+ },
+ "SHIB": {
+ "aliases": [
+ "shiba inu"
+ ],
+ "symbol": "SHIB"
+ },
+
"GTQ": {
"aliases": [
"guatemalan quetzal",
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/DefaultCurrencyRates.json
index 3d6f60aa7..176e807b2 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/DefaultCurrencyRates.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/DefaultCurrencyRates.json
@@ -1,30 +1,30 @@
{
"HRK" : {
- "value" : 0.15804035023005933,
+ "value" : 0.15083133708058707,
"code" : "HRK"
},
"HUF" : {
- "value" : 0.0033830675042370471,
+ "value" : 0.0030511245142129219,
"code" : "HUF"
},
"CDF" : {
- "value" : 0.0005007511700700813,
+ "value" : 0.00049950042739479344,
"code" : "CDF"
},
"XMR" : {
- "value" : 121.02161715,
+ "value" : 232.10788493999999,
"code" : "XMR"
},
"ILS" : {
- "value" : 0.31173527440497528,
+ "value" : 0.31908613730276486,
"code" : "ILS"
},
"NGN" : {
- "value" : 0.0024301608999568202,
+ "value" : 0.0024310771397793992,
"code" : "NGN"
},
"GYD" : {
- "value" : 0.0047792022195303312,
+ "value" : 0.004774328268842081,
"code" : "GYD"
},
"BYR" : {
@@ -32,239 +32,243 @@
"code" : "BYR"
},
"BHD" : {
- "value" : 2.6530758434791375,
+ "value" : 2.6524002896421117,
"code" : "BHD"
},
"SZL" : {
- "value" : 0.069777506048663118,
+ "value" : 0.064298414600421031,
"code" : "SZL"
},
"INR" : {
- "value" : 0.013589634196672827,
+ "value" : 0.013342219251354735,
"code" : "INR"
},
"SDG" : {
- "value" : 0.0022547744612465576,
+ "value" : 0.0022856819674773694,
"code" : "SDG"
},
"PEN" : {
- "value" : 0.24356791927964302,
+ "value" : 0.24946552012313619,
"code" : "PEN"
},
"EUR" : {
- "value" : 1.1817607052747889,
+ "value" : 1.1314713087162893,
"code" : "EUR"
},
"TRX" : {
- "value" : 0.026469659999999996,
+ "value" : 0.081818127000000004,
"code" : "TRX"
},
- "QAR" : {
- "value" : 0.27464793567745349,
- "code" : "QAR"
- },
"PGK" : {
- "value" : 0.28117404786032174,
+ "value" : 0.28449421196525754,
"code" : "PGK"
},
+ "QAR" : {
+ "value" : 0.27465457380888492,
+ "code" : "QAR"
+ },
"LRD" : {
- "value" : 0.0058190208744397457,
+ "value" : 0.0069771490067222523,
"code" : "LRD"
},
"ISK" : {
- "value" : 0.0078567156931225613,
+ "value" : 0.0076757790829416672,
"code" : "ISK"
},
"SYP" : {
- "value" : 0.00079518185193483003,
+ "value" : 0.00039801109351087036,
"code" : "SYP"
},
"TRY" : {
- "value" : 0.11824307346856006,
+ "value" : 0.087971653421947765,
"code" : "TRY"
},
"UAH" : {
- "value" : 0.037482203449802035,
+ "value" : 0.036708018984212762,
"code" : "UAH"
},
"SGD" : {
- "value" : 0.74307454523837824,
+ "value" : 0.73684365651296102,
"code" : "SGD"
},
"MMK" : {
- "value" : 0.00060747964796017387,
+ "value" : 0.00056194304981418346,
"code" : "MMK"
},
"NIO" : {
- "value" : 0.028474987044592771,
+ "value" : 0.028219593134421322,
"code" : "NIO"
},
"BIF" : {
- "value" : 0.00050368851071210051,
+ "value" : 0.00050106033963171577,
"code" : "BIF"
},
"AFN" : {
- "value" : 0.01150998450871185,
+ "value" : 0.0096840506803558858,
"code" : "AFN"
},
"LKR" : {
- "value" : 0.0049623385302184483,
+ "value" : 0.0049340636892296168,
"code" : "LKR"
},
"GTQ" : {
- "value" : 0.12916086895816131,
+ "value" : 0.12942676755224344,
"code" : "GTQ"
},
"LTC" : {
- "value" : 47.327861009999999,
+ "value" : 157.16820727999999,
"code" : "LTC"
},
"XRP" : {
- "value" : 0.24379759000000001,
+ "value" : 0.92282003999999995,
"code" : "XRP"
},
"CHF" : {
- "value" : 1.0862245008798419,
+ "value" : 1.0885420068360439,
"code" : "CHF"
},
+ "LUNA" : {
+ "value" : 98.781760340000005,
+ "code" : "LUNA"
+ },
"THB" : {
- "value" : 0.030515628991348909,
+ "value" : 0.029790722853121874,
"code" : "THB"
},
"AMD" : {
- "value" : 0.0020257263519359377,
+ "value" : 0.0020288049606586012,
"code" : "AMD"
},
"AOA" : {
- "value" : 0.0015809452213784549,
+ "value" : 0.0017720945210053761,
"code" : "AOA"
},
"SEK" : {
- "value" : 0.11602597125340536,
+ "value" : 0.10962271479118463,
"code" : "SEK"
},
"DASH" : {
- "value" : 73.134845940000005,
+ "value" : 153.35057456999999,
"code" : "DASH"
},
"SAR" : {
- "value" : 0.26664334426215519,
+ "value" : 0.26625152728532336,
"code" : "SAR"
},
"KWD" : {
- "value" : 3.3246891415652637,
+ "value" : 3.3039283708329203,
"code" : "KWD"
},
"IRR" : {
- "value" : 2.3702299183689224e-05,
+ "value" : 2.3668638936171706e-05,
"code" : "IRR"
},
"WST" : {
- "value" : 0.3905084576321754,
+ "value" : 0.38459009042097614,
"code" : "WST"
},
"BNB" : {
- "value" : 28.650888770000002,
+ "value" : 555.55898833000003,
"code" : "BNB"
},
"BMD" : {
"value" : 1,
"code" : "BMD"
},
- "PHP" : {
- "value" : 0.019948729371667289,
- "code" : "PHP"
- },
"BGN" : {
- "value" : 0.60465158464064039,
+ "value" : 0.57868160128143253,
"code" : "BGN"
},
+ "PHP" : {
+ "value" : 0.019908455744289264,
+ "code" : "PHP"
+ },
"ZMW" : {
- "value" : 0.062023662151157989,
+ "value" : 0.060460650908484764,
"code" : "ZMW"
},
"XAF" : {
- "value" : 0.0018101491398529697,
+ "value" : 0.0017254179769835868,
"code" : "XAF"
},
"BDT" : {
- "value" : 0.011734181135743179,
+ "value" : 0.01165631151035584,
"code" : "BDT"
},
"NOK" : {
- "value" : 0.11477274422779175,
+ "value" : 0.1124922028841876,
"code" : "NOK"
},
"BOB" : {
- "value" : 0.14501746807911747,
+ "value" : 0.14470454443174743,
"code" : "BOB"
},
"TZS" : {
- "value" : 0.00043131333519581621,
+ "value" : 0.00043383950668404703,
"code" : "TZS"
},
"XAG" : {
- "value" : 24.362909905959167,
+ "value" : 22.709208584080844,
"code" : "XAG"
},
"VEF" : {
"value" : 4.6766073993926175e-12,
"code" : "VEF"
},
- "ANG" : {
- "value" : 0.5570562030714965,
- "code" : "ANG"
- },
"VUV" : {
- "value" : 0.0090181957068590762,
+ "value" : 0.0088298152273748511,
"code" : "VUV"
},
"BND" : {
- "value" : 0.74363983440628167,
+ "value" : 0.73686428875648258,
"code" : "BND"
},
- "SCR" : {
- "value" : 0.077646497393678848,
- "code" : "SCR"
- },
"XCD" : {
"value" : 0.37002090618119926,
"code" : "XCD"
},
+ "SCR" : {
+ "value" : 0.075231094877243915,
+ "code" : "SCR"
+ },
+ "ANG" : {
+ "value" : 0.55436920545587998,
+ "code" : "ANG"
+ },
"KYD" : {
- "value" : 1.1998680145184031,
+ "value" : 1.1989933252041585,
"code" : "KYD"
},
"DJF" : {
- "value" : 0.005626837901097183,
+ "value" : 0.0056124169471733947,
"code" : "DJF"
},
"CLF" : {
- "value" : 35.340684195646027,
+ "value" : 31.894874493668869,
"code" : "CLF"
},
"LSL" : {
- "value" : 0.067024488066960153,
+ "value" : 0.06443543923383685,
"code" : "LSL"
},
"MOP" : {
- "value" : 0.12488772593438499,
+ "value" : 0.12438185328463866,
"code" : "MOP"
},
"ALL" : {
- "value" : 0.0097563680741274798,
+ "value" : 0.0093878566403318812,
"code" : "ALL"
},
"UZS" : {
- "value" : 9.3489770333203163e-05,
+ "value" : 9.2531732287490099e-05,
"code" : "UZS"
},
"UYU" : {
- "value" : 0.023475484434227912,
+ "value" : 0.022522417519359763,
"code" : "UYU"
},
"PLN" : {
- "value" : 0.26175201090982381,
+ "value" : 0.24531028070855423,
"code" : "PLN"
},
"LTL" : {
@@ -272,19 +276,19 @@
"code" : "LTL"
},
"LYD" : {
- "value" : 0.22184336305664656,
+ "value" : 0.21743639876617887,
"code" : "LYD"
},
"JPY" : {
- "value" : 0.0090728049684349402,
+ "value" : 0.0087208304246820297,
"code" : "JPY"
},
"MNT" : {
- "value" : 0.00035076628400650231,
+ "value" : 0.00034984794609446847,
"code" : "MNT"
},
"FJD" : {
- "value" : 0.48238103277779121,
+ "value" : 0.47198731675682409,
"code" : "FJD"
},
"ZWL" : {
@@ -292,11 +296,11 @@
"code" : "ZWL"
},
"KPW" : {
- "value" : 0.0011111109037037425,
+ "value" : 0.0011111112061728476,
"code" : "KPW"
},
"PKR" : {
- "value" : 0.0059527408451712166,
+ "value" : 0.0055973950574206817,
"code" : "PKR"
},
"MRO" : {
@@ -304,11 +308,11 @@
"code" : "MRO"
},
"OMR" : {
- "value" : 2.6009764065430163,
+ "value" : 2.6006923042914023,
"code" : "OMR"
},
"GBP" : {
- "value" : 1.3762446412474281,
+ "value" : 1.3399886100968141,
"code" : "GBP"
},
"LVL" : {
@@ -316,215 +320,227 @@
"code" : "LVL"
},
"SHP" : {
- "value" : 0.72600657181148809,
+ "value" : 0.72600762598410329,
"code" : "SHP"
},
"GEL" : {
- "value" : 0.32048570249184044,
+ "value" : 0.32578213775632542,
"code" : "GEL"
},
+ "AVAX" : {
+ "value" : 117.52949112,
+ "code" : "AVAX"
+ },
"TND" : {
- "value" : 0.35848744110947561,
+ "value" : 0.34812832288484191,
"code" : "TND"
},
"DKK" : {
- "value" : 0.15891960098466584,
+ "value" : 0.15215957035006439,
"code" : "DKK"
},
"NPR" : {
- "value" : 0.0085093559560347788,
+ "value" : 0.0083257319400720474,
"code" : "NPR"
},
"KRW" : {
- "value" : 0.00085781689878051059,
+ "value" : 0.00084220810545561234,
"code" : "KRW"
},
"BSD" : {
- "value" : 0.99987401587399982,
+ "value" : 0.9991167807658029,
"code" : "BSD"
},
"CRC" : {
- "value" : 0.0016017348146313579,
+ "value" : 0.0015546703304152047,
"code" : "CRC"
},
"EGP" : {
- "value" : 0.063546192744244875,
+ "value" : 0.063662651102506615,
"code" : "EGP"
},
"MAD" : {
- "value" : 0.11208499270494825,
+ "value" : 0.10793195149494926,
"code" : "MAD"
},
- "BTC" : {
- "value" : 11957.02216748,
- "code" : "BTC"
- },
"AUD" : {
- "value" : 0.73692021880635128,
+ "value" : 0.72142524771939442,
"code" : "AUD"
},
+ "BTC" : {
+ "value" : 50928.71859343,
+ "code" : "BTC"
+ },
"SLL" : {
- "value" : 9.685229880693445e-05,
+ "value" : 8.8222318449108469e-05,
"code" : "SLL"
},
"MWK" : {
- "value" : 0.0012306236506419337,
+ "value" : 0.0012319032245998224,
"code" : "MWK"
},
"RSD" : {
- "value" : 0.010096084333642431,
+ "value" : 0.0096237357045781836,
"code" : "RSD"
},
"NZD" : {
- "value" : 0.70949157833496523,
+ "value" : 0.67977037356780878,
"code" : "NZD"
},
"SRD" : {
- "value" : 0.046893326498162066,
+ "value" : 0.048621637357948846,
"code" : "SRD"
},
"CLP" : {
- "value" : 0.0012807706887000619,
+ "value" : 0.0011558951594028205,
"code" : "CLP"
},
"RUB" : {
- "value" : 0.013613610713737376,
+ "value" : 0.013600079674706765,
"code" : "RUB"
},
- "NAD" : {
- "value" : 0.067022686710292628,
- "code" : "NAD"
- },
"HKD" : {
- "value" : 0.12858974342488494,
+ "value" : 0.12818458580355713,
"code" : "HKD"
},
+ "NAD" : {
+ "value" : 0.064433653955195416,
+ "code" : "NAD"
+ },
"GMD" : {
- "value" : 0.019538930860574819,
+ "value" : 0.019029582627970137,
"code" : "GMD"
},
"VND" : {
- "value" : 4.3939626952567174e-05,
+ "value" : 4.3821209465381244e-05,
"code" : "VND"
},
"LAK" : {
- "value" : 0.00010435298460524862,
+ "value" : 8.9542390578357692e-05,
"code" : "LAK"
},
+ "SHIB" : {
+ "value" : 3.8509123000000003e-05,
+ "code" : "SHIB"
+ },
"CUC" : {
"value" : 1,
"code" : "CUC"
},
"RON" : {
- "value" : 0.23885154444991413,
+ "value" : 0.22862300592156448,
"code" : "RON"
},
"MUR" : {
- "value" : 0.023415617373826119,
+ "value" : 0.023011594576019884,
"code" : "MUR"
},
"XAU" : {
- "value" : 1798.5611510791368,
+ "value" : 1805.0541516245487,
"code" : "XAU"
},
"GGP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "GGP"
},
- "MXN" : {
- "value" : 0.05010622770805246,
- "code" : "MXN"
+ "SOL" : {
+ "value" : 201.83102561999999,
+ "code" : "SOL"
},
"BRL" : {
- "value" : 0.19339748714777,
+ "value" : 0.17617100426104809,
"code" : "BRL"
},
"STD" : {
"value" : 4.8313891080172936e-05,
"code" : "STD"
},
+ "MXN" : {
+ "value" : 0.048387135796077251,
+ "code" : "MXN"
+ },
"AWG" : {
- "value" : 0.5554012774229381,
+ "value" : 0.55555555555555558,
"code" : "AWG"
},
"MVR" : {
- "value" : 0.064724240431912619,
+ "value" : 0.064725736020616445,
"code" : "MVR"
},
"PAB" : {
- "value" : 0.99987401587399982,
+ "value" : 0.99916170333090537,
"code" : "PAB"
},
"TJS" : {
- "value" : 0.088251166349477259,
+ "value" : 0.088587157094617633,
"code" : "TJS"
},
"GNF" : {
- "value" : 0.00010214993633869382,
+ "value" : 0.00010561444928516947,
"code" : "GNF"
},
- "MGA" : {
- "value" : 0.00025465296336866296,
- "code" : "MGA"
- },
"XDR" : {
- "value" : 1.4230337942065447,
+ "value" : 1.3983197789536093,
"code" : "XDR"
},
+ "MGA" : {
+ "value" : 0.00025167106206527335,
+ "code" : "MGA"
+ },
"ETB" : {
- "value" : 0.021682084869490977,
+ "value" : 0.020224401873426796,
"code" : "ETB"
},
"ZAR" : {
- "value" : 0.069809465535241394,
+ "value" : 0.064352114176095057,
"code" : "ZAR"
},
"COP" : {
- "value" : 0.00026255057380427906,
+ "value" : 0.00025053238131028438,
"code" : "COP"
},
"IDR" : {
- "value" : 7.0110739913693687e-05,
+ "value" : 7.0229404349307016e-05,
"code" : "IDR"
},
"SVC" : {
- "value" : 0.11426715729936886,
+ "value" : 0.11418987309394264,
"code" : "SVC"
},
"CVE" : {
- "value" : 0.010768149497923723,
+ "value" : 0.010264816562133709,
"code" : "CVE"
},
"ETC" : {
- "value" : 5.2368606,
+ "value" : 38.293331139999999,
"code" : "ETC"
},
- "TTD" : {
- "value" : 0.14727128401414394,
- "code" : "TTD"
+ "DOGE" : {
+ "value" : 0.19064063000000001,
+ "code" : "DOGE"
},
"GIP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "GIP"
},
+ "TTD" : {
+ "value" : 0.14696487407241282,
+ "code" : "TTD"
+ },
"PYG" : {
- "value" : 0.00014467133719474066,
+ "value" : 0.00014658722962601346,
"code" : "PYG"
},
- "DOGE" : {
- "value" : 0.0025976099999999993,
- "code" : "DOGE"
- },
"MZN" : {
- "value" : 0.015680132816997011,
+ "value" : 0.015666529276427088,
"code" : "MZN"
},
"FKP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "FKP"
},
"KZT" : {
- "value" : 0.002344853462392567,
+ "value" : 0.0023051934815048079,
"code" : "KZT"
},
"USD" : {
@@ -532,199 +548,207 @@
"code" : "USD"
},
"UGX" : {
- "value" : 0.00028358012899350551,
+ "value" : 0.00028225685783391782,
"code" : "UGX"
},
- "GHS" : {
- "value" : 0.16499910322987393,
- "code" : "GHS"
+ "RWF" : {
+ "value" : 0.00096346363419134117,
+ "code" : "RWF"
},
"ARS" : {
- "value" : 0.010215359598126118,
+ "value" : 0.0097784320722245945,
"code" : "ARS"
},
- "RWF" : {
- "value" : 0.00099039921265005695,
- "code" : "RWF"
+ "GHS" : {
+ "value" : 0.16181075293941369,
+ "code" : "GHS"
},
"JEP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "JEP"
},
"DOP" : {
- "value" : 0.017588507922198151,
+ "value" : 0.017507115592061237,
"code" : "DOP"
},
"LBP" : {
- "value" : 0.0006612893342517372,
+ "value" : 0.00066077767418736813,
"code" : "LBP"
},
"BZD" : {
- "value" : 0.49605192274685772,
+ "value" : 0.49567719914624558,
"code" : "BZD"
},
- "ADA" : {
- "value" : 0.10270785,
- "code" : "ADA"
- },
"BTN" : {
- "value" : 0.013614988970088985,
+ "value" : 0.013321759566245641,
"code" : "BTN"
},
+ "ADA" : {
+ "value" : 1.58042777,
+ "code" : "ADA"
+ },
"MYR" : {
- "value" : 0.24070273645312965,
+ "value" : 0.23906344504768121,
"code" : "MYR"
},
"YER" : {
- "value" : 0.0039864413952552854,
+ "value" : 0.0039959992055953577,
"code" : "YER"
},
"JMD" : {
- "value" : 0.0066442652605700446,
+ "value" : 0.0064975773100753769,
"code" : "JMD"
},
"TOP" : {
- "value" : 0.44513628515074316,
+ "value" : 0.43893339185778563,
"code" : "TOP"
},
"SOS" : {
- "value" : 0.0017094027993286224,
+ "value" : 0.0017064854774084164,
"code" : "SOS"
},
"TMT" : {
- "value" : 0.28490028490028491,
+ "value" : 0.2857142857142857,
"code" : "TMT"
},
"MDL" : {
- "value" : 0.056828407702681501,
+ "value" : 0.056052457477064319,
"code" : "MDL"
},
"XOF" : {
- "value" : 0.0018101034056686495,
+ "value" : 0.0017254179769835868,
"code" : "XOF"
},
"ETH" : {
- "value" : 371.33697873,
+ "value" : 4072.3098828399998,
"code" : "ETH"
},
"TWD" : {
- "value" : 0.036066578904657996,
+ "value" : 0.036112825567504933,
"code" : "TWD"
},
"BBD" : {
- "value" : 0.49522430442032267,
+ "value" : 0.49484078992424974,
"code" : "BBD"
},
+ "DOT" : {
+ "value" : 31.597941519999999,
+ "code" : "DOT"
+ },
"CAD" : {
- "value" : 0.78851853925363569,
+ "value" : 0.77926834495092556,
"code" : "CAD"
},
"CNY" : {
- "value" : 0.15481318847360079,
+ "value" : 0.15691436069245052,
"code" : "CNY"
},
"JOD" : {
- "value" : 1.4103258416824622,
+ "value" : 1.4103914823637598,
"code" : "JOD"
},
"XPF" : {
- "value" : 0.0098154865212757552,
+ "value" : 0.0094383730117500956,
"code" : "XPF"
},
"XLM" : {
- "value" : 0.082820000000000005,
+ "value" : 0.29973736000000001,
"code" : "XLM"
},
"IQD" : {
- "value" : 0.00068535032584169102,
+ "value" : 0.00068465018924487766,
"code" : "IQD"
},
"HNL" : {
- "value" : 0.041724355804110325,
+ "value" : 0.040737141840576578,
"code" : "HNL"
},
"AED" : {
- "value" : 0.27225849310369238,
+ "value" : 0.27225997560550619,
"code" : "AED"
},
- "ERN" : {
- "value" : 0.066645282417048451,
- "code" : "ERN"
- },
"EOS" : {
- "value" : 2.5413952100000001,
+ "value" : 3.4663553500000002,
"code" : "EOS"
},
+ "ERN" : {
+ "value" : 0.066666320001802656,
+ "code" : "ERN"
+ },
"KES" : {
- "value" : 0.0090826094849309376,
+ "value" : 0.008834725815697865,
"code" : "KES"
},
"KMF" : {
- "value" : 0.0023866358530657424,
+ "value" : 0.0022968706194370653,
"code" : "KMF"
},
"MKD" : {
- "value" : 0.019248252937134225,
+ "value" : 0.018370283259847915,
"code" : "MKD"
},
"DZD" : {
- "value" : 0.0073472670334079494,
+ "value" : 0.0071879249186740206,
"code" : "DZD"
},
"BSV" : {
- "value" : 157.47286274999999,
+ "value" : 131.02409718999999,
"code" : "BSV"
},
"BWP" : {
- "value" : 0.090993317632739684,
+ "value" : 0.0859755999527822,
"code" : "BWP"
},
- "SBD" : {
- "value" : 0.12409927197162099,
- "code" : "SBD"
- },
"AZN" : {
- "value" : 0.58655464255066803,
+ "value" : 0.58925852421381131,
"code" : "AZN"
},
+ "SBD" : {
+ "value" : 0.12349967958008133,
+ "code" : "SBD"
+ },
"BCH" : {
- "value" : 243.10580897,
+ "value" : 467.49922156999997,
"code" : "BCH"
},
"KGS" : {
- "value" : 0.011793120226226009,
+ "value" : 0.011793887845929179,
"code" : "KGS"
},
+ "MATIC" : {
+ "value" : 2.8421653500000001,
+ "code" : "MATIC"
+ },
"BYN" : {
- "value" : 0.39664265788658476,
+ "value" : 0.39668435349970804,
"code" : "BYN"
},
"KHR" : {
- "value" : 0.0002449549233411167,
+ "value" : 0.00024529671855543688,
"code" : "KHR"
},
"NEO" : {
- "value" : 17.76272552,
+ "value" : 29.8754189,
"code" : "NEO"
},
"ZMK" : {
- "value" : 0.00011109637899061443,
+ "value" : 0.00011109632436315487,
"code" : "ZMK"
},
"HTG" : {
- "value" : 0.010199415920247911,
+ "value" : 0.0099485759106038487,
"code" : "HTG"
},
"CZK" : {
- "value" : 0.04652683027826534,
+ "value" : 0.045075495369552125,
"code" : "CZK"
},
"BAM" : {
- "value" : 0.60708234404206352,
+ "value" : 0.5787057130985408,
"code" : "BAM"
},
"IMP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "IMP"
}
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/FunctionDescriptions.json
index a6d510958..256e2aa64 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/FunctionDescriptions.json
@@ -1,61 +1,175 @@
{
- "tagRelated": [
+ "datetime": [
{
+ "identifier": "calendarUnitBetweenDates",
"prototypeExpressions": [
- "total of __tag",
- "total __tag",
- "__tag total",
- "sum of __tag",
- "sum __tag",
- "__tag sum"
+ "__unit between __datestamp and __datestamp",
+ "__unit between __datestamp to __datestamp",
+ "__unit between __datestamp - __datestamp",
+ "__unit between __datestamp − __datestamp",
+ "__unit from __datestamp to __datestamp",
+ "__unit in __datestamp to __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit to __datestamp",
+ "__unit before __datestamp",
+ "__unit until __datestamp",
+ "__unit till __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit to __datespan",
+ "__unit before __datespan",
+ "__unit until __datespan",
+ "__unit till __datespan"
],
- "identifier": "tagTotal"
+ "identifier": "calendarUnitToDatespan"
},
{
"prototypeExpressions": [
- "average of __tag",
- "average __tag",
- "__tag average",
- "mean of __tag",
- "mean __tag",
- "__tag mean"
+ "__unit in __datestamp"
],
- "identifier": "tagAverage"
+ "identifier": "calendarUnitInDate"
},
{
"prototypeExpressions": [
- "count of __tag",
- "count __tag",
- "__tag count"
+ "__unit in __datespan"
+ ],
+ "identifier": "calendarUnitInDatespan"
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "__datestamp to __datestamp",
+ "difference between __datestamp and __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit between __datestamp through __datestamp",
+ "__unit from __datestamp through __datestamp",
+ "__unit in __datestamp through __datestamp"
+ ],
+ "identifier": "inclusiveCalendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp through __datestamp"
+ ],
+ "identifier": "inclusiveIntervalBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__timestamp to __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit since __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "identifier": "calendarUnitExpressionAfterDate",
+ "prototypeExpressions": [
+ "__timespan from __datestamp",
+ "__timespan after __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitExpressionBeforeDate",
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitExpressionAgo",
+ "prototypeExpressions": [
+ "__timespan ago"
+ ]
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "new timestamp",
+ "current timestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone time",
+ "time __timezone",
+ "time at __timezone",
+ "time in __timezone"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "identifier": "differenceBetweenTimezones",
+ "prototypeExpressions": [
+ "time difference between __timezone and __timezone",
+ "difference between __timezone and __timezone",
+ "time difference between __timezone & __timezone",
+ "difference between __timezone & __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp in __timespan",
+ "__datestamp after __timespan"
],
- "identifier": "tagCount"
+ "identifier": "weekdayAfterTimespan"
+ },
+ {
+ "prototypeExpressions": [
+ "week number on __datestamp",
+ "week number __datestamp"
+ ],
+ "identifier": "weekNumberOnDate"
+ },
+ {
+ "prototypeExpressions": [
+ "week of year"
+ ],
+ "identifier": "weekOfYear"
+ },
+ {
+ "identifier": "halfwayBetweenDates",
+ "prototypeExpressions": [
+ "halfway between __datestamp and __datestamp",
+ "midpoint between __datestamp and __datestamp"
+ ]
}
],
"financial": [
{
+ "identifier": "presentValue",
"prototypeExpressions": [
"present value of 1000 after __timespan at __percentage",
"present value of 1000 over __timespan at __percentage"
- ],
- "identifier": "presentValue"
+ ]
},
{
+ "identifier": "returnOnInvestmentAfter",
"prototypeExpressions": [
"annual return on 500 invested 1000 returned after __timespan",
"yearly return on 500 invested 1000 returned after __timespan",
"annual return on 500 invested 1000 returned over __timespan",
"yearly return on 500 invested 1000 returned over __timespan"
- ],
- "identifier": "returnOnInvestmentAfter"
+ ]
},
{
- "identifier": "returnOnInvestment",
"prototypeExpressions": [
"500 invested 1000 returned"
- ]
+ ],
+ "identifier": "returnOnInvestment"
},
{
- "identifier": "totalLoanRepayment",
"prototypeExpressions": [
"total repayment on 10000 for __timespan at __percentage",
"total repayment on 10000 after __timespan at __percentage",
@@ -63,9 +177,11 @@
"total payment on 10000 for __timespan at __percentage",
"total payment on 10000 after __timespan at __percentage",
"total payment on 10000 over __timespan at __percentage"
- ]
+ ],
+ "identifier": "totalLoanRepayment"
},
{
+ "identifier": "annualLoanRepayment",
"prototypeExpressions": [
"annual repayment on 10000 for __timespan at __percentage",
"annual repayment on 10000 after __timespan at __percentage",
@@ -79,11 +195,9 @@
"yearly payment on 10000 over __timespan at __percentage",
"yearly payment on 10000 after __timespan at __percentage",
"yearly payment on 10000 for __timespan at __percentage"
- ],
- "identifier": "annualLoanRepayment"
+ ]
},
{
- "identifier": "monthlyLoanRepayment",
"prototypeExpressions": [
"monthly repayment on 10000 for __timespan at __percentage",
"monthly repayment on 10000 after __timespan at __percentage",
@@ -91,18 +205,18 @@
"monthly payment on 10000 for __timespan at __percentage",
"monthly payment on 10000 after __timespan at __percentage",
"monthly payment on 10000 over __timespan at __percentage"
- ]
+ ],
+ "identifier": "monthlyLoanRepayment"
},
{
+ "identifier": "totalInterestOnLoanRepayment",
"prototypeExpressions": [
"total interest on 10000 for __timespan at __percentage",
"total interest on 10000 after __timespan at __percentage",
"total interest on 10000 over __timespan at __percentage"
- ],
- "identifier": "totalInterestOnLoanRepayment"
+ ]
},
{
- "identifier": "annualInterestOnLoanRepayment",
"prototypeExpressions": [
"annual interest on 10000 for __timespan at __percentage",
"annual interest on 10000 after __timespan at __percentage",
@@ -110,18 +224,18 @@
"yearly interest on 10000 over __timespan at __percentage",
"yearly interest on 10000 after __timespan at __percentage",
"yearly interest on 10000 for __timespan at __percentage"
- ]
+ ],
+ "identifier": "annualInterestOnLoanRepayment"
},
{
+ "identifier": "monthlyInterestOnLoanRepayment",
"prototypeExpressions": [
"monthly interest on 10000 for __timespan at __percentage",
"monthly interest on 10000 after __timespan at __percentage",
"monthly interest on 10000 over __timespan at __percentage"
- ],
- "identifier": "monthlyInterestOnLoanRepayment"
+ ]
},
{
- "identifier": "compoundInterestCompoundingMonthly",
"prototypeExpressions": [
"100 after __timespan at __percentage compounded monthly",
"100 for __timespan at __percentage compounded monthly",
@@ -135,10 +249,10 @@
"100 at __percentage after __timespan compounding monthly",
"100 at __percentage for __timespan compounding monthly",
"100 at __percentage over __timespan compounding monthly"
- ]
+ ],
+ "identifier": "compoundInterestCompoundingMonthly"
},
{
- "identifier": "compoundInterest",
"prototypeExpressions": [
"100 after __timespan at __percentage",
"100 for __timespan at __percentage",
@@ -146,364 +260,192 @@
"100 at __percentage after __timespan",
"100 at __percentage for __timespan",
"100 at __percentage over __timespan"
- ]
+ ],
+ "identifier": "compoundInterest"
}
],
"percentage": [
{
+ "identifier": "percentOf",
"prototypeExpressions": [
"__percentage of 100"
- ],
- "identifier": "percentOf"
+ ]
},
{
+ "identifier": "percentOff",
"prototypeExpressions": [
"__percentage off 100"
- ],
- "identifier": "percentOff"
+ ]
},
{
+ "identifier": "percentOn",
"prototypeExpressions": [
"__percentage on 100"
- ],
- "identifier": "percentOn"
+ ]
},
{
+ "identifier": "isPercentOfWhat",
"prototypeExpressions": [
"30 is __percentage of what"
- ],
- "identifier": "isPercentOfWhat"
+ ]
},
{
+ "identifier": "isPercentOfWhatClassic",
"prototypeExpressions": [
"__percentage of what is 30"
- ],
- "identifier": "isPercentOfWhatClassic"
+ ]
},
{
+ "identifier": "isPercentOffWhat",
"prototypeExpressions": [
"30 is __percentage off what"
- ],
- "identifier": "isPercentOffWhat"
+ ]
},
{
+ "identifier": "isPercentOffWhatClassic",
"prototypeExpressions": [
"__percentage off what is 30"
- ],
- "identifier": "isPercentOffWhatClassic"
+ ]
},
{
+ "identifier": "isPercentOnWhat",
"prototypeExpressions": [
"30 is __percentage on what"
- ],
- "identifier": "isPercentOnWhat"
+ ]
},
{
+ "identifier": "isPercentOnWhatClassic",
"prototypeExpressions": [
"__percentage on what is 30"
- ],
- "identifier": "isPercentOnWhatClassic"
+ ]
},
{
+ "identifier": "isWhatPercentOf",
"prototypeExpressions": [
"10 is what % of 20",
"10 as a % of 20",
"10 as % of 20"
- ],
- "identifier": "isWhatPercentOf"
+ ]
},
{
+ "identifier": "isWhatPercentOff",
"prototypeExpressions": [
"10 is what % off 20",
"10 as a % off 20",
"10 as % off 20"
- ],
- "identifier": "isWhatPercentOff"
+ ]
},
{
+ "identifier": "isWhatPercentOn",
"prototypeExpressions": [
"20 is what % on 10",
"20 as a % on 10",
"20 as % on 10"
- ],
- "identifier": "isWhatPercentOn"
- },
- {
- "identifier": "xToYIsWhatPercentage",
- "prototypeExpressions": [
- "10 to 20 is what %"
- ]
- }
- ],
- "unitRelated": [
- {
- "prototypeExpressions": [
- "__unit in __unit_expression"
- ],
- "identifier": "unitInUnitExpression"
- },
- {
- "prototypeExpressions": [
- "__unit_expression __substance in __unit",
- "__unit_expression of __substance in __unit",
- "__unit_expression __substance as __unit",
- "__unit_expression of __substance as __unit",
- "__unit_expression __substance to __unit",
- "__unit_expression of __substance to __unit"
- ],
- "identifier": "substanceWeightToVolumeConversion"
- },
- {
- "prototypeExpressions": [
- "density of __substance",
- "__substance density"
- ],
- "identifier": "densityOfSubstance"
- },
- {
- "prototypeExpressions": [
- "__unit in __timespan"
- ],
- "identifier": "unitInTimespan"
- },
- {
- "identifier": "rateUnitChange",
- "prototypeExpressions": [
- "__rate is what / __unit",
- "__rate is how much / __unit",
- "__rate as / __unit",
- "__rate is what /__unit",
- "__rate is how much /__unit",
- "__rate as /__unit",
- "__rate is what per __unit",
- "__rate is how much per __unit",
- "__rate as per __unit",
- "__rate is what per__unit",
- "__rate is how much per__unit",
- "__rate as per__unit"
- ]
- }
- ],
- "datetime": [
- {
- "prototypeExpressions": [
- "__unit between __datestamp and __datestamp",
- "__unit between __datestamp to __datestamp",
- "__unit between __datestamp - __datestamp",
- "__unit between __datestamp − __datestamp",
- "__unit from __datestamp to __datestamp",
- "__unit in __datestamp to __datestamp"
- ],
- "identifier": "calendarUnitBetweenDates"
- },
- {
- "prototypeExpressions": [
- "__unit to __datestamp",
- "__unit before __datestamp",
- "__unit until __datestamp",
- "__unit till __datestamp"
- ],
- "identifier": "calendarUnitToDate"
- },
- {
- "identifier": "calendarUnitToDatespan",
- "prototypeExpressions": [
- "__unit to __datespan",
- "__unit before __datespan",
- "__unit until __datespan",
- "__unit till __datespan"
]
},
{
- "identifier": "calendarUnitInDate",
"prototypeExpressions": [
- "__unit in __datestamp"
- ]
- },
- {
- "identifier": "calendarUnitInDatespan",
- "prototypeExpressions": [
- "__unit in __datespan"
- ]
- },
- {
- "prototypeExpressions": [
- "__datestamp to __datestamp",
- "difference between __datestamp and __datestamp"
+ "10 to 20 is what %",
+ "10 to 20 as %",
+ "10 to 20 as a %",
+ "10 to 20 is what percent",
+ "10 to 20 as percent",
+ "10 to 20 as a percent",
+ "10 to 20 is what percentage",
+ "10 to 20 as percentage",
+ "10 to 20 as a percentage"
],
- "identifier": "intervalBetweenDates"
- },
- {
- "identifier": "inclusiveCalendarUnitBetweenDates",
- "prototypeExpressions": [
- "__unit between __datestamp through __datestamp",
- "__unit from __datestamp through __datestamp",
- "__unit in __datestamp through __datestamp"
- ]
- },
- {
- "identifier": "inclusiveIntervalBetweenDates",
- "prototypeExpressions": [
- "__datestamp through __datestamp"
- ]
- },
- {
- "identifier": "intervalBetweenTimestamps",
- "prototypeExpressions": [
- "__timestamp to __timestamp"
- ]
+ "identifier": "xToYIsWhatPercentage"
},
{
- "identifier": "calendarUnitSinceDate",
"prototypeExpressions": [
- "__unit since __datestamp"
- ]
- },
- {
- "prototypeExpressions": [
- "__timespan from __datestamp",
- "__timespan after __datestamp"
- ],
- "identifier": "calendarUnitExpressionAfterDate"
- },
- {
- "prototypeExpressions": [
- "__timespan before __datestamp"
- ],
- "identifier": "calendarUnitExpressionBeforeDate"
- },
- {
- "prototypeExpressions": [
- "__timespan ago"
- ],
- "identifier": "calendarUnitExpressionAgo"
- },
- {
- "prototypeExpressions": [
- "new timestamp",
- "current timestamp"
- ],
- "identifier": "generateTimestamp"
- },
- {
- "identifier": "timeInTimezone",
- "prototypeExpressions": [
- "__timezone time",
- "time __timezone",
- "time at __timezone",
- "time in __timezone"
- ]
- },
- {
- "prototypeExpressions": [
- "time difference between __timezone and __timezone",
- "difference between __timezone and __timezone",
- "time difference between __timezone & __timezone",
- "difference between __timezone & __timezone"
+ "10 to 20 is what x",
+ "10 to 20 as x",
+ "10 to 20 as a x",
+ "10 to 20 is what multiple",
+ "10 to 20 as multiple",
+ "10 to 20 as a multiple",
+ "10 to 20 is what multiplier",
+ "10 to 20 as multiplier",
+ "10 to 20 as a multiplier"
],
- "identifier": "differenceBetweenTimezones"
- },
- {
- "identifier": "weekdayAfterTimespan",
- "prototypeExpressions": [
- "__datestamp in __timespan",
- "__datestamp after __timespan"
- ]
- },
- {
- "identifier": "weekNumberOnDate",
- "prototypeExpressions": [
- "week number on __datestamp",
- "week number __datestamp"
- ]
- },
- {
- "identifier": "weekOfYear",
- "prototypeExpressions": [
- "week of year"
- ]
- },
- {
- "prototypeExpressions": [
- "halfway between __datestamp and __datestamp",
- "midpoint between __datestamp and __datestamp"
- ],
- "identifier": "halfwayBetweenDates"
+ "identifier": "xToYIsWhatMultiplier"
}
],
"general": [
{
+ "identifier": "remainder",
"prototypeExpressions": [
"remainder of 20 divided by 3"
- ],
- "identifier": "remainder"
+ ]
},
{
+ "identifier": "halfOf",
"prototypeExpressions": [
"half of 20"
- ],
- "identifier": "halfOf"
+ ]
},
{
+ "identifier": "lesserOf",
"prototypeExpressions": [
"smaller of 2 and 30",
"lesser of 2 and 30"
- ],
- "identifier": "lesserOf"
+ ]
},
{
+ "identifier": "greaterOf",
"prototypeExpressions": [
"larger of 2 and 30",
"greater of 2 and 30"
- ],
- "identifier": "greaterOf"
+ ]
},
{
+ "identifier": "midpoint",
"prototypeExpressions": [
"midpoint between 2 and 32"
- ],
- "identifier": "midpoint"
+ ]
},
{
+ "identifier": "lcm",
"prototypeExpressions": [
"lcm of 5 and 8",
"lowest common multiple of 5 and 8"
- ],
- "identifier": "lcm"
+ ]
},
{
+ "identifier": "gcd",
"prototypeExpressions": [
"gcd of 20 and 30",
"greatest common divisor of 5 and 8",
"gcf of 20 and 30",
"greatest common factor of 5 and 8"
- ],
- "identifier": "gcd"
+ ]
},
{
+ "identifier": "proportionsFindNumerator",
"prototypeExpressions": [
"6 is to 600 as what is to 8",
"6 to 600 is what to 8",
"6 to 600 as what to 8"
- ],
- "identifier": "proportionsFindNumerator"
+ ]
},
{
+ "identifier": "proportionsFindDenominator",
"prototypeExpressions": [
"6 is to 600 as 8 is to what",
"6 to 600 as 8 to what",
"6 to 600 is 8 to what"
- ],
- "identifier": "proportionsFindDenominator"
+ ]
},
{
+ "identifier": "makeRandomNumber",
"prototypeExpressions": [
"random number between 1 and 5",
"random between 1 and 5"
- ],
- "identifier": "makeRandomNumber"
+ ]
},
{
+ "identifier": "asMultiplierOf",
"prototypeExpressions": [
"5 as multiplier of 1",
"5 as multiple of 1",
@@ -513,35 +455,35 @@
"5 is what x of 1",
"5 is what multiple of 1",
"5 is what multiplier of 1"
- ],
- "identifier": "asMultiplierOf"
+ ]
},
{
+ "identifier": "squareRoot",
"prototypeExpressions": [
"square root of 100",
"squared root of 100",
"squared root 100",
"square root 100"
- ],
- "identifier": "squareRoot"
+ ]
},
{
+ "identifier": "cubedRoot",
"prototypeExpressions": [
"cubed root of 100",
"cubed root 100",
"cube root of 100",
"cube root 100"
- ],
- "identifier": "cubedRoot"
+ ]
},
{
+ "identifier": "nthRoot",
"prototypeExpressions": [
"5 root of 100",
"root 5 of 100"
- ],
- "identifier": "nthRoot"
+ ]
},
{
+ "identifier": "nthLog",
"prototypeExpressions": [
"log 20 base 4",
"log of 20 to base 4",
@@ -549,8 +491,103 @@
"logarithm 20 base 4",
"logarithm of 20 to base 4",
"logarithm of 20 with base 4"
+ ]
+ },
+ {
+ "identifier": "scrubNumberWithSpecifiedRange",
+ "prototypeExpressions": [
+ "scrub 10 from 0 to 10",
+ "scrubber 10 from 0 to 10",
+ "scrub 10 between 0 and 10",
+ "scrubber 10 between 0 and 10"
+ ]
+ },
+ {
+ "identifier": "xToY",
+ "prototypeExpressions": [
+ "5 to 10"
+ ]
+ }
+ ],
+ "unitRelated": [
+ {
+ "identifier": "unitInUnitExpression",
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ]
+ },
+ {
+ "identifier": "substanceWeightToVolumeConversion",
+ "prototypeExpressions": [
+ "__unit_expression __substance in __unit",
+ "__unit_expression of __substance in __unit",
+ "__unit_expression __substance as __unit",
+ "__unit_expression of __substance as __unit",
+ "__unit_expression __substance to __unit",
+ "__unit_expression of __substance to __unit"
+ ]
+ },
+ {
+ "identifier": "densityOfSubstance",
+ "prototypeExpressions": [
+ "density of __substance",
+ "__substance density"
+ ]
+ },
+ {
+ "identifier": "unitInTimespan",
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__rate is what / __unit",
+ "__rate is how much / __unit",
+ "__rate as / __unit",
+ "__rate is what /__unit",
+ "__rate is how much /__unit",
+ "__rate as /__unit",
+ "__rate is what per __unit",
+ "__rate is how much per __unit",
+ "__rate as per __unit",
+ "__rate is what per__unit",
+ "__rate is how much per__unit",
+ "__rate as per__unit"
],
- "identifier": "nthLog"
+ "identifier": "rateUnitChange"
+ }
+ ],
+ "tagRelated": [
+ {
+ "identifier": "tagTotal",
+ "prototypeExpressions": [
+ "total of __tag",
+ "total __tag",
+ "__tag total",
+ "sum of __tag",
+ "sum __tag",
+ "__tag sum"
+ ]
+ },
+ {
+ "identifier": "tagAverage",
+ "prototypeExpressions": [
+ "average of __tag",
+ "average __tag",
+ "__tag average",
+ "mean of __tag",
+ "mean __tag",
+ "__tag mean"
+ ]
+ },
+ {
+ "identifier": "tagCount",
+ "prototypeExpressions": [
+ "count of __tag",
+ "count __tag",
+ "__tag count"
+ ]
}
]
-}
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/LocalizedFixtures.json
index c7c2da4e4..3ad32e34b 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/en.lproj/LocalizedFixtures.json
@@ -85,6 +85,8 @@
"decimalPlacesTypes": [
"dp",
"digit",
+ "decimal points",
+ "decimal places",
"digits"
],
"laptimeTypes": [
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
index 295869c34..0b398303b 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
@@ -3,8 +3,6 @@
{
"identifier": "reversedPercentOf",
"prototypeExpressions": [
- "100的__percentage",
- "100之__percentage",
"100 的 __percentage",
"100 之 __percentage"
]
@@ -12,8 +10,6 @@
{
"identifier": "reversedPercentOff",
"prototypeExpressions": [
- "100减__percentage",
- "100去__percentage",
"100 减 __percentage",
"100 去 __percentage"
]
@@ -21,8 +17,6 @@
{
"identifier": "reversedPercentOn",
"prototypeExpressions": [
- "100加__percentage",
- "100加上__percentage",
"100 加 __percentage",
"100 加上 __percentage"
]
@@ -31,9 +25,7 @@
"identifier": "isPercentOfWhat",
"prototypeExpressions": [
"30 是多少的 __percentage",
- "30 是什么的 __percentage",
- "30是多少的__percentage",
- "30是什么的__percentage"
+ "30 是什么的 __percentage"
]
},
{
@@ -41,12 +33,8 @@
"prototypeExpressions": [
"多少的 __percentage 是 30",
"多少的 __percentage 为 30",
- "多少的__percentage是30",
- "多少的__percentage为30",
"什么的 __percentage 为 30",
- "什么的 __percentage 是 30",
- "什么的__percentage为30",
- "什么的__percentage是30"
+ "什么的 __percentage 是 30"
]
},
{
@@ -54,12 +42,8 @@
"prototypeExpressions": [
"多少减去 __percentage 是 30",
"多少减 __percentage 是 30",
- "多少减去__percentage是30",
- "多少减__percentage是30",
"什么减去 __percentage 是 30",
- "什么减 __percentage 是 30",
- "什么减去__percentage是30",
- "什么减__percentage是30"
+ "什么减 __percentage 是 30"
]
},
{
@@ -67,12 +51,8 @@
"prototypeExpressions": [
"30 是多少加 __percentage",
"30 是多少加上 __percentage",
- "30 是多少加__percentage",
- "30 是多少加上__percentage",
"30 是什么加 __percentage",
- "30 是什么加上 __percentage",
- "30 是什么加__percentage",
- "30 是什么加上__percentage"
+ "30 是什么加上 __percentage"
]
},
{
@@ -82,30 +62,18 @@
"多少加 __percentage 为 30",
"多少加上 __percentage 是 30",
"多少加上 __percentage 为 30",
- "多少加__percentage是30",
- "多少加__percentage为30",
- "多少加上__percentage是30",
- "多少加上__percentage为30",
"什么加 __percentage 是 30",
"什么加 __percentage 为 30",
"什么加上 __percentage 是 30",
- "什么加上 __percentage 为 30",
- "什么加__percentage是30",
- "什么加__percentage为30",
- "什么加上__percentage是30",
- "什么加上__percentage为30"
+ "什么加上 __percentage 为 30"
]
},
{
"identifier": "isWhatPercentOf",
"prototypeExpressions": [
"10 是 20 里的百分比为",
- "10是20里的百分比为",
"10 在 20 里的百分比为",
- "10在20里的百分比为",
- "10是20里的占比为",
"10 是 20 里的占比为",
- "10在20里的占比为",
"10 在 20 里的占比为"
]
},
@@ -113,26 +81,18 @@
"identifier": "isWhatPercentOff",
"prototypeExpressions": [
"10 是 20 去掉百分之多少",
- "10是20去掉百分之多少",
"10 是 20 减去百分之多少",
- "10是20减去百分之多少",
"10 是 20 减百分之多少",
- "10是20减百分之多少",
"10 是 20 去掉百分之几",
- "10是20去掉百分之几",
"10 是 20 减去百分之几",
- "10是20减去百分之几",
- "10 是 20 减百分之几",
- "10是20减百分之几"
+ "10 是 20 减百分之几"
]
},
{
"identifier": "isWhatPercentOn",
"prototypeExpressions": [
"20 是 10 加百分之多少",
- "20 是 10 加上百分之几",
- "20是10加百分之多少",
- "20是10加上百分之几"
+ "20 是 10 加上百分之几"
]
}
],
@@ -141,27 +101,19 @@
"identifier": "remainder",
"prototypeExpressions": [
"20 除以 3 的余数",
- "20除以3的余数",
- "20 除 3 之余",
- "20除3之余"
+ "20 除 3 之余"
]
},
{
"identifier": "halfOf",
"prototypeExpressions": [
"20 的一半为",
- "20 的一半是",
- "20 的一般",
- "20的一半为",
- "20的一半是"
+ "20 的一半是"
]
},
{
"identifier": "lesserOf",
"prototypeExpressions": [
- "2和30之间小的一个数",
- "2和30之间较小的一个数",
- "2和30之间最小的一个数",
"2 和 30 之间小的一个数",
"2 和 30 之间较小的一个数",
"2 和 30 之间最小的一个数"
@@ -170,9 +122,6 @@
{
"identifier": "greaterOf",
"prototypeExpressions": [
- "2和30之间大的一个数",
- "2和30之间较大的一个数",
- "2和30之间最大的一个数",
"2 和 30 之间大的一个数",
"2 和 30 之间较大的一个数",
"2 和 30 之间最大的一个数"
@@ -183,31 +132,28 @@
"prototypeExpressions": [
"2 与 32 的中间点",
"2 与 32 的中间数",
- "2 与 32 的中间值",
"2 和 32 的中间点",
"2 和 32 的中间数",
"2 和 32 的中间值",
- "2 与 32 的中间点",
- "2 与 32 的中间数",
"2 与 32 的中间值"
]
},
{
"identifier": "proportionsFindNumerator",
"prototypeExpressions": [
- "多少除以8相当于6除以600",
- "多少除以8等于6除以600",
- "什么除以8相当于6除以600",
- "什么除以8等于6除以600"
+ "多少除以 8 相当于 6除以 600",
+ "多少除以 8 等于 6除以 600",
+ "什么除以 8 相当于 6除以 600",
+ "什么除以 8 等于 6除以 600"
]
},
{
"identifier": "proportionsFindDenominator",
"prototypeExpressions": [
- "8除以多少相当于6除以600",
- "8除以多少等于6除以600",
- "8除以什么相当于6除以600",
- "8除以什么等于6除以600"
+ "8 除以多少相当于 6除以 600",
+ "8 除以多少等于 6除以 600",
+ "8 除以什么相当于 6除以 600",
+ "8 除以什么等于 6除以 600"
]
},
{
@@ -215,10 +161,7 @@
"prototypeExpressions": [
"1 到 5 之间的任意数",
"1 与 5 之间的任意数",
- "1 和 5 之间的任意数",
- "1到5之间的任意数",
- "1与5之间的任意数",
- "1和5之间的任意数"
+ "1 和 5 之间的任意数"
]
}
],
@@ -247,7 +190,9 @@
"从 __datestamp 到 __datestamp",
"从 __datestamp 至 __datestamp",
"__datestamp 到 __datestamp",
- "__datestamp 至 __datestamp"
+ "__datestamp 至 __datestamp",
+ "__datestamp 日到 __datestamp",
+
]
},
{
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings
index f6af12ce3..5d6bbb808 100644
Binary files a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings and b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
index 89c0c6c7b..5056142c7 100644
--- a/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64_x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
@@ -67,8 +67,8 @@
"π"
],
"commas" : [
- ",",
- ","
+ ",",
+ ","
],
"monthOfYearDateAliases": [
],
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h
index ab5d96ef8..898b5fa93 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h
@@ -1,6 +1,6 @@
#if 0
#elif defined(__arm64__) && __arm64__
-// Generated by Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// Generated by Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
#ifndef SOULVERCORE_SWIFT_H
#define SOULVERCORE_SWIFT_H
#pragma clang diagnostic push
@@ -259,7 +259,7 @@ SWIFT_CLASS("_TtC11SoulverCore46VanillaBackgroundEvaluationAndMergingOperation")
#endif
#elif defined(__x86_64__) && __x86_64__
-// Generated by Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// Generated by Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
#ifndef SOULVERCORE_SWIFT_H
#define SOULVERCORE_SWIFT_H
#pragma clang diagnostic push
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftdoc b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftdoc
index c0e62e214..51c9bed40 100644
Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftdoc and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftdoc differ
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface
index 6ea3da845..a02929634 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target arm64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc
index c0e62e214..51c9bed40 100644
Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
index 6ea3da845..a02929634 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target arm64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc
index 8fa243b29..18f76fd4a 100644
Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc differ
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface
index dc0e5d678..1bf39fbc4 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target x86_64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
index 8fa243b29..18f76fd4a 100644
Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
index dc0e5d678..1bf39fbc4 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
@@ -1,9 +1,10 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
+// swift-compiler-version: Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)
// swift-module-flags: -target x86_64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
import Foundation
@_exported import SoulverCore
import Swift
+import _Concurrency
final public class VariableList : Swift.CustomDebugStringConvertible, Swift.Equatable, Swift.Hashable {
public init()
convenience public init(variableList: SoulverCore.VariableList)
@@ -67,7 +68,7 @@ public struct CalculationResult : Swift.Equatable {
public let stringValue: Swift.String
public static func == (a: SoulverCore.CalculationResult, b: SoulverCore.CalculationResult) -> Swift.Bool
}
-extension CalculationResult {
+extension SoulverCore.CalculationResult {
public var isEmptyResult: Swift.Bool {
get
}
@@ -548,6 +549,12 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
case currencySHP
case currencySLL
case currencySOS
+ case currencySOL
+ case currencyAVAX
+ case currencyLUNA
+ case currencyDOT
+ case currencyMATIC
+ case currencySHIB
case currencySRD
case currencySTD
case currencySVC
@@ -611,7 +618,7 @@ public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIte
get
}
}
-extension Int {
+extension Swift.Int {
public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
}
public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
@@ -640,7 +647,7 @@ public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
get
}
}
-extension EngineCustomization {
+extension SoulverCore.EngineCustomization {
public static func standardWith(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
public func isOperator(text: Swift.String) -> Swift.Bool
public func longFormNameFor(unit: SoulverCore.SCUnit) -> Swift.String?
@@ -657,23 +664,23 @@ public struct UnitExpression {
public let value: Foundation.Decimal
public let unit: SoulverCore.SCUnit
}
-extension UnitExpression : Swift.Comparable {
+extension SoulverCore.UnitExpression : Swift.Comparable {
public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
}
-extension UnitExpression : Swift.Hashable {
+extension SoulverCore.UnitExpression : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var prefersZeroDP: Swift.Bool {
get
}
}
public typealias RawExpression = Swift.String
-extension Locale {
+extension Foundation.Locale {
public static let chineseLocalePrefix: Swift.String
public var isChinese: Swift.Bool {
get
@@ -750,7 +757,7 @@ final public class Line : Swift.Codable {
final public func encode(to encoder: Swift.Encoder) throws
@objc deinit
}
-extension Line {
+extension SoulverCore.Line {
final public var isSubtotal: Swift.Bool {
get
}
@@ -758,7 +765,7 @@ extension Line {
get
}
}
-extension Line {
+extension SoulverCore.Line {
final public var declaredVariable: SoulverCore.Variable? {
get
}
@@ -767,7 +774,7 @@ extension Line {
get
}
}
-extension Line : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.Line : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
public static var EmptyLine: SoulverCore.Line {
@@ -777,7 +784,7 @@ extension Line : Swift.Equatable, Swift.Hashable {
get
}
}
-extension Line : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Line : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
@@ -812,7 +819,7 @@ public enum LineExpressionAlignment : Swift.String, Swift.Codable {
get
}
}
-extension NSNotification.Name {
+extension Foundation.NSNotification.Name {
public static let currenciesUpdateSucceeded: Foundation.Notification.Name
public static let currenciesUpdateFailed: Foundation.Notification.Name
public static let currenciesUpdateStarted: Foundation.Notification.Name
@@ -869,7 +876,7 @@ public struct Variable : Swift.Codable {
public func encode(to encoder: Swift.Encoder) throws
public init(from decoder: Swift.Decoder) throws
}
-extension Variable : Swift.Hashable, Swift.Equatable {
+extension SoulverCore.Variable : Swift.Hashable, Swift.Equatable {
public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -882,16 +889,16 @@ public struct UnitRate {
public let ofUnit: SoulverCore.SCUnit?
public let perUnit: SoulverCore.SCUnit
}
-extension UnitRate : Swift.Comparable {
+extension SoulverCore.UnitRate : Swift.Comparable {
public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
}
-extension UnitRate : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitRate : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension UnitExpression : Swift.CustomDebugStringConvertible {
+extension SoulverCore.UnitExpression : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
@@ -915,7 +922,7 @@ public protocol Routine : AnyObject {
func go()
func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
-extension Routine {
+extension SoulverCore.Routine {
public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
}
@_hasMissingDesignatedInitializers final public class StaticResouces {
@@ -930,7 +937,7 @@ extension Routine {
}
@objc deinit
}
-public typealias DynamicVariableDefinitonBlock = (SoulverCore.VariableList) -> SoulverCore.CalculationResult
+public typealias DynamicVariableDefinitonBlock = (_ variableList: SoulverCore.VariableList) -> SoulverCore.CalculationResult
public struct DynamicVariable : Swift.Hashable, Swift.Equatable {
public enum DynamicVariableType {
case undefined
@@ -964,11 +971,12 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
-extension NumberFormatter {
+extension Foundation.NumberFormatter {
open func string(from number: Foundation.Decimal) -> Swift.String?
}
public enum DatestampType {
case clockTime
+ case utcTime
case nakedDayOfMonth
case nakedMonth
case nakedYear
@@ -1031,15 +1039,15 @@ final public class Calculator {
public protocol CustomFunctionEvaluator {
func evaluate(customFunction: SoulverCore.CustomFunction, with parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
}
-extension Calculator {
+extension SoulverCore.Calculator {
final public func dateFor(_ expression: Swift.String, with variableList: SoulverCore.VariableList? = nil) -> (date: Foundation.Date, result: SoulverCore.CalculationResult)?
}
-extension Calculator {
+extension SoulverCore.Calculator {
public static var basic: SoulverCore.Calculator {
get
}
}
-extension IndexSet {
+extension Foundation.IndexSet {
public func isJust(_ integer: Swift.Int) -> Swift.Bool
public var onlyFirst: Foundation.IndexSet {
get
@@ -1054,7 +1062,7 @@ extension IndexSet {
get
}
}
-public typealias CustomFunctionHandler = ([SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
+public typealias CustomFunctionHandler = (_ parameters: [SoulverCore.EvaluationResult]) -> SoulverCore.EvaluationResult
public typealias PrototypePlaceholder = Swift.String
public struct CustomType : Swift.Hashable, Swift.Equatable {
public init(prototypePlaceholder: SoulverCore.PrototypePlaceholder, symbols: [Swift.String], associatedObject: Any?)
@@ -1102,12 +1110,12 @@ public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
get
}
}
-extension Token : Swift.CustomDebugStringConvertible {
+extension SoulverCore.Token : Swift.CustomDebugStringConvertible {
public var debugDescription: Swift.String {
get
}
}
-extension TokenList : Swift.Equatable, Swift.Hashable {
+extension SoulverCore.TokenList : Swift.Equatable, Swift.Hashable {
public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
final public func hash(into hasher: inout Swift.Hasher)
final public var hashValue: Swift.Int {
@@ -1140,17 +1148,17 @@ extension TokenList : Swift.Equatable, Swift.Hashable {
final public func tokenBefore(_ token: SoulverCore.Token, mustBeIn types: SoulverCore.TokenTypeSet, ignoreWhitespace: Swift.Bool = true, ignoreTypes: SoulverCore.TokenTypeSet? = nil) -> SoulverCore.Token?
@objc deinit
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var rebuiltExpression: SoulverCore.RawExpression {
get
}
}
-extension TokenList : Swift.CustomDebugStringConvertible {
+extension SoulverCore.TokenList : Swift.CustomDebugStringConvertible {
final public var debugDescription: Swift.String {
get
}
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
final public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
final public func tokenFor(characterIndex: Swift.Int, ignoreWhitespace: Swift.Bool = true) -> SoulverCore.Token?
@@ -1160,27 +1168,27 @@ public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.Tok
public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
-extension TokenList {
- final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+extension SoulverCore.TokenList {
+ final public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (_ subList: SoulverCore.TokenList, _ parent: SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokens(reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
final public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
- final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
- final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokens(reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
+ final public func enumerateTokensOfTypes(_ types: SoulverCore.TokenTypeSet, reversed: Swift.Bool, enumerationBlock: (_ token: SoulverCore.Token, _ stop: inout Swift.Bool) -> Swift.Void)
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func containsToken(token: SoulverCore.Token) -> Swift.Bool
final public func scanForTokenWithTypes(_ tokenTypes: SoulverCore.TokenTypeSet, ignoreParentsWithTypes parentTypes: SoulverCore.TokenTypeSet? = nil) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
final public func typesPrecheck(_ types: SoulverCore.TokenTypeSet) -> Swift.Bool
}
-extension TokenList {
+extension SoulverCore.TokenList {
public static var EmptyList: SoulverCore.TokenList
}
-extension String {
+extension Swift.String {
public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
public func wrappedIn(_ character: Swift.String) -> Swift.String
public func bracketed() -> Swift.String
@@ -1193,6 +1201,7 @@ extension String {
public static let standardDash: Swift.String
public static let standardHash: Swift.String
public static let newlineSymbol: Swift.String
+ public static let standardQuestionMark: Swift.String
public var isNewline: Swift.Bool {
get
}
@@ -1221,7 +1230,7 @@ extension String {
public func firstWord() -> Swift.String?
public func lastWord() -> Swift.String?
}
-extension String {
+extension Swift.String {
public var completeStringRange: Foundation.NSRange {
get
}
@@ -1250,7 +1259,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
@@ -1261,7 +1270,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsPattern(_ regex: Swift.String) -> Swift.Bool
public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
@@ -1270,7 +1279,7 @@ extension String {
get
}
}
-extension String {
+extension Swift.String {
public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
public func rangesOf(string: Swift.String) -> [Swift.Range]
public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
@@ -1318,6 +1327,7 @@ public enum TokenType : Swift.CaseIterable {
case conditionalExpression
case percentage
case multiplier
+ case dpSpecifier
case boolean
case rate
case functionExpression
@@ -1337,6 +1347,7 @@ public enum TokenType : Swift.CaseIterable {
case error
case pending
case failed
+ case remoteQuery
case scalar
case unidentified
case customInternal
@@ -1503,10 +1514,10 @@ indirect public enum EvaluationResult {
get
}
}
-extension EvaluationResult : Swift.Equatable {
+extension SoulverCore.EvaluationResult : Swift.Equatable {
public static func == (lhs: SoulverCore.EvaluationResult, rhs: SoulverCore.EvaluationResult) -> Swift.Bool
}
-extension Token {
+extension SoulverCore.Token {
public var number: Foundation.Decimal? {
get
}
@@ -1581,7 +1592,7 @@ extension Token {
}
}
final public class LineCollection {
- public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public typealias EvaluatedLinesHandler = (_ evaluatedIndexes: Foundation.IndexSet) -> Swift.Void
final public var lineSheet: SoulverCore.LineSheet {
get
set
@@ -1688,6 +1699,7 @@ final public class LineCollection {
get
set
}
+ final public var remoteQueryEvaluator: SoulverCore.RemoteQueryEvaluator?
final public func addSubsheet(reference: SoulverCore.LineReference? = nil) -> SoulverCore.LineReference
final public func set(content lineSheet: SoulverCore.LineSheet, forSubsheetWith reference: SoulverCore.LineReference)
final public func contentForSubsheetWith(reference: SoulverCore.LineReference) -> SoulverCore.LineSheet?
@@ -1695,7 +1707,7 @@ final public class LineCollection {
@objc deinit
}
public typealias LineCollectionStateTicket = Swift.String
-extension LineCollection : Swift.CustomDebugStringConvertible {
+extension SoulverCore.LineCollection : Swift.CustomDebugStringConvertible {
public typealias MultiLineText = Swift.String
final public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
@@ -1714,7 +1726,7 @@ extension LineCollection : Swift.CustomDebugStringConvertible {
get
}
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var indexesOfTimeDependentLines: Foundation.IndexSet {
get
}
@@ -1728,16 +1740,19 @@ extension LineCollection {
public func next() -> SoulverCore.Line?
@objc deinit
}
-extension LineCollection : Swift.Sequence {
+extension SoulverCore.LineCollection : Swift.Sequence {
final public func makeIterator() -> SoulverCore.LineCollectionIterator
public typealias Element = SoulverCore.LineCollectionIterator.Element
public typealias Iterator = SoulverCore.LineCollectionIterator
}
-extension LineCollection {
+extension SoulverCore.LineCollection {
final public var text: SoulverCore.LineCollection.MultiLineText {
get
}
}
+public protocol RemoteQueryEvaluator {
+ func evaluate(expression: Swift.String, forLineWith reference: SoulverCore.LineReference, in lineCollection: SoulverCore.LineCollection)
+}
public struct ExpressionBeautificationOptions {
public var quickOperators: Swift.Bool
public var autoThousandsSeparators: Swift.Bool
@@ -1756,7 +1771,7 @@ public struct Timestamp : Swift.Equatable {
public let decimalValue: Foundation.Decimal
public static func == (a: SoulverCore.Timestamp, b: SoulverCore.Timestamp) -> Swift.Bool
}
-extension _NSRange {
+extension Foundation._NSRange {
public static var zero: Foundation.NSRange {
get
}
@@ -1845,15 +1860,15 @@ public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
public class func fusingTokensOfTypes(_ tokenTypeSet: SoulverCore.TokenTypeSet, from lineCollection: SoulverCore.LineCollection) -> SoulverCore.LineCollection
@objc deinit
}
-extension Array where Element : Swift.Equatable {
+extension Swift.Array where Element : Swift.Equatable {
public func doesNotContain(_ element: Element) -> Swift.Bool
}
-extension Collection {
+extension Swift.Collection {
public var isNotEmpty: Swift.Bool {
get
}
}
-extension Array {
+extension Swift.Array {
public subscript(safe index: Swift.Array.Index) -> Element? {
get
}
@@ -1991,6 +2006,7 @@ public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codabl
public var inAmbiguityPreferSomethingToNothing: Swift.Bool
public var seeksFutureDate: Swift.Bool
public var leftToRightOperatorEvaluation: Swift.Bool
+ public var remoteQueries: Swift.Bool
public init()
public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
public init(from decoder: Swift.Decoder) throws
@@ -2023,7 +2039,7 @@ public struct Fraction : Swift.Equatable {
get
}
}
-extension SCUnit {
+extension SoulverCore.SCUnit {
public var unitType: SoulverCore.UnitType {
get
}
@@ -2052,7 +2068,7 @@ public typealias PrivateUnicodeSymbol = Swift.String
public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
@objc deinit
}
-extension Decimal {
+extension Foundation.Decimal {
public var doubleValue: Swift.Double {
get
}
@@ -2085,10 +2101,12 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case isWhatPercentOf
case isWhatPercentOff
case isWhatPercentOn
- case xToYIsWhatPercentage
case reversedPercentOf
case reversedPercentOff
case reversedPercentOn
+ case xToYIsWhatPercentage
+ case xToYIsWhatMultiplier
+ case xToY
case calendarUnitBetweenDates
case inclusiveCalendarUnitBetweenDates
case intervalBetweenDates
@@ -2130,6 +2148,7 @@ public enum FunctionIdentifier : Swift.String, Swift.CaseIterable, Swift.Codable
case tagTotal
case tagAverage
case tagCount
+ case scrubNumberWithSpecifiedRange
public var returnType: SoulverCore.TokenType? {
get
}
@@ -2209,7 +2228,7 @@ public enum TokenListForm : Swift.Equatable {
public struct TokenListMetadata {
public let form: SoulverCore.TokenListForm
}
-extension TokenList {
+extension SoulverCore.TokenList {
final public var metadata: SoulverCore.TokenListMetadata {
get
}
@@ -2229,6 +2248,9 @@ public struct NotationPreferences : Swift.Equatable, Swift.Hashable {
public var upperNotationThreshold: SoulverCore.SIThreshold
public var lowerNotationThreshold: SoulverCore.SIThreshold
public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static var off: SoulverCore.NotationPreferences {
+ get
+ }
public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
@@ -2281,7 +2303,7 @@ public typealias PrototypeExpressionMatchTypeHandler = (SoulverCore.Token) -> So
public class func prototypeStringFrom(expression: SoulverCore.RawExpression, matchTypeHandler: (SoulverCore.Token) -> SoulverCore.PrototypeExpressionMatchType) -> SoulverCore.PrototypeExpression
@objc deinit
}
-extension String {
+extension Swift.String {
public func foundationLocalized() -> Swift.String
public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
}
@@ -2299,7 +2321,7 @@ public struct Holiday : Swift.Hashable, Swift.Equatable, Swift.Codable {
}
public init(from decoder: Swift.Decoder) throws
}
-extension Holiday {
+extension SoulverCore.Holiday {
public func isOnSameDayAs(otherHoliday: SoulverCore.Holiday) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist
index 29dab9dcf..f71763ee1 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist
@@ -3,7 +3,7 @@
BuildMachineOSBuild
- 20G165
+ 21C52
CFBundleDevelopmentRegion
en
CFBundleExecutable
@@ -17,29 +17,29 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 1.4.2
+ 1.4.3
CFBundleSupportedPlatforms
MacOSX
CFBundleVersion
- 20
+ 21
DTCompiler
com.apple.compilers.llvm.clang.1_0
DTPlatformBuild
- 12E507
+ 13A1030d
DTPlatformName
macosx
DTPlatformVersion
- 11.3
+ 12.0
DTSDKBuild
- 20E214
+ 21A344
DTSDKName
- macosx11.3
+ macosx12.0
DTXcode
- 1251
+ 1310
DTXcodeBuild
- 12E507
+ 13A1030d
LSMinimumSystemVersion
10.14.4
NSHumanReadableCopyright
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json
index c6e0f02fd..f0292909d 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/CurrencyDescriptions.json
@@ -198,6 +198,43 @@
],
"symbol": "LTC"
},
+ "SOL": {
+ "aliases": [
+ "solana"
+ ],
+ "symbol": "SOL"
+ },
+ "AVAX": {
+ "aliases": [
+ "avalanche"
+ ],
+ "symbol": "AVAX"
+ },
+ "LUNA": {
+ "aliases": [
+ "terra"
+ ],
+ "symbol": "LUNA"
+ },
+ "DOT": {
+ "aliases": [
+ "polkadot"
+ ],
+ "symbol": "DOT"
+ },
+ "MATIC": {
+ "aliases": [
+ "polygon"
+ ],
+ "symbol": "MATIC"
+ },
+ "SHIB": {
+ "aliases": [
+ "shiba inu"
+ ],
+ "symbol": "SHIB"
+ },
+
"GTQ": {
"aliases": [
"guatemalan quetzal",
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/DefaultCurrencyRates.json
index 3d6f60aa7..176e807b2 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/DefaultCurrencyRates.json
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/DefaultCurrencyRates.json
@@ -1,30 +1,30 @@
{
"HRK" : {
- "value" : 0.15804035023005933,
+ "value" : 0.15083133708058707,
"code" : "HRK"
},
"HUF" : {
- "value" : 0.0033830675042370471,
+ "value" : 0.0030511245142129219,
"code" : "HUF"
},
"CDF" : {
- "value" : 0.0005007511700700813,
+ "value" : 0.00049950042739479344,
"code" : "CDF"
},
"XMR" : {
- "value" : 121.02161715,
+ "value" : 232.10788493999999,
"code" : "XMR"
},
"ILS" : {
- "value" : 0.31173527440497528,
+ "value" : 0.31908613730276486,
"code" : "ILS"
},
"NGN" : {
- "value" : 0.0024301608999568202,
+ "value" : 0.0024310771397793992,
"code" : "NGN"
},
"GYD" : {
- "value" : 0.0047792022195303312,
+ "value" : 0.004774328268842081,
"code" : "GYD"
},
"BYR" : {
@@ -32,239 +32,243 @@
"code" : "BYR"
},
"BHD" : {
- "value" : 2.6530758434791375,
+ "value" : 2.6524002896421117,
"code" : "BHD"
},
"SZL" : {
- "value" : 0.069777506048663118,
+ "value" : 0.064298414600421031,
"code" : "SZL"
},
"INR" : {
- "value" : 0.013589634196672827,
+ "value" : 0.013342219251354735,
"code" : "INR"
},
"SDG" : {
- "value" : 0.0022547744612465576,
+ "value" : 0.0022856819674773694,
"code" : "SDG"
},
"PEN" : {
- "value" : 0.24356791927964302,
+ "value" : 0.24946552012313619,
"code" : "PEN"
},
"EUR" : {
- "value" : 1.1817607052747889,
+ "value" : 1.1314713087162893,
"code" : "EUR"
},
"TRX" : {
- "value" : 0.026469659999999996,
+ "value" : 0.081818127000000004,
"code" : "TRX"
},
- "QAR" : {
- "value" : 0.27464793567745349,
- "code" : "QAR"
- },
"PGK" : {
- "value" : 0.28117404786032174,
+ "value" : 0.28449421196525754,
"code" : "PGK"
},
+ "QAR" : {
+ "value" : 0.27465457380888492,
+ "code" : "QAR"
+ },
"LRD" : {
- "value" : 0.0058190208744397457,
+ "value" : 0.0069771490067222523,
"code" : "LRD"
},
"ISK" : {
- "value" : 0.0078567156931225613,
+ "value" : 0.0076757790829416672,
"code" : "ISK"
},
"SYP" : {
- "value" : 0.00079518185193483003,
+ "value" : 0.00039801109351087036,
"code" : "SYP"
},
"TRY" : {
- "value" : 0.11824307346856006,
+ "value" : 0.087971653421947765,
"code" : "TRY"
},
"UAH" : {
- "value" : 0.037482203449802035,
+ "value" : 0.036708018984212762,
"code" : "UAH"
},
"SGD" : {
- "value" : 0.74307454523837824,
+ "value" : 0.73684365651296102,
"code" : "SGD"
},
"MMK" : {
- "value" : 0.00060747964796017387,
+ "value" : 0.00056194304981418346,
"code" : "MMK"
},
"NIO" : {
- "value" : 0.028474987044592771,
+ "value" : 0.028219593134421322,
"code" : "NIO"
},
"BIF" : {
- "value" : 0.00050368851071210051,
+ "value" : 0.00050106033963171577,
"code" : "BIF"
},
"AFN" : {
- "value" : 0.01150998450871185,
+ "value" : 0.0096840506803558858,
"code" : "AFN"
},
"LKR" : {
- "value" : 0.0049623385302184483,
+ "value" : 0.0049340636892296168,
"code" : "LKR"
},
"GTQ" : {
- "value" : 0.12916086895816131,
+ "value" : 0.12942676755224344,
"code" : "GTQ"
},
"LTC" : {
- "value" : 47.327861009999999,
+ "value" : 157.16820727999999,
"code" : "LTC"
},
"XRP" : {
- "value" : 0.24379759000000001,
+ "value" : 0.92282003999999995,
"code" : "XRP"
},
"CHF" : {
- "value" : 1.0862245008798419,
+ "value" : 1.0885420068360439,
"code" : "CHF"
},
+ "LUNA" : {
+ "value" : 98.781760340000005,
+ "code" : "LUNA"
+ },
"THB" : {
- "value" : 0.030515628991348909,
+ "value" : 0.029790722853121874,
"code" : "THB"
},
"AMD" : {
- "value" : 0.0020257263519359377,
+ "value" : 0.0020288049606586012,
"code" : "AMD"
},
"AOA" : {
- "value" : 0.0015809452213784549,
+ "value" : 0.0017720945210053761,
"code" : "AOA"
},
"SEK" : {
- "value" : 0.11602597125340536,
+ "value" : 0.10962271479118463,
"code" : "SEK"
},
"DASH" : {
- "value" : 73.134845940000005,
+ "value" : 153.35057456999999,
"code" : "DASH"
},
"SAR" : {
- "value" : 0.26664334426215519,
+ "value" : 0.26625152728532336,
"code" : "SAR"
},
"KWD" : {
- "value" : 3.3246891415652637,
+ "value" : 3.3039283708329203,
"code" : "KWD"
},
"IRR" : {
- "value" : 2.3702299183689224e-05,
+ "value" : 2.3668638936171706e-05,
"code" : "IRR"
},
"WST" : {
- "value" : 0.3905084576321754,
+ "value" : 0.38459009042097614,
"code" : "WST"
},
"BNB" : {
- "value" : 28.650888770000002,
+ "value" : 555.55898833000003,
"code" : "BNB"
},
"BMD" : {
"value" : 1,
"code" : "BMD"
},
- "PHP" : {
- "value" : 0.019948729371667289,
- "code" : "PHP"
- },
"BGN" : {
- "value" : 0.60465158464064039,
+ "value" : 0.57868160128143253,
"code" : "BGN"
},
+ "PHP" : {
+ "value" : 0.019908455744289264,
+ "code" : "PHP"
+ },
"ZMW" : {
- "value" : 0.062023662151157989,
+ "value" : 0.060460650908484764,
"code" : "ZMW"
},
"XAF" : {
- "value" : 0.0018101491398529697,
+ "value" : 0.0017254179769835868,
"code" : "XAF"
},
"BDT" : {
- "value" : 0.011734181135743179,
+ "value" : 0.01165631151035584,
"code" : "BDT"
},
"NOK" : {
- "value" : 0.11477274422779175,
+ "value" : 0.1124922028841876,
"code" : "NOK"
},
"BOB" : {
- "value" : 0.14501746807911747,
+ "value" : 0.14470454443174743,
"code" : "BOB"
},
"TZS" : {
- "value" : 0.00043131333519581621,
+ "value" : 0.00043383950668404703,
"code" : "TZS"
},
"XAG" : {
- "value" : 24.362909905959167,
+ "value" : 22.709208584080844,
"code" : "XAG"
},
"VEF" : {
"value" : 4.6766073993926175e-12,
"code" : "VEF"
},
- "ANG" : {
- "value" : 0.5570562030714965,
- "code" : "ANG"
- },
"VUV" : {
- "value" : 0.0090181957068590762,
+ "value" : 0.0088298152273748511,
"code" : "VUV"
},
"BND" : {
- "value" : 0.74363983440628167,
+ "value" : 0.73686428875648258,
"code" : "BND"
},
- "SCR" : {
- "value" : 0.077646497393678848,
- "code" : "SCR"
- },
"XCD" : {
"value" : 0.37002090618119926,
"code" : "XCD"
},
+ "SCR" : {
+ "value" : 0.075231094877243915,
+ "code" : "SCR"
+ },
+ "ANG" : {
+ "value" : 0.55436920545587998,
+ "code" : "ANG"
+ },
"KYD" : {
- "value" : 1.1998680145184031,
+ "value" : 1.1989933252041585,
"code" : "KYD"
},
"DJF" : {
- "value" : 0.005626837901097183,
+ "value" : 0.0056124169471733947,
"code" : "DJF"
},
"CLF" : {
- "value" : 35.340684195646027,
+ "value" : 31.894874493668869,
"code" : "CLF"
},
"LSL" : {
- "value" : 0.067024488066960153,
+ "value" : 0.06443543923383685,
"code" : "LSL"
},
"MOP" : {
- "value" : 0.12488772593438499,
+ "value" : 0.12438185328463866,
"code" : "MOP"
},
"ALL" : {
- "value" : 0.0097563680741274798,
+ "value" : 0.0093878566403318812,
"code" : "ALL"
},
"UZS" : {
- "value" : 9.3489770333203163e-05,
+ "value" : 9.2531732287490099e-05,
"code" : "UZS"
},
"UYU" : {
- "value" : 0.023475484434227912,
+ "value" : 0.022522417519359763,
"code" : "UYU"
},
"PLN" : {
- "value" : 0.26175201090982381,
+ "value" : 0.24531028070855423,
"code" : "PLN"
},
"LTL" : {
@@ -272,19 +276,19 @@
"code" : "LTL"
},
"LYD" : {
- "value" : 0.22184336305664656,
+ "value" : 0.21743639876617887,
"code" : "LYD"
},
"JPY" : {
- "value" : 0.0090728049684349402,
+ "value" : 0.0087208304246820297,
"code" : "JPY"
},
"MNT" : {
- "value" : 0.00035076628400650231,
+ "value" : 0.00034984794609446847,
"code" : "MNT"
},
"FJD" : {
- "value" : 0.48238103277779121,
+ "value" : 0.47198731675682409,
"code" : "FJD"
},
"ZWL" : {
@@ -292,11 +296,11 @@
"code" : "ZWL"
},
"KPW" : {
- "value" : 0.0011111109037037425,
+ "value" : 0.0011111112061728476,
"code" : "KPW"
},
"PKR" : {
- "value" : 0.0059527408451712166,
+ "value" : 0.0055973950574206817,
"code" : "PKR"
},
"MRO" : {
@@ -304,11 +308,11 @@
"code" : "MRO"
},
"OMR" : {
- "value" : 2.6009764065430163,
+ "value" : 2.6006923042914023,
"code" : "OMR"
},
"GBP" : {
- "value" : 1.3762446412474281,
+ "value" : 1.3399886100968141,
"code" : "GBP"
},
"LVL" : {
@@ -316,215 +320,227 @@
"code" : "LVL"
},
"SHP" : {
- "value" : 0.72600657181148809,
+ "value" : 0.72600762598410329,
"code" : "SHP"
},
"GEL" : {
- "value" : 0.32048570249184044,
+ "value" : 0.32578213775632542,
"code" : "GEL"
},
+ "AVAX" : {
+ "value" : 117.52949112,
+ "code" : "AVAX"
+ },
"TND" : {
- "value" : 0.35848744110947561,
+ "value" : 0.34812832288484191,
"code" : "TND"
},
"DKK" : {
- "value" : 0.15891960098466584,
+ "value" : 0.15215957035006439,
"code" : "DKK"
},
"NPR" : {
- "value" : 0.0085093559560347788,
+ "value" : 0.0083257319400720474,
"code" : "NPR"
},
"KRW" : {
- "value" : 0.00085781689878051059,
+ "value" : 0.00084220810545561234,
"code" : "KRW"
},
"BSD" : {
- "value" : 0.99987401587399982,
+ "value" : 0.9991167807658029,
"code" : "BSD"
},
"CRC" : {
- "value" : 0.0016017348146313579,
+ "value" : 0.0015546703304152047,
"code" : "CRC"
},
"EGP" : {
- "value" : 0.063546192744244875,
+ "value" : 0.063662651102506615,
"code" : "EGP"
},
"MAD" : {
- "value" : 0.11208499270494825,
+ "value" : 0.10793195149494926,
"code" : "MAD"
},
- "BTC" : {
- "value" : 11957.02216748,
- "code" : "BTC"
- },
"AUD" : {
- "value" : 0.73692021880635128,
+ "value" : 0.72142524771939442,
"code" : "AUD"
},
+ "BTC" : {
+ "value" : 50928.71859343,
+ "code" : "BTC"
+ },
"SLL" : {
- "value" : 9.685229880693445e-05,
+ "value" : 8.8222318449108469e-05,
"code" : "SLL"
},
"MWK" : {
- "value" : 0.0012306236506419337,
+ "value" : 0.0012319032245998224,
"code" : "MWK"
},
"RSD" : {
- "value" : 0.010096084333642431,
+ "value" : 0.0096237357045781836,
"code" : "RSD"
},
"NZD" : {
- "value" : 0.70949157833496523,
+ "value" : 0.67977037356780878,
"code" : "NZD"
},
"SRD" : {
- "value" : 0.046893326498162066,
+ "value" : 0.048621637357948846,
"code" : "SRD"
},
"CLP" : {
- "value" : 0.0012807706887000619,
+ "value" : 0.0011558951594028205,
"code" : "CLP"
},
"RUB" : {
- "value" : 0.013613610713737376,
+ "value" : 0.013600079674706765,
"code" : "RUB"
},
- "NAD" : {
- "value" : 0.067022686710292628,
- "code" : "NAD"
- },
"HKD" : {
- "value" : 0.12858974342488494,
+ "value" : 0.12818458580355713,
"code" : "HKD"
},
+ "NAD" : {
+ "value" : 0.064433653955195416,
+ "code" : "NAD"
+ },
"GMD" : {
- "value" : 0.019538930860574819,
+ "value" : 0.019029582627970137,
"code" : "GMD"
},
"VND" : {
- "value" : 4.3939626952567174e-05,
+ "value" : 4.3821209465381244e-05,
"code" : "VND"
},
"LAK" : {
- "value" : 0.00010435298460524862,
+ "value" : 8.9542390578357692e-05,
"code" : "LAK"
},
+ "SHIB" : {
+ "value" : 3.8509123000000003e-05,
+ "code" : "SHIB"
+ },
"CUC" : {
"value" : 1,
"code" : "CUC"
},
"RON" : {
- "value" : 0.23885154444991413,
+ "value" : 0.22862300592156448,
"code" : "RON"
},
"MUR" : {
- "value" : 0.023415617373826119,
+ "value" : 0.023011594576019884,
"code" : "MUR"
},
"XAU" : {
- "value" : 1798.5611510791368,
+ "value" : 1805.0541516245487,
"code" : "XAU"
},
"GGP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "GGP"
},
- "MXN" : {
- "value" : 0.05010622770805246,
- "code" : "MXN"
+ "SOL" : {
+ "value" : 201.83102561999999,
+ "code" : "SOL"
},
"BRL" : {
- "value" : 0.19339748714777,
+ "value" : 0.17617100426104809,
"code" : "BRL"
},
"STD" : {
"value" : 4.8313891080172936e-05,
"code" : "STD"
},
+ "MXN" : {
+ "value" : 0.048387135796077251,
+ "code" : "MXN"
+ },
"AWG" : {
- "value" : 0.5554012774229381,
+ "value" : 0.55555555555555558,
"code" : "AWG"
},
"MVR" : {
- "value" : 0.064724240431912619,
+ "value" : 0.064725736020616445,
"code" : "MVR"
},
"PAB" : {
- "value" : 0.99987401587399982,
+ "value" : 0.99916170333090537,
"code" : "PAB"
},
"TJS" : {
- "value" : 0.088251166349477259,
+ "value" : 0.088587157094617633,
"code" : "TJS"
},
"GNF" : {
- "value" : 0.00010214993633869382,
+ "value" : 0.00010561444928516947,
"code" : "GNF"
},
- "MGA" : {
- "value" : 0.00025465296336866296,
- "code" : "MGA"
- },
"XDR" : {
- "value" : 1.4230337942065447,
+ "value" : 1.3983197789536093,
"code" : "XDR"
},
+ "MGA" : {
+ "value" : 0.00025167106206527335,
+ "code" : "MGA"
+ },
"ETB" : {
- "value" : 0.021682084869490977,
+ "value" : 0.020224401873426796,
"code" : "ETB"
},
"ZAR" : {
- "value" : 0.069809465535241394,
+ "value" : 0.064352114176095057,
"code" : "ZAR"
},
"COP" : {
- "value" : 0.00026255057380427906,
+ "value" : 0.00025053238131028438,
"code" : "COP"
},
"IDR" : {
- "value" : 7.0110739913693687e-05,
+ "value" : 7.0229404349307016e-05,
"code" : "IDR"
},
"SVC" : {
- "value" : 0.11426715729936886,
+ "value" : 0.11418987309394264,
"code" : "SVC"
},
"CVE" : {
- "value" : 0.010768149497923723,
+ "value" : 0.010264816562133709,
"code" : "CVE"
},
"ETC" : {
- "value" : 5.2368606,
+ "value" : 38.293331139999999,
"code" : "ETC"
},
- "TTD" : {
- "value" : 0.14727128401414394,
- "code" : "TTD"
+ "DOGE" : {
+ "value" : 0.19064063000000001,
+ "code" : "DOGE"
},
"GIP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "GIP"
},
+ "TTD" : {
+ "value" : 0.14696487407241282,
+ "code" : "TTD"
+ },
"PYG" : {
- "value" : 0.00014467133719474066,
+ "value" : 0.00014658722962601346,
"code" : "PYG"
},
- "DOGE" : {
- "value" : 0.0025976099999999993,
- "code" : "DOGE"
- },
"MZN" : {
- "value" : 0.015680132816997011,
+ "value" : 0.015666529276427088,
"code" : "MZN"
},
"FKP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "FKP"
},
"KZT" : {
- "value" : 0.002344853462392567,
+ "value" : 0.0023051934815048079,
"code" : "KZT"
},
"USD" : {
@@ -532,199 +548,207 @@
"code" : "USD"
},
"UGX" : {
- "value" : 0.00028358012899350551,
+ "value" : 0.00028225685783391782,
"code" : "UGX"
},
- "GHS" : {
- "value" : 0.16499910322987393,
- "code" : "GHS"
+ "RWF" : {
+ "value" : 0.00096346363419134117,
+ "code" : "RWF"
},
"ARS" : {
- "value" : 0.010215359598126118,
+ "value" : 0.0097784320722245945,
"code" : "ARS"
},
- "RWF" : {
- "value" : 0.00099039921265005695,
- "code" : "RWF"
+ "GHS" : {
+ "value" : 0.16181075293941369,
+ "code" : "GHS"
},
"JEP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "JEP"
},
"DOP" : {
- "value" : 0.017588507922198151,
+ "value" : 0.017507115592061237,
"code" : "DOP"
},
"LBP" : {
- "value" : 0.0006612893342517372,
+ "value" : 0.00066077767418736813,
"code" : "LBP"
},
"BZD" : {
- "value" : 0.49605192274685772,
+ "value" : 0.49567719914624558,
"code" : "BZD"
},
- "ADA" : {
- "value" : 0.10270785,
- "code" : "ADA"
- },
"BTN" : {
- "value" : 0.013614988970088985,
+ "value" : 0.013321759566245641,
"code" : "BTN"
},
+ "ADA" : {
+ "value" : 1.58042777,
+ "code" : "ADA"
+ },
"MYR" : {
- "value" : 0.24070273645312965,
+ "value" : 0.23906344504768121,
"code" : "MYR"
},
"YER" : {
- "value" : 0.0039864413952552854,
+ "value" : 0.0039959992055953577,
"code" : "YER"
},
"JMD" : {
- "value" : 0.0066442652605700446,
+ "value" : 0.0064975773100753769,
"code" : "JMD"
},
"TOP" : {
- "value" : 0.44513628515074316,
+ "value" : 0.43893339185778563,
"code" : "TOP"
},
"SOS" : {
- "value" : 0.0017094027993286224,
+ "value" : 0.0017064854774084164,
"code" : "SOS"
},
"TMT" : {
- "value" : 0.28490028490028491,
+ "value" : 0.2857142857142857,
"code" : "TMT"
},
"MDL" : {
- "value" : 0.056828407702681501,
+ "value" : 0.056052457477064319,
"code" : "MDL"
},
"XOF" : {
- "value" : 0.0018101034056686495,
+ "value" : 0.0017254179769835868,
"code" : "XOF"
},
"ETH" : {
- "value" : 371.33697873,
+ "value" : 4072.3098828399998,
"code" : "ETH"
},
"TWD" : {
- "value" : 0.036066578904657996,
+ "value" : 0.036112825567504933,
"code" : "TWD"
},
"BBD" : {
- "value" : 0.49522430442032267,
+ "value" : 0.49484078992424974,
"code" : "BBD"
},
+ "DOT" : {
+ "value" : 31.597941519999999,
+ "code" : "DOT"
+ },
"CAD" : {
- "value" : 0.78851853925363569,
+ "value" : 0.77926834495092556,
"code" : "CAD"
},
"CNY" : {
- "value" : 0.15481318847360079,
+ "value" : 0.15691436069245052,
"code" : "CNY"
},
"JOD" : {
- "value" : 1.4103258416824622,
+ "value" : 1.4103914823637598,
"code" : "JOD"
},
"XPF" : {
- "value" : 0.0098154865212757552,
+ "value" : 0.0094383730117500956,
"code" : "XPF"
},
"XLM" : {
- "value" : 0.082820000000000005,
+ "value" : 0.29973736000000001,
"code" : "XLM"
},
"IQD" : {
- "value" : 0.00068535032584169102,
+ "value" : 0.00068465018924487766,
"code" : "IQD"
},
"HNL" : {
- "value" : 0.041724355804110325,
+ "value" : 0.040737141840576578,
"code" : "HNL"
},
"AED" : {
- "value" : 0.27225849310369238,
+ "value" : 0.27225997560550619,
"code" : "AED"
},
- "ERN" : {
- "value" : 0.066645282417048451,
- "code" : "ERN"
- },
"EOS" : {
- "value" : 2.5413952100000001,
+ "value" : 3.4663553500000002,
"code" : "EOS"
},
+ "ERN" : {
+ "value" : 0.066666320001802656,
+ "code" : "ERN"
+ },
"KES" : {
- "value" : 0.0090826094849309376,
+ "value" : 0.008834725815697865,
"code" : "KES"
},
"KMF" : {
- "value" : 0.0023866358530657424,
+ "value" : 0.0022968706194370653,
"code" : "KMF"
},
"MKD" : {
- "value" : 0.019248252937134225,
+ "value" : 0.018370283259847915,
"code" : "MKD"
},
"DZD" : {
- "value" : 0.0073472670334079494,
+ "value" : 0.0071879249186740206,
"code" : "DZD"
},
"BSV" : {
- "value" : 157.47286274999999,
+ "value" : 131.02409718999999,
"code" : "BSV"
},
"BWP" : {
- "value" : 0.090993317632739684,
+ "value" : 0.0859755999527822,
"code" : "BWP"
},
- "SBD" : {
- "value" : 0.12409927197162099,
- "code" : "SBD"
- },
"AZN" : {
- "value" : 0.58655464255066803,
+ "value" : 0.58925852421381131,
"code" : "AZN"
},
+ "SBD" : {
+ "value" : 0.12349967958008133,
+ "code" : "SBD"
+ },
"BCH" : {
- "value" : 243.10580897,
+ "value" : 467.49922156999997,
"code" : "BCH"
},
"KGS" : {
- "value" : 0.011793120226226009,
+ "value" : 0.011793887845929179,
"code" : "KGS"
},
+ "MATIC" : {
+ "value" : 2.8421653500000001,
+ "code" : "MATIC"
+ },
"BYN" : {
- "value" : 0.39664265788658476,
+ "value" : 0.39668435349970804,
"code" : "BYN"
},
"KHR" : {
- "value" : 0.0002449549233411167,
+ "value" : 0.00024529671855543688,
"code" : "KHR"
},
"NEO" : {
- "value" : 17.76272552,
+ "value" : 29.8754189,
"code" : "NEO"
},
"ZMK" : {
- "value" : 0.00011109637899061443,
+ "value" : 0.00011109632436315487,
"code" : "ZMK"
},
"HTG" : {
- "value" : 0.010199415920247911,
+ "value" : 0.0099485759106038487,
"code" : "HTG"
},
"CZK" : {
- "value" : 0.04652683027826534,
+ "value" : 0.045075495369552125,
"code" : "CZK"
},
"BAM" : {
- "value" : 0.60708234404206352,
+ "value" : 0.5787057130985408,
"code" : "BAM"
},
"IMP" : {
- "value" : 1.38388575746295,
+ "value" : 1.3255936339691321,
"code" : "IMP"
}
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/FunctionDescriptions.json
index a6d510958..256e2aa64 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/FunctionDescriptions.json
@@ -1,61 +1,175 @@
{
- "tagRelated": [
+ "datetime": [
{
+ "identifier": "calendarUnitBetweenDates",
"prototypeExpressions": [
- "total of __tag",
- "total __tag",
- "__tag total",
- "sum of __tag",
- "sum __tag",
- "__tag sum"
+ "__unit between __datestamp and __datestamp",
+ "__unit between __datestamp to __datestamp",
+ "__unit between __datestamp - __datestamp",
+ "__unit between __datestamp − __datestamp",
+ "__unit from __datestamp to __datestamp",
+ "__unit in __datestamp to __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit to __datestamp",
+ "__unit before __datestamp",
+ "__unit until __datestamp",
+ "__unit till __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit to __datespan",
+ "__unit before __datespan",
+ "__unit until __datespan",
+ "__unit till __datespan"
],
- "identifier": "tagTotal"
+ "identifier": "calendarUnitToDatespan"
},
{
"prototypeExpressions": [
- "average of __tag",
- "average __tag",
- "__tag average",
- "mean of __tag",
- "mean __tag",
- "__tag mean"
+ "__unit in __datestamp"
],
- "identifier": "tagAverage"
+ "identifier": "calendarUnitInDate"
},
{
"prototypeExpressions": [
- "count of __tag",
- "count __tag",
- "__tag count"
+ "__unit in __datespan"
+ ],
+ "identifier": "calendarUnitInDatespan"
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "__datestamp to __datestamp",
+ "difference between __datestamp and __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit between __datestamp through __datestamp",
+ "__unit from __datestamp through __datestamp",
+ "__unit in __datestamp through __datestamp"
+ ],
+ "identifier": "inclusiveCalendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp through __datestamp"
+ ],
+ "identifier": "inclusiveIntervalBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__timestamp to __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit since __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "identifier": "calendarUnitExpressionAfterDate",
+ "prototypeExpressions": [
+ "__timespan from __datestamp",
+ "__timespan after __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitExpressionBeforeDate",
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitExpressionAgo",
+ "prototypeExpressions": [
+ "__timespan ago"
+ ]
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "new timestamp",
+ "current timestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone time",
+ "time __timezone",
+ "time at __timezone",
+ "time in __timezone"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "identifier": "differenceBetweenTimezones",
+ "prototypeExpressions": [
+ "time difference between __timezone and __timezone",
+ "difference between __timezone and __timezone",
+ "time difference between __timezone & __timezone",
+ "difference between __timezone & __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp in __timespan",
+ "__datestamp after __timespan"
],
- "identifier": "tagCount"
+ "identifier": "weekdayAfterTimespan"
+ },
+ {
+ "prototypeExpressions": [
+ "week number on __datestamp",
+ "week number __datestamp"
+ ],
+ "identifier": "weekNumberOnDate"
+ },
+ {
+ "prototypeExpressions": [
+ "week of year"
+ ],
+ "identifier": "weekOfYear"
+ },
+ {
+ "identifier": "halfwayBetweenDates",
+ "prototypeExpressions": [
+ "halfway between __datestamp and __datestamp",
+ "midpoint between __datestamp and __datestamp"
+ ]
}
],
"financial": [
{
+ "identifier": "presentValue",
"prototypeExpressions": [
"present value of 1000 after __timespan at __percentage",
"present value of 1000 over __timespan at __percentage"
- ],
- "identifier": "presentValue"
+ ]
},
{
+ "identifier": "returnOnInvestmentAfter",
"prototypeExpressions": [
"annual return on 500 invested 1000 returned after __timespan",
"yearly return on 500 invested 1000 returned after __timespan",
"annual return on 500 invested 1000 returned over __timespan",
"yearly return on 500 invested 1000 returned over __timespan"
- ],
- "identifier": "returnOnInvestmentAfter"
+ ]
},
{
- "identifier": "returnOnInvestment",
"prototypeExpressions": [
"500 invested 1000 returned"
- ]
+ ],
+ "identifier": "returnOnInvestment"
},
{
- "identifier": "totalLoanRepayment",
"prototypeExpressions": [
"total repayment on 10000 for __timespan at __percentage",
"total repayment on 10000 after __timespan at __percentage",
@@ -63,9 +177,11 @@
"total payment on 10000 for __timespan at __percentage",
"total payment on 10000 after __timespan at __percentage",
"total payment on 10000 over __timespan at __percentage"
- ]
+ ],
+ "identifier": "totalLoanRepayment"
},
{
+ "identifier": "annualLoanRepayment",
"prototypeExpressions": [
"annual repayment on 10000 for __timespan at __percentage",
"annual repayment on 10000 after __timespan at __percentage",
@@ -79,11 +195,9 @@
"yearly payment on 10000 over __timespan at __percentage",
"yearly payment on 10000 after __timespan at __percentage",
"yearly payment on 10000 for __timespan at __percentage"
- ],
- "identifier": "annualLoanRepayment"
+ ]
},
{
- "identifier": "monthlyLoanRepayment",
"prototypeExpressions": [
"monthly repayment on 10000 for __timespan at __percentage",
"monthly repayment on 10000 after __timespan at __percentage",
@@ -91,18 +205,18 @@
"monthly payment on 10000 for __timespan at __percentage",
"monthly payment on 10000 after __timespan at __percentage",
"monthly payment on 10000 over __timespan at __percentage"
- ]
+ ],
+ "identifier": "monthlyLoanRepayment"
},
{
+ "identifier": "totalInterestOnLoanRepayment",
"prototypeExpressions": [
"total interest on 10000 for __timespan at __percentage",
"total interest on 10000 after __timespan at __percentage",
"total interest on 10000 over __timespan at __percentage"
- ],
- "identifier": "totalInterestOnLoanRepayment"
+ ]
},
{
- "identifier": "annualInterestOnLoanRepayment",
"prototypeExpressions": [
"annual interest on 10000 for __timespan at __percentage",
"annual interest on 10000 after __timespan at __percentage",
@@ -110,18 +224,18 @@
"yearly interest on 10000 over __timespan at __percentage",
"yearly interest on 10000 after __timespan at __percentage",
"yearly interest on 10000 for __timespan at __percentage"
- ]
+ ],
+ "identifier": "annualInterestOnLoanRepayment"
},
{
+ "identifier": "monthlyInterestOnLoanRepayment",
"prototypeExpressions": [
"monthly interest on 10000 for __timespan at __percentage",
"monthly interest on 10000 after __timespan at __percentage",
"monthly interest on 10000 over __timespan at __percentage"
- ],
- "identifier": "monthlyInterestOnLoanRepayment"
+ ]
},
{
- "identifier": "compoundInterestCompoundingMonthly",
"prototypeExpressions": [
"100 after __timespan at __percentage compounded monthly",
"100 for __timespan at __percentage compounded monthly",
@@ -135,10 +249,10 @@
"100 at __percentage after __timespan compounding monthly",
"100 at __percentage for __timespan compounding monthly",
"100 at __percentage over __timespan compounding monthly"
- ]
+ ],
+ "identifier": "compoundInterestCompoundingMonthly"
},
{
- "identifier": "compoundInterest",
"prototypeExpressions": [
"100 after __timespan at __percentage",
"100 for __timespan at __percentage",
@@ -146,364 +260,192 @@
"100 at __percentage after __timespan",
"100 at __percentage for __timespan",
"100 at __percentage over __timespan"
- ]
+ ],
+ "identifier": "compoundInterest"
}
],
"percentage": [
{
+ "identifier": "percentOf",
"prototypeExpressions": [
"__percentage of 100"
- ],
- "identifier": "percentOf"
+ ]
},
{
+ "identifier": "percentOff",
"prototypeExpressions": [
"__percentage off 100"
- ],
- "identifier": "percentOff"
+ ]
},
{
+ "identifier": "percentOn",
"prototypeExpressions": [
"__percentage on 100"
- ],
- "identifier": "percentOn"
+ ]
},
{
+ "identifier": "isPercentOfWhat",
"prototypeExpressions": [
"30 is __percentage of what"
- ],
- "identifier": "isPercentOfWhat"
+ ]
},
{
+ "identifier": "isPercentOfWhatClassic",
"prototypeExpressions": [
"__percentage of what is 30"
- ],
- "identifier": "isPercentOfWhatClassic"
+ ]
},
{
+ "identifier": "isPercentOffWhat",
"prototypeExpressions": [
"30 is __percentage off what"
- ],
- "identifier": "isPercentOffWhat"
+ ]
},
{
+ "identifier": "isPercentOffWhatClassic",
"prototypeExpressions": [
"__percentage off what is 30"
- ],
- "identifier": "isPercentOffWhatClassic"
+ ]
},
{
+ "identifier": "isPercentOnWhat",
"prototypeExpressions": [
"30 is __percentage on what"
- ],
- "identifier": "isPercentOnWhat"
+ ]
},
{
+ "identifier": "isPercentOnWhatClassic",
"prototypeExpressions": [
"__percentage on what is 30"
- ],
- "identifier": "isPercentOnWhatClassic"
+ ]
},
{
+ "identifier": "isWhatPercentOf",
"prototypeExpressions": [
"10 is what % of 20",
"10 as a % of 20",
"10 as % of 20"
- ],
- "identifier": "isWhatPercentOf"
+ ]
},
{
+ "identifier": "isWhatPercentOff",
"prototypeExpressions": [
"10 is what % off 20",
"10 as a % off 20",
"10 as % off 20"
- ],
- "identifier": "isWhatPercentOff"
+ ]
},
{
+ "identifier": "isWhatPercentOn",
"prototypeExpressions": [
"20 is what % on 10",
"20 as a % on 10",
"20 as % on 10"
- ],
- "identifier": "isWhatPercentOn"
- },
- {
- "identifier": "xToYIsWhatPercentage",
- "prototypeExpressions": [
- "10 to 20 is what %"
- ]
- }
- ],
- "unitRelated": [
- {
- "prototypeExpressions": [
- "__unit in __unit_expression"
- ],
- "identifier": "unitInUnitExpression"
- },
- {
- "prototypeExpressions": [
- "__unit_expression __substance in __unit",
- "__unit_expression of __substance in __unit",
- "__unit_expression __substance as __unit",
- "__unit_expression of __substance as __unit",
- "__unit_expression __substance to __unit",
- "__unit_expression of __substance to __unit"
- ],
- "identifier": "substanceWeightToVolumeConversion"
- },
- {
- "prototypeExpressions": [
- "density of __substance",
- "__substance density"
- ],
- "identifier": "densityOfSubstance"
- },
- {
- "prototypeExpressions": [
- "__unit in __timespan"
- ],
- "identifier": "unitInTimespan"
- },
- {
- "identifier": "rateUnitChange",
- "prototypeExpressions": [
- "__rate is what / __unit",
- "__rate is how much / __unit",
- "__rate as / __unit",
- "__rate is what /__unit",
- "__rate is how much /__unit",
- "__rate as /__unit",
- "__rate is what per __unit",
- "__rate is how much per __unit",
- "__rate as per __unit",
- "__rate is what per__unit",
- "__rate is how much per__unit",
- "__rate as per__unit"
- ]
- }
- ],
- "datetime": [
- {
- "prototypeExpressions": [
- "__unit between __datestamp and __datestamp",
- "__unit between __datestamp to __datestamp",
- "__unit between __datestamp - __datestamp",
- "__unit between __datestamp − __datestamp",
- "__unit from __datestamp to __datestamp",
- "__unit in __datestamp to __datestamp"
- ],
- "identifier": "calendarUnitBetweenDates"
- },
- {
- "prototypeExpressions": [
- "__unit to __datestamp",
- "__unit before __datestamp",
- "__unit until __datestamp",
- "__unit till __datestamp"
- ],
- "identifier": "calendarUnitToDate"
- },
- {
- "identifier": "calendarUnitToDatespan",
- "prototypeExpressions": [
- "__unit to __datespan",
- "__unit before __datespan",
- "__unit until __datespan",
- "__unit till __datespan"
]
},
{
- "identifier": "calendarUnitInDate",
"prototypeExpressions": [
- "__unit in __datestamp"
- ]
- },
- {
- "identifier": "calendarUnitInDatespan",
- "prototypeExpressions": [
- "__unit in __datespan"
- ]
- },
- {
- "prototypeExpressions": [
- "__datestamp to __datestamp",
- "difference between __datestamp and __datestamp"
+ "10 to 20 is what %",
+ "10 to 20 as %",
+ "10 to 20 as a %",
+ "10 to 20 is what percent",
+ "10 to 20 as percent",
+ "10 to 20 as a percent",
+ "10 to 20 is what percentage",
+ "10 to 20 as percentage",
+ "10 to 20 as a percentage"
],
- "identifier": "intervalBetweenDates"
- },
- {
- "identifier": "inclusiveCalendarUnitBetweenDates",
- "prototypeExpressions": [
- "__unit between __datestamp through __datestamp",
- "__unit from __datestamp through __datestamp",
- "__unit in __datestamp through __datestamp"
- ]
- },
- {
- "identifier": "inclusiveIntervalBetweenDates",
- "prototypeExpressions": [
- "__datestamp through __datestamp"
- ]
- },
- {
- "identifier": "intervalBetweenTimestamps",
- "prototypeExpressions": [
- "__timestamp to __timestamp"
- ]
+ "identifier": "xToYIsWhatPercentage"
},
{
- "identifier": "calendarUnitSinceDate",
"prototypeExpressions": [
- "__unit since __datestamp"
- ]
- },
- {
- "prototypeExpressions": [
- "__timespan from __datestamp",
- "__timespan after __datestamp"
- ],
- "identifier": "calendarUnitExpressionAfterDate"
- },
- {
- "prototypeExpressions": [
- "__timespan before __datestamp"
- ],
- "identifier": "calendarUnitExpressionBeforeDate"
- },
- {
- "prototypeExpressions": [
- "__timespan ago"
- ],
- "identifier": "calendarUnitExpressionAgo"
- },
- {
- "prototypeExpressions": [
- "new timestamp",
- "current timestamp"
- ],
- "identifier": "generateTimestamp"
- },
- {
- "identifier": "timeInTimezone",
- "prototypeExpressions": [
- "__timezone time",
- "time __timezone",
- "time at __timezone",
- "time in __timezone"
- ]
- },
- {
- "prototypeExpressions": [
- "time difference between __timezone and __timezone",
- "difference between __timezone and __timezone",
- "time difference between __timezone & __timezone",
- "difference between __timezone & __timezone"
+ "10 to 20 is what x",
+ "10 to 20 as x",
+ "10 to 20 as a x",
+ "10 to 20 is what multiple",
+ "10 to 20 as multiple",
+ "10 to 20 as a multiple",
+ "10 to 20 is what multiplier",
+ "10 to 20 as multiplier",
+ "10 to 20 as a multiplier"
],
- "identifier": "differenceBetweenTimezones"
- },
- {
- "identifier": "weekdayAfterTimespan",
- "prototypeExpressions": [
- "__datestamp in __timespan",
- "__datestamp after __timespan"
- ]
- },
- {
- "identifier": "weekNumberOnDate",
- "prototypeExpressions": [
- "week number on __datestamp",
- "week number __datestamp"
- ]
- },
- {
- "identifier": "weekOfYear",
- "prototypeExpressions": [
- "week of year"
- ]
- },
- {
- "prototypeExpressions": [
- "halfway between __datestamp and __datestamp",
- "midpoint between __datestamp and __datestamp"
- ],
- "identifier": "halfwayBetweenDates"
+ "identifier": "xToYIsWhatMultiplier"
}
],
"general": [
{
+ "identifier": "remainder",
"prototypeExpressions": [
"remainder of 20 divided by 3"
- ],
- "identifier": "remainder"
+ ]
},
{
+ "identifier": "halfOf",
"prototypeExpressions": [
"half of 20"
- ],
- "identifier": "halfOf"
+ ]
},
{
+ "identifier": "lesserOf",
"prototypeExpressions": [
"smaller of 2 and 30",
"lesser of 2 and 30"
- ],
- "identifier": "lesserOf"
+ ]
},
{
+ "identifier": "greaterOf",
"prototypeExpressions": [
"larger of 2 and 30",
"greater of 2 and 30"
- ],
- "identifier": "greaterOf"
+ ]
},
{
+ "identifier": "midpoint",
"prototypeExpressions": [
"midpoint between 2 and 32"
- ],
- "identifier": "midpoint"
+ ]
},
{
+ "identifier": "lcm",
"prototypeExpressions": [
"lcm of 5 and 8",
"lowest common multiple of 5 and 8"
- ],
- "identifier": "lcm"
+ ]
},
{
+ "identifier": "gcd",
"prototypeExpressions": [
"gcd of 20 and 30",
"greatest common divisor of 5 and 8",
"gcf of 20 and 30",
"greatest common factor of 5 and 8"
- ],
- "identifier": "gcd"
+ ]
},
{
+ "identifier": "proportionsFindNumerator",
"prototypeExpressions": [
"6 is to 600 as what is to 8",
"6 to 600 is what to 8",
"6 to 600 as what to 8"
- ],
- "identifier": "proportionsFindNumerator"
+ ]
},
{
+ "identifier": "proportionsFindDenominator",
"prototypeExpressions": [
"6 is to 600 as 8 is to what",
"6 to 600 as 8 to what",
"6 to 600 is 8 to what"
- ],
- "identifier": "proportionsFindDenominator"
+ ]
},
{
+ "identifier": "makeRandomNumber",
"prototypeExpressions": [
"random number between 1 and 5",
"random between 1 and 5"
- ],
- "identifier": "makeRandomNumber"
+ ]
},
{
+ "identifier": "asMultiplierOf",
"prototypeExpressions": [
"5 as multiplier of 1",
"5 as multiple of 1",
@@ -513,35 +455,35 @@
"5 is what x of 1",
"5 is what multiple of 1",
"5 is what multiplier of 1"
- ],
- "identifier": "asMultiplierOf"
+ ]
},
{
+ "identifier": "squareRoot",
"prototypeExpressions": [
"square root of 100",
"squared root of 100",
"squared root 100",
"square root 100"
- ],
- "identifier": "squareRoot"
+ ]
},
{
+ "identifier": "cubedRoot",
"prototypeExpressions": [
"cubed root of 100",
"cubed root 100",
"cube root of 100",
"cube root 100"
- ],
- "identifier": "cubedRoot"
+ ]
},
{
+ "identifier": "nthRoot",
"prototypeExpressions": [
"5 root of 100",
"root 5 of 100"
- ],
- "identifier": "nthRoot"
+ ]
},
{
+ "identifier": "nthLog",
"prototypeExpressions": [
"log 20 base 4",
"log of 20 to base 4",
@@ -549,8 +491,103 @@
"logarithm 20 base 4",
"logarithm of 20 to base 4",
"logarithm of 20 with base 4"
+ ]
+ },
+ {
+ "identifier": "scrubNumberWithSpecifiedRange",
+ "prototypeExpressions": [
+ "scrub 10 from 0 to 10",
+ "scrubber 10 from 0 to 10",
+ "scrub 10 between 0 and 10",
+ "scrubber 10 between 0 and 10"
+ ]
+ },
+ {
+ "identifier": "xToY",
+ "prototypeExpressions": [
+ "5 to 10"
+ ]
+ }
+ ],
+ "unitRelated": [
+ {
+ "identifier": "unitInUnitExpression",
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ]
+ },
+ {
+ "identifier": "substanceWeightToVolumeConversion",
+ "prototypeExpressions": [
+ "__unit_expression __substance in __unit",
+ "__unit_expression of __substance in __unit",
+ "__unit_expression __substance as __unit",
+ "__unit_expression of __substance as __unit",
+ "__unit_expression __substance to __unit",
+ "__unit_expression of __substance to __unit"
+ ]
+ },
+ {
+ "identifier": "densityOfSubstance",
+ "prototypeExpressions": [
+ "density of __substance",
+ "__substance density"
+ ]
+ },
+ {
+ "identifier": "unitInTimespan",
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__rate is what / __unit",
+ "__rate is how much / __unit",
+ "__rate as / __unit",
+ "__rate is what /__unit",
+ "__rate is how much /__unit",
+ "__rate as /__unit",
+ "__rate is what per __unit",
+ "__rate is how much per __unit",
+ "__rate as per __unit",
+ "__rate is what per__unit",
+ "__rate is how much per__unit",
+ "__rate as per__unit"
],
- "identifier": "nthLog"
+ "identifier": "rateUnitChange"
+ }
+ ],
+ "tagRelated": [
+ {
+ "identifier": "tagTotal",
+ "prototypeExpressions": [
+ "total of __tag",
+ "total __tag",
+ "__tag total",
+ "sum of __tag",
+ "sum __tag",
+ "__tag sum"
+ ]
+ },
+ {
+ "identifier": "tagAverage",
+ "prototypeExpressions": [
+ "average of __tag",
+ "average __tag",
+ "__tag average",
+ "mean of __tag",
+ "mean __tag",
+ "__tag mean"
+ ]
+ },
+ {
+ "identifier": "tagCount",
+ "prototypeExpressions": [
+ "count of __tag",
+ "count __tag",
+ "__tag count"
+ ]
}
]
-}
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/LocalizedFixtures.json
index c7c2da4e4..3ad32e34b 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/LocalizedFixtures.json
@@ -85,6 +85,8 @@
"decimalPlacesTypes": [
"dp",
"digit",
+ "decimal points",
+ "decimal places",
"digits"
],
"laptimeTypes": [
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
index 295869c34..0b398303b 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
@@ -3,8 +3,6 @@
{
"identifier": "reversedPercentOf",
"prototypeExpressions": [
- "100的__percentage",
- "100之__percentage",
"100 的 __percentage",
"100 之 __percentage"
]
@@ -12,8 +10,6 @@
{
"identifier": "reversedPercentOff",
"prototypeExpressions": [
- "100减__percentage",
- "100去__percentage",
"100 减 __percentage",
"100 去 __percentage"
]
@@ -21,8 +17,6 @@
{
"identifier": "reversedPercentOn",
"prototypeExpressions": [
- "100加__percentage",
- "100加上__percentage",
"100 加 __percentage",
"100 加上 __percentage"
]
@@ -31,9 +25,7 @@
"identifier": "isPercentOfWhat",
"prototypeExpressions": [
"30 是多少的 __percentage",
- "30 是什么的 __percentage",
- "30是多少的__percentage",
- "30是什么的__percentage"
+ "30 是什么的 __percentage"
]
},
{
@@ -41,12 +33,8 @@
"prototypeExpressions": [
"多少的 __percentage 是 30",
"多少的 __percentage 为 30",
- "多少的__percentage是30",
- "多少的__percentage为30",
"什么的 __percentage 为 30",
- "什么的 __percentage 是 30",
- "什么的__percentage为30",
- "什么的__percentage是30"
+ "什么的 __percentage 是 30"
]
},
{
@@ -54,12 +42,8 @@
"prototypeExpressions": [
"多少减去 __percentage 是 30",
"多少减 __percentage 是 30",
- "多少减去__percentage是30",
- "多少减__percentage是30",
"什么减去 __percentage 是 30",
- "什么减 __percentage 是 30",
- "什么减去__percentage是30",
- "什么减__percentage是30"
+ "什么减 __percentage 是 30"
]
},
{
@@ -67,12 +51,8 @@
"prototypeExpressions": [
"30 是多少加 __percentage",
"30 是多少加上 __percentage",
- "30 是多少加__percentage",
- "30 是多少加上__percentage",
"30 是什么加 __percentage",
- "30 是什么加上 __percentage",
- "30 是什么加__percentage",
- "30 是什么加上__percentage"
+ "30 是什么加上 __percentage"
]
},
{
@@ -82,30 +62,18 @@
"多少加 __percentage 为 30",
"多少加上 __percentage 是 30",
"多少加上 __percentage 为 30",
- "多少加__percentage是30",
- "多少加__percentage为30",
- "多少加上__percentage是30",
- "多少加上__percentage为30",
"什么加 __percentage 是 30",
"什么加 __percentage 为 30",
"什么加上 __percentage 是 30",
- "什么加上 __percentage 为 30",
- "什么加__percentage是30",
- "什么加__percentage为30",
- "什么加上__percentage是30",
- "什么加上__percentage为30"
+ "什么加上 __percentage 为 30"
]
},
{
"identifier": "isWhatPercentOf",
"prototypeExpressions": [
"10 是 20 里的百分比为",
- "10是20里的百分比为",
"10 在 20 里的百分比为",
- "10在20里的百分比为",
- "10是20里的占比为",
"10 是 20 里的占比为",
- "10在20里的占比为",
"10 在 20 里的占比为"
]
},
@@ -113,26 +81,18 @@
"identifier": "isWhatPercentOff",
"prototypeExpressions": [
"10 是 20 去掉百分之多少",
- "10是20去掉百分之多少",
"10 是 20 减去百分之多少",
- "10是20减去百分之多少",
"10 是 20 减百分之多少",
- "10是20减百分之多少",
"10 是 20 去掉百分之几",
- "10是20去掉百分之几",
"10 是 20 减去百分之几",
- "10是20减去百分之几",
- "10 是 20 减百分之几",
- "10是20减百分之几"
+ "10 是 20 减百分之几"
]
},
{
"identifier": "isWhatPercentOn",
"prototypeExpressions": [
"20 是 10 加百分之多少",
- "20 是 10 加上百分之几",
- "20是10加百分之多少",
- "20是10加上百分之几"
+ "20 是 10 加上百分之几"
]
}
],
@@ -141,27 +101,19 @@
"identifier": "remainder",
"prototypeExpressions": [
"20 除以 3 的余数",
- "20除以3的余数",
- "20 除 3 之余",
- "20除3之余"
+ "20 除 3 之余"
]
},
{
"identifier": "halfOf",
"prototypeExpressions": [
"20 的一半为",
- "20 的一半是",
- "20 的一般",
- "20的一半为",
- "20的一半是"
+ "20 的一半是"
]
},
{
"identifier": "lesserOf",
"prototypeExpressions": [
- "2和30之间小的一个数",
- "2和30之间较小的一个数",
- "2和30之间最小的一个数",
"2 和 30 之间小的一个数",
"2 和 30 之间较小的一个数",
"2 和 30 之间最小的一个数"
@@ -170,9 +122,6 @@
{
"identifier": "greaterOf",
"prototypeExpressions": [
- "2和30之间大的一个数",
- "2和30之间较大的一个数",
- "2和30之间最大的一个数",
"2 和 30 之间大的一个数",
"2 和 30 之间较大的一个数",
"2 和 30 之间最大的一个数"
@@ -183,31 +132,28 @@
"prototypeExpressions": [
"2 与 32 的中间点",
"2 与 32 的中间数",
- "2 与 32 的中间值",
"2 和 32 的中间点",
"2 和 32 的中间数",
"2 和 32 的中间值",
- "2 与 32 的中间点",
- "2 与 32 的中间数",
"2 与 32 的中间值"
]
},
{
"identifier": "proportionsFindNumerator",
"prototypeExpressions": [
- "多少除以8相当于6除以600",
- "多少除以8等于6除以600",
- "什么除以8相当于6除以600",
- "什么除以8等于6除以600"
+ "多少除以 8 相当于 6除以 600",
+ "多少除以 8 等于 6除以 600",
+ "什么除以 8 相当于 6除以 600",
+ "什么除以 8 等于 6除以 600"
]
},
{
"identifier": "proportionsFindDenominator",
"prototypeExpressions": [
- "8除以多少相当于6除以600",
- "8除以多少等于6除以600",
- "8除以什么相当于6除以600",
- "8除以什么等于6除以600"
+ "8 除以多少相当于 6除以 600",
+ "8 除以多少等于 6除以 600",
+ "8 除以什么相当于 6除以 600",
+ "8 除以什么等于 6除以 600"
]
},
{
@@ -215,10 +161,7 @@
"prototypeExpressions": [
"1 到 5 之间的任意数",
"1 与 5 之间的任意数",
- "1 和 5 之间的任意数",
- "1到5之间的任意数",
- "1与5之间的任意数",
- "1和5之间的任意数"
+ "1 和 5 之间的任意数"
]
}
],
@@ -247,7 +190,9 @@
"从 __datestamp 到 __datestamp",
"从 __datestamp 至 __datestamp",
"__datestamp 到 __datestamp",
- "__datestamp 至 __datestamp"
+ "__datestamp 至 __datestamp",
+ "__datestamp 日到 __datestamp",
+
]
},
{
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings
index af78fe105..266be2ea7 100644
Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
index 89c0c6c7b..5056142c7 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
@@ -67,8 +67,8 @@
"π"
],
"commas" : [
- ",",
- ","
+ ",",
+ ","
],
"monthOfYearDateAliases": [
],
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/SoulverCore b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/SoulverCore
index a93697344..22fa69e8d 100755
Binary files a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/SoulverCore and b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/SoulverCore differ
diff --git a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources
index 75c643212..39ced67fc 100644
--- a/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources
+++ b/SoulverCore.xcframework/macos-arm64_x86_64/SoulverCore.framework/Versions/A/_CodeSignature/CodeResources
@@ -6,7 +6,7 @@
Resources/Info.plist
- jnZpbSLXwEcJNGhOKNim0EaOftY=
+ UdLkjZjcnUd6IfBpDi0vACkV5dg=
Resources/de.lproj/Cities.json
@@ -102,7 +102,7 @@
hash
- 5DEULbRz7Scm4ddYycpblEdS+fg=
+ /KMJYMp21Cz6xVNsDzr+gixkDx0=
optional
@@ -111,7 +111,7 @@
hash
- eEcxNg6shSit9/QlzFQhRuFi2fg=
+ LBFpKTcGuMQMwsd1bJWPjkdLyBE=
optional
@@ -120,7 +120,7 @@
hash
- izg+3fvHFEVk1t9BwHMuXftorfM=
+ Kz5cYm6hoov66WW0VLAq7mew80E=
optional
@@ -147,7 +147,7 @@
hash
- njljjFUXLA7Jt8JrZxLg8T/sYgo=
+ Kjr/SHLo/LaTgAOqwGJK1t+mOv8=
optional
@@ -255,7 +255,7 @@
hash
- kJ/JHS8kaErLsFpiFY0hmxLQAOk=
+ GECBzuCoSwaDYAZz6O+Iw1+ki1w=
optional
@@ -264,7 +264,7 @@
hash
- xn+DsE2D0kj/YFd/t0ykdetNs/U=
+ v94uDSZoB5/+jI5rEDRhzbU4NV8=
optional
@@ -282,7 +282,7 @@
hash
- bGUPk7Zf8v/KQAsj3jy5jFcsTxI=
+ Wus9hSNMEwzhCUFIJ4fflUfsRZU=
optional
@@ -357,7 +357,7 @@
hash2
- N68crGFunrtW1cL7aR6Wm+m3FvjAz1QeXk5Mgo+ME3o=
+ YUze+UKx79dVtUUgxlthRyDzycR1fyGYNR/eROkuZdE=
Headers/SoulverCore.h
@@ -371,84 +371,84 @@
hash2
- V1gNAiWMeRQu6hMXemFAQXpAhyjgB3cYQMH6QTOdvwI=
+ 6SpHJXNtNqfC+K26qoNy8TRtCRb0m81/b+M6+yY8BHM=
Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftinterface
hash2
- 3xAV72K8dXTAjKZXgVu2MMjBDWlkrfeSPTH9OWl1+EM=
+ /uPOg12rQb+nzU2sO+kCuRjn2UO7aoiBq6jKVDTI128=
Modules/SoulverCore.swiftmodule/arm64-apple-macos.swiftmodule
hash2
- 6WQGirKHEvFWgnvOQA4hL9p2f17hw7tIo9Opv2ztBjc=
+ ZAUQwjC3AyFaLGE8bWYNPAiWad8gRxO7xX5kpSZ382E=
Modules/SoulverCore.swiftmodule/arm64.swiftdoc
hash2
- V1gNAiWMeRQu6hMXemFAQXpAhyjgB3cYQMH6QTOdvwI=
+ 6SpHJXNtNqfC+K26qoNy8TRtCRb0m81/b+M6+yY8BHM=
Modules/SoulverCore.swiftmodule/arm64.swiftinterface
hash2
- 3xAV72K8dXTAjKZXgVu2MMjBDWlkrfeSPTH9OWl1+EM=
+ /uPOg12rQb+nzU2sO+kCuRjn2UO7aoiBq6jKVDTI128=
Modules/SoulverCore.swiftmodule/arm64.swiftmodule
hash2
- 6WQGirKHEvFWgnvOQA4hL9p2f17hw7tIo9Opv2ztBjc=
+ ZAUQwjC3AyFaLGE8bWYNPAiWad8gRxO7xX5kpSZ382E=
Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc
hash2
- NaTMLE2+665y58yqE6dX+kqos0kRyjl9o/Gra9Uqwr8=
+ vqbveqn6sb6cgRFzdaz/tZ06KcJiURuOAqY9SQst2kE=
Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface
hash2
- 2DIEpbPOMUdQrtujPbewzbBFQmEDGMWTt7WIZxfvICs=
+ sQCaeYRvrti6ziUAyZA3G5NknWxQ9jCFubpwu1ra26w=
Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftmodule
hash2
- YT21jo8TLTIxbrnn5y0YlPSTw4akieEOd0U3DCTnum8=
+ Az/NrLj8Vizmvor2rBFAwM1GHUg2M7kMA3ZSYJDPBOc=
Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
hash2
- NaTMLE2+665y58yqE6dX+kqos0kRyjl9o/Gra9Uqwr8=
+ vqbveqn6sb6cgRFzdaz/tZ06KcJiURuOAqY9SQst2kE=
Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
hash2
- 2DIEpbPOMUdQrtujPbewzbBFQmEDGMWTt7WIZxfvICs=
+ sQCaeYRvrti6ziUAyZA3G5NknWxQ9jCFubpwu1ra26w=
Modules/SoulverCore.swiftmodule/x86_64.swiftmodule
hash2
- YT21jo8TLTIxbrnn5y0YlPSTw4akieEOd0U3DCTnum8=
+ Az/NrLj8Vizmvor2rBFAwM1GHUg2M7kMA3ZSYJDPBOc=
Modules/module.modulemap
@@ -462,7 +462,7 @@
hash2
- FO7fu+CryBWSmx04S+9tZuLhUOHbTk2iNVPOs5z74D4=
+ hAxxDmx9PjAwIgbWMF/Lest2spxx517mA2ALZp2zKKs=
Resources/de.lproj/Cities.json
@@ -559,7 +559,7 @@
hash2
- +iSgf6I9i0iG+yirksSGGGrKMN3vKm9QPWh0NvyhBxs=
+ wAGEOzPngpGass2ixit8iqaaJW3niEyFCqOTsHUc+Lw=
optional
@@ -568,7 +568,7 @@
hash2
- ZdINPWWkvle8yS4tIhFDtnqzsU34pMMvUZz70uyJm/w=
+ lewTxD6xuqK31Z2XkFrakzHRZfVC3QF/2bBNYXFGoz4=
optional
@@ -577,7 +577,7 @@
hash2
- /wagTMP0mtPaDQfpJkTk4vLkKdXcggagMU5rKzeuEYc=
+ BX6SQEj0pd3fxPCrRJ8OOwRObDciEXx9oVNH4umDt9M=
optional
@@ -604,7 +604,7 @@
hash2
- C4dsknec3otW5sIC9NZKn9Pn0GaTWCwXfY0xpQdgbjk=
+ DMO+7oxGfKYsVCrrSpmHTU9jm5iML1BZ/dFPRP/zxio=
optional
@@ -712,7 +712,7 @@
hash2
- /H/XDN8FaDRs6X+QYWsflMu2xSQMSg4h50WOeWyLTLs=
+ iaCRHtMqc2R8ZWN9GZpfT180ccP+YmSf1HUJwfu+qBQ=
optional
@@ -721,7 +721,7 @@
hash2
- 0XREuLBt69XpZ8+VUViMMiKTTVMjOv2J7uloGnJQvtM=
+ kIagA4Hjqfu88Cj5wZAx9unSmwpOOe7KBvSfQgPL0UU=
optional
@@ -739,7 +739,7 @@
hash2
- E8Uwu97QcC+qocYR5JVS9H6fpBrAEI7BYUDjoEd3AsI=
+ 7kAW1tdOQxgzvxMLwT+oFXQM/Wq6THXCmL0Gg4pk4Qs=
optional