@swiftbrowser/swift 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Package.swift +200 -9
- package/README.md +7 -9
- package/Sources/AVFoundation/AVFoundation.swift +131 -0
- package/Sources/AVFoundation/Asset.swift +487 -0
- package/Sources/AVFoundation/AudioSession.swift +144 -0
- package/Sources/AVFoundation/CMTime.swift +303 -0
- package/Sources/AVFoundation/Capture.swift +688 -0
- package/Sources/AVFoundation/Player.swift +749 -0
- package/Sources/AVFoundation/PlayerView.swift +117 -0
- package/Sources/AVKit/AVKit.swift +132 -0
- package/Sources/Accelerate/Accelerate.swift +122 -0
- package/Sources/AppIntents/AppIntents.swift +144 -0
- package/Sources/AppIntents/Parameters.swift +220 -0
- package/Sources/AppIntents/Shortcuts.swift +159 -0
- package/Sources/AudioToolbox/AudioToolbox.swift +55 -0
- package/Sources/AuthenticationServices/AuthenticationServices.swift +257 -0
- package/Sources/AuthenticationServices/Authorization.swift +251 -0
- package/Sources/Charts/Charts.swift +0 -4
- package/Sources/Combine/AnyCancellable.swift +65 -0
- package/Sources/Combine/AnyPublisher.swift +148 -0
- package/Sources/Combine/AnySubscriber.swift +230 -0
- package/Sources/Combine/Cancellable.swift +35 -0
- package/Sources/Combine/Codable.swift +29 -0
- package/Sources/Combine/CombineIdentifier.swift +45 -0
- package/Sources/Combine/Concurrency/ConcurrencyHelpers.swift +24 -0
- package/Sources/Combine/Concurrency/Future+Concurrency.swift +136 -0
- package/Sources/Combine/Concurrency/GENERATED-Publisher+Concurrency.swift +397 -0
- package/Sources/Combine/CurrentValueSubject.swift +252 -0
- package/Sources/Combine/CustomCombineIdentifierConvertible.swift +28 -0
- package/Sources/Combine/Future.swift +228 -0
- package/Sources/Combine/GENERATED-RootProtocols.swift +426 -0
- package/Sources/Combine/Helpers/ConduitBase.swift +40 -0
- package/Sources/Combine/Helpers/ConduitList.swift +59 -0
- package/Sources/Combine/Helpers/DebugHook.swift +177 -0
- package/Sources/Combine/Helpers/FilterProducer.swift +174 -0
- package/Sources/Combine/Helpers/Locking.swift +30 -0
- package/Sources/Combine/Helpers/PartialCompletion.swift +26 -0
- package/Sources/Combine/Helpers/ReduceProducer.swift +249 -0
- package/Sources/Combine/Helpers/SubjectSubscriber.swift +96 -0
- package/Sources/Combine/Helpers/SubscriberTap.swift +69 -0
- package/Sources/Combine/Helpers/SubscriptionStatus.swift +33 -0
- package/Sources/Combine/Helpers/SubscriptionTap.swift +33 -0
- package/Sources/Combine/Helpers/Utils.swift +30 -0
- package/Sources/Combine/Helpers/Violations.swift +33 -0
- package/Sources/Combine/ImmediateScheduler.swift +178 -0
- package/Sources/Combine/LICENSE +21 -0
- package/Sources/Combine/NotificationPublisher.swift +48 -0
- package/Sources/Combine/ObjectWillChange.swift +46 -0
- package/Sources/Combine/PassthroughSubject.swift +222 -0
- package/Sources/Combine/Publisher+Subscribe.swift +53 -0
- package/Sources/Combine/Publishers/Deferred.swift +48 -0
- package/Sources/Combine/Publishers/Empty.swift +54 -0
- package/Sources/Combine/Publishers/Fail.swift +42 -0
- package/Sources/Combine/Publishers/GENERATED-Publishers.Catch.swift +673 -0
- package/Sources/Combine/Publishers/GENERATED-Publishers.Encode.swift +388 -0
- package/Sources/Combine/Publishers/GENERATED-Publishers.MapKeyPath.swift +384 -0
- package/Sources/Combine/Publishers/Just.swift +313 -0
- package/Sources/Combine/Publishers/Optional.Publisher.swift +315 -0
- package/Sources/Combine/Publishers/Publishers.AllSatisfy.swift +217 -0
- package/Sources/Combine/Publishers/Publishers.AssertNoFailure.swift +158 -0
- package/Sources/Combine/Publishers/Publishers.Autoconnect.swift +193 -0
- package/Sources/Combine/Publishers/Publishers.Breakpoint.swift +231 -0
- package/Sources/Combine/Publishers/Publishers.Buffer.swift +356 -0
- package/Sources/Combine/Publishers/Publishers.Collect.swift +102 -0
- package/Sources/Combine/Publishers/Publishers.CollectByCount.swift +195 -0
- package/Sources/Combine/Publishers/Publishers.CompactMap.swift +241 -0
- package/Sources/Combine/Publishers/Publishers.Comparison.swift +371 -0
- package/Sources/Combine/Publishers/Publishers.Concatenate.swift +474 -0
- package/Sources/Combine/Publishers/Publishers.Contains.swift +293 -0
- package/Sources/Combine/Publishers/Publishers.Count.swift +87 -0
- package/Sources/Combine/Publishers/Publishers.Debounce.swift +332 -0
- package/Sources/Combine/Publishers/Publishers.Delay.swift +269 -0
- package/Sources/Combine/Publishers/Publishers.Drop.swift +155 -0
- package/Sources/Combine/Publishers/Publishers.DropUntilOutput.swift +283 -0
- package/Sources/Combine/Publishers/Publishers.DropWhile.swift +378 -0
- package/Sources/Combine/Publishers/Publishers.Filter.swift +248 -0
- package/Sources/Combine/Publishers/Publishers.First.swift +261 -0
- package/Sources/Combine/Publishers/Publishers.FlatMap.swift +533 -0
- package/Sources/Combine/Publishers/Publishers.HandleEvents.swift +260 -0
- package/Sources/Combine/Publishers/Publishers.IgnoreOutput.swift +109 -0
- package/Sources/Combine/Publishers/Publishers.Last.swift +252 -0
- package/Sources/Combine/Publishers/Publishers.MakeConnectable.swift +82 -0
- package/Sources/Combine/Publishers/Publishers.Map.swift +351 -0
- package/Sources/Combine/Publishers/Publishers.MapError.swift +140 -0
- package/Sources/Combine/Publishers/Publishers.MeasureInterval.swift +187 -0
- package/Sources/Combine/Publishers/Publishers.Multicast.swift +284 -0
- package/Sources/Combine/Publishers/Publishers.Output.swift +241 -0
- package/Sources/Combine/Publishers/Publishers.PrefixUntilOutput.swift +197 -0
- package/Sources/Combine/Publishers/Publishers.PrefixWhile.swift +176 -0
- package/Sources/Combine/Publishers/Publishers.Print.swift +206 -0
- package/Sources/Combine/Publishers/Publishers.ReceiveOn.swift +227 -0
- package/Sources/Combine/Publishers/Publishers.Reduce.swift +204 -0
- package/Sources/Combine/Publishers/Publishers.RemoveDuplicates.swift +264 -0
- package/Sources/Combine/Publishers/Publishers.ReplaceEmpty.swift +201 -0
- package/Sources/Combine/Publishers/Publishers.ReplaceError.swift +211 -0
- package/Sources/Combine/Publishers/Publishers.Retry.swift +274 -0
- package/Sources/Combine/Publishers/Publishers.Scan.swift +331 -0
- package/Sources/Combine/Publishers/Publishers.Sequence.swift +437 -0
- package/Sources/Combine/Publishers/Publishers.SetFailureType.swift +120 -0
- package/Sources/Combine/Publishers/Publishers.Share.swift +104 -0
- package/Sources/Combine/Publishers/Publishers.SubscribeOn.swift +197 -0
- package/Sources/Combine/Publishers/Publishers.SwitchToLatest.swift +444 -0
- package/Sources/Combine/Publishers/Publishers.Throttle.swift +359 -0
- package/Sources/Combine/Publishers/Publishers.Timeout.swift +301 -0
- package/Sources/Combine/Publishers/Publishers.Zip.swift +720 -0
- package/Sources/Combine/Publishers/Publishers.swift +13 -0
- package/Sources/Combine/Publishers/Record.swift +237 -0
- package/Sources/Combine/Publishers/Result.Publisher.swift +337 -0
- package/Sources/Combine/Result.swift +46 -0
- package/Sources/Combine/Scheduler.swift +89 -0
- package/Sources/Combine/Schedulers.swift +211 -0
- package/Sources/Combine/Subject+Void.swift +17 -0
- package/Sources/Combine/Subscriber+Void.swift +20 -0
- package/Sources/Combine/Subscribers/Subscribers.Assign.swift +175 -0
- package/Sources/Combine/Subscribers/Subscribers.Completion.swift +90 -0
- package/Sources/Combine/Subscribers/Subscribers.Demand.swift +476 -0
- package/Sources/Combine/Subscribers/Subscribers.Sink.swift +206 -0
- package/Sources/Combine/Subscribers/Subscribers.swift +9 -0
- package/Sources/Combine/Subscription.swift +22 -0
- package/Sources/Combine/Subscriptions.swift +42 -0
- package/Sources/Combine/SwiftUIObservation.swift +10 -0
- package/Sources/Combine/_Introspection.swift +107 -0
- package/Sources/CommonCrypto/CommonCrypto.swift +80 -0
- package/Sources/Compression/Compression.swift +365 -0
- package/Sources/Compression/Deflate.swift +407 -0
- package/Sources/Compression/Zlib.swift +179 -0
- package/Sources/CoreFoundationTypes/CoreFoundationTypes.swift +101 -0
- package/Sources/CoreGraphics/CoreGraphics.swift +411 -0
- package/Sources/CoreGraphics/ProjectionTransforms.swift +28 -0
- package/Sources/CoreHaptics/CoreHaptics.swift +399 -0
- package/Sources/CoreImage/CIColor.swift +41 -0
- package/Sources/CoreImage/CIContext.swift +31 -0
- package/Sources/CoreImage/CIDetector.swift +57 -0
- package/Sources/CoreImage/CIFilter.swift +243 -0
- package/Sources/CoreImage/CIFilterBuiltins.swift +136 -0
- package/Sources/CoreImage/CIImage.swift +162 -0
- package/Sources/CoreImage/QRCode.swift +393 -0
- package/Sources/CoreLocation/Coordinate.swift +30 -0
- package/Sources/CoreLocation/Location.swift +65 -0
- package/Sources/CoreML/Evaluation.swift +414 -0
- package/Sources/CoreML/FeatureValue.swift +266 -0
- package/Sources/CoreML/Model.swift +269 -0
- package/Sources/CoreML/MultiArray.swift +92 -0
- package/Sources/CoreML/Specification.swift +233 -0
- package/Sources/CoreText/CoreText.swift +64 -0
- package/Sources/CoreTransferable/CoreTransferable.swift +606 -0
- package/Sources/CryptoKit/ChaChaPoly.swift +258 -0
- package/Sources/CryptoKit/CryptoKit.swift +375 -0
- package/Sources/CryptoKit/Curve25519.swift +317 -0
- package/Sources/CryptoKit/P256.swift +321 -0
- package/Sources/FoundationBridge/AppStorage.swift +165 -0
- package/Sources/FoundationBridge/AssetResources.swift +90 -0
- package/Sources/FoundationBridge/AsyncBytes.swift +128 -0
- package/Sources/FoundationBridge/AsyncImage.swift +116 -0
- package/Sources/FoundationBridge/AttributedStrings.swift +16 -0
- package/Sources/{_FoundationCommon → FoundationBridge}/Bundle.swift +41 -4
- package/Sources/FoundationBridge/CombineExports.swift +8 -0
- package/Sources/FoundationBridge/CoreFoundation.swift +77 -0
- package/Sources/FoundationBridge/Dispatch.swift +458 -0
- package/Sources/FoundationBridge/EnvironmentFoundation.swift +41 -0
- package/Sources/FoundationBridge/FileImporter.swift +128 -0
- package/Sources/FoundationBridge/FileSystem.swift +68 -0
- package/Sources/FoundationBridge/FoundationBridge.swift +24 -72
- package/Sources/FoundationBridge/HostResolution.swift +31 -0
- package/Sources/FoundationBridge/ItemProvider.swift +655 -0
- package/Sources/FoundationBridge/KeyValueObserving.swift +138 -0
- package/Sources/FoundationBridge/Links.swift +127 -0
- package/Sources/FoundationBridge/ListFormatter.swift +32 -0
- package/Sources/FoundationBridge/Localization.swift +149 -0
- package/Sources/FoundationBridge/Locks.swift +50 -0
- package/Sources/FoundationBridge/Markdown.swift +527 -0
- package/Sources/FoundationBridge/MeasurementFormat.swift +95 -0
- package/Sources/FoundationBridge/NotificationCenter.swift +154 -0
- package/Sources/FoundationBridge/OpenURLHandlers.swift +60 -0
- package/Sources/FoundationBridge/Operation.swift +195 -0
- package/Sources/FoundationBridge/ProcessInfo.swift +32 -0
- package/Sources/FoundationBridge/RelativeDateTimeFormatter.swift +136 -0
- package/Sources/FoundationBridge/SceneStorage.swift +78 -0
- package/Sources/FoundationBridge/SecurityExports.swift +8 -0
- package/Sources/FoundationBridge/Selector.swift +226 -0
- package/Sources/FoundationBridge/StringComparators.swift +17 -0
- package/Sources/FoundationBridge/Table.swift +211 -0
- package/Sources/FoundationBridge/TextAttributes.swift +42 -0
- package/Sources/FoundationBridge/Timer.swift +6 -1
- package/Sources/FoundationBridge/URLSession.swift +718 -0
- package/Sources/{_FoundationCommon → FoundationBridge}/UserDefaults.swift +17 -4
- package/Sources/FoundationBridge/WebAuthRedirects.swift +227 -0
- package/Sources/FoundationBridge/WebSocket.swift +187 -0
- package/Sources/FoundationModels/FoundationModels.swift +1098 -0
- package/Sources/ImageIO/GIF.swift +72 -0
- package/Sources/ImageIO/ImageIO.swift +248 -0
- package/Sources/ImageIO/ImageTypes.swift +28 -0
- package/Sources/LinkPresentation/LinkPresentation.swift +249 -0
- package/Sources/LocalAuthentication/LAContext.swift +86 -0
- package/Sources/MapKit/Geometry.swift +223 -0
- package/Sources/MapKit/Map.swift +638 -0
- package/Sources/MapKit/MapView.swift +229 -0
- package/Sources/MobileCoreServices/MobileCoreServices.swift +28 -0
- package/Sources/NaturalLanguage/LanguageIdentifier.swift +317 -0
- package/Sources/NaturalLanguage/NaturalLanguage.swift +135 -0
- package/Sources/OSLog/OSLog.swift +6 -0
- package/Sources/Photos/Photos.swift +572 -0
- package/Sources/PhotosUI/PhotosPicker.swift +248 -0
- package/Sources/PhotosUI/PhotosPickerItem.swift +261 -0
- package/Sources/QuickLook/QuickLook.swift +168 -0
- package/Sources/SafariServices/SafariServices.swift +106 -0
- package/Sources/Security/Security.swift +332 -0
- package/Sources/StoreKit/AppStore.swift +207 -0
- package/Sources/StoreKit/Products.swift +280 -0
- package/Sources/StoreKit/RequestReview.swift +28 -0
- package/Sources/StoreKit/StoreKit1.swift +486 -0
- package/Sources/StoreKit/StoreViews.swift +428 -0
- package/Sources/StoreKit/Transactions.swift +197 -0
- package/Sources/SwiftData/Macros.swift +58 -0
- package/Sources/SwiftData/ModelActor.swift +38 -0
- package/Sources/SwiftData/ModelContainer.swift +129 -0
- package/Sources/SwiftData/ModelContext.swift +451 -0
- package/Sources/SwiftData/PersistentModel.swift +238 -0
- package/Sources/SwiftData/Properties.swift +261 -0
- package/Sources/SwiftData/Query.swift +256 -0
- package/Sources/SwiftData/Schema.swift +192 -0
- package/Sources/SwiftData/Store.swift +146 -0
- package/Sources/SwiftData/StringPredicates.swift +125 -0
- package/Sources/SwiftDataMacros/EntryMacro.swift +82 -0
- package/Sources/SwiftDataMacros/GenerableMacro.swift +183 -0
- package/Sources/SwiftDataMacros/ModelActorMacro.swift +46 -0
- package/Sources/SwiftDataMacros/ModelMacro.swift +260 -0
- package/Sources/SwiftDataMacros/Plugin.swift +18 -0
- package/Sources/SwiftDataMacros/PredicateMacro.swift +1244 -0
- package/Sources/SwiftUI/API/Accessibility.swift +55 -6
- package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
- package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
- package/Sources/SwiftUI/API/Alert.swift +1 -1
- package/Sources/SwiftUI/API/AlignmentGuides.swift +65 -0
- package/Sources/SwiftUI/API/Animation.swift +37 -5
- package/Sources/SwiftUI/API/App.swift +31 -1
- package/Sources/SwiftUI/API/BindingCollections.swift +35 -0
- package/Sources/SwiftUI/API/BindingForEach.swift +27 -0
- package/Sources/SwiftUI/API/Bitmaps.swift +254 -0
- package/Sources/SwiftUI/API/ButtonStyles.swift +96 -0
- package/Sources/SwiftUI/API/Canvas.swift +337 -0
- package/Sources/SwiftUI/API/Color.swift +104 -28
- package/Sources/SwiftUI/API/ColorEffects.swift +52 -0
- package/Sources/SwiftUI/API/ColorPickerAndLabeledContent.swift +138 -0
- package/Sources/SwiftUI/API/ColorSpaces.swift +161 -0
- package/Sources/SwiftUI/API/Commands.swift +106 -0
- package/Sources/SwiftUI/API/ContainerBackground.swift +28 -0
- package/Sources/SwiftUI/API/ContentShape.swift +33 -0
- package/Sources/SwiftUI/API/ContentSizeCategory.swift +35 -0
- package/Sources/SwiftUI/API/ContentUnavailable.swift +101 -0
- package/Sources/SwiftUI/API/Controls.swift +59 -27
- package/Sources/SwiftUI/API/CustomLayout.swift +49 -10
- package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
- package/Sources/SwiftUI/API/Decorations.swift +1 -1
- package/Sources/SwiftUI/API/EditMode.swift +25 -82
- package/Sources/SwiftUI/API/Effects.swift +105 -7
- package/Sources/SwiftUI/API/Entry.swift +8 -0
- package/Sources/SwiftUI/API/Environment.swift +93 -9
- package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
- package/Sources/SwiftUI/API/Focus.swift +11 -3
- package/Sources/SwiftUI/API/Gauge.swift +3 -2
- package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
- package/Sources/SwiftUI/API/GeometryReader.swift +13 -2
- package/Sources/SwiftUI/API/GestureState.swift +65 -0
- package/Sources/SwiftUI/API/Gestures.swift +1 -1
- package/Sources/SwiftUI/API/Glass.swift +127 -0
- package/Sources/SwiftUI/API/Grid.swift +1 -1
- package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
- package/Sources/SwiftUI/API/KeyPress.swift +54 -0
- package/Sources/SwiftUI/API/LabelStyle.swift +13 -6
- package/Sources/SwiftUI/API/Layout.swift +67 -12
- package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
- package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
- package/Sources/SwiftUI/API/Lists.swift +61 -6
- package/Sources/SwiftUI/API/Menu.swift +8 -1
- package/Sources/SwiftUI/API/Modifiers.swift +80 -10
- package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
- package/Sources/SwiftUI/API/Namespace.swift +44 -0
- package/Sources/SwiftUI/API/Navigation.swift +24 -9
- package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
- package/Sources/SwiftUI/API/ObservableObject.swift +16 -2
- package/Sources/SwiftUI/API/Path.swift +543 -0
- package/Sources/SwiftUI/API/Phase8Controls.swift +48 -31
- package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
- package/Sources/SwiftUI/API/Picker.swift +11 -2
- package/Sources/SwiftUI/API/PointerAndKeyboard.swift +77 -0
- package/Sources/SwiftUI/API/Popover.swift +41 -0
- package/Sources/SwiftUI/API/Preferences.swift +262 -0
- package/Sources/SwiftUI/API/Presentation.swift +17 -4
- package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
- package/Sources/SwiftUI/API/Primitives.swift +164 -37
- package/Sources/SwiftUI/API/Publishers.swift +4 -4
- package/Sources/SwiftUI/API/Redaction.swift +75 -0
- package/Sources/SwiftUI/API/RowActions.swift +3 -2
- package/Sources/SwiftUI/API/Scenes.swift +131 -0
- package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
- package/Sources/SwiftUI/API/ScrollTargets.swift +3 -3
- package/Sources/SwiftUI/API/ScrollViewReader.swift +144 -0
- package/Sources/SwiftUI/API/SectionSupplements.swift +96 -0
- package/Sources/SwiftUI/API/Shape.swift +214 -0
- package/Sources/SwiftUI/API/ShapeStyle.swift +105 -7
- package/Sources/SwiftUI/API/ShapeTrim.swift +78 -0
- package/Sources/SwiftUI/API/Sharing.swift +193 -0
- package/Sources/SwiftUI/API/StackLayouts.swift +199 -0
- package/Sources/SwiftUI/API/State.swift +18 -1
- package/Sources/SwiftUI/API/StatusGaps.swift +121 -0
- package/Sources/SwiftUI/API/SymbolEffects.swift +203 -0
- package/Sources/SwiftUI/API/TabContent.swift +841 -0
- package/Sources/SwiftUI/API/Table.swift +382 -0
- package/Sources/SwiftUI/API/Tabs.swift +148 -4
- package/Sources/SwiftUI/API/Tasks.swift +2 -2
- package/Sources/SwiftUI/API/Text.swift +386 -0
- package/Sources/SwiftUI/API/TextDates.swift +61 -0
- package/Sources/SwiftUI/API/TextDecorations.swift +52 -0
- package/Sources/SwiftUI/API/TextFieldAxis.swift +103 -0
- package/Sources/SwiftUI/API/TextFieldCommit.swift +52 -0
- package/Sources/SwiftUI/API/Toolbar.swift +52 -16
- package/Sources/SwiftUI/API/Transfer.swift +145 -0
- package/Sources/SwiftUI/API/UnevenRoundedRectangle.swift +66 -0
- package/Sources/SwiftUI/API/Video.swift +64 -0
- package/Sources/SwiftUI/API/View.swift +10 -2
- package/Sources/SwiftUI/API/ViewModifier.swift +4 -1
- package/Sources/SwiftUI/API/VisualEffect.swift +74 -1
- package/Sources/SwiftUI/API/Windows.swift +25 -0
- package/Sources/SwiftUI/Charts/Axis.swift +7 -1
- package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
- package/Sources/SwiftUI/Charts/Chart.swift +17 -3
- package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
- package/Sources/SwiftUI/Localization/Localization.swift +498 -0
- package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
- package/Sources/SwiftUI/Runtime/Executor.swift +2 -0
- package/Sources/SwiftUI/Runtime/Exports.swift +37 -1
- package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
- package/Sources/SwiftUI/Runtime/JSON.swift +76 -4
- package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
- package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
- package/Sources/SwiftUI/Runtime/Ops.swift +58 -12
- package/Sources/SwiftUI/Runtime/Reconciler.swift +10 -1
- package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
- package/Sources/SwiftUI/Runtime/Runtime.swift +977 -198
- package/Sources/SwiftUI/Runtime/Sameness.swift +152 -0
- package/Sources/SwiftUI/Runtime/ViewPath.swift +89 -0
- package/Sources/SwiftUI/Runtime/ViewTraits.swift +175 -0
- package/Sources/SwiftUI/Runtime/WebAuthHeadless.swift +49 -0
- package/Sources/Symbols/Symbols.swift +25 -0
- package/Sources/Translation/Translation.swift +423 -0
- package/Sources/UIKit/Activity.swift +213 -0
- package/Sources/UIKit/Alerts.swift +69 -0
- package/Sources/UIKit/AppDelegate.swift +222 -0
- package/Sources/UIKit/Appearance.swift +84 -0
- package/Sources/UIKit/ColorConversions.swift +70 -0
- package/Sources/UIKit/Controls.swift +225 -0
- package/Sources/UIKit/Device.swift +200 -0
- package/Sources/UIKit/Feedback.swift +65 -0
- package/Sources/UIKit/Font.swift +307 -0
- package/Sources/UIKit/Graphics.swift +204 -0
- package/Sources/UIKit/HostingController.swift +185 -0
- package/Sources/UIKit/Identity.swift +24 -0
- package/Sources/UIKit/Introspectable.swift +510 -0
- package/Sources/UIKit/Pasteboard.swift +363 -0
- package/Sources/UIKit/PhotoAlbum.swift +81 -0
- package/Sources/UIKit/RemoteNotifications.swift +15 -0
- package/Sources/UIKit/Representable.swift +288 -0
- package/Sources/UIKit/SafeArea.swift +12 -0
- package/Sources/UIKit/SceneDelegates.swift +132 -0
- package/Sources/UIKit/Scenes.swift +40 -0
- package/Sources/UIKit/ScrollView.swift +157 -0
- package/Sources/UIKit/ShortcutItems.swift +67 -0
- package/Sources/UIKit/SymbolConfiguration.swift +124 -0
- package/Sources/UIKit/TargetAction.swift +123 -0
- package/Sources/UIKit/TextPaste.swift +161 -0
- package/Sources/UIKit/TextView.swift +538 -0
- package/Sources/UIKit/UIKit.swift +292 -0
- package/Sources/UIKit/UIView.swift +855 -0
- package/Sources/UIKit/ViewTranslation.swift +311 -0
- package/Sources/UniformTypeIdentifiers/UTType.swift +196 -0
- package/Sources/UserNotifications/Content.swift +370 -0
- package/Sources/UserNotifications/NotificationCenter.swift +309 -0
- package/Sources/WeatherKit/WeatherKit.swift +228 -0
- package/Sources/WebKit/WebKit.swift +245 -0
- package/Sources/os/os.swift +376 -0
- package/Sources/zlib/zlib.swift +6 -0
- package/index.d.ts +1 -1
- package/index.mjs +2 -2
- package/manifest.d.mts +2 -0
- package/manifest.mjs +39 -0
- package/package.json +5 -3
- package/sync-sources.mjs +21 -7
- package/Sources/FoundationLite/Common.swift +0 -3
- package/Sources/FoundationLite/FoundationLite.swift +0 -171
- package/Sources/FoundationLite/Interaction.swift +0 -146
- package/Sources/FoundationLite/Timer.swift +0 -48
- package/Sources/_FoundationCommon/_FoundationCommon.swift +0 -10
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
// StoreKit 2's `Product`, as code that loads and buys products is written:
|
|
2
|
+
// the product's properties, its subscription information and offers, the
|
|
3
|
+
// purchase options and results. The browser has no App Store, so
|
|
4
|
+
// `Product.products(for:)` finds none and no `Product` value is ever made;
|
|
5
|
+
// the members are here for the code that would read one (RevenueCat's
|
|
6
|
+
// StoreKit 2 path). Subscription statuses and intro-offer eligibility
|
|
7
|
+
// questions answer "none" and "not eligible".
|
|
8
|
+
|
|
9
|
+
import Foundation
|
|
10
|
+
import UIKit
|
|
11
|
+
|
|
12
|
+
/// A product the App Store sells. There are none in the browser.
|
|
13
|
+
public struct Product: Identifiable, Hashable, Sendable {
|
|
14
|
+
public typealias ID = String
|
|
15
|
+
|
|
16
|
+
public struct ProductType: Hashable, Sendable, RawRepresentable {
|
|
17
|
+
public let rawValue: String
|
|
18
|
+
public init(rawValue: String) { self.rawValue = rawValue }
|
|
19
|
+
public static let consumable = ProductType(rawValue: "Consumable")
|
|
20
|
+
public static let nonConsumable = ProductType(rawValue: "Non-Consumable")
|
|
21
|
+
public static let nonRenewable = ProductType(rawValue: "Non-Renewing Subscription")
|
|
22
|
+
public static let autoRenewable = ProductType(rawValue: "Auto-Renewable Subscription")
|
|
23
|
+
public var localizedDescription: String { rawValue }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public let id: ID
|
|
27
|
+
public let type: ProductType
|
|
28
|
+
public let displayName: String
|
|
29
|
+
public let description: String
|
|
30
|
+
public let price: Decimal
|
|
31
|
+
public let displayPrice: String
|
|
32
|
+
public let isFamilyShareable: Bool
|
|
33
|
+
public let subscription: SubscriptionInfo?
|
|
34
|
+
public let jsonRepresentation: Data
|
|
35
|
+
public let priceFormatStyle: Decimal.FormatStyle.Currency
|
|
36
|
+
|
|
37
|
+
/// How to write a subscription period's unit ("month").
|
|
38
|
+
public var subscriptionPeriodUnitFormatStyle: SubscriptionPeriod.Unit.FormatStyle { .init() }
|
|
39
|
+
|
|
40
|
+
/// The App Store has no products for a web app: none are found.
|
|
41
|
+
public static func products<Identifiers: Collection>(for identifiers: Identifiers) async throws -> [Product] where Identifiers.Element == ID { [] }
|
|
42
|
+
|
|
43
|
+
/// Not reached in the browser (there are no products to buy); it would
|
|
44
|
+
/// fail with `Product.PurchaseError.productUnavailable`.
|
|
45
|
+
public func purchase(options: Set<PurchaseOption> = []) async throws -> PurchaseResult {
|
|
46
|
+
throw PurchaseError.productUnavailable
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/// As `purchase(options:)`, near a scene (iOS 17).
|
|
50
|
+
@MainActor public func purchase<S: UIScene>(confirmIn scene: S, options: Set<PurchaseOption> = []) async throws -> PurchaseResult {
|
|
51
|
+
throw PurchaseError.productUnavailable
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/// As `purchase(options:)`, over a view controller (iOS 18.2).
|
|
55
|
+
@MainActor public func purchase(confirmIn viewController: UIViewController, options: Set<PurchaseOption> = []) async throws -> PurchaseResult {
|
|
56
|
+
throw PurchaseError.productUnavailable
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public var currentEntitlement: VerificationResult<Transaction>? { get async { nil } }
|
|
60
|
+
public var latestTransaction: VerificationResult<Transaction>? { get async { nil } }
|
|
61
|
+
|
|
62
|
+
public static func == (lhs: Product, rhs: Product) -> Bool { lhs.id == rhs.id }
|
|
63
|
+
public func hash(into hasher: inout Hasher) { hasher.combine(id) }
|
|
64
|
+
|
|
65
|
+
// MARK: Purchases
|
|
66
|
+
|
|
67
|
+
public enum PurchaseResult: Sendable {
|
|
68
|
+
case success(VerificationResult<Transaction>)
|
|
69
|
+
case userCancelled
|
|
70
|
+
case pending
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public enum PurchaseError: LocalizedError, Hashable, Sendable {
|
|
74
|
+
case invalidQuantity, productUnavailable, purchaseNotAllowed, ineligibleForOffer
|
|
75
|
+
case invalidOfferIdentifier, invalidOfferPrice, invalidOfferSignature, missingOfferParameters
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/// A purchase option: the parameters a purchase carries.
|
|
79
|
+
public struct PurchaseOption: Hashable, Sendable {
|
|
80
|
+
let name: String
|
|
81
|
+
let value: String
|
|
82
|
+
|
|
83
|
+
public static func appAccountToken(_ token: UUID) -> PurchaseOption { .init(name: "appAccountToken", value: token.uuidString) }
|
|
84
|
+
public static func quantity(_ quantity: Int) -> PurchaseOption { .init(name: "quantity", value: String(quantity)) }
|
|
85
|
+
public static func simulatesAskToBuyInSandbox(_ simulatesAskToBuy: Bool) -> PurchaseOption { .init(name: "simulatesAskToBuyInSandbox", value: String(simulatesAskToBuy)) }
|
|
86
|
+
public static func promotionalOffer(offerID: String, keyID: String, nonce: UUID, signature: Data, timestamp: Int) -> PurchaseOption {
|
|
87
|
+
.init(name: "promotionalOffer", value: "\(offerID)|\(keyID)|\(nonce)|\(signature.base64EncodedString())|\(timestamp)")
|
|
88
|
+
}
|
|
89
|
+
/// A promotional offer signed as a JWS (iOS 26): the options it takes.
|
|
90
|
+
public static func promotionalOffer(_ offerID: String, compactJWS: String) -> Set<PurchaseOption> { [.init(name: "promotionalOffer", value: "\(offerID)|\(compactJWS)")] }
|
|
91
|
+
public static func billingPlanType(_ type: SubscriptionInfo.BillingPlanType) -> PurchaseOption { .init(name: "billingPlanType", value: type.rawValue) }
|
|
92
|
+
public static func introductoryOfferEligibility(compactJWS: String) -> PurchaseOption { .init(name: "introductoryOfferEligibility", value: compactJWS) }
|
|
93
|
+
public static func winBackOffer(_ offer: SubscriptionOffer) -> PurchaseOption { .init(name: "winBackOffer", value: offer.id ?? "") }
|
|
94
|
+
public static func onStorefrontChange(shouldContinuePurchase: @escaping @Sendable (Storefront) -> Bool) -> PurchaseOption { .init(name: "onStorefrontChange", value: "") }
|
|
95
|
+
public static func custom(key: String, value: String) -> PurchaseOption { .init(name: key, value: value) }
|
|
96
|
+
public static func custom(key: String, value: Bool) -> PurchaseOption { .init(name: key, value: String(value)) }
|
|
97
|
+
public static func custom(key: String, value: Double) -> PurchaseOption { .init(name: key, value: String(value)) }
|
|
98
|
+
public static func custom(key: String, value: Data) -> PurchaseOption { .init(name: key, value: value.base64EncodedString()) }
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// MARK: Subscriptions
|
|
102
|
+
|
|
103
|
+
public struct SubscriptionPeriod: Hashable, Sendable {
|
|
104
|
+
public enum Unit: Hashable, Sendable, CaseIterable {
|
|
105
|
+
case day, week, month, year
|
|
106
|
+
public var localizedDescription: String { "\(self)" }
|
|
107
|
+
|
|
108
|
+
/// The unit's name ("month"), as `formatted(product.subscriptionPeriodUnitFormatStyle)` writes it.
|
|
109
|
+
public struct FormatStyle: Foundation.FormatStyle, Hashable, Sendable {
|
|
110
|
+
public init() {}
|
|
111
|
+
public func format(_ value: Unit) -> String { "\(value)" }
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
public func formatted(_ style: FormatStyle) -> String { style.format(self) }
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
public let unit: Unit
|
|
118
|
+
public let value: Int
|
|
119
|
+
|
|
120
|
+
init(unit: Unit, value: Int) {
|
|
121
|
+
self.unit = unit
|
|
122
|
+
self.value = value
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
public static let weekly = SubscriptionPeriod(unit: .week, value: 1)
|
|
126
|
+
public static let monthly = SubscriptionPeriod(unit: .month, value: 1)
|
|
127
|
+
public static let everyTwoMonths = SubscriptionPeriod(unit: .month, value: 2)
|
|
128
|
+
public static let everyThreeMonths = SubscriptionPeriod(unit: .month, value: 3)
|
|
129
|
+
public static let everySixMonths = SubscriptionPeriod(unit: .month, value: 6)
|
|
130
|
+
public static let yearly = SubscriptionPeriod(unit: .year, value: 1)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
public struct SubscriptionOffer: Hashable, Sendable {
|
|
134
|
+
public struct OfferType: Hashable, Sendable, RawRepresentable {
|
|
135
|
+
public let rawValue: String
|
|
136
|
+
public init(rawValue: String) { self.rawValue = rawValue }
|
|
137
|
+
public static let introductory = OfferType(rawValue: "introductory")
|
|
138
|
+
public static let promotional = OfferType(rawValue: "promotional")
|
|
139
|
+
public static let winBack = OfferType(rawValue: "winBack")
|
|
140
|
+
public static let code = OfferType(rawValue: "code")
|
|
141
|
+
public var localizedDescription: String { rawValue }
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
public struct PaymentMode: Hashable, Sendable, RawRepresentable {
|
|
145
|
+
public let rawValue: String
|
|
146
|
+
public init(rawValue: String) { self.rawValue = rawValue }
|
|
147
|
+
public static let freeTrial = PaymentMode(rawValue: "FREE_TRIAL")
|
|
148
|
+
public static let payAsYouGo = PaymentMode(rawValue: "PAY_AS_YOU_GO")
|
|
149
|
+
public static let payUpFront = PaymentMode(rawValue: "PAY_UP_FRONT")
|
|
150
|
+
public var localizedDescription: String { rawValue }
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
public let id: String?
|
|
154
|
+
public let type: OfferType
|
|
155
|
+
public let price: Decimal
|
|
156
|
+
public let displayPrice: String
|
|
157
|
+
public let period: SubscriptionPeriod
|
|
158
|
+
public let periodCount: Int
|
|
159
|
+
public let paymentMode: PaymentMode
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
public struct SubscriptionInfo: Hashable, Sendable {
|
|
163
|
+
public let subscriptionGroupID: String
|
|
164
|
+
public let subscriptionPeriod: SubscriptionPeriod
|
|
165
|
+
public let introductoryOffer: SubscriptionOffer?
|
|
166
|
+
public let promotionalOffers: [SubscriptionOffer]
|
|
167
|
+
public let winBackOffers: [SubscriptionOffer]
|
|
168
|
+
public let subscriptionGroupLevel: Int
|
|
169
|
+
/// The subscription's level in its group (1 is the highest).
|
|
170
|
+
public var groupLevel: Int { subscriptionGroupLevel }
|
|
171
|
+
public let groupDisplayName: String
|
|
172
|
+
public let pricingTerms: [PricingTerms]
|
|
173
|
+
|
|
174
|
+
/// Not eligible: there is no App Store account to check.
|
|
175
|
+
public var isEligibleForIntroOffer: Bool { get async { false } }
|
|
176
|
+
public static func isEligibleForIntroOffer(for groupID: String) async -> Bool { false }
|
|
177
|
+
|
|
178
|
+
/// No statuses: nothing is subscribed to in the browser.
|
|
179
|
+
public var status: [Status] { get async throws { [] } }
|
|
180
|
+
public static func status(for groupID: String) async throws -> [Status] { [] }
|
|
181
|
+
|
|
182
|
+
/// A subscription group's status. There are none in the browser.
|
|
183
|
+
public struct Status: Hashable, Sendable {
|
|
184
|
+
public let state: RenewalState
|
|
185
|
+
public let transaction: VerificationResult<Transaction>
|
|
186
|
+
public let renewalInfo: VerificationResult<RenewalInfo>
|
|
187
|
+
|
|
188
|
+
/// Status changes: none in the browser; the sequence ends at once.
|
|
189
|
+
public static var updates: Statuses { Statuses() }
|
|
190
|
+
public static var all: AsyncStream<(groupID: String, statuses: [Status])> { AsyncStream { $0.finish() } }
|
|
191
|
+
|
|
192
|
+
public struct Statuses: AsyncSequence, Sendable {
|
|
193
|
+
public typealias Element = Status
|
|
194
|
+
public struct AsyncIterator: AsyncIteratorProtocol {
|
|
195
|
+
public mutating func next() async -> Status? { nil }
|
|
196
|
+
}
|
|
197
|
+
public func makeAsyncIterator() -> AsyncIterator { AsyncIterator() }
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
public static func == (lhs: Status, rhs: Status) -> Bool {
|
|
201
|
+
lhs.state == rhs.state && lhs.transaction.unsafePayloadValue == rhs.transaction.unsafePayloadValue
|
|
202
|
+
}
|
|
203
|
+
public func hash(into hasher: inout Hasher) {
|
|
204
|
+
hasher.combine(state)
|
|
205
|
+
hasher.combine(transaction.unsafePayloadValue)
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
public struct RenewalState: Hashable, Sendable, RawRepresentable {
|
|
210
|
+
public let rawValue: Int
|
|
211
|
+
public init(rawValue: Int) { self.rawValue = rawValue }
|
|
212
|
+
public static let subscribed = RenewalState(rawValue: 1)
|
|
213
|
+
public static let expired = RenewalState(rawValue: 2)
|
|
214
|
+
public static let inBillingRetryPeriod = RenewalState(rawValue: 3)
|
|
215
|
+
public static let inGracePeriod = RenewalState(rawValue: 4)
|
|
216
|
+
public static let revoked = RenewalState(rawValue: 5)
|
|
217
|
+
public var localizedDescription: String { "\(rawValue)" }
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/// What happens at the next renewal.
|
|
221
|
+
public struct RenewalInfo: Hashable, Sendable {
|
|
222
|
+
public struct ExpirationReason: Hashable, Sendable, RawRepresentable {
|
|
223
|
+
public let rawValue: Int
|
|
224
|
+
public init(rawValue: Int) { self.rawValue = rawValue }
|
|
225
|
+
public static let autoRenewDisabled = ExpirationReason(rawValue: 1)
|
|
226
|
+
public static let billingError = ExpirationReason(rawValue: 2)
|
|
227
|
+
public static let didNotConsentToPriceIncrease = ExpirationReason(rawValue: 3)
|
|
228
|
+
public static let productUnavailable = ExpirationReason(rawValue: 4)
|
|
229
|
+
public static let unknown = ExpirationReason(rawValue: 5)
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
public struct PriceIncreaseStatus: Hashable, Sendable {
|
|
233
|
+
public static let noIncreasePending = PriceIncreaseStatus()
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
public let originalTransactionID: UInt64
|
|
237
|
+
public let currentProductID: String
|
|
238
|
+
public let willAutoRenew: Bool
|
|
239
|
+
public let autoRenewPreference: String?
|
|
240
|
+
public let expirationReason: ExpirationReason?
|
|
241
|
+
public let isInBillingRetry: Bool
|
|
242
|
+
public let gracePeriodExpirationDate: Date?
|
|
243
|
+
public let renewalDate: Date?
|
|
244
|
+
public let recentSubscriptionStartDate: Date
|
|
245
|
+
public let offerID: String?
|
|
246
|
+
public let offerType: Transaction.OfferType?
|
|
247
|
+
public let offer: Transaction.Offer?
|
|
248
|
+
public let renewalPrice: Decimal?
|
|
249
|
+
public let currency: Locale.Currency?
|
|
250
|
+
public let environment: AppStore.Environment
|
|
251
|
+
public let eligibleWinBackOfferIDs: [String]
|
|
252
|
+
public let appAccountToken: UUID?
|
|
253
|
+
public let signedDate: Date
|
|
254
|
+
public let jsonRepresentation: Data
|
|
255
|
+
public var currencyCode: String? { currency?.identifier }
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/// A billing plan (iOS 26.4): paying for a subscription monthly or up front.
|
|
259
|
+
public struct BillingPlanType: Hashable, Sendable, RawRepresentable {
|
|
260
|
+
public let rawValue: String
|
|
261
|
+
public init(rawValue: String) { self.rawValue = rawValue }
|
|
262
|
+
public static let monthly = BillingPlanType(rawValue: "monthly")
|
|
263
|
+
public static let upFront = BillingPlanType(rawValue: "upFront")
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/// The price and offers of one billing plan (iOS 26.4).
|
|
267
|
+
public struct PricingTerms: Hashable, Sendable {
|
|
268
|
+
/// How long the plan commits to.
|
|
269
|
+
public struct CommitmentInfo: Hashable, Sendable {
|
|
270
|
+
public let period: SubscriptionPeriod
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
public let billingPlanType: BillingPlanType
|
|
274
|
+
public let billingPrice: Decimal
|
|
275
|
+
public let billingDisplayPrice: String
|
|
276
|
+
public let commitmentInfo: CommitmentInfo
|
|
277
|
+
public let subscriptionOffers: [SubscriptionOffer]
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// StoreKit, as far as a web app can use it: asking for an App Store review.
|
|
2
|
+
// A web app has no store page to review, so the request does nothing (iOS
|
|
3
|
+
// itself may also decline to show the prompt).
|
|
4
|
+
|
|
5
|
+
import SwiftUI
|
|
6
|
+
|
|
7
|
+
/// `@Environment(\.requestReview)`: call it to ask for a review. A no-op in
|
|
8
|
+
/// the browser.
|
|
9
|
+
public struct RequestReviewAction: Sendable {
|
|
10
|
+
public init() {}
|
|
11
|
+
|
|
12
|
+
@MainActor public func callAsFunction() {}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
private struct RequestReviewKey: EnvironmentKey {
|
|
16
|
+
static let defaultValue = RequestReviewAction()
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
extension EnvironmentValues {
|
|
20
|
+
public var requestReview: RequestReviewAction {
|
|
21
|
+
self[RequestReviewKey.self]
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/// The pre-iOS 16 way to ask for a review. A no-op in the browser.
|
|
26
|
+
public enum SKStoreReviewController {
|
|
27
|
+
@MainActor public static func requestReview() {}
|
|
28
|
+
}
|