diff --git a/Package.swift b/Package.swift index 2280166..4c6e371 100644 --- a/Package.swift +++ b/Package.swift @@ -14,13 +14,15 @@ let package = Package( ) ], dependencies: [ - .package(url: "https://github.com/GetStream/stream-core-swift.git", exact: "0.3.0") + .package(url: "https://github.com/GetStream/stream-core-swift.git", exact: "0.4.0") ], targets: [ .target( name: "StreamFeeds", dependencies: [ - .product(name: "StreamCore", package: "stream-core-swift") + .product(name: "StreamAttachments", package: "stream-core-swift"), + .product(name: "StreamCore", package: "stream-core-swift"), + .product(name: "StreamOpenAPI", package: "stream-core-swift") ] ), .testTarget( diff --git a/Sources/StreamFeeds/Extensions/StreamCore+Extensions.swift b/Sources/StreamFeeds/Extensions/StreamCore+Extensions.swift new file mode 100644 index 0000000..40b99e5 --- /dev/null +++ b/Sources/StreamFeeds/Extensions/StreamCore+Extensions.swift @@ -0,0 +1,6 @@ +// +// Copyright © 2025 Stream.io Inc. All rights reserved. +// + +@_exported import StreamAttachments +@_exported import StreamCore diff --git a/Sources/StreamFeeds/FeedsClient.swift b/Sources/StreamFeeds/FeedsClient.swift index e42e854..72188bc 100644 --- a/Sources/StreamFeeds/FeedsClient.swift +++ b/Sources/StreamFeeds/FeedsClient.swift @@ -4,7 +4,8 @@ import Combine import Foundation -@preconcurrency import StreamCore +import StreamAttachments +import StreamCore public final class FeedsClient: Sendable { public let apiKey: APIKey diff --git a/StreamFeeds.xcodeproj/project.pbxproj b/StreamFeeds.xcodeproj/project.pbxproj index b36762d..14f464e 100644 --- a/StreamFeeds.xcodeproj/project.pbxproj +++ b/StreamFeeds.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 4F0767B52EA0D0BB00E5FD18 /* StreamAttachments in Frameworks */ = {isa = PBXBuildFile; productRef = 4F0767B42EA0D0BB00E5FD18 /* StreamAttachments */; }; 82C6B2B02E1D177D00CB3B23 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 82C6B2AF2E1D177D00CB3B23 /* PrivacyInfo.xcprivacy */; }; 845494EB2DBA2E7C00211413 /* StreamFeeds.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 845494E22DBA2E7C00211413 /* StreamFeeds.framework */; }; 84AA8E642DCA45880030DD7D /* StreamCore in Frameworks */ = {isa = PBXBuildFile; productRef = 84AA8E632DCA45880030DD7D /* StreamCore */; }; @@ -105,6 +106,7 @@ files = ( 84AA8E642DCA45880030DD7D /* StreamCore in Frameworks */, 84B9B53B2E4A9F0300923DD8 /* StreamCore in Frameworks */, + 4F0767B52EA0D0BB00E5FD18 /* StreamAttachments in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -190,6 +192,7 @@ packageProductDependencies = ( 84AA8E632DCA45880030DD7D /* StreamCore */, 84B9B53A2E4A9F0300923DD8 /* StreamCore */, + 4F0767B42EA0D0BB00E5FD18 /* StreamAttachments */, ); productName = StreamFeeds; productReference = 845494E22DBA2E7C00211413 /* StreamFeeds.framework */; @@ -864,12 +867,17 @@ repositoryURL = "https://github.com/GetStream/stream-core-swift.git"; requirement = { kind = exactVersion; - version = 0.3.0; + version = 0.4.0; }; }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ + 4F0767B42EA0D0BB00E5FD18 /* StreamAttachments */ = { + isa = XCSwiftPackageProductDependency; + package = 84B9B5392E4A9F0300923DD8 /* XCRemoteSwiftPackageReference "stream-core-swift" */; + productName = StreamAttachments; + }; 84AA8E632DCA45880030DD7D /* StreamCore */ = { isa = XCSwiftPackageProductDependency; productName = StreamCore; diff --git a/Tests/StreamFeedsTests/TestTools/APITransportMock.swift b/Tests/StreamFeedsTests/TestTools/APITransportMock.swift index e2a727a..059dfa4 100644 --- a/Tests/StreamFeedsTests/TestTools/APITransportMock.swift +++ b/Tests/StreamFeedsTests/TestTools/APITransportMock.swift @@ -9,7 +9,7 @@ import StreamFeeds final class APITransportMock: DefaultAPITransport { let responsePayloads = AllocatedUnfairLock<[any Encodable]>([]) - func execute(request: StreamCore.Request) async throws -> (Data, URLResponse) { + func execute(request: Request) async throws -> (Data, URLResponse) { let payload = try responsePayloads.withLock { payloads in try Self.consumeResponsePayload(for: request, from: &payloads) } @@ -23,7 +23,7 @@ final class APITransportMock: DefaultAPITransport { return (data, response) } - private static func consumeResponsePayload(for request: StreamCore.Request, from payloads: inout [any Encodable]) throws -> any Encodable { + private static func consumeResponsePayload(for request: Request, from payloads: inout [any Encodable]) throws -> any Encodable { let payloadIndex = payloads.firstIndex { payload in switch payload.self { case is GetActivityResponse: