@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,128 @@
|
|
|
1
|
+
// `.fileImporter`: the page's file chooser in place of the Files app. It is
|
|
2
|
+
// the photo picker's `pickFiles` host request (docs/ops-protocol.md, "Photos
|
|
3
|
+
// picker"), with an `accept` made from the allowed content types. The
|
|
4
|
+
// chosen files are written to a folder of their own in the app's temporary
|
|
5
|
+
// directory, and `onCompletion` gets their file URLs, which the app reads
|
|
6
|
+
// like any file (no security scope to start: `startAccessingSecurityScopedResource`
|
|
7
|
+
// answers true). A dismissed chooser calls `onCancellation`, if given, and
|
|
8
|
+
// not `onCompletion`, as on iOS. Opening a chooser needs a tap, so set
|
|
9
|
+
// `isPresented` from a button's action.
|
|
10
|
+
|
|
11
|
+
import Foundation
|
|
12
|
+
import SwiftUI
|
|
13
|
+
import UniformTypeIdentifiers
|
|
14
|
+
|
|
15
|
+
/// One file import: what to offer and what to do with the files.
|
|
16
|
+
struct _FileImport {
|
|
17
|
+
let types: [UTType]
|
|
18
|
+
let multiple: Bool
|
|
19
|
+
let completion: @MainActor (Result<[URL], any Error>) -> Void
|
|
20
|
+
let cancellation: (@MainActor () -> Void)?
|
|
21
|
+
|
|
22
|
+
/// The chooser's `accept`: a MIME pattern or an extension per type;
|
|
23
|
+
/// empty (any file) when a type covers all data.
|
|
24
|
+
var accept: String {
|
|
25
|
+
var parts: [String] = []
|
|
26
|
+
for type in types {
|
|
27
|
+
if [UTType.item, .data, .content].contains(type) { return "" }
|
|
28
|
+
if type == .image { parts.append("image/*") }
|
|
29
|
+
else if type == .movie || type == .video || type == .audiovisualContent { parts.append("video/*") }
|
|
30
|
+
else if type == .audio { parts.append("audio/*") }
|
|
31
|
+
else if type == .text || type == .plainText { parts.append("text/*") }
|
|
32
|
+
else if let mime = type.preferredMIMEType { parts.append(mime) }
|
|
33
|
+
else if let ext = type.preferredFilenameExtension { parts.append(".\(ext)") }
|
|
34
|
+
}
|
|
35
|
+
return parts.joined(separator: ",")
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@MainActor func run() async {
|
|
39
|
+
let params: _JSON = .object(["accept": .string(accept), "multiple": .bool(multiple)])
|
|
40
|
+
let value: _JSON
|
|
41
|
+
do {
|
|
42
|
+
value = try await _Runtime.shared._hostRequest(kind: "pickFiles", params: params)
|
|
43
|
+
} catch {
|
|
44
|
+
completion(.failure(error))
|
|
45
|
+
return
|
|
46
|
+
}
|
|
47
|
+
guard case .object(let fields) = value, case .array(let entries)? = fields["items"], !entries.isEmpty else {
|
|
48
|
+
cancellation?()
|
|
49
|
+
return
|
|
50
|
+
}
|
|
51
|
+
do {
|
|
52
|
+
completion(.success(try entries.map(Self.write)))
|
|
53
|
+
} catch {
|
|
54
|
+
completion(.failure(error))
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/// Writes one chosen file (`{name, data}`) to a new folder in the temporary directory.
|
|
59
|
+
static func write(_ entry: _JSON) throws -> URL {
|
|
60
|
+
guard case .object(let fields) = entry, case .string(let base64)? = fields["data"],
|
|
61
|
+
let data = Data(base64Encoded: base64) else {
|
|
62
|
+
throw CocoaError(.fileReadCorruptFile)
|
|
63
|
+
}
|
|
64
|
+
var name = "file"
|
|
65
|
+
if case .string(let given)? = fields["name"], !given.isEmpty, !given.contains("/") { name = given }
|
|
66
|
+
let folder = FileManager.default.temporaryDirectory.appendingPathComponent("Imports/\(UUID().uuidString)", isDirectory: true)
|
|
67
|
+
try FileManager.default.createDirectory(at: folder, withIntermediateDirectories: true)
|
|
68
|
+
let url = folder.appendingPathComponent(name)
|
|
69
|
+
try data.write(to: url)
|
|
70
|
+
return url
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/// Opens the chooser when `isPresented` becomes true and sets it back to false once the viewer is done.
|
|
75
|
+
struct _FileImporterPresenter<Content: View>: View {
|
|
76
|
+
let content: Content
|
|
77
|
+
let isPresented: Binding<Bool>
|
|
78
|
+
let fileImport: _FileImport
|
|
79
|
+
|
|
80
|
+
var body: some View {
|
|
81
|
+
let isPresented = isPresented
|
|
82
|
+
nonisolated(unsafe) let fileImport = fileImport
|
|
83
|
+
return content.onChange(of: isPresented.wrappedValue, initial: true) { _, presented in
|
|
84
|
+
guard presented else { return }
|
|
85
|
+
MainActor.assumeIsolated {
|
|
86
|
+
Task { @MainActor in
|
|
87
|
+
await fileImport.run()
|
|
88
|
+
isPresented.wrappedValue = false
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
extension View {
|
|
96
|
+
/// Lets the viewer pick one file of `allowedContentTypes`.
|
|
97
|
+
public func fileImporter(isPresented: Binding<Bool>, allowedContentTypes: [UTType],
|
|
98
|
+
onCompletion: @escaping (Result<URL, any Error>) -> Void) -> some View {
|
|
99
|
+
_FileImporterPresenter(content: self, isPresented: isPresented,
|
|
100
|
+
fileImport: _FileImport(types: allowedContentTypes, multiple: false,
|
|
101
|
+
completion: { onCompletion($0.flatMap { urls in .success(urls[0]) }) },
|
|
102
|
+
cancellation: nil))
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/// Lets the viewer pick files of `allowedContentTypes`, several when `allowsMultipleSelection`.
|
|
106
|
+
public func fileImporter(isPresented: Binding<Bool>, allowedContentTypes: [UTType], allowsMultipleSelection: Bool,
|
|
107
|
+
onCompletion: @escaping (Result<[URL], any Error>) -> Void) -> some View {
|
|
108
|
+
_FileImporterPresenter(content: self, isPresented: isPresented,
|
|
109
|
+
fileImport: _FileImport(types: allowedContentTypes, multiple: allowsMultipleSelection,
|
|
110
|
+
completion: { onCompletion($0) }, cancellation: nil))
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/// As above, with `onCancellation` called when the viewer dismisses the chooser.
|
|
114
|
+
public func fileImporter(isPresented: Binding<Bool>, allowedContentTypes: [UTType], allowsMultipleSelection: Bool,
|
|
115
|
+
onCompletion: @escaping (Result<[URL], any Error>) -> Void,
|
|
116
|
+
onCancellation: @escaping () -> Void) -> some View {
|
|
117
|
+
_FileImporterPresenter(content: self, isPresented: isPresented,
|
|
118
|
+
fileImport: _FileImport(types: allowedContentTypes, multiple: allowsMultipleSelection,
|
|
119
|
+
completion: { onCompletion($0) }, cancellation: { onCancellation() }))
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
extension URL {
|
|
124
|
+
/// True: picked files are plain files of the app's.
|
|
125
|
+
public func startAccessingSecurityScopedResource() -> Bool { true }
|
|
126
|
+
/// Nothing to stop.
|
|
127
|
+
public func stopAccessingSecurityScopedResource() {}
|
|
128
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// The app's own files: an iOS-like home directory the browser keeps across
|
|
2
|
+
// launches (docs/ops-protocol.md, "Phase 19").
|
|
3
|
+
//
|
|
4
|
+
// The host mounts a writable directory at `/data` and sets `HOME=/data`,
|
|
5
|
+
// `XDG_DATA_HOME=/data/Library/Application Support` and
|
|
6
|
+
// `XDG_CACHE_HOME=/data/Library/Caches`, so Foundation's
|
|
7
|
+
// `FileManager.urls(for:in:)` answers with the iOS layout (`Documents`,
|
|
8
|
+
// `Library/Application Support`, `Library/Caches`); `/tmp` is a second,
|
|
9
|
+
// in-memory mount. The page keeps `/data` in IndexedDB; headless runs map it
|
|
10
|
+
// to a directory on disk.
|
|
11
|
+
//
|
|
12
|
+
// swift-foundation declares `URL.documentsDirectory` and its siblings only in
|
|
13
|
+
// Apple's Foundation, and marks `Data.WritingOptions.atomic` unavailable on
|
|
14
|
+
// WASI (corelibs Foundation always writes in place there). Both are common in
|
|
15
|
+
// apps, so they are supplied here.
|
|
16
|
+
|
|
17
|
+
import Foundation
|
|
18
|
+
|
|
19
|
+
extension URL {
|
|
20
|
+
/// An environment variable naming an absolute path, if set.
|
|
21
|
+
private static func _environmentPath(_ name: String) -> URL? {
|
|
22
|
+
guard let value = ProcessInfo.processInfo.environment[name], value.hasPrefix("/") else { return nil }
|
|
23
|
+
return URL(filePath: value, directoryHint: .isDirectory)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/// The app's home directory (`HOME`; `/data` in the browser). Foundation
|
|
27
|
+
/// has `URL.homeDirectory` already.
|
|
28
|
+
private static var _home: URL { _environmentPath("HOME") ?? URL(filePath: "/data", directoryHint: .isDirectory) }
|
|
29
|
+
|
|
30
|
+
/// `Documents` in the app's home: kept across launches. (On WASI this is
|
|
31
|
+
/// also what `FileManager.urls(for: .documentDirectory, in:)` answers.)
|
|
32
|
+
public static var documentsDirectory: URL { _home.appending(path: "Documents", directoryHint: .isDirectory) }
|
|
33
|
+
|
|
34
|
+
/// `Library` in the app's home.
|
|
35
|
+
public static var libraryDirectory: URL { _home.appending(path: "Library", directoryHint: .isDirectory) }
|
|
36
|
+
|
|
37
|
+
/// `Library/Application Support` in the app's home (`XDG_DATA_HOME`).
|
|
38
|
+
public static var applicationSupportDirectory: URL {
|
|
39
|
+
_environmentPath("XDG_DATA_HOME") ?? libraryDirectory.appending(path: "Application Support", directoryHint: .isDirectory)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/// `Library/Caches` in the app's home (`XDG_CACHE_HOME`).
|
|
43
|
+
public static var cachesDirectory: URL {
|
|
44
|
+
_environmentPath("XDG_CACHE_HOME") ?? libraryDirectory.appending(path: "Caches", directoryHint: .isDirectory)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
#if os(WASI)
|
|
49
|
+
extension Data.WritingOptions {
|
|
50
|
+
/// Accepted, as on Apple platforms; corelibs Foundation on WASI writes
|
|
51
|
+
/// every file in place (it has no temporary files to swap in), and marks
|
|
52
|
+
/// its own `atomic` unavailable, which makes this one the one an app gets.
|
|
53
|
+
public static var atomic: Data.WritingOptions { Data.WritingOptions(rawValue: 1 << 0) }
|
|
54
|
+
}
|
|
55
|
+
#endif
|
|
56
|
+
|
|
57
|
+
extension FileManager {
|
|
58
|
+
/// An app group's shared container. The browser runs the app alone, so the
|
|
59
|
+
/// group's container is a folder in the app's home (`Shared/<group>`, kept
|
|
60
|
+
/// across launches like the rest of `/data`), made on first use.
|
|
61
|
+
public func containerURL(forSecurityApplicationGroupIdentifier groupIdentifier: String) -> URL? {
|
|
62
|
+
let url = URL.libraryDirectory.deletingLastPathComponent()
|
|
63
|
+
.appending(path: "Shared", directoryHint: .isDirectory)
|
|
64
|
+
.appending(path: groupIdentifier, directoryHint: .isDirectory)
|
|
65
|
+
try? createDirectory(at: url, withIntermediateDirectories: true)
|
|
66
|
+
return url
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/// What SwiftUI apps need from Foundation in the browser and the wasm SDK's
|
|
2
|
+
/// swift-corelibs Foundation does not have on WASI:
|
|
3
|
+
///
|
|
4
|
+
/// - `Timer` and `RunLoop` (Timer.swift): corelibs' `Timer` needs CFRunLoop,
|
|
5
|
+
/// which the WASI build lacks, and `RunLoop` is marked unavailable.
|
|
6
|
+
/// - `UserDefaults` (UserDefaults.swift), persisted by the browser; corelibs'
|
|
7
|
+
/// cannot persist on WASI. `@AppStorage` (AppStorage.swift) lives here with
|
|
8
|
+
/// it, since the SwiftUI shim cannot see this module.
|
|
9
|
+
/// - `Bundle` (Bundle.swift), reading the app's staged resources at `/bundle`;
|
|
10
|
+
/// corelibs' `Bundle.main` traps.
|
|
11
|
+
/// - `URLSession`, `URLRequest`, `URLResponse`, `HTTPURLResponse`, `URLError`
|
|
12
|
+
/// (URLSession.swift) over the page's `fetch`; corelibs marks them
|
|
13
|
+
/// unavailable (they moved to FoundationNetworking).
|
|
14
|
+
/// - `AsyncImage` (AsyncImage.swift), loaded by the page.
|
|
15
|
+
/// - `URL.documentsDirectory` and the other iOS directories, and
|
|
16
|
+
/// `Data.WritingOptions.atomic` on WASI (FileSystem.swift), over the home
|
|
17
|
+
/// directory the page keeps in IndexedDB.
|
|
18
|
+
/// - `Locale.current` following the viewer (Locale.swift), through a link-time
|
|
19
|
+
/// `--wrap` the CLI adds.
|
|
20
|
+
/// - `UITextChecker` (UITextChecker.swift), a stand-in for a UIKit class
|
|
21
|
+
/// tutorials reach for.
|
|
22
|
+
///
|
|
23
|
+
/// Apps do not import this module themselves: the CLI's staging adds it next
|
|
24
|
+
/// to `import SwiftUI` and generates typealiases that settle the names both
|
|
25
|
+
/// this module and Foundation declare (`Timer`, `RunLoop`, `UserDefaults`,
|
|
26
|
+
/// `Bundle`, `URLSession` and friends) in this module's favor. See
|
|
27
|
+
/// docs/ops-protocol.md, "Phase 11", "Phase 13" and "Phase 14".
|
|
28
|
+
import Foundation
|
|
29
|
+
import SwiftUI
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Host name resolution, as BSD sockets declare it: WASI's libc has the
|
|
2
|
+
// address types (`in_addr`, `inet_ntoa`) but no resolver, and the page
|
|
3
|
+
// cannot resolve names. `gethostbyname` answers nil, as it does for a name
|
|
4
|
+
// that does not resolve, so code that checks a host's address goes on
|
|
5
|
+
// without one.
|
|
6
|
+
|
|
7
|
+
#if os(WASI)
|
|
8
|
+
import WASILibc
|
|
9
|
+
|
|
10
|
+
/// A host's entry: its name, aliases, address type and addresses.
|
|
11
|
+
public struct hostent {
|
|
12
|
+
public var h_name: UnsafeMutablePointer<CChar>!
|
|
13
|
+
public var h_aliases: UnsafeMutablePointer<UnsafeMutablePointer<CChar>?>!
|
|
14
|
+
public var h_addrtype: Int32
|
|
15
|
+
public var h_length: Int32
|
|
16
|
+
/// Non-optional elements: WASI's `memcpy` takes no optional pointer, and
|
|
17
|
+
/// code copies `h_addr_list[0]` into an `in_addr` with it.
|
|
18
|
+
public var h_addr_list: UnsafeMutablePointer<UnsafeMutablePointer<CChar>>!
|
|
19
|
+
|
|
20
|
+
public init() {
|
|
21
|
+
h_name = nil
|
|
22
|
+
h_aliases = nil
|
|
23
|
+
h_addrtype = 0
|
|
24
|
+
h_length = 0
|
|
25
|
+
h_addr_list = nil
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/// The host entry for `name`: nil, as there is no resolver.
|
|
30
|
+
public func gethostbyname(_ name: UnsafePointer<CChar>!) -> UnsafeMutablePointer<hostent>! { nil }
|
|
31
|
+
#endif
|