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