Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Flutter-DataStore-V2] fix: resolve plugins build issues #3654

Merged
merged 1 commit into from
Apr 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,13 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
shouldUseLaunchSchemeArgsEnv = "YES">
<TestPlans>
<TestPlanReference
reference = "container:AmplifyPlugins/Core/AWSPluginsSDKCoreTests/AWSPluginsSDKCore.xctestplan"
default = "YES">
</TestPlanReference>
</TestPlans>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
Expand Down
19 changes: 10 additions & 9 deletions .swiftpm/xcode/xcshareddata/xcschemes/Amplify-Package.xcscheme
Original file line number Diff line number Diff line change
Expand Up @@ -755,6 +755,16 @@
ReferencedContainer = "container:">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "AWSPluginsSDKCoreTests"
BuildableName = "AWSPluginsSDKCoreTests"
BlueprintName = "AWSPluginsSDKCoreTests"
ReferencedContainer = "container:">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
Expand All @@ -781,15 +791,6 @@
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "Amplify"
BuildableName = "Amplify"
BlueprintName = "Amplify"
ReferencedContainer = "container:">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

@_spi(InternalAmplifyConfiguration) import Amplify
import AWSPluginsCore
import AWSPluginsSDKCore
import AwsCommonRuntimeKit

public extension AWSAPIPlugin {
Expand Down Expand Up @@ -55,15 +56,15 @@ extension AWSAPIPlugin {
/// A holder for AWSAPIPlugin dependencies that provides sane defaults for
/// production
struct ConfigurationDependencies {
let authService: AWSAuthServiceBehavior
let authService: AWSAuthCredentialsProviderBehavior
let pluginConfig: AWSAPICategoryPluginConfiguration
let appSyncRealTimeClientFactory: AppSyncRealTimeClientFactoryProtocol
let logLevel: Amplify.LogLevel

init(
configurationValues: JSONValue,
apiAuthProviderFactory: APIAuthProviderFactory,
authService: AWSAuthServiceBehavior? = nil,
authService: AWSAuthCredentialsProviderBehavior? = nil,
appSyncRealTimeClientFactory: AppSyncRealTimeClientFactoryProtocol? = nil,
logLevel: Amplify.LogLevel? = nil
) throws {
Expand All @@ -90,7 +91,7 @@ extension AWSAPIPlugin {
init(
configuration: AmplifyOutputsData,
apiAuthProviderFactory: APIAuthProviderFactory,
authService: AWSAuthServiceBehavior = AWSAuthService(),
authService: AWSAuthCredentialsProviderBehavior = AWSAuthService(),
appSyncRealTimeClientFactory: AppSyncRealTimeClientFactoryProtocol? = nil,
logLevel: Amplify.LogLevel = Amplify.Logging.logLevel
) throws {
Expand All @@ -111,7 +112,7 @@ extension AWSAPIPlugin {

init(
pluginConfig: AWSAPICategoryPluginConfiguration,
authService: AWSAuthServiceBehavior,
authService: AWSAuthCredentialsProviderBehavior,
appSyncRealTimeClientFactory: AppSyncRealTimeClientFactoryProtocol,
logLevel: Amplify.LogLevel
) {
Expand Down
3 changes: 2 additions & 1 deletion AmplifyPlugins/API/Sources/AWSAPIPlugin/AWSAPIPlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import Amplify
import AWSPluginsCore
import AWSPluginsSDKCore
import Foundation

final public class AWSAPIPlugin: NSObject, APICategoryPlugin, AWSAPIAuthInformation {
Expand All @@ -25,7 +26,7 @@ final public class AWSAPIPlugin: NSObject, APICategoryPlugin, AWSAPIAuthInformat

/// The provider for Auth services required to access protected APIs. This will be
/// populated during the configuration phase, and is clearable by `reset()`.
var authService: AWSAuthServiceBehavior!
var authService: AWSAuthCredentialsProviderBehavior!

/// The provider for network connections and operations. This will be populated
/// during initialization, and is clearable by `reset()`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
@_spi(InternalAmplifyConfiguration) import Amplify
import Foundation
import AWSPluginsCore
import AWSPluginsSDKCore

// Convenience typealias
typealias APIEndpointName = String
Expand All @@ -17,11 +18,11 @@ public struct AWSAPICategoryPluginConfiguration {
private var interceptors: [APIEndpointName: AWSAPIEndpointInterceptors]

private var apiAuthProviderFactory: APIAuthProviderFactory?
private var authService: AWSAuthServiceBehavior?
private var authService: AWSAuthCredentialsProviderBehavior?

init(jsonValue: JSONValue,
apiAuthProviderFactory: APIAuthProviderFactory,
authService: AWSAuthServiceBehavior) throws {
authService: AWSAuthCredentialsProviderBehavior) throws {
guard case .object(let config) = jsonValue else {
throw PluginError.pluginConfigurationError(
"Could not cast incoming configuration to a JSONValue `.object`",
Expand Down Expand Up @@ -50,7 +51,7 @@ public struct AWSAPICategoryPluginConfiguration {

init(configuration: AmplifyOutputsData,
apiAuthProviderFactory: APIAuthProviderFactory,
authService: AWSAuthServiceBehavior) throws {
authService: AWSAuthCredentialsProviderBehavior) throws {

guard let data = configuration.data else {
throw PluginError.pluginConfigurationError(
Expand Down Expand Up @@ -95,7 +96,7 @@ public struct AWSAPICategoryPluginConfiguration {
internal init(endpoints: [APIEndpointName: EndpointConfig],
interceptors: [APIEndpointName: AWSAPIEndpointInterceptors] = [:],
apiAuthProviderFactory: APIAuthProviderFactory,
authService: AWSAuthServiceBehavior) {
authService: AWSAuthCredentialsProviderBehavior) {
self.endpoints = endpoints
self.interceptors = interceptors
self.apiAuthProviderFactory = apiAuthProviderFactory
Expand Down Expand Up @@ -215,7 +216,7 @@ public struct AWSAPICategoryPluginConfiguration {
/// - Returns: dictionary of AWSAPIEndpointInterceptors indexed by API endpoint name
private static func makeInterceptors(forEndpoints endpoints: [APIEndpointName: EndpointConfig],
apiAuthProviderFactory: APIAuthProviderFactory,
authService: AWSAuthServiceBehavior) throws -> [APIEndpointName: AWSAPIEndpointInterceptors] {
authService: AWSAuthCredentialsProviderBehavior) throws -> [APIEndpointName: AWSAPIEndpointInterceptors] {
var interceptors: [APIEndpointName: AWSAPIEndpointInterceptors] = [:]
for (name, config) in endpoints {
var interceptorsConfig = AWSAPIEndpointInterceptors(endpointName: name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import Amplify
import Foundation
import AWSPluginsCore
import AWSPluginsSDKCore

/// The order of interceptor decoration is as follows:
/// 1. **prelude interceptors**
Expand All @@ -22,7 +23,7 @@ struct AWSAPIEndpointInterceptors {
let apiEndpointName: APIEndpointName

let apiAuthProviderFactory: APIAuthProviderFactory
let authService: AWSAuthServiceBehavior?
let authService: AWSAuthCredentialsProviderBehavior?

var preludeInterceptors: [URLRequestInterceptor] = []

Expand All @@ -46,7 +47,7 @@ struct AWSAPIEndpointInterceptors {

init(endpointName: APIEndpointName,
apiAuthProviderFactory: APIAuthProviderFactory,
authService: AWSAuthServiceBehavior? = nil) {
authService: AWSAuthCredentialsProviderBehavior? = nil) {
self.apiEndpointName = endpointName
self.apiAuthProviderFactory = apiAuthProviderFactory
self.authService = authService
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import Amplify
import AWSPluginsCore
import AWSPluginsSDKCore
import Foundation

struct APIKeyURLRequestInterceptor: URLRequestInterceptor {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import Amplify
import AWSPluginsCore
import AWSPluginsSDKCore
import Foundation

class AuthTokenProviderWrapper: AuthTokenProvider {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import Amplify
import AWSPluginsCore
import AWSPluginsSDKCore
import Foundation

struct AuthTokenURLRequestInterceptor: URLRequestInterceptor {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import Amplify
import AWSPluginsCore
import AWSPluginsSDKCore
import Foundation
import ClientRuntime

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import Foundation
@_spi(WebSocket) import AWSPluginsCore
import AWSPluginsSDKCore
import Amplify
import AWSClientRuntime
import ClientRuntime
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import Amplify
import Foundation
import AWSPluginsCore
import AWSPluginsSDKCore
import Combine

public class AWSGraphQLSubscriptionTaskRunner<R: Decodable>: InternalTaskRunner, InternalTaskAsyncThrowingSequence, InternalTaskThrowingChannel {
Expand All @@ -25,7 +26,7 @@ public class AWSGraphQLSubscriptionTaskRunner<R: Decodable>: InternalTaskRunner,
}
let appSyncClientFactory: AppSyncRealTimeClientFactoryProtocol
let pluginConfig: AWSAPICategoryPluginConfiguration
let authService: AWSAuthServiceBehavior
let authService: AWSAuthCredentialsProviderBehavior
var apiAuthProviderFactory: APIAuthProviderFactory
private let userAgent = AmplifyAWSServiceConfiguration.userAgentLib
private let subscriptionId = UUID().uuidString
Expand All @@ -35,7 +36,7 @@ public class AWSGraphQLSubscriptionTaskRunner<R: Decodable>: InternalTaskRunner,
init(request: Request,
pluginConfig: AWSAPICategoryPluginConfiguration,
appSyncClientFactory: AppSyncRealTimeClientFactoryProtocol,
authService: AWSAuthServiceBehavior,
authService: AWSAuthCredentialsProviderBehavior,
apiAuthProviderFactory: APIAuthProviderFactory) {
self.request = request
self.pluginConfig = pluginConfig
Expand Down Expand Up @@ -185,7 +186,7 @@ final public class AWSGraphQLSubscriptionOperation<R: Decodable>: GraphQLSubscri

let pluginConfig: AWSAPICategoryPluginConfiguration
let appSyncRealTimeClientFactory: AppSyncRealTimeClientFactoryProtocol
let authService: AWSAuthServiceBehavior
let authService: AWSAuthCredentialsProviderBehavior
private let userAgent = AmplifyAWSServiceConfiguration.userAgentLib

var appSyncRealTimeClient: AppSyncRealTimeClientProtocol?
Expand All @@ -201,7 +202,7 @@ final public class AWSGraphQLSubscriptionOperation<R: Decodable>: GraphQLSubscri
init(request: GraphQLOperationRequest<R>,
pluginConfig: AWSAPICategoryPluginConfiguration,
appSyncRealTimeClientFactory: AppSyncRealTimeClientFactoryProtocol,
authService: AWSAuthServiceBehavior,
authService: AWSAuthCredentialsProviderBehavior,
apiAuthProviderFactory: APIAuthProviderFactory,
inProcessListener: AWSGraphQLSubscriptionOperation.InProcessListener?,
resultListener: AWSGraphQLSubscriptionOperation.ResultListener?) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@
import Foundation
import Amplify
import Combine
import AWSPluginsSDKCore
@_spi(WebSocket) import AWSPluginsCore

protocol AppSyncRealTimeClientFactoryProtocol {
func getAppSyncRealTimeClient(
for endpointConfig: AWSAPICategoryPluginConfiguration.EndpointConfig,
endpoint: URL,
authService: AWSAuthServiceBehavior,
authService: AWSAuthCredentialsProviderBehavior,
authType: AWSAuthorizationType?,
apiAuthProviderFactory: APIAuthProviderFactory
) async throws -> AppSyncRealTimeClientProtocol
Expand All @@ -40,7 +41,7 @@ actor AppSyncRealTimeClientFactory: AppSyncRealTimeClientFactoryProtocol {
public func getAppSyncRealTimeClient(
for endpointConfig: AWSAPICategoryPluginConfiguration.EndpointConfig,
endpoint: URL,
authService: AWSAuthServiceBehavior,
authService: AWSAuthCredentialsProviderBehavior,
authType: AWSAuthorizationType? = nil,
apiAuthProviderFactory: APIAuthProviderFactory
) throws -> AppSyncRealTimeClientProtocol {
Expand Down Expand Up @@ -90,7 +91,7 @@ actor AppSyncRealTimeClientFactory: AppSyncRealTimeClientFactoryProtocol {

private func getInterceptor(
for authorizationConfiguration: AWSAuthorizationConfiguration,
authService: AWSAuthServiceBehavior,
authService: AWSAuthCredentialsProviderBehavior,
apiAuthProviderFactory: APIAuthProviderFactory
) throws -> AppSyncRequestInterceptor & WebSocketInterceptor {
switch authorizationConfiguration {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Combine
@testable import Amplify
@testable import AWSAPIPlugin
@testable @_spi(WebSocket) import AWSPluginsCore
@testable import AWSPluginsSDKCore

class AppSyncRealTimeClientTests: XCTestCase {
let subscriptionRequest = """
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import XCTest
@testable import AWSAPIPlugin
import AWSPluginsCore
import AWSPluginsSDKCore

// swiftlint:disable:next type_name
class AWSAPICategoryPluginInterceptorBehaviorTests: AWSAPICategoryPluginTestBase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import Foundation
@testable import AWSAPIPlugin
@testable import AWSPluginsTestCommon
import AWSPluginsCore
import AWSPluginsSDKCore

class AWSAPICategoryPluginConfigurationTests: XCTestCase {
let graphQLAPI = "graphQLAPI"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import XCTest
import Amplify
import AWSPluginsCore
import AWSPluginsSDKCore
@testable import AmplifyTestCommon
@testable import AWSAPIPlugin
@testable import AWSPluginsTestCommon
Expand Down Expand Up @@ -102,7 +103,7 @@ class AWSAPIEndpointInterceptorsTests: XCTestCase {

// MARK: - Test Helpers

func createAPIInterceptorConfig(authService: AWSAuthServiceBehavior = MockAWSAuthService()) -> AWSAPIEndpointInterceptors {
func createAPIInterceptorConfig(authService: AWSAuthCredentialsProviderBehavior = MockAWSAuthService()) -> AWSAPIEndpointInterceptors {
return AWSAPIEndpointInterceptors(
endpointName: endpointName,
apiAuthProviderFactory: APIAuthProviderFactory(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import XCTest
import AWSPluginsCore
import AWSPluginsSDKCore
@testable import Amplify
@testable import AmplifyTestCommon
@testable import AWSAPIPlugin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ import Amplify
import Combine
@testable import AWSAPIPlugin
@_spi(WebSocket) import AWSPluginsCore
import AWSPluginsSDKCore

struct MockSubscriptionConnectionFactory: AppSyncRealTimeClientFactoryProtocol {


typealias OnGetOrCreateConnection = (
AWSAPICategoryPluginConfiguration.EndpointConfig,
URL,
AWSAuthServiceBehavior,
AWSAuthCredentialsProviderBehavior,
AWSAuthorizationType?,
APIAuthProviderFactory
) async throws -> AppSyncRealTimeClientProtocol
Expand All @@ -32,7 +32,7 @@ struct MockSubscriptionConnectionFactory: AppSyncRealTimeClientFactoryProtocol {
func getAppSyncRealTimeClient(
for endpointConfig: AWSAPICategoryPluginConfiguration.EndpointConfig,
endpoint: URL,
authService: AWSAuthServiceBehavior,
authService: AWSAuthCredentialsProviderBehavior,
authType: AWSAuthorizationType?,
apiAuthProviderFactory: APIAuthProviderFactory
) async throws -> AppSyncRealTimeClientProtocol {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import AWSCognitoIdentityProvider
import AWSPluginsCore
import ClientRuntime
import AWSClientRuntime
@_spi(PluginHTTPClientEngine) import AWSPluginsCore
@_spi(PluginHTTPClientEngine) import AWSPluginsSDKCore
@_spi(InternalHttpEngineProxy) import AWSPluginsCore

extension AWSCognitoAuthPlugin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// SPDX-License-Identifier: Apache-2.0
//

@_spi(InternalAmplifyPluginExtension) import AWSPluginsCore
@_spi(InternalAmplifyPluginExtension) import AWSPluginsSDKCore
import Foundation
import ClientRuntime

Expand Down
Loading
Loading