@swiftbrowser/swift 0.0.0-stage → 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 +214 -0
- package/README.md +10 -2
- 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 +61 -0
- 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/FoundationBridge/Bundle.swift +119 -0
- 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 +29 -0
- 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/Locale.swift +86 -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 +53 -0
- package/Sources/FoundationBridge/UITextChecker.swift +30 -0
- package/Sources/FoundationBridge/URLSession.swift +718 -0
- package/Sources/FoundationBridge/UserDefaults.swift +183 -0
- 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 +181 -0
- package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
- package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
- package/Sources/SwiftUI/API/Alert.swift +221 -0
- package/Sources/SwiftUI/API/AlignmentGuides.swift +65 -0
- package/Sources/SwiftUI/API/Animation.swift +285 -0
- package/Sources/SwiftUI/API/App.swift +87 -0
- 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 +237 -0
- 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 +300 -0
- package/Sources/SwiftUI/API/CustomLayout.swift +442 -0
- package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
- package/Sources/SwiftUI/API/Decorations.swift +92 -0
- package/Sources/SwiftUI/API/EditMode.swift +212 -0
- package/Sources/SwiftUI/API/Effects.swift +388 -0
- package/Sources/SwiftUI/API/Entry.swift +8 -0
- package/Sources/SwiftUI/API/Environment.swift +439 -0
- package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
- package/Sources/SwiftUI/API/Focus.swift +137 -0
- package/Sources/SwiftUI/API/Font.swift +131 -0
- package/Sources/SwiftUI/API/Gauge.swift +290 -0
- package/Sources/SwiftUI/API/Geometry.swift +89 -0
- package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
- package/Sources/SwiftUI/API/GeometryReader.swift +135 -0
- package/Sources/SwiftUI/API/GestureState.swift +65 -0
- package/Sources/SwiftUI/API/Gestures.swift +342 -0
- package/Sources/SwiftUI/API/Glass.swift +127 -0
- package/Sources/SwiftUI/API/Grid.swift +188 -0
- package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
- package/Sources/SwiftUI/API/KeyPress.swift +54 -0
- package/Sources/SwiftUI/API/LabelStyle.swift +124 -0
- package/Sources/SwiftUI/API/Layout.swift +220 -0
- package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
- package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
- package/Sources/SwiftUI/API/Lists.swift +331 -0
- package/Sources/SwiftUI/API/Menu.swift +58 -0
- package/Sources/SwiftUI/API/Modifiers.swift +313 -0
- package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
- package/Sources/SwiftUI/API/Namespace.swift +44 -0
- package/Sources/SwiftUI/API/Navigation.swift +386 -0
- package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
- package/Sources/SwiftUI/API/ObservableObject.swift +293 -0
- package/Sources/SwiftUI/API/OnChange.swift +48 -0
- package/Sources/SwiftUI/API/Path.swift +543 -0
- package/Sources/SwiftUI/API/Phase8Controls.swift +411 -0
- package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
- package/Sources/SwiftUI/API/Picker.swift +185 -0
- 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 +122 -0
- package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
- package/Sources/SwiftUI/API/Primitives.swift +517 -0
- package/Sources/SwiftUI/API/Publishers.swift +107 -0
- package/Sources/SwiftUI/API/Redaction.swift +75 -0
- package/Sources/SwiftUI/API/RowActions.swift +84 -0
- package/Sources/SwiftUI/API/Scenes.swift +131 -0
- package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
- package/Sources/SwiftUI/API/ScrollTargets.swift +104 -0
- 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 +409 -0
- 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 +144 -0
- package/Sources/SwiftUI/API/StatusGaps.swift +121 -0
- package/Sources/SwiftUI/API/StrokeStyle.swift +30 -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 +263 -0
- package/Sources/SwiftUI/API/Tasks.swift +35 -0
- 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/Timeline.swift +212 -0
- package/Sources/SwiftUI/API/Toolbar.swift +251 -0
- 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 +215 -0
- package/Sources/SwiftUI/API/ViewModifier.swift +43 -0
- package/Sources/SwiftUI/API/VisualEffect.swift +155 -0
- package/Sources/SwiftUI/API/Windows.swift +25 -0
- package/Sources/SwiftUI/Charts/Axis.swift +325 -0
- package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
- package/Sources/SwiftUI/Charts/Chart.swift +660 -0
- package/Sources/SwiftUI/Charts/ChartContent.swift +376 -0
- package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
- package/Sources/SwiftUI/Charts/Marks.swift +204 -0
- package/Sources/SwiftUI/Charts/Plottable.swift +99 -0
- package/Sources/SwiftUI/Charts/Scales.swift +326 -0
- package/Sources/SwiftUI/Localization/Localization.swift +498 -0
- package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
- package/Sources/SwiftUI/Runtime/Executor.swift +85 -0
- package/Sources/SwiftUI/Runtime/Exports.swift +101 -0
- package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
- package/Sources/SwiftUI/Runtime/JSON.swift +143 -0
- package/Sources/SwiftUI/Runtime/JSONParser.swift +443 -0
- package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
- package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
- package/Sources/SwiftUI/Runtime/Ops.swift +152 -0
- package/Sources/SwiftUI/Runtime/Reconciler.swift +219 -0
- package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
- package/Sources/SwiftUI/Runtime/Runtime.swift +2146 -0
- 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 +2 -0
- package/index.mjs +16 -0
- package/manifest.d.mts +2 -0
- package/manifest.mjs +39 -0
- package/package.json +30 -4
- package/sync-sources.mjs +33 -0
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
2
|
+
// ┃ ┃
|
|
3
|
+
// ┃ Auto-generated from GYB template. DO NOT EDIT! ┃
|
|
4
|
+
// ┃ ┃
|
|
5
|
+
// ┃ ┃
|
|
6
|
+
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
7
|
+
//
|
|
8
|
+
// Publishers.MapKeyPath.swift.gyb
|
|
9
|
+
//
|
|
10
|
+
//
|
|
11
|
+
// Created by Sergej Jaskiewicz on 03/10/2019.
|
|
12
|
+
//
|
|
13
|
+
|
|
14
|
+
// swiftlint:disable large_tuple
|
|
15
|
+
|
|
16
|
+
extension Publisher {
|
|
17
|
+
/// Publishes the value of the key path.
|
|
18
|
+
///
|
|
19
|
+
/// In the following example, the `map(_:)` operator uses the Swift
|
|
20
|
+
/// key path syntax to access the `die` member
|
|
21
|
+
/// of the `DiceRoll` structure published by the `Just` publisher.
|
|
22
|
+
///
|
|
23
|
+
/// The downstream sink subscriber receives only
|
|
24
|
+
/// the value of this `Int`,
|
|
25
|
+
/// not the entire `DiceRoll`.
|
|
26
|
+
///
|
|
27
|
+
/// struct DiceRoll {
|
|
28
|
+
/// let die: Int
|
|
29
|
+
/// }
|
|
30
|
+
///
|
|
31
|
+
/// cancellable = Just(DiceRoll(die: Int.random(in: 1...6)))
|
|
32
|
+
/// .map(\.die)
|
|
33
|
+
/// .sink {
|
|
34
|
+
/// print ("Rolled: \($0)")
|
|
35
|
+
/// }
|
|
36
|
+
/// // Prints "Rolled: 4 (or some other random value).
|
|
37
|
+
///
|
|
38
|
+
/// - Parameters:
|
|
39
|
+
/// - keyPath: The key path of a property on `Output`.
|
|
40
|
+
/// - Returns: A publisher that publishes the value of the key path.
|
|
41
|
+
public func map<Result>(
|
|
42
|
+
_ keyPath: KeyPath<Output, Result>
|
|
43
|
+
) -> Publishers.MapKeyPath<Self, Result> {
|
|
44
|
+
return .init(
|
|
45
|
+
upstream: self,
|
|
46
|
+
keyPath: keyPath
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
/// Publishes the values of two key paths as a tuple.
|
|
50
|
+
///
|
|
51
|
+
/// In the following example, the `map(_:_:)` operator uses the Swift
|
|
52
|
+
/// key path syntax to access the `die1` and `die2` members
|
|
53
|
+
/// of the `DiceRoll` structure published by the `Just` publisher.
|
|
54
|
+
///
|
|
55
|
+
/// The downstream sink subscriber receives only
|
|
56
|
+
/// these two values (as an `(Int, Int)` tuple),
|
|
57
|
+
/// not the entire `DiceRoll`.
|
|
58
|
+
///
|
|
59
|
+
/// struct DiceRoll {
|
|
60
|
+
/// let die1: Int
|
|
61
|
+
/// let die2: Int
|
|
62
|
+
/// }
|
|
63
|
+
///
|
|
64
|
+
/// cancellable = Just(DiceRoll(die1: Int.random(in: 1...6),
|
|
65
|
+
/// die2: Int.random(in: 1...6)))
|
|
66
|
+
/// .map(\.die1, \.die2)
|
|
67
|
+
/// .sink { values in
|
|
68
|
+
/// print("""
|
|
69
|
+
/// Rolled: \(values.0), \(values.1) \
|
|
70
|
+
/// (total \(values.0 + values.1))
|
|
71
|
+
/// """)
|
|
72
|
+
/// }
|
|
73
|
+
/// // Prints "Rolled: 4, 1 (total: 5)" (or other random values).
|
|
74
|
+
///
|
|
75
|
+
/// - Parameters:
|
|
76
|
+
/// - keyPath0: The key path of a property on `Output`.
|
|
77
|
+
/// - keyPath1: The key path of another property on `Output`.
|
|
78
|
+
/// - Returns: A publisher that publishes the values of two key paths as a tuple.
|
|
79
|
+
public func map<Result0, Result1>(
|
|
80
|
+
_ keyPath0: KeyPath<Output, Result0>,
|
|
81
|
+
_ keyPath1: KeyPath<Output, Result1>
|
|
82
|
+
) -> Publishers.MapKeyPath2<Self, Result0, Result1> {
|
|
83
|
+
return .init(
|
|
84
|
+
upstream: self,
|
|
85
|
+
keyPath0: keyPath0,
|
|
86
|
+
keyPath1: keyPath1
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
/// Publishes the values of three key paths as a tuple.
|
|
90
|
+
///
|
|
91
|
+
/// In the following example, the `map(_:_:_:)` operator uses the Swift
|
|
92
|
+
/// key path syntax to access the `die1`, `die2`, and `die3` members
|
|
93
|
+
/// of the `DiceRoll` structure published by the `Just` publisher.
|
|
94
|
+
///
|
|
95
|
+
/// The downstream sink subscriber receives only
|
|
96
|
+
/// these three values (as an `(Int, Int, Int)` tuple),
|
|
97
|
+
/// not the entire `DiceRoll`.
|
|
98
|
+
///
|
|
99
|
+
/// struct DiceRoll {
|
|
100
|
+
/// let die1: Int
|
|
101
|
+
/// let die2: Int
|
|
102
|
+
/// let die3: Int
|
|
103
|
+
/// }
|
|
104
|
+
///
|
|
105
|
+
/// cancellable = Just(DiceRoll(die1: Int.random(in: 1...6),
|
|
106
|
+
/// die2: Int.random(in: 1...6),
|
|
107
|
+
/// die3: Int.random(in: 1...6)))
|
|
108
|
+
/// .map(\.die1, \.die2, \.die3)
|
|
109
|
+
/// .sink { values in
|
|
110
|
+
/// print("""
|
|
111
|
+
/// Rolled: \(values.0), \(values.1), \(values.2) \
|
|
112
|
+
/// (total \(values.0 + values.1 + values.2))
|
|
113
|
+
/// """)
|
|
114
|
+
/// }
|
|
115
|
+
/// // Prints "Rolled: 3, 5, 4 (total: 12)" (or other random values).
|
|
116
|
+
///
|
|
117
|
+
/// - Parameters:
|
|
118
|
+
/// - keyPath0: The key path of a property on `Output`.
|
|
119
|
+
/// - keyPath1: The key path of a second property on `Output`.
|
|
120
|
+
/// - keyPath2: The key path of a third property on `Output`.
|
|
121
|
+
/// - Returns: A publisher that publishes the values of three key paths as a tuple.
|
|
122
|
+
public func map<Result0, Result1, Result2>(
|
|
123
|
+
_ keyPath0: KeyPath<Output, Result0>,
|
|
124
|
+
_ keyPath1: KeyPath<Output, Result1>,
|
|
125
|
+
_ keyPath2: KeyPath<Output, Result2>
|
|
126
|
+
) -> Publishers.MapKeyPath3<Self, Result0, Result1, Result2> {
|
|
127
|
+
return .init(
|
|
128
|
+
upstream: self,
|
|
129
|
+
keyPath0: keyPath0,
|
|
130
|
+
keyPath1: keyPath1,
|
|
131
|
+
keyPath2: keyPath2
|
|
132
|
+
)
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
extension Publishers {
|
|
137
|
+
|
|
138
|
+
/// A publisher that publishes the value of a key path.
|
|
139
|
+
public struct MapKeyPath<Upstream: Publisher, Output>: Publisher {
|
|
140
|
+
|
|
141
|
+
public typealias Failure = Upstream.Failure
|
|
142
|
+
|
|
143
|
+
/// The publisher from which this publisher receives elements.
|
|
144
|
+
public let upstream: Upstream
|
|
145
|
+
|
|
146
|
+
/// The key path of a property to publish.
|
|
147
|
+
public let keyPath: KeyPath<Upstream.Output, Output>
|
|
148
|
+
|
|
149
|
+
public func receive<Downstream: Subscriber>(subscriber: Downstream)
|
|
150
|
+
where Output == Downstream.Input, Failure == Downstream.Failure
|
|
151
|
+
{
|
|
152
|
+
upstream.subscribe(Inner(downstream: subscriber, parent: self))
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/// A publisher that publishes the values of two key paths as a tuple.
|
|
157
|
+
public struct MapKeyPath2<Upstream: Publisher, Output0, Output1>: Publisher {
|
|
158
|
+
|
|
159
|
+
public typealias Output = (Output0, Output1)
|
|
160
|
+
|
|
161
|
+
public typealias Failure = Upstream.Failure
|
|
162
|
+
|
|
163
|
+
/// The publisher from which this publisher receives elements.
|
|
164
|
+
public let upstream: Upstream
|
|
165
|
+
|
|
166
|
+
/// The key path of a property to publish.
|
|
167
|
+
public let keyPath0: KeyPath<Upstream.Output, Output0>
|
|
168
|
+
|
|
169
|
+
/// The key path of a second property to publish.
|
|
170
|
+
public let keyPath1: KeyPath<Upstream.Output, Output1>
|
|
171
|
+
|
|
172
|
+
public func receive<Downstream: Subscriber>(subscriber: Downstream)
|
|
173
|
+
where Output == Downstream.Input, Failure == Downstream.Failure
|
|
174
|
+
{
|
|
175
|
+
upstream.subscribe(Inner(downstream: subscriber, parent: self))
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/// A publisher that publishes the values of three key paths as a tuple.
|
|
180
|
+
public struct MapKeyPath3<Upstream: Publisher, Output0, Output1, Output2>: Publisher {
|
|
181
|
+
|
|
182
|
+
public typealias Output = (Output0, Output1, Output2)
|
|
183
|
+
|
|
184
|
+
public typealias Failure = Upstream.Failure
|
|
185
|
+
|
|
186
|
+
/// The publisher from which this publisher receives elements.
|
|
187
|
+
public let upstream: Upstream
|
|
188
|
+
|
|
189
|
+
/// The key path of a property to publish.
|
|
190
|
+
public let keyPath0: KeyPath<Upstream.Output, Output0>
|
|
191
|
+
|
|
192
|
+
/// The key path of a second property to publish.
|
|
193
|
+
public let keyPath1: KeyPath<Upstream.Output, Output1>
|
|
194
|
+
|
|
195
|
+
/// The key path of a third property to publish.
|
|
196
|
+
public let keyPath2: KeyPath<Upstream.Output, Output2>
|
|
197
|
+
|
|
198
|
+
public func receive<Downstream: Subscriber>(subscriber: Downstream)
|
|
199
|
+
where Output == Downstream.Input, Failure == Downstream.Failure
|
|
200
|
+
{
|
|
201
|
+
upstream.subscribe(Inner(downstream: subscriber, parent: self))
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
extension Publishers.MapKeyPath {
|
|
207
|
+
|
|
208
|
+
private struct Inner<Downstream: Subscriber>
|
|
209
|
+
: Subscriber,
|
|
210
|
+
CustomStringConvertible,
|
|
211
|
+
CustomReflectable,
|
|
212
|
+
CustomPlaygroundDisplayConvertible
|
|
213
|
+
where Downstream.Input == Output, Downstream.Failure == Upstream.Failure
|
|
214
|
+
{
|
|
215
|
+
typealias Input = Upstream.Output
|
|
216
|
+
|
|
217
|
+
typealias Failure = Upstream.Failure
|
|
218
|
+
|
|
219
|
+
private let downstream: Downstream
|
|
220
|
+
|
|
221
|
+
private let keyPath: KeyPath<Input, Output>
|
|
222
|
+
|
|
223
|
+
let combineIdentifier = CombineIdentifier()
|
|
224
|
+
|
|
225
|
+
fileprivate init(
|
|
226
|
+
downstream: Downstream,
|
|
227
|
+
parent: Publishers.MapKeyPath<Upstream, Output>
|
|
228
|
+
) {
|
|
229
|
+
self.downstream = downstream
|
|
230
|
+
self.keyPath = parent.keyPath
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
func receive(subscription: Subscription) {
|
|
234
|
+
downstream.receive(subscription: subscription)
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
func receive(_ input: Input) -> Subscribers.Demand {
|
|
238
|
+
let output = (
|
|
239
|
+
input[keyPath: keyPath]
|
|
240
|
+
)
|
|
241
|
+
return downstream.receive(output)
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
func receive(completion: Subscribers.Completion<Failure>) {
|
|
245
|
+
downstream.receive(completion: completion)
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
var description: String { return "ValueForKey" }
|
|
249
|
+
|
|
250
|
+
var customMirror: Mirror {
|
|
251
|
+
let children: [Mirror.Child] = [
|
|
252
|
+
("keyPath", keyPath),
|
|
253
|
+
]
|
|
254
|
+
return Mirror(self, children: children)
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
var playgroundDescription: Any { return description }
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
extension Publishers.MapKeyPath2 {
|
|
262
|
+
|
|
263
|
+
private struct Inner<Downstream: Subscriber>
|
|
264
|
+
: Subscriber,
|
|
265
|
+
CustomStringConvertible,
|
|
266
|
+
CustomReflectable,
|
|
267
|
+
CustomPlaygroundDisplayConvertible
|
|
268
|
+
where Downstream.Input == Output, Downstream.Failure == Upstream.Failure
|
|
269
|
+
{
|
|
270
|
+
typealias Input = Upstream.Output
|
|
271
|
+
|
|
272
|
+
typealias Failure = Upstream.Failure
|
|
273
|
+
|
|
274
|
+
private let downstream: Downstream
|
|
275
|
+
|
|
276
|
+
private let keyPath0: KeyPath<Input, Output0>
|
|
277
|
+
|
|
278
|
+
private let keyPath1: KeyPath<Input, Output1>
|
|
279
|
+
|
|
280
|
+
let combineIdentifier = CombineIdentifier()
|
|
281
|
+
|
|
282
|
+
fileprivate init(
|
|
283
|
+
downstream: Downstream,
|
|
284
|
+
parent: Publishers.MapKeyPath2<Upstream, Output0, Output1>
|
|
285
|
+
) {
|
|
286
|
+
self.downstream = downstream
|
|
287
|
+
self.keyPath0 = parent.keyPath0
|
|
288
|
+
self.keyPath1 = parent.keyPath1
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
func receive(subscription: Subscription) {
|
|
292
|
+
downstream.receive(subscription: subscription)
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
func receive(_ input: Input) -> Subscribers.Demand {
|
|
296
|
+
let output = (
|
|
297
|
+
input[keyPath: keyPath0],
|
|
298
|
+
input[keyPath: keyPath1]
|
|
299
|
+
)
|
|
300
|
+
return downstream.receive(output)
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
func receive(completion: Subscribers.Completion<Failure>) {
|
|
304
|
+
downstream.receive(completion: completion)
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
var description: String { return "ValueForKeys" }
|
|
308
|
+
|
|
309
|
+
var customMirror: Mirror {
|
|
310
|
+
let children: [Mirror.Child] = [
|
|
311
|
+
("keyPath0", keyPath0),
|
|
312
|
+
("keyPath1", keyPath1),
|
|
313
|
+
]
|
|
314
|
+
return Mirror(self, children: children)
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
var playgroundDescription: Any { return description }
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
extension Publishers.MapKeyPath3 {
|
|
322
|
+
|
|
323
|
+
private struct Inner<Downstream: Subscriber>
|
|
324
|
+
: Subscriber,
|
|
325
|
+
CustomStringConvertible,
|
|
326
|
+
CustomReflectable,
|
|
327
|
+
CustomPlaygroundDisplayConvertible
|
|
328
|
+
where Downstream.Input == Output, Downstream.Failure == Upstream.Failure
|
|
329
|
+
{
|
|
330
|
+
typealias Input = Upstream.Output
|
|
331
|
+
|
|
332
|
+
typealias Failure = Upstream.Failure
|
|
333
|
+
|
|
334
|
+
private let downstream: Downstream
|
|
335
|
+
|
|
336
|
+
private let keyPath0: KeyPath<Input, Output0>
|
|
337
|
+
|
|
338
|
+
private let keyPath1: KeyPath<Input, Output1>
|
|
339
|
+
|
|
340
|
+
private let keyPath2: KeyPath<Input, Output2>
|
|
341
|
+
|
|
342
|
+
let combineIdentifier = CombineIdentifier()
|
|
343
|
+
|
|
344
|
+
fileprivate init(
|
|
345
|
+
downstream: Downstream,
|
|
346
|
+
parent: Publishers.MapKeyPath3<Upstream, Output0, Output1, Output2>
|
|
347
|
+
) {
|
|
348
|
+
self.downstream = downstream
|
|
349
|
+
self.keyPath0 = parent.keyPath0
|
|
350
|
+
self.keyPath1 = parent.keyPath1
|
|
351
|
+
self.keyPath2 = parent.keyPath2
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
func receive(subscription: Subscription) {
|
|
355
|
+
downstream.receive(subscription: subscription)
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
func receive(_ input: Input) -> Subscribers.Demand {
|
|
359
|
+
let output = (
|
|
360
|
+
input[keyPath: keyPath0],
|
|
361
|
+
input[keyPath: keyPath1],
|
|
362
|
+
input[keyPath: keyPath2]
|
|
363
|
+
)
|
|
364
|
+
return downstream.receive(output)
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
func receive(completion: Subscribers.Completion<Failure>) {
|
|
368
|
+
downstream.receive(completion: completion)
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
var description: String { return "ValueForKeys" }
|
|
372
|
+
|
|
373
|
+
var customMirror: Mirror {
|
|
374
|
+
let children: [Mirror.Child] = [
|
|
375
|
+
("keyPath0", keyPath0),
|
|
376
|
+
("keyPath1", keyPath1),
|
|
377
|
+
("keyPath2", keyPath2),
|
|
378
|
+
]
|
|
379
|
+
return Mirror(self, children: children)
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
var playgroundDescription: Any { return description }
|
|
383
|
+
}
|
|
384
|
+
}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Just.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sergej Jaskiewicz on 16.06.2019.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
/// A publisher that emits an output to each subscriber just once, and then finishes.
|
|
9
|
+
///
|
|
10
|
+
/// You can use a `Just` publisher to start a chain of publishers. A `Just` publisher is
|
|
11
|
+
/// also useful when replacing a value with `Publishers.Catch`.
|
|
12
|
+
///
|
|
13
|
+
/// In contrast with `Result.Publisher`, a `Just` publisher can’t fail with an error.
|
|
14
|
+
/// And unlike `Optional.Publisher`, a `Just` publisher always produces a value.
|
|
15
|
+
public struct Just<Output>: Publisher {
|
|
16
|
+
|
|
17
|
+
public typealias Failure = Never
|
|
18
|
+
|
|
19
|
+
/// The one element that the publisher emits.
|
|
20
|
+
public let output: Output
|
|
21
|
+
|
|
22
|
+
/// Initializes a publisher that emits the specified output just once.
|
|
23
|
+
///
|
|
24
|
+
/// - Parameter output: The one element that the publisher emits.
|
|
25
|
+
public init(_ output: Output) {
|
|
26
|
+
self.output = output
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public func receive<Downstream: Subscriber>(subscriber: Downstream)
|
|
30
|
+
where Downstream.Input == Output, Downstream.Failure == Never
|
|
31
|
+
{
|
|
32
|
+
subscriber.receive(subscription: Inner(value: output, downstream: subscriber))
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
extension Just: Equatable where Output: Equatable {}
|
|
37
|
+
|
|
38
|
+
extension Just where Output: Comparable {
|
|
39
|
+
|
|
40
|
+
public func min() -> Just<Output> {
|
|
41
|
+
return self
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public func max() -> Just<Output> {
|
|
45
|
+
return self
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
extension Just where Output: Equatable {
|
|
50
|
+
|
|
51
|
+
public func contains(_ output: Output) -> Just<Bool> {
|
|
52
|
+
return .init(self.output == output)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public func removeDuplicates() -> Just<Output> {
|
|
56
|
+
return self
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
extension Just {
|
|
61
|
+
|
|
62
|
+
public func allSatisfy(_ predicate: (Output) -> Bool) -> Just<Bool> {
|
|
63
|
+
return .init(predicate(output))
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public func tryAllSatisfy(
|
|
67
|
+
_ predicate: (Output) throws -> Bool
|
|
68
|
+
) -> Result<Bool, Error>.OCombine.Publisher {
|
|
69
|
+
return .init(Result { try predicate(output) })
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public func contains(where predicate: (Output) -> Bool) -> Just<Bool> {
|
|
73
|
+
return .init(predicate(output))
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public func tryContains(
|
|
77
|
+
where predicate: (Output) throws -> Bool
|
|
78
|
+
) -> Result<Bool, Error>.OCombine.Publisher {
|
|
79
|
+
return .init(Result { try predicate(output) })
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
public func collect() -> Just<[Output]> {
|
|
83
|
+
return .init([output])
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
public func min(
|
|
87
|
+
by areInIncreasingOrder: (Output, Output) -> Bool
|
|
88
|
+
) -> Just<Output> {
|
|
89
|
+
return self
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
public func max(
|
|
93
|
+
by areInIncreasingOrder: (Output, Output) -> Bool
|
|
94
|
+
) -> Just<Output> {
|
|
95
|
+
return self
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
public func count() -> Just<Int> {
|
|
99
|
+
return .init(1)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
public func dropFirst(_ count: Int = 1) -> Optional<Output>.OCombine.Publisher {
|
|
103
|
+
precondition(count >= 0, "count must not be negative")
|
|
104
|
+
return .init(count > 0 ? nil : self.output)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
public func drop(
|
|
108
|
+
while predicate: (Output) -> Bool
|
|
109
|
+
) -> Optional<Output>.OCombine.Publisher {
|
|
110
|
+
return .init(predicate(output) ? nil : output)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
public func first() -> Just<Output> {
|
|
114
|
+
return self
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
public func first(
|
|
118
|
+
where predicate: (Output) -> Bool
|
|
119
|
+
) -> Optional<Output>.OCombine.Publisher {
|
|
120
|
+
return .init(predicate(output) ? output : nil)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
public func last() -> Just<Output> {
|
|
124
|
+
return self
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
public func last(
|
|
128
|
+
where predicate: (Output) -> Bool
|
|
129
|
+
) -> Optional<Output>.OCombine.Publisher {
|
|
130
|
+
return .init(predicate(output) ? output : nil)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
public func ignoreOutput() -> Empty<Output, Never> {
|
|
134
|
+
return .init()
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
public func map<ElementOfResult>(
|
|
138
|
+
_ transform: (Output) -> ElementOfResult
|
|
139
|
+
) -> Just<ElementOfResult> {
|
|
140
|
+
return .init(transform(output))
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
public func tryMap<ElementOfResult>(
|
|
144
|
+
_ transform: (Output) throws -> ElementOfResult
|
|
145
|
+
) -> Result<ElementOfResult, Error>.OCombine.Publisher {
|
|
146
|
+
return .init(Result { try transform(output) })
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
public func compactMap<ElementOfResult>(
|
|
150
|
+
_ transform: (Output) -> ElementOfResult?
|
|
151
|
+
) -> Optional<ElementOfResult>.OCombine.Publisher {
|
|
152
|
+
return .init(transform(output))
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
public func filter(
|
|
156
|
+
_ isIncluded: (Output) -> Bool
|
|
157
|
+
) -> Optional<Output>.OCombine.Publisher {
|
|
158
|
+
return .init(isIncluded(output) ? output : nil)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
public func output(at index: Int) -> Optional<Output>.OCombine.Publisher {
|
|
162
|
+
precondition(index >= 0, "index must not be negative")
|
|
163
|
+
return .init(index == 0 ? output : nil)
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
public func output<RangeExpression: Swift.RangeExpression>(
|
|
167
|
+
in range: RangeExpression
|
|
168
|
+
) -> Optional<Output>.OCombine.Publisher where RangeExpression.Bound == Int {
|
|
169
|
+
// TODO: Broken in Apple's Combine? (FB6169621)
|
|
170
|
+
// Empty range should result in a nil
|
|
171
|
+
let range = range.relative(to: 0..<Int.max)
|
|
172
|
+
return .init(range.lowerBound == 0 ? output : nil)
|
|
173
|
+
// The above implementation is used for compatibility.
|
|
174
|
+
//
|
|
175
|
+
// It actually probably should be just this:
|
|
176
|
+
// return .init(range.contains(0) ? output : nil)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
public func prefix(_ maxLength: Int) -> Optional<Output>.OCombine.Publisher {
|
|
180
|
+
precondition(maxLength >= 0, "maxLength must not be negative")
|
|
181
|
+
return .init(maxLength > 0 ? output : nil)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
public func prefix(
|
|
185
|
+
while predicate: (Output) -> Bool
|
|
186
|
+
) -> Optional<Output>.OCombine.Publisher {
|
|
187
|
+
return .init(predicate(output) ? output : nil)
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
public func setFailureType<Failure: Error>(
|
|
191
|
+
to failureType: Failure.Type
|
|
192
|
+
) -> Result<Output, Failure>.OCombine.Publisher {
|
|
193
|
+
return .init(output)
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
public func mapError<Failure: Error>(
|
|
197
|
+
_ transform: (Never) -> Failure
|
|
198
|
+
) -> Result<Output, Failure>.OCombine.Publisher {
|
|
199
|
+
return .init(output)
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
public func removeDuplicates(
|
|
203
|
+
by predicate: (Output, Output) -> Bool
|
|
204
|
+
) -> Just<Output> {
|
|
205
|
+
return self
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
public func tryRemoveDuplicates(
|
|
209
|
+
by predicate: (Output, Output) throws -> Bool
|
|
210
|
+
) -> Result<Output, Error>.OCombine.Publisher {
|
|
211
|
+
return .init(Result { try _ = predicate(output, output); return output })
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
public func replaceError(with output: Output) -> Just<Output> {
|
|
215
|
+
return self
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
public func replaceEmpty(with output: Output) -> Just<Output> {
|
|
219
|
+
return self
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
public func retry(_ times: Int) -> Just<Output> {
|
|
223
|
+
return self
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
public func reduce<Accumulator>(
|
|
227
|
+
_ initialResult: Accumulator,
|
|
228
|
+
_ nextPartialResult: (Accumulator, Output) -> Accumulator
|
|
229
|
+
) -> Result<Accumulator, Never>.OCombine.Publisher {
|
|
230
|
+
return .init(nextPartialResult(initialResult, output))
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
public func tryReduce<Accumulator>(
|
|
234
|
+
_ initialResult: Accumulator,
|
|
235
|
+
_ nextPartialResult: (Accumulator, Output) throws -> Accumulator
|
|
236
|
+
) -> Result<Accumulator, Error>.OCombine.Publisher {
|
|
237
|
+
return .init(Result { try nextPartialResult(initialResult, output) })
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
public func scan<ElementOfResult>(
|
|
241
|
+
_ initialResult: ElementOfResult,
|
|
242
|
+
_ nextPartialResult: (ElementOfResult, Output) -> ElementOfResult
|
|
243
|
+
) -> Result<ElementOfResult, Never>.OCombine.Publisher {
|
|
244
|
+
return .init(nextPartialResult(initialResult, output))
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
public func tryScan<ElementOfResult>(
|
|
248
|
+
_ initialResult: ElementOfResult,
|
|
249
|
+
_ nextPartialResult: (ElementOfResult, Output) throws -> ElementOfResult
|
|
250
|
+
) -> Result<ElementOfResult, Error>.OCombine.Publisher {
|
|
251
|
+
return .init(Result { try nextPartialResult(initialResult, output) })
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
public func prepend(_ elements: Output...) -> Publishers.Sequence<[Output], Never> {
|
|
255
|
+
return prepend(elements)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
public func prepend<Elements: Sequence>(
|
|
259
|
+
_ elements: Elements
|
|
260
|
+
) -> Publishers.Sequence<[Output], Never> where Output == Elements.Element {
|
|
261
|
+
return .init(sequence: elements + [output])
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
public func append(_ elements: Output...) -> Publishers.Sequence<[Output], Never> {
|
|
265
|
+
return append(elements)
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
public func append<Elements: Sequence>(
|
|
269
|
+
_ elements: Elements
|
|
270
|
+
) -> Publishers.Sequence<[Output], Never> where Output == Elements.Element {
|
|
271
|
+
return .init(sequence: [output] + elements)
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
extension Just {
|
|
276
|
+
private final class Inner<Downstream: Subscriber>
|
|
277
|
+
: Subscription,
|
|
278
|
+
CustomStringConvertible,
|
|
279
|
+
CustomReflectable,
|
|
280
|
+
CustomPlaygroundDisplayConvertible
|
|
281
|
+
where Downstream.Input == Output
|
|
282
|
+
{
|
|
283
|
+
// NOTE: this class has been audited for thread safety.
|
|
284
|
+
// Combine doesn't use any locking here.
|
|
285
|
+
|
|
286
|
+
private var downstream: Downstream?
|
|
287
|
+
private let value: Output
|
|
288
|
+
|
|
289
|
+
fileprivate init(value: Output, downstream: Downstream) {
|
|
290
|
+
self.downstream = downstream
|
|
291
|
+
self.value = value
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
func request(_ demand: Subscribers.Demand) {
|
|
295
|
+
demand.assertNonZero()
|
|
296
|
+
guard let downstream = self.downstream.take() else { return }
|
|
297
|
+
_ = downstream.receive(value)
|
|
298
|
+
downstream.receive(completion: .finished)
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
func cancel() {
|
|
302
|
+
downstream = nil
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
var description: String { return "Just" }
|
|
306
|
+
|
|
307
|
+
var customMirror: Mirror {
|
|
308
|
+
return Mirror(self, unlabeledChildren: CollectionOfOne(value))
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
var playgroundDescription: Any { return description }
|
|
312
|
+
}
|
|
313
|
+
}
|