@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,260 @@
|
|
|
1
|
+
// `@Model` and its helpers, expanded the way Apple's SwiftData expands them
|
|
2
|
+
// (docs/ops-protocol.md, "Phase 18"):
|
|
3
|
+
//
|
|
4
|
+
// - every stored `var` of the class that is not `@Transient` gets
|
|
5
|
+
// `@_PersistedProperty`, which turns it into a computed property over the
|
|
6
|
+
// model's backing data (an `init` accessor, so `self.title = title` in the
|
|
7
|
+
// class's own initializer and a property's initial value still work), with
|
|
8
|
+
// Observation's `access` / `withMutation` around each read and write, and a
|
|
9
|
+
// `_SwiftDataNoType` peer that definite initialization tracks in its place;
|
|
10
|
+
// - the class gains its backing data, an observation registrar, the schema
|
|
11
|
+
// metadata (each persisted property's name, key path, initial value and
|
|
12
|
+
// `@Attribute` / `@Relationship` options) and `init(backingData:)`, which a
|
|
13
|
+
// context uses to materialize a model from the store;
|
|
14
|
+
// - an extension makes it a `PersistentModel` (and so `Observable`,
|
|
15
|
+
// `Hashable` and `Identifiable`).
|
|
16
|
+
|
|
17
|
+
import SwiftDiagnostics
|
|
18
|
+
import SwiftSyntax
|
|
19
|
+
import SwiftSyntaxBuilder
|
|
20
|
+
import SwiftSyntaxMacros
|
|
21
|
+
|
|
22
|
+
/// A persisted property of a `@Model` class, as the macros see it.
|
|
23
|
+
struct PersistedProperty {
|
|
24
|
+
let name: String
|
|
25
|
+
let initialValue: ExprSyntax?
|
|
26
|
+
let attribute: AttributeSyntax?
|
|
27
|
+
let relationship: AttributeSyntax?
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
enum ModelSyntax {
|
|
31
|
+
static let markerAttributes: Set<String> = ["Transient", "_PersistedProperty", "ObservationIgnored"]
|
|
32
|
+
|
|
33
|
+
static func attributeName(_ attribute: AttributeSyntax) -> String {
|
|
34
|
+
let name = attribute.attributeName.trimmedDescription
|
|
35
|
+
// `@SwiftData.Transient` names the same macro.
|
|
36
|
+
if let dot = name.lastIndex(of: ".") { return String(name[name.index(after: dot)...]) }
|
|
37
|
+
return name
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static func attributes(of variable: VariableDeclSyntax) -> [AttributeSyntax] {
|
|
41
|
+
variable.attributes.compactMap { $0.as(AttributeSyntax.self) }
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static func hasAttribute(_ variable: VariableDeclSyntax, named names: Set<String>) -> Bool {
|
|
45
|
+
attributes(of: variable).contains { names.contains(attributeName($0)) }
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/// Whether the declaration is a stored `var` of the instance that `@Model`
|
|
49
|
+
/// persists: not static or lazy, no accessor block (computed or observed),
|
|
50
|
+
/// one simple name, and not marked `@Transient`.
|
|
51
|
+
static func isPersisted(_ variable: VariableDeclSyntax) -> Bool {
|
|
52
|
+
guard variable.bindingSpecifier.tokenKind == .keyword(.var) else { return false }
|
|
53
|
+
for modifier in variable.modifiers {
|
|
54
|
+
switch modifier.name.tokenKind {
|
|
55
|
+
case .keyword(.static), .keyword(.class), .keyword(.lazy): return false
|
|
56
|
+
default: break
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if hasAttribute(variable, named: markerAttributes) { return false }
|
|
60
|
+
guard variable.bindings.count == 1, let binding = variable.bindings.first,
|
|
61
|
+
binding.pattern.is(IdentifierPatternSyntax.self) else { return false }
|
|
62
|
+
if binding.accessorBlock != nil { return false }
|
|
63
|
+
return true
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
static func name(of variable: VariableDeclSyntax) -> String? {
|
|
67
|
+
variable.bindings.first?.pattern.as(IdentifierPatternSyntax.self)?.identifier.trimmedDescription
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static func persistedProperties(of members: MemberBlockItemListSyntax) -> [PersistedProperty] {
|
|
71
|
+
members.compactMap { item -> PersistedProperty? in
|
|
72
|
+
guard let variable = item.decl.as(VariableDeclSyntax.self), isPersisted(variable),
|
|
73
|
+
let name = name(of: variable) else { return nil }
|
|
74
|
+
let attributes = attributes(of: variable)
|
|
75
|
+
return PersistedProperty(
|
|
76
|
+
name: name,
|
|
77
|
+
initialValue: variable.bindings.first?.initializer?.value,
|
|
78
|
+
attribute: attributes.first { attributeName($0) == "Attribute" },
|
|
79
|
+
relationship: attributes.first { attributeName($0) == "Relationship" }
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/// `public ` when the class is public or open, so the members that
|
|
85
|
+
/// satisfy `PersistentModel` are as visible as the conformance.
|
|
86
|
+
static func accessPrefix(of declaration: some DeclGroupSyntax) -> String {
|
|
87
|
+
for modifier in declaration.modifiers {
|
|
88
|
+
switch modifier.name.tokenKind {
|
|
89
|
+
case .keyword(.public), .keyword(.open): return "public "
|
|
90
|
+
default: break
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return ""
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/// The arguments of an attribute as source (`.cascade, inverse: \Job.owner`).
|
|
97
|
+
static func arguments(of attribute: AttributeSyntax) -> String {
|
|
98
|
+
guard case .argumentList(let list)? = attribute.arguments else { return "" }
|
|
99
|
+
return list.trimmedDescription
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
struct ModelDiagnostic: DiagnosticMessage {
|
|
104
|
+
let message: String
|
|
105
|
+
let diagnosticID = MessageID(domain: "SwiftDataMacros", id: "Model")
|
|
106
|
+
let severity = DiagnosticSeverity.error
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
public struct ModelMacro: MemberMacro, MemberAttributeMacro, ExtensionMacro {
|
|
110
|
+
// MARK: Members
|
|
111
|
+
|
|
112
|
+
public static func expansion(
|
|
113
|
+
of node: AttributeSyntax,
|
|
114
|
+
providingMembersOf declaration: some DeclGroupSyntax,
|
|
115
|
+
conformingTo protocols: [TypeSyntax],
|
|
116
|
+
in context: some MacroExpansionContext
|
|
117
|
+
) throws -> [DeclSyntax] {
|
|
118
|
+
guard let classDecl = declaration.as(ClassDeclSyntax.self) else {
|
|
119
|
+
context.diagnose(Diagnostic(node: Syntax(node), message: ModelDiagnostic(message: "@Model can only be applied to a class")))
|
|
120
|
+
return []
|
|
121
|
+
}
|
|
122
|
+
let typeName = classDecl.name.trimmedDescription
|
|
123
|
+
let access = ModelSyntax.accessPrefix(of: classDecl)
|
|
124
|
+
let properties = ModelSyntax.persistedProperties(of: classDecl.memberBlock.members)
|
|
125
|
+
|
|
126
|
+
let metadata = properties.map { property -> String in
|
|
127
|
+
var arguments = "name: \(literal(property.name)), keyPath: \\\(typeName).\(property.name)"
|
|
128
|
+
if let initial = property.initialValue { arguments += ", defaultValue: \(initial.trimmedDescription)" }
|
|
129
|
+
if let relationship = property.relationship {
|
|
130
|
+
arguments += ", metadata: SwiftData.Schema.Relationship(\(ModelSyntax.arguments(of: relationship)))"
|
|
131
|
+
} else if let attribute = property.attribute {
|
|
132
|
+
arguments += ", metadata: SwiftData.Schema.Attribute(\(ModelSyntax.arguments(of: attribute)))"
|
|
133
|
+
}
|
|
134
|
+
return "SwiftData.Schema.PropertyMetadata(\(arguments))"
|
|
135
|
+
}
|
|
136
|
+
let metadataList = metadata.isEmpty ? "[]" : "[\n " + metadata.joined(separator: ",\n ") + "\n ]"
|
|
137
|
+
let peerInits = properties.map { " _\($0.name) = SwiftData._SwiftDataNoType()\n" }.joined()
|
|
138
|
+
|
|
139
|
+
return [
|
|
140
|
+
"@SwiftData.Transient private var _$backingData: SwiftData._ModelBacking = SwiftData._ModelBacking(for: \(raw: typeName).self)",
|
|
141
|
+
"""
|
|
142
|
+
\(raw: access)var persistentBackingData: SwiftData._ModelBacking {
|
|
143
|
+
get { _$backingData }
|
|
144
|
+
set { _$backingData = newValue }
|
|
145
|
+
}
|
|
146
|
+
""",
|
|
147
|
+
"""
|
|
148
|
+
\(raw: access)static var schemaMetadata: [SwiftData.Schema.PropertyMetadata] {
|
|
149
|
+
\(raw: metadataList)
|
|
150
|
+
}
|
|
151
|
+
""",
|
|
152
|
+
"""
|
|
153
|
+
\(raw: access)required init(backingData: SwiftData._ModelBacking) {
|
|
154
|
+
\(raw: peerInits) self._$backingData = backingData
|
|
155
|
+
}
|
|
156
|
+
""",
|
|
157
|
+
"@SwiftData.Transient \(raw: access)let _$observationRegistrar = Observation.ObservationRegistrar()",
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// MARK: Member attributes
|
|
162
|
+
|
|
163
|
+
public static func expansion(
|
|
164
|
+
of node: AttributeSyntax,
|
|
165
|
+
attachedTo declaration: some DeclGroupSyntax,
|
|
166
|
+
providingAttributesFor member: some DeclSyntaxProtocol,
|
|
167
|
+
in context: some MacroExpansionContext
|
|
168
|
+
) throws -> [AttributeSyntax] {
|
|
169
|
+
guard let variable = member.as(VariableDeclSyntax.self), ModelSyntax.isPersisted(variable) else { return [] }
|
|
170
|
+
return ["@SwiftData._PersistedProperty"]
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// MARK: Conformance
|
|
174
|
+
|
|
175
|
+
public static func expansion(
|
|
176
|
+
of node: AttributeSyntax,
|
|
177
|
+
attachedTo declaration: some DeclGroupSyntax,
|
|
178
|
+
providingExtensionsOf type: some TypeSyntaxProtocol,
|
|
179
|
+
conformingTo protocols: [TypeSyntax],
|
|
180
|
+
in context: some MacroExpansionContext
|
|
181
|
+
) throws -> [ExtensionDeclSyntax] {
|
|
182
|
+
guard declaration.is(ClassDeclSyntax.self) else { return [] }
|
|
183
|
+
let decl: DeclSyntax = "extension \(type.trimmed): SwiftData.PersistentModel {}"
|
|
184
|
+
return [decl.cast(ExtensionDeclSyntax.self)]
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/// A property name as a string literal (identifiers need no escaping,
|
|
188
|
+
/// but backquoted ones carry their backquotes).
|
|
189
|
+
private static func literal(_ text: String) -> String {
|
|
190
|
+
"\"" + text.filter { $0 != "`" } + "\""
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/// A persisted property: reads and writes go to the model's backing data,
|
|
195
|
+
/// observed like an `@Observable` property.
|
|
196
|
+
public struct PersistedPropertyMacro: AccessorMacro, PeerMacro {
|
|
197
|
+
public static func expansion(
|
|
198
|
+
of node: AttributeSyntax,
|
|
199
|
+
providingAccessorsOf declaration: some DeclSyntaxProtocol,
|
|
200
|
+
in context: some MacroExpansionContext
|
|
201
|
+
) throws -> [AccessorDeclSyntax] {
|
|
202
|
+
guard let variable = declaration.as(VariableDeclSyntax.self), let name = ModelSyntax.name(of: variable) else { return [] }
|
|
203
|
+
let key = "\"" + name.filter { $0 != "`" } + "\""
|
|
204
|
+
return [
|
|
205
|
+
"""
|
|
206
|
+
@storageRestrictions(accesses: _$backingData, initializes: _\(raw: name))
|
|
207
|
+
init(initialValue) {
|
|
208
|
+
_$backingData._setInitialValue(initialValue, forKey: \(raw: key))
|
|
209
|
+
_\(raw: name) = SwiftData._SwiftDataNoType()
|
|
210
|
+
}
|
|
211
|
+
""",
|
|
212
|
+
"""
|
|
213
|
+
get {
|
|
214
|
+
_$observationRegistrar.access(self, keyPath: \\.\(raw: name))
|
|
215
|
+
return self._$getValue(forKey: \(raw: key))
|
|
216
|
+
}
|
|
217
|
+
""",
|
|
218
|
+
"""
|
|
219
|
+
set {
|
|
220
|
+
_$observationRegistrar.withMutation(of: self, keyPath: \\.\(raw: name)) {
|
|
221
|
+
self._$setValue(newValue, forKey: \(raw: key))
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
""",
|
|
225
|
+
]
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
public static func expansion(
|
|
229
|
+
of node: AttributeSyntax,
|
|
230
|
+
providingPeersOf declaration: some DeclSyntaxProtocol,
|
|
231
|
+
in context: some MacroExpansionContext
|
|
232
|
+
) throws -> [DeclSyntax] {
|
|
233
|
+
guard let variable = declaration.as(VariableDeclSyntax.self), let name = ModelSyntax.name(of: variable) else { return [] }
|
|
234
|
+
return ["@SwiftData.Transient private var _\(raw: name): SwiftData._SwiftDataNoType"]
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/// `@Attribute`, `@Relationship` and `@Transient` only mark a property; `@Model`
|
|
239
|
+
/// reads them.
|
|
240
|
+
public struct MarkerMacro: PeerMacro {
|
|
241
|
+
public static func expansion(
|
|
242
|
+
of node: AttributeSyntax,
|
|
243
|
+
providingPeersOf declaration: some DeclSyntaxProtocol,
|
|
244
|
+
in context: some MacroExpansionContext
|
|
245
|
+
) throws -> [DeclSyntax] {
|
|
246
|
+
[]
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/// `#Unique` and `#Index` (iOS 18) declare constraints and indexes inside a
|
|
251
|
+
/// model. The store keeps every record in memory, so an index adds nothing;
|
|
252
|
+
/// uniqueness is declared with `@Attribute(.unique)`.
|
|
253
|
+
public struct ConstraintMacro: DeclarationMacro {
|
|
254
|
+
public static func expansion(
|
|
255
|
+
of node: some FreestandingMacroExpansionSyntax,
|
|
256
|
+
in context: some MacroExpansionContext
|
|
257
|
+
) throws -> [DeclSyntax] {
|
|
258
|
+
[]
|
|
259
|
+
}
|
|
260
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import SwiftCompilerPlugin
|
|
2
|
+
import SwiftSyntaxMacros
|
|
3
|
+
|
|
4
|
+
@main
|
|
5
|
+
struct SwiftDataMacrosPlugin: CompilerPlugin {
|
|
6
|
+
let providingMacros: [Macro.Type] = [
|
|
7
|
+
ModelMacro.self,
|
|
8
|
+
ModelActorMacro.self,
|
|
9
|
+
PersistedPropertyMacro.self,
|
|
10
|
+
MarkerMacro.self,
|
|
11
|
+
ConstraintMacro.self,
|
|
12
|
+
PredicateMacro.self,
|
|
13
|
+
ExpressionMacro.self,
|
|
14
|
+
EntryMacro.self,
|
|
15
|
+
GenerableMacro.self,
|
|
16
|
+
GuideMacro.self,
|
|
17
|
+
]
|
|
18
|
+
}
|