Skip to content
Open
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 @@ -34,12 +34,20 @@ runs:

echo "Installing simulators for $PLATFORM with Xcode 16.0.0..."

# Ensure we're using Xcode 16.0.0 for simulator downloads
echo "Switching to Xcode 16.0.0..."
sudo xcode-select -switch /Applications/Xcode_16.0.0.app/Contents/Developer

# Verify the switch worked
echo "Current Xcode version:"
xcodebuild -version

# Show what's available before download
echo "Simulators before download:"
xcrun simctl list runtimes || true

# Download the platform - this will get the appropriate version for Xcode 16.0
echo "Downloading $PLATFORM platform for Xcode 16.0..."
# Download the platform runtime for Xcode 16.0.0
echo "Downloading $PLATFORM runtime for Xcode 16.0..."
case $PLATFORM in
iOS)
sudo xcodebuild -downloadPlatform iOS || echo "Failed to download iOS platform"
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
run: amplify init --quickstart --frontend ios

- name: Setup Ruby
uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0
uses: ruby/setup-ruby@efbf473cab83af4468e8606cc33eca9281bb213f # v1.256.0
with:
ruby-version: '3.2.1'
bundler-cache: true
Expand All @@ -59,5 +59,7 @@ jobs:

- name: Run Tests - ${{ matrix.device }} with iOS ${{ matrix.version }}
working-directory: ${{ github.workspace }}/canaries/example
run: bundle exec fastlane scan --device "${{ matrix.device }}" --deployment_target_version "${{ matrix.version }}"
run: |
export FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT=120
bundle exec fastlane scan --device "${{ matrix.device }}" --deployment_target_version "${{ matrix.version }}"

2 changes: 1 addition & 1 deletion .github/workflows/deploy_package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
token: ${{steps.retrieve-token.outputs.token}}

- name: Setup Ruby
uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0
uses: ruby/setup-ruby@efbf473cab83af4468e8606cc33eca9281bb213f # v1.256.0
with:
ruby-version: '3.2.1'
bundler-cache: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
token: ${{steps.retrieve-token.outputs.token}}

- name: Setup Ruby
uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0
uses: ruby/setup-ruby@efbf473cab83af4468e8606cc33eca9281bb213f # v1.256.0
with:
ruby-version: '3.2.1'
bundler-cache: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy_unstable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
token: ${{steps.retrieve-token.outputs.token}}

- name: Setup Ruby
uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0
uses: ruby/setup-ruby@efbf473cab83af4468e8606cc33eca9281bb213f # v1.256.0
with:
ruby-version: '3.2.1'
bundler-cache: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release_doc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
token: ${{steps.retrieve-token.outputs.token}}

- name: Setup Ruby
uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0
uses: ruby/setup-ruby@efbf473cab83af4468e8606cc33eca9281bb213f # v1.256.0
with:
ruby-version: '3.2.1'
bundler-cache: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public final class RetryableGraphQLOperation<Payload: Decodable> {

}

public final class RetryableGraphQLSubscriptionOperation<Payload: Decodable> {
public final class RetryableGraphQLSubscriptionOperation<Payload> where Payload: Decodable, Payload: Sendable {

public typealias Payload = Payload
public typealias SubscriptionEvents = GraphQLSubscriptionEvent<Payload>
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/API/Response/GraphQLError.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public struct GraphQLError: Decodable {
extension GraphQLError {

/// Both `line` and `column` are positive numbers describing the beginning of an associated syntax element
public struct Location: Decodable {
public struct Location: Decodable, @unchecked Sendable {

/// The line describing the associated syntax element
public let line: Int
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/API/Response/GraphQLResponse.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public typealias GraphQLResponse<ResponseType: Decodable> =
Result<ResponseType, GraphQLResponseError<ResponseType>>

/// An error response from a GraphQL API
public enum GraphQLResponseError<ResponseType: Decodable>: AmplifyError {
public enum GraphQLResponseError<ResponseType>: AmplifyError where ResponseType: Sendable, ResponseType: Decodable {

/// An error response. The associated value will be an array of GraphQLError objects that contain service-specific
/// error messages. https://graphql.github.io/graphql-spec/June2018/#sec-Errors
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/DataStore/DataStoreConflict.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//

/// Information about a conflict that occurred attempting to sync a local model with a remote model
public struct DataStoreSyncConflict {
public struct DataStoreSyncConflict: @unchecked Sendable {
public let localModel: Model
public let remoteModel: Model
public let errors: [GraphQLError]?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import Foundation
/// application making any change to these `public` types should be backward compatible, otherwise it will be a breaking
/// change.
public struct ModelListDecoderRegistry {
public static var listDecoders = AtomicValue(initialValue: [ModelListDecoder.Type]())
nonisolated(unsafe) public static var listDecoders = AtomicValue(initialValue: [ModelListDecoder.Type]())

/// Register a decoder during plugin configuration time, to allow runtime retrievals of list providers.
public static func registerDecoder(_ listDecoder: ModelListDecoder.Type) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import Foundation
/// application making any change to these `public` types should be backward compatible, otherwise it will be a breaking
/// change.
public struct ModelProviderRegistry {
static var decoders = AtomicValue(initialValue: [ModelProviderDecoder.Type]())
nonisolated(unsafe) static var decoders = AtomicValue(initialValue: [ModelProviderDecoder.Type]())

/// Register a decoder during plugin configuration time, to allow runtime retrievals of model providers.
public static func registerDecoder(_ decoder: ModelProviderDecoder.Type) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ public struct ModelRegistry {
/// ModelDecoders are used to decode untyped model data, looking up by model name
private typealias ModelDecoder = (String, JSONDecoder?) throws -> Model

private static var modelTypes = [ModelName: Model.Type]()
nonisolated(unsafe) private static var modelTypes = [ModelName: Model.Type]()

private static var modelDecoders = [ModelName: ModelDecoder]()
nonisolated(unsafe) private static var modelDecoders = [ModelName: ModelDecoder]()

private static var modelSchemaMapping = [ModelName: ModelSchema]()
nonisolated(unsafe) private static var modelSchemaMapping = [ModelName: ModelSchema]()

public static var models: [Model.Type] {
concurrencyQueue.sync {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ import Foundation
///
/// - Warning: Although this has `public` access, it is intended for internal & codegen use and should not be used
/// directly by host applications. The behavior of this may change without warning.
public enum ModelAssociation {
public enum ModelAssociation: @unchecked Sendable {
case hasMany(associatedFieldName: String?, associatedFieldNames: [String] = [])
case hasOne(associatedFieldName: String?, associatedFieldNames: [String] = [], targetNames: [String])
case belongsTo(associatedFieldName: String?, targetNames: [String])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import Foundation
///
/// let yesterday = Temporal.Date.now() - .days(1)
/// let sixMonthsAgo = Temporal.Date.now() - .months(6)
public struct DateUnit {
public struct DateUnit: @unchecked Sendable {
let calendarComponent: Calendar.Component
let value: Int

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ extension Temporal {
// of the formatter cache dictionary.
//
// DateFormatter itself is thread safe.
private static var formatterCache: [String: DateFormatter] = [:]
nonisolated(unsafe) private static var formatterCache: [String: DateFormatter] = [:]

@usableFromInline
/// The `Calendar` used for date operations.
Expand All @@ -26,7 +26,7 @@ extension Temporal {
}()

/// Pointer to lock to ensure exclusive access.
private static let lock: UnsafeMutablePointer<os_unfair_lock> = {
nonisolated(unsafe) private static let lock: UnsafeMutablePointer<os_unfair_lock> = {
let pointer = UnsafeMutablePointer<os_unfair_lock>.allocate(capacity: 1)
pointer.initialize(to: os_unfair_lock())
return pointer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import Foundation

public struct TemporalFormat {
public struct TemporalFormat: @unchecked Sendable {
let dateFormat: String
let dateTimeFormat: String
let timeFormat: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import Foundation
/// - Attention: **Don't** use `TimeUnit` to calculate dates, use `DateUnit` instead.
/// Also make sure to use the most applicable `Unit`, e.g. don't use `.minutes(60)` if you really want `.hours(1)`.
/// There are not always 24 hours in a day, 60 minutes in an hour, etc.
public struct TimeUnit {
public struct TimeUnit: @unchecked Sendable {
public let calendarComponent: Calendar.Component
public let value: Int

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import Foundation

/// A snapshot of the items from DataStore, the changes since last snapshot, and whether this model has
/// finished syncing and subscriptions are active
public struct DataStoreQuerySnapshot<M> where M: Model, M: Sendable {
public struct DataStoreQuerySnapshot<M>: @unchecked Sendable {

/// All model instances from the local store
public let items: [M]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

// MARK: - ModelSchema

public static let schema = defineSchema { definition in
nonisolated(unsafe) public static let schema = defineSchema { definition in
let mutation = MutationEvent.keys

definition.listPluralName = "MutationEvents"
Expand All @@ -32,7 +32,7 @@
definition.attributes(.isSystem)

definition.fields(
.id(),

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for iOS / Build Amplify-Package | iOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for iOS / Build Amplify-Package | iOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for visionOS / Build Amplify-Package | visionOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for macOS / Build Amplify-Build | macOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for watchOS / Build Amplify-Package | watchOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for macOS / Build Amplify-Build | macOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for tvOS / Build Amplify-Package | tvOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for watchOS / Build Amplify-Build | watchOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for macOS / Build Amplify-Package | macOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for tvOS / Build Amplify-Build | tvOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for tvOS / Build Amplify-Build | tvOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for iOS / Build Amplify-Build | iOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for iOS / Build Amplify-Build | iOS

'id' is deprecated: Use .primaryKey(fields:)

Check warning on line 35 in Amplify/Categories/DataStore/Subscribe/MutationEvent+Schema.swift

View workflow job for this annotation

GitHub Actions / AWSS3StoragePlugin Unit Tests / watchOS Tests | AWSS3StoragePlugin / watchOS Tests | AWSS3StoragePlugin

'id' is deprecated: Use .primaryKey(fields:)
.field(mutation.modelId, is: .required, ofType: .string),
.field(mutation.modelName, is: .required, ofType: .string),
.field(mutation.json, is: .required, ofType: .string),
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Geo/Types/Geo+Country.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import Foundation

public extension Geo {
/// Country codes for use with Amplify Geo.
struct Country {
struct Country: @unchecked Sendable {
public let code: String
public let description: String
}
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Hub/HubCategoryBehavior+Combine.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ typealias HubSubject = PassthroughSubject<HubPayload, Never>
/// Maintains a map of Subjects by Hub Channel. All downstream subscribers will
/// attach to the same Subject.
private struct HubSubjectMap {
static var `default` = HubSubjectMap()
nonisolated(unsafe) static var `default` = HubSubjectMap()
var subjectsByChannel = AtomicValue<[HubChannel: HubSubject]>(initialValue: [:])
}

Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Hub/HubChannel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public enum HubChannel {
case custom(String)

/// Convenience property to return an array of all non-`custom` channels
static var amplifyChannels: [HubChannel] = {
nonisolated(unsafe) static var amplifyChannels: [HubChannel] = {
let categoryChannels = CategoryType
.allCases
.sorted { $0.displayName < $1.displayName }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ extension PredictionsError {
}
}

extension PredictionsError.ClientError {
extension PredictionsError.ClientError: @unchecked Sendable {
public static let imageNotFound = Self(
description: "Something was wrong with the image file, make sure it exists.",
recoverySuggestion: "Try choosing an image and sending it again."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import Foundation

extension PredictionsError {
public struct ServiceError: Equatable {
public struct ServiceError: Equatable, @unchecked Sendable {
public static func == (lhs: PredictionsError.ServiceError, rhs: PredictionsError.ServiceError) -> Bool {
lhs.description == rhs.description
&& lhs.recoverySuggestion == rhs.recoverySuggestion
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Predictions/Models/Emotion+Kind.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
extension Predictions.Emotion {
/// Different emotion types returned as a result of
/// identify() API call
public struct Kind: Equatable {
public struct Kind: Equatable, @unchecked Sendable {
let id: UInt8

public static let unknown = Self(id: 0)
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Predictions/Models/Entity+Kind.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
extension Predictions.Entity {
/// Different entity types detected in a text as a result of
/// interpret() API
public struct Kind: Equatable, Hashable {
public struct Kind: Equatable, Hashable, @unchecked Sendable {
let id: UInt8

public static let unknown = Self(id: 0)
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Predictions/Models/Gender.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
extension Predictions {
/// Describes gender of an entity identified as a result of
/// identify() API
public struct Gender {
public struct Gender: @unchecked Sendable {
let id: UInt8

public static let unknown = Self(id: 0)
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Predictions/Models/LabelType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//

extension Predictions {
public struct LabelType: Equatable {
public struct LabelType: Equatable, @unchecked Sendable {
let id: UInt8

public static let all = Self(id: 0)
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Predictions/Models/Landmark.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ extension Predictions {

extension Predictions.Landmark {
/// different types of facial features
public struct Kind {
public struct Kind: @unchecked Sendable {
let id: UInt8

public static let allPoints = Self(id: 0)
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Predictions/Models/Language.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

extension Predictions {
// swiftlint:disable file_length type_body_length
public struct Language: Equatable, Decodable {
public struct Language: Equatable, Decodable, @unchecked Sendable {
public let code: String

public init(code: String) {
Expand Down Expand Up @@ -2398,7 +2398,7 @@

extension Predictions.Language {
public init(locale: Locale) {
guard let languageCode = locale.languageCode else {

Check warning on line 2401 in Amplify/Categories/Predictions/Models/Language.swift

View workflow job for this annotation

GitHub Actions / Build Amplify Swift for watchOS / Build Amplify-Build | watchOS

'languageCode' was deprecated in watchOS 9: renamed to 'language.languageCode.identifier'

Check warning on line 2401 in Amplify/Categories/Predictions/Models/Language.swift

View workflow job for this annotation

GitHub Actions / AWSS3StoragePlugin Unit Tests / watchOS Tests | AWSS3StoragePlugin / watchOS Tests | AWSS3StoragePlugin

'languageCode' was deprecated in watchOS 9: renamed to 'language.languageCode.identifier'
self = .undetermined
return
}
Expand Down
2 changes: 1 addition & 1 deletion Amplify/Categories/Predictions/Models/PartOfSpeech.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import Foundation

extension Predictions {
/// Part of speech identified in a text from interpret() API
public struct PartOfSpeech: Equatable {
public struct PartOfSpeech: Equatable, @unchecked Sendable {
let description: String

public static let adjective = Self(description: "adjective")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import Foundation

extension Predictions.Sentiment {
public struct Kind: Equatable, Hashable {
public struct Kind: Equatable, Hashable, @unchecked Sendable {
let id: UInt8

public static let unknown = Self(id: 0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
extension Predictions {
/// Describes different text formats passed a type parameter
/// to identify().
public struct TextFormatType: Equatable {
public struct TextFormatType: Equatable, @unchecked Sendable {
let id: UInt8

public static let all = Self(id: 0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ extension Predictions.Identify {
}

extension Predictions.Identify.Request where Output == Predictions.Identify.Celebrities.Result {
public static let celebrities = Self(
nonisolated(unsafe) public static let celebrities = Self(
kind: .detectCelebrities(.lift)
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ extension Predictions.Identify {
}

extension Predictions.Identify.Request where Output == Predictions.Identify.Entities.Result {
public static let entities = Self(
nonisolated(unsafe) public static let entities = Self(
kind: .detectEntities(.lift)
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ extension Predictions.Identify {
}

extension Predictions.Identify.Request where Output == Predictions.Identify.Text.Result {
public static let text = Self(
nonisolated(unsafe) public static let text = Self(
kind: .detectText(.lift)
)
}
4 changes: 0 additions & 4 deletions Amplify/Categories/Storage/Result/StorageListResult.swift
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,6 @@ public struct StorageListResult {
public let nextToken: String?
}

extension StorageListResult: Sendable { }

extension StorageListResult {

/// - Tag: StorageListResultItem
Expand Down Expand Up @@ -124,5 +122,3 @@ extension StorageListResult {
}
}
}

extension StorageListResult.Item: Sendable { }
2 changes: 1 addition & 1 deletion Amplify/Core/Configuration/AmplifyOutputsData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ public struct AmplifyOutputsData: Codable {
// MARK: - Configure

/// Represents helper methods to configure with Amplify CLI Gen2 configuration.
public struct AmplifyOutputs {
public struct AmplifyOutputs: @unchecked Sendable {

/// A closure that resolves the `AmplifyOutputsData` configuration
@_spi(InternalAmplifyConfiguration)
Expand Down
Loading
Loading