diff --git a/.gitmodules b/.gitmodules index d1bd3a5..ca6b2af 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "Carthage/Checkouts/Swiftz"] - url = https://github.com/typelift/Swiftz.git + url = https://github.com/sharecare/Swiftz.git path = Carthage/Checkouts/Swiftz [submodule "Carthage/Checkouts/SwiftCheck"] path = Carthage/Checkouts/SwiftCheck - url = https://github.com/typelift/SwiftCheck.git + url = https://github.com/sharecare/SwiftCheck.git diff --git a/.travis.yml b/.travis.yml index 665a53b..6ffbca0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode10.1 +osx_image: xcode11.2 git: submodules: false before_install: @@ -11,11 +11,11 @@ script: - set -o pipefail - xcodebuild test -scheme Tyro -configuration Debug | xcpretty -c - xcodebuild clean -scheme Tyro -configuration Debug - - xcodebuild test -scheme Tyro-iOS -configuration Debug -sdk iphonesimulator -destination "platform=iOS Simulator,name=iPhone 6s" | xcpretty -c + - xcodebuild test -scheme Tyro-iOS -configuration Debug -sdk iphonesimulator -destination "platform=iOS Simulator,name=iPhone 8" -UseModernBuildSystem=NO | xcpretty -c - xcodebuild clean -scheme Tyro-iOS -configuration Debug -sdk iphonesimulator - - xcodebuild test -scheme Tyro-tvOS -destination 'platform=tvOS Simulator,name=Apple TV' | xcpretty -c + - xcodebuild test -scheme Tyro-tvOS -destination 'platform=tvOS Simulator,name=Apple TV' -UseModernBuildSystem=NO | xcpretty -c - xcodebuild clean -scheme Tyro-tvOS - - xcodebuild build -scheme Tyro-watchOS -destination 'platform=watchOS Simulator,name=Apple Watch - 42mm' | xcpretty -c + - xcodebuild build -scheme Tyro-watchOS -destination 'platform=watchOS Simulator,name=Apple Watch Series 4 - 44mm' -UseModernBuildSystem=NO | xcpretty -c # deploy: # provider: script # script: ./scripts/push.sh diff --git a/.whitesource b/.whitesource new file mode 100644 index 0000000..3e16538 --- /dev/null +++ b/.whitesource @@ -0,0 +1,3 @@ +{ + "settingsInheritedFrom": "Sharecare/whitesource-config@main" +} \ No newline at end of file diff --git a/Cartfile b/Cartfile index 01417a0..95d84bc 100644 --- a/Cartfile +++ b/Cartfile @@ -1 +1 @@ -github "typelift/Swiftz" ~> 0.7.0 +github "sharecare/Swiftz" "master" diff --git a/Cartfile.private b/Cartfile.private index 5157273..caf2457 100644 --- a/Cartfile.private +++ b/Cartfile.private @@ -1 +1 @@ -github "typelift/SwiftCheck" ~> 0.8.1 +github "sharecare/SwiftCheck" "master" diff --git a/Carthage/Checkouts/SwiftCheck b/Carthage/Checkouts/SwiftCheck index cf99580..c3bb2da 160000 --- a/Carthage/Checkouts/SwiftCheck +++ b/Carthage/Checkouts/SwiftCheck @@ -1 +1 @@ -Subproject commit cf9958085b2ee1643e541e407c3233d1b76c18ff +Subproject commit c3bb2da15f0d9689eefd85394694d4f5057d5ea6 diff --git a/Carthage/Checkouts/Swiftz b/Carthage/Checkouts/Swiftz index 973ff0f..6cc1136 160000 --- a/Carthage/Checkouts/Swiftz +++ b/Carthage/Checkouts/Swiftz @@ -1 +1 @@ -Subproject commit 973ff0f61c424e9296fd45c2bff5e5e7582fd8fa +Subproject commit 6cc11367d8222486312846e460b3ec63d7e9018d diff --git a/README.md b/README.md index 18d0639..d34d34a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ Tyro ====== -Tyro is a Swift library for Functional JSON parsing and encoding. It is now supported on this repo for Swift 4.2 but used +Tyro is a Swift library for Functional JSON parsing and encoding. It is now supported on this repo for Swift 5.0 but used to be maintained by [typelift](https://github.com/typelift/tyro). diff --git a/Tyro.xcodeproj/project.pbxproj b/Tyro.xcodeproj/project.pbxproj index a9a877f..97ae0ce 100644 --- a/Tyro.xcodeproj/project.pbxproj +++ b/Tyro.xcodeproj/project.pbxproj @@ -766,7 +766,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0900; + LastUpgradeCheck = 1120; ORGANIZATIONNAME = TypeLift; TargetAttributes = { 823739711CC99B1400CBAF3C = { @@ -790,16 +790,17 @@ }; DE702D171BFB28E30017CEE8 = { CreatedOnToolsVersion = 7.1.1; - LastSwiftMigration = 1010; + LastSwiftMigration = 1120; }; }; }; buildConfigurationList = DE702CCA1BFAC6820017CEE8 /* Build configuration list for PBXProject "Tyro" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = DE702CC61BFAC6820017CEE8; productRefGroup = DE702CD11BFAC6830017CEE8 /* Products */; @@ -1249,6 +1250,7 @@ PRODUCT_NAME = Tyro; SDKROOT = appletvos; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 9.2; }; @@ -1270,6 +1272,7 @@ PRODUCT_NAME = Tyro; SDKROOT = appletvos; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 9.2; }; @@ -1318,6 +1321,7 @@ PRODUCT_NAME = Tyro; SDKROOT = watchos; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 4; WATCHOS_DEPLOYMENT_TARGET = 2.2; }; @@ -1340,6 +1344,7 @@ PRODUCT_NAME = Tyro; SDKROOT = watchos; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 4; WATCHOS_DEPLOYMENT_TARGET = 2.2; }; @@ -1350,6 +1355,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -1358,12 +1364,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -1396,7 +1404,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -1408,6 +1416,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -1416,12 +1425,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -1447,7 +1458,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -1476,7 +1487,7 @@ PRODUCT_NAME = Tyro; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1500,7 +1511,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.typelift.Tyro; PRODUCT_NAME = Tyro; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -1560,7 +1571,7 @@ SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1583,7 +1594,7 @@ SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -1600,7 +1611,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1617,7 +1628,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; diff --git a/Tyro.xcodeproj/xcshareddata/xcschemes/Tyro-iOS.xcscheme b/Tyro.xcodeproj/xcshareddata/xcschemes/Tyro-iOS.xcscheme index a9926f8..9a86470 100644 --- a/Tyro.xcodeproj/xcshareddata/xcschemes/Tyro-iOS.xcscheme +++ b/Tyro.xcodeproj/xcshareddata/xcschemes/Tyro-iOS.xcscheme @@ -1,6 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> + + + + @@ -40,17 +49,6 @@ - - - - - - - - + + + + @@ -39,17 +48,6 @@ - - - - - - - - - - - - + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> + + + + @@ -40,17 +49,6 @@ - - - - - - - - : FromJSON where B.T == A { case .Array(let values): return values.compactMap(B.fromJSON).lift().either(onLeft: { .Left(.Array($0)) }, onRight: Either.Right) default: - return .Left(.TypeMismatch("\(JSONValue.Array.self)", "\(type(of: value))")) + return .Left(.TypeMismatch("\(String(describing: JSONValue.Array.self))", "\(type(of: value))")) } } } @@ -36,7 +36,7 @@ public struct FromJSONDictionary: FromJSON where B.T == A { case .Object(let value): return value.mapMaybe(B.fromJSON).lift().either(onLeft: { .Left(.Array($0)) }, onRight: Either.Right) default: - return .Left(.TypeMismatch("\(JSONValue.Object.self)", "\(type(of: value).self)")) + return .Left(.TypeMismatch("\(String(describing: JSONValue.Object.self))", "\(type(of: value).self)")) } } } diff --git a/Tyro/Enum.swift b/Tyro/Enum.swift index 88d9b88..a398e8f 100644 --- a/Tyro/Enum.swift +++ b/Tyro/Enum.swift @@ -17,7 +17,7 @@ extension FromJSON where Self : RawRepresentable, Self.RawValue == Int { let x : T? = self.init(rawValue : n) as? T return x.toEither(.Custom("Raw value could not be converted")) default: - return .Left(.TypeMismatch("\(JSONValue.Number.self)","\(value.self)")) + return .Left(.TypeMismatch("\(String(describing: JSONValue.Number.self))","\(value.self)")) } } } @@ -37,7 +37,7 @@ extension FromJSON where Self : RawRepresentable, Self.RawValue == String { let x : T? = self.init(rawValue : s) as? T return x.toEither(.Custom("Raw value could not be converted")) default: - return .Left(.TypeMismatch("\(JSONValue.Number.self)","\(value.self)")) + return .Left(.TypeMismatch("\(String(describing: JSONValue.Number.self))","\(value.self)")) } } } diff --git a/securityconfig.json b/securityconfig.json new file mode 100644 index 0000000..fb0b960 --- /dev/null +++ b/securityconfig.json @@ -0,0 +1,12 @@ +{ + "team": "Berlin", + "team_owner": "Dan Eckert", + "team_poc": "Dimitrios Georgakopoulos", + "risk_assessment": { + "usesDeidentifiedData": false, + "sourcedFromPHIorPII": false, + "appPubliclyAccessible": true, + "containsPII": true, + "containsPHI": true + } +}