@swiftbrowser/swift 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/Package.swift +200 -9
  2. package/README.md +7 -9
  3. package/Sources/AVFoundation/AVFoundation.swift +131 -0
  4. package/Sources/AVFoundation/Asset.swift +487 -0
  5. package/Sources/AVFoundation/AudioSession.swift +144 -0
  6. package/Sources/AVFoundation/CMTime.swift +303 -0
  7. package/Sources/AVFoundation/Capture.swift +688 -0
  8. package/Sources/AVFoundation/Player.swift +749 -0
  9. package/Sources/AVFoundation/PlayerView.swift +117 -0
  10. package/Sources/AVKit/AVKit.swift +132 -0
  11. package/Sources/Accelerate/Accelerate.swift +122 -0
  12. package/Sources/AppIntents/AppIntents.swift +144 -0
  13. package/Sources/AppIntents/Parameters.swift +220 -0
  14. package/Sources/AppIntents/Shortcuts.swift +159 -0
  15. package/Sources/AudioToolbox/AudioToolbox.swift +55 -0
  16. package/Sources/AuthenticationServices/AuthenticationServices.swift +257 -0
  17. package/Sources/AuthenticationServices/Authorization.swift +251 -0
  18. package/Sources/Charts/Charts.swift +0 -4
  19. package/Sources/Combine/AnyCancellable.swift +65 -0
  20. package/Sources/Combine/AnyPublisher.swift +148 -0
  21. package/Sources/Combine/AnySubscriber.swift +230 -0
  22. package/Sources/Combine/Cancellable.swift +35 -0
  23. package/Sources/Combine/Codable.swift +29 -0
  24. package/Sources/Combine/CombineIdentifier.swift +45 -0
  25. package/Sources/Combine/Concurrency/ConcurrencyHelpers.swift +24 -0
  26. package/Sources/Combine/Concurrency/Future+Concurrency.swift +136 -0
  27. package/Sources/Combine/Concurrency/GENERATED-Publisher+Concurrency.swift +397 -0
  28. package/Sources/Combine/CurrentValueSubject.swift +252 -0
  29. package/Sources/Combine/CustomCombineIdentifierConvertible.swift +28 -0
  30. package/Sources/Combine/Future.swift +228 -0
  31. package/Sources/Combine/GENERATED-RootProtocols.swift +426 -0
  32. package/Sources/Combine/Helpers/ConduitBase.swift +40 -0
  33. package/Sources/Combine/Helpers/ConduitList.swift +59 -0
  34. package/Sources/Combine/Helpers/DebugHook.swift +177 -0
  35. package/Sources/Combine/Helpers/FilterProducer.swift +174 -0
  36. package/Sources/Combine/Helpers/Locking.swift +30 -0
  37. package/Sources/Combine/Helpers/PartialCompletion.swift +26 -0
  38. package/Sources/Combine/Helpers/ReduceProducer.swift +249 -0
  39. package/Sources/Combine/Helpers/SubjectSubscriber.swift +96 -0
  40. package/Sources/Combine/Helpers/SubscriberTap.swift +69 -0
  41. package/Sources/Combine/Helpers/SubscriptionStatus.swift +33 -0
  42. package/Sources/Combine/Helpers/SubscriptionTap.swift +33 -0
  43. package/Sources/Combine/Helpers/Utils.swift +30 -0
  44. package/Sources/Combine/Helpers/Violations.swift +33 -0
  45. package/Sources/Combine/ImmediateScheduler.swift +178 -0
  46. package/Sources/Combine/LICENSE +21 -0
  47. package/Sources/Combine/NotificationPublisher.swift +48 -0
  48. package/Sources/Combine/ObjectWillChange.swift +46 -0
  49. package/Sources/Combine/PassthroughSubject.swift +222 -0
  50. package/Sources/Combine/Publisher+Subscribe.swift +53 -0
  51. package/Sources/Combine/Publishers/Deferred.swift +48 -0
  52. package/Sources/Combine/Publishers/Empty.swift +54 -0
  53. package/Sources/Combine/Publishers/Fail.swift +42 -0
  54. package/Sources/Combine/Publishers/GENERATED-Publishers.Catch.swift +673 -0
  55. package/Sources/Combine/Publishers/GENERATED-Publishers.Encode.swift +388 -0
  56. package/Sources/Combine/Publishers/GENERATED-Publishers.MapKeyPath.swift +384 -0
  57. package/Sources/Combine/Publishers/Just.swift +313 -0
  58. package/Sources/Combine/Publishers/Optional.Publisher.swift +315 -0
  59. package/Sources/Combine/Publishers/Publishers.AllSatisfy.swift +217 -0
  60. package/Sources/Combine/Publishers/Publishers.AssertNoFailure.swift +158 -0
  61. package/Sources/Combine/Publishers/Publishers.Autoconnect.swift +193 -0
  62. package/Sources/Combine/Publishers/Publishers.Breakpoint.swift +231 -0
  63. package/Sources/Combine/Publishers/Publishers.Buffer.swift +356 -0
  64. package/Sources/Combine/Publishers/Publishers.Collect.swift +102 -0
  65. package/Sources/Combine/Publishers/Publishers.CollectByCount.swift +195 -0
  66. package/Sources/Combine/Publishers/Publishers.CompactMap.swift +241 -0
  67. package/Sources/Combine/Publishers/Publishers.Comparison.swift +371 -0
  68. package/Sources/Combine/Publishers/Publishers.Concatenate.swift +474 -0
  69. package/Sources/Combine/Publishers/Publishers.Contains.swift +293 -0
  70. package/Sources/Combine/Publishers/Publishers.Count.swift +87 -0
  71. package/Sources/Combine/Publishers/Publishers.Debounce.swift +332 -0
  72. package/Sources/Combine/Publishers/Publishers.Delay.swift +269 -0
  73. package/Sources/Combine/Publishers/Publishers.Drop.swift +155 -0
  74. package/Sources/Combine/Publishers/Publishers.DropUntilOutput.swift +283 -0
  75. package/Sources/Combine/Publishers/Publishers.DropWhile.swift +378 -0
  76. package/Sources/Combine/Publishers/Publishers.Filter.swift +248 -0
  77. package/Sources/Combine/Publishers/Publishers.First.swift +261 -0
  78. package/Sources/Combine/Publishers/Publishers.FlatMap.swift +533 -0
  79. package/Sources/Combine/Publishers/Publishers.HandleEvents.swift +260 -0
  80. package/Sources/Combine/Publishers/Publishers.IgnoreOutput.swift +109 -0
  81. package/Sources/Combine/Publishers/Publishers.Last.swift +252 -0
  82. package/Sources/Combine/Publishers/Publishers.MakeConnectable.swift +82 -0
  83. package/Sources/Combine/Publishers/Publishers.Map.swift +351 -0
  84. package/Sources/Combine/Publishers/Publishers.MapError.swift +140 -0
  85. package/Sources/Combine/Publishers/Publishers.MeasureInterval.swift +187 -0
  86. package/Sources/Combine/Publishers/Publishers.Multicast.swift +284 -0
  87. package/Sources/Combine/Publishers/Publishers.Output.swift +241 -0
  88. package/Sources/Combine/Publishers/Publishers.PrefixUntilOutput.swift +197 -0
  89. package/Sources/Combine/Publishers/Publishers.PrefixWhile.swift +176 -0
  90. package/Sources/Combine/Publishers/Publishers.Print.swift +206 -0
  91. package/Sources/Combine/Publishers/Publishers.ReceiveOn.swift +227 -0
  92. package/Sources/Combine/Publishers/Publishers.Reduce.swift +204 -0
  93. package/Sources/Combine/Publishers/Publishers.RemoveDuplicates.swift +264 -0
  94. package/Sources/Combine/Publishers/Publishers.ReplaceEmpty.swift +201 -0
  95. package/Sources/Combine/Publishers/Publishers.ReplaceError.swift +211 -0
  96. package/Sources/Combine/Publishers/Publishers.Retry.swift +274 -0
  97. package/Sources/Combine/Publishers/Publishers.Scan.swift +331 -0
  98. package/Sources/Combine/Publishers/Publishers.Sequence.swift +437 -0
  99. package/Sources/Combine/Publishers/Publishers.SetFailureType.swift +120 -0
  100. package/Sources/Combine/Publishers/Publishers.Share.swift +104 -0
  101. package/Sources/Combine/Publishers/Publishers.SubscribeOn.swift +197 -0
  102. package/Sources/Combine/Publishers/Publishers.SwitchToLatest.swift +444 -0
  103. package/Sources/Combine/Publishers/Publishers.Throttle.swift +359 -0
  104. package/Sources/Combine/Publishers/Publishers.Timeout.swift +301 -0
  105. package/Sources/Combine/Publishers/Publishers.Zip.swift +720 -0
  106. package/Sources/Combine/Publishers/Publishers.swift +13 -0
  107. package/Sources/Combine/Publishers/Record.swift +237 -0
  108. package/Sources/Combine/Publishers/Result.Publisher.swift +337 -0
  109. package/Sources/Combine/Result.swift +46 -0
  110. package/Sources/Combine/Scheduler.swift +89 -0
  111. package/Sources/Combine/Schedulers.swift +211 -0
  112. package/Sources/Combine/Subject+Void.swift +17 -0
  113. package/Sources/Combine/Subscriber+Void.swift +20 -0
  114. package/Sources/Combine/Subscribers/Subscribers.Assign.swift +175 -0
  115. package/Sources/Combine/Subscribers/Subscribers.Completion.swift +90 -0
  116. package/Sources/Combine/Subscribers/Subscribers.Demand.swift +476 -0
  117. package/Sources/Combine/Subscribers/Subscribers.Sink.swift +206 -0
  118. package/Sources/Combine/Subscribers/Subscribers.swift +9 -0
  119. package/Sources/Combine/Subscription.swift +22 -0
  120. package/Sources/Combine/Subscriptions.swift +42 -0
  121. package/Sources/Combine/SwiftUIObservation.swift +10 -0
  122. package/Sources/Combine/_Introspection.swift +107 -0
  123. package/Sources/CommonCrypto/CommonCrypto.swift +80 -0
  124. package/Sources/Compression/Compression.swift +365 -0
  125. package/Sources/Compression/Deflate.swift +407 -0
  126. package/Sources/Compression/Zlib.swift +179 -0
  127. package/Sources/CoreFoundationTypes/CoreFoundationTypes.swift +101 -0
  128. package/Sources/CoreGraphics/CoreGraphics.swift +411 -0
  129. package/Sources/CoreGraphics/ProjectionTransforms.swift +28 -0
  130. package/Sources/CoreHaptics/CoreHaptics.swift +399 -0
  131. package/Sources/CoreImage/CIColor.swift +41 -0
  132. package/Sources/CoreImage/CIContext.swift +31 -0
  133. package/Sources/CoreImage/CIDetector.swift +57 -0
  134. package/Sources/CoreImage/CIFilter.swift +243 -0
  135. package/Sources/CoreImage/CIFilterBuiltins.swift +136 -0
  136. package/Sources/CoreImage/CIImage.swift +162 -0
  137. package/Sources/CoreImage/QRCode.swift +393 -0
  138. package/Sources/CoreLocation/Coordinate.swift +30 -0
  139. package/Sources/CoreLocation/Location.swift +65 -0
  140. package/Sources/CoreML/Evaluation.swift +414 -0
  141. package/Sources/CoreML/FeatureValue.swift +266 -0
  142. package/Sources/CoreML/Model.swift +269 -0
  143. package/Sources/CoreML/MultiArray.swift +92 -0
  144. package/Sources/CoreML/Specification.swift +233 -0
  145. package/Sources/CoreText/CoreText.swift +64 -0
  146. package/Sources/CoreTransferable/CoreTransferable.swift +606 -0
  147. package/Sources/CryptoKit/ChaChaPoly.swift +258 -0
  148. package/Sources/CryptoKit/CryptoKit.swift +375 -0
  149. package/Sources/CryptoKit/Curve25519.swift +317 -0
  150. package/Sources/CryptoKit/P256.swift +321 -0
  151. package/Sources/FoundationBridge/AppStorage.swift +165 -0
  152. package/Sources/FoundationBridge/AssetResources.swift +90 -0
  153. package/Sources/FoundationBridge/AsyncBytes.swift +128 -0
  154. package/Sources/FoundationBridge/AsyncImage.swift +116 -0
  155. package/Sources/FoundationBridge/AttributedStrings.swift +16 -0
  156. package/Sources/{_FoundationCommon → FoundationBridge}/Bundle.swift +41 -4
  157. package/Sources/FoundationBridge/CombineExports.swift +8 -0
  158. package/Sources/FoundationBridge/CoreFoundation.swift +77 -0
  159. package/Sources/FoundationBridge/Dispatch.swift +458 -0
  160. package/Sources/FoundationBridge/EnvironmentFoundation.swift +41 -0
  161. package/Sources/FoundationBridge/FileImporter.swift +128 -0
  162. package/Sources/FoundationBridge/FileSystem.swift +68 -0
  163. package/Sources/FoundationBridge/FoundationBridge.swift +24 -72
  164. package/Sources/FoundationBridge/HostResolution.swift +31 -0
  165. package/Sources/FoundationBridge/ItemProvider.swift +655 -0
  166. package/Sources/FoundationBridge/KeyValueObserving.swift +138 -0
  167. package/Sources/FoundationBridge/Links.swift +127 -0
  168. package/Sources/FoundationBridge/ListFormatter.swift +32 -0
  169. package/Sources/FoundationBridge/Localization.swift +149 -0
  170. package/Sources/FoundationBridge/Locks.swift +50 -0
  171. package/Sources/FoundationBridge/Markdown.swift +527 -0
  172. package/Sources/FoundationBridge/MeasurementFormat.swift +95 -0
  173. package/Sources/FoundationBridge/NotificationCenter.swift +154 -0
  174. package/Sources/FoundationBridge/OpenURLHandlers.swift +60 -0
  175. package/Sources/FoundationBridge/Operation.swift +195 -0
  176. package/Sources/FoundationBridge/ProcessInfo.swift +32 -0
  177. package/Sources/FoundationBridge/RelativeDateTimeFormatter.swift +136 -0
  178. package/Sources/FoundationBridge/SceneStorage.swift +78 -0
  179. package/Sources/FoundationBridge/SecurityExports.swift +8 -0
  180. package/Sources/FoundationBridge/Selector.swift +226 -0
  181. package/Sources/FoundationBridge/StringComparators.swift +17 -0
  182. package/Sources/FoundationBridge/Table.swift +211 -0
  183. package/Sources/FoundationBridge/TextAttributes.swift +42 -0
  184. package/Sources/FoundationBridge/Timer.swift +6 -1
  185. package/Sources/FoundationBridge/URLSession.swift +718 -0
  186. package/Sources/{_FoundationCommon → FoundationBridge}/UserDefaults.swift +17 -4
  187. package/Sources/FoundationBridge/WebAuthRedirects.swift +227 -0
  188. package/Sources/FoundationBridge/WebSocket.swift +187 -0
  189. package/Sources/FoundationModels/FoundationModels.swift +1098 -0
  190. package/Sources/ImageIO/GIF.swift +72 -0
  191. package/Sources/ImageIO/ImageIO.swift +248 -0
  192. package/Sources/ImageIO/ImageTypes.swift +28 -0
  193. package/Sources/LinkPresentation/LinkPresentation.swift +249 -0
  194. package/Sources/LocalAuthentication/LAContext.swift +86 -0
  195. package/Sources/MapKit/Geometry.swift +223 -0
  196. package/Sources/MapKit/Map.swift +638 -0
  197. package/Sources/MapKit/MapView.swift +229 -0
  198. package/Sources/MobileCoreServices/MobileCoreServices.swift +28 -0
  199. package/Sources/NaturalLanguage/LanguageIdentifier.swift +317 -0
  200. package/Sources/NaturalLanguage/NaturalLanguage.swift +135 -0
  201. package/Sources/OSLog/OSLog.swift +6 -0
  202. package/Sources/Photos/Photos.swift +572 -0
  203. package/Sources/PhotosUI/PhotosPicker.swift +248 -0
  204. package/Sources/PhotosUI/PhotosPickerItem.swift +261 -0
  205. package/Sources/QuickLook/QuickLook.swift +168 -0
  206. package/Sources/SafariServices/SafariServices.swift +106 -0
  207. package/Sources/Security/Security.swift +332 -0
  208. package/Sources/StoreKit/AppStore.swift +207 -0
  209. package/Sources/StoreKit/Products.swift +280 -0
  210. package/Sources/StoreKit/RequestReview.swift +28 -0
  211. package/Sources/StoreKit/StoreKit1.swift +486 -0
  212. package/Sources/StoreKit/StoreViews.swift +428 -0
  213. package/Sources/StoreKit/Transactions.swift +197 -0
  214. package/Sources/SwiftData/Macros.swift +58 -0
  215. package/Sources/SwiftData/ModelActor.swift +38 -0
  216. package/Sources/SwiftData/ModelContainer.swift +129 -0
  217. package/Sources/SwiftData/ModelContext.swift +451 -0
  218. package/Sources/SwiftData/PersistentModel.swift +238 -0
  219. package/Sources/SwiftData/Properties.swift +261 -0
  220. package/Sources/SwiftData/Query.swift +256 -0
  221. package/Sources/SwiftData/Schema.swift +192 -0
  222. package/Sources/SwiftData/Store.swift +146 -0
  223. package/Sources/SwiftData/StringPredicates.swift +125 -0
  224. package/Sources/SwiftDataMacros/EntryMacro.swift +82 -0
  225. package/Sources/SwiftDataMacros/GenerableMacro.swift +183 -0
  226. package/Sources/SwiftDataMacros/ModelActorMacro.swift +46 -0
  227. package/Sources/SwiftDataMacros/ModelMacro.swift +260 -0
  228. package/Sources/SwiftDataMacros/Plugin.swift +18 -0
  229. package/Sources/SwiftDataMacros/PredicateMacro.swift +1244 -0
  230. package/Sources/SwiftUI/API/Accessibility.swift +55 -6
  231. package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
  232. package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
  233. package/Sources/SwiftUI/API/Alert.swift +1 -1
  234. package/Sources/SwiftUI/API/AlignmentGuides.swift +65 -0
  235. package/Sources/SwiftUI/API/Animation.swift +37 -5
  236. package/Sources/SwiftUI/API/App.swift +31 -1
  237. package/Sources/SwiftUI/API/BindingCollections.swift +35 -0
  238. package/Sources/SwiftUI/API/BindingForEach.swift +27 -0
  239. package/Sources/SwiftUI/API/Bitmaps.swift +254 -0
  240. package/Sources/SwiftUI/API/ButtonStyles.swift +96 -0
  241. package/Sources/SwiftUI/API/Canvas.swift +337 -0
  242. package/Sources/SwiftUI/API/Color.swift +104 -28
  243. package/Sources/SwiftUI/API/ColorEffects.swift +52 -0
  244. package/Sources/SwiftUI/API/ColorPickerAndLabeledContent.swift +138 -0
  245. package/Sources/SwiftUI/API/ColorSpaces.swift +161 -0
  246. package/Sources/SwiftUI/API/Commands.swift +106 -0
  247. package/Sources/SwiftUI/API/ContainerBackground.swift +28 -0
  248. package/Sources/SwiftUI/API/ContentShape.swift +33 -0
  249. package/Sources/SwiftUI/API/ContentSizeCategory.swift +35 -0
  250. package/Sources/SwiftUI/API/ContentUnavailable.swift +101 -0
  251. package/Sources/SwiftUI/API/Controls.swift +59 -27
  252. package/Sources/SwiftUI/API/CustomLayout.swift +49 -10
  253. package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
  254. package/Sources/SwiftUI/API/Decorations.swift +1 -1
  255. package/Sources/SwiftUI/API/EditMode.swift +25 -82
  256. package/Sources/SwiftUI/API/Effects.swift +105 -7
  257. package/Sources/SwiftUI/API/Entry.swift +8 -0
  258. package/Sources/SwiftUI/API/Environment.swift +93 -9
  259. package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
  260. package/Sources/SwiftUI/API/Focus.swift +11 -3
  261. package/Sources/SwiftUI/API/Gauge.swift +3 -2
  262. package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
  263. package/Sources/SwiftUI/API/GeometryReader.swift +13 -2
  264. package/Sources/SwiftUI/API/GestureState.swift +65 -0
  265. package/Sources/SwiftUI/API/Gestures.swift +1 -1
  266. package/Sources/SwiftUI/API/Glass.swift +127 -0
  267. package/Sources/SwiftUI/API/Grid.swift +1 -1
  268. package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
  269. package/Sources/SwiftUI/API/KeyPress.swift +54 -0
  270. package/Sources/SwiftUI/API/LabelStyle.swift +13 -6
  271. package/Sources/SwiftUI/API/Layout.swift +67 -12
  272. package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
  273. package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
  274. package/Sources/SwiftUI/API/Lists.swift +61 -6
  275. package/Sources/SwiftUI/API/Menu.swift +8 -1
  276. package/Sources/SwiftUI/API/Modifiers.swift +80 -10
  277. package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
  278. package/Sources/SwiftUI/API/Namespace.swift +44 -0
  279. package/Sources/SwiftUI/API/Navigation.swift +24 -9
  280. package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
  281. package/Sources/SwiftUI/API/ObservableObject.swift +16 -2
  282. package/Sources/SwiftUI/API/Path.swift +543 -0
  283. package/Sources/SwiftUI/API/Phase8Controls.swift +48 -31
  284. package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
  285. package/Sources/SwiftUI/API/Picker.swift +11 -2
  286. package/Sources/SwiftUI/API/PointerAndKeyboard.swift +77 -0
  287. package/Sources/SwiftUI/API/Popover.swift +41 -0
  288. package/Sources/SwiftUI/API/Preferences.swift +262 -0
  289. package/Sources/SwiftUI/API/Presentation.swift +17 -4
  290. package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
  291. package/Sources/SwiftUI/API/Primitives.swift +164 -37
  292. package/Sources/SwiftUI/API/Publishers.swift +4 -4
  293. package/Sources/SwiftUI/API/Redaction.swift +75 -0
  294. package/Sources/SwiftUI/API/RowActions.swift +3 -2
  295. package/Sources/SwiftUI/API/Scenes.swift +131 -0
  296. package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
  297. package/Sources/SwiftUI/API/ScrollTargets.swift +3 -3
  298. package/Sources/SwiftUI/API/ScrollViewReader.swift +144 -0
  299. package/Sources/SwiftUI/API/SectionSupplements.swift +96 -0
  300. package/Sources/SwiftUI/API/Shape.swift +214 -0
  301. package/Sources/SwiftUI/API/ShapeStyle.swift +105 -7
  302. package/Sources/SwiftUI/API/ShapeTrim.swift +78 -0
  303. package/Sources/SwiftUI/API/Sharing.swift +193 -0
  304. package/Sources/SwiftUI/API/StackLayouts.swift +199 -0
  305. package/Sources/SwiftUI/API/State.swift +18 -1
  306. package/Sources/SwiftUI/API/StatusGaps.swift +121 -0
  307. package/Sources/SwiftUI/API/SymbolEffects.swift +203 -0
  308. package/Sources/SwiftUI/API/TabContent.swift +841 -0
  309. package/Sources/SwiftUI/API/Table.swift +382 -0
  310. package/Sources/SwiftUI/API/Tabs.swift +148 -4
  311. package/Sources/SwiftUI/API/Tasks.swift +2 -2
  312. package/Sources/SwiftUI/API/Text.swift +386 -0
  313. package/Sources/SwiftUI/API/TextDates.swift +61 -0
  314. package/Sources/SwiftUI/API/TextDecorations.swift +52 -0
  315. package/Sources/SwiftUI/API/TextFieldAxis.swift +103 -0
  316. package/Sources/SwiftUI/API/TextFieldCommit.swift +52 -0
  317. package/Sources/SwiftUI/API/Toolbar.swift +52 -16
  318. package/Sources/SwiftUI/API/Transfer.swift +145 -0
  319. package/Sources/SwiftUI/API/UnevenRoundedRectangle.swift +66 -0
  320. package/Sources/SwiftUI/API/Video.swift +64 -0
  321. package/Sources/SwiftUI/API/View.swift +10 -2
  322. package/Sources/SwiftUI/API/ViewModifier.swift +4 -1
  323. package/Sources/SwiftUI/API/VisualEffect.swift +74 -1
  324. package/Sources/SwiftUI/API/Windows.swift +25 -0
  325. package/Sources/SwiftUI/Charts/Axis.swift +7 -1
  326. package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
  327. package/Sources/SwiftUI/Charts/Chart.swift +17 -3
  328. package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
  329. package/Sources/SwiftUI/Localization/Localization.swift +498 -0
  330. package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
  331. package/Sources/SwiftUI/Runtime/Executor.swift +2 -0
  332. package/Sources/SwiftUI/Runtime/Exports.swift +37 -1
  333. package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
  334. package/Sources/SwiftUI/Runtime/JSON.swift +76 -4
  335. package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
  336. package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
  337. package/Sources/SwiftUI/Runtime/Ops.swift +58 -12
  338. package/Sources/SwiftUI/Runtime/Reconciler.swift +10 -1
  339. package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
  340. package/Sources/SwiftUI/Runtime/Runtime.swift +977 -198
  341. package/Sources/SwiftUI/Runtime/Sameness.swift +152 -0
  342. package/Sources/SwiftUI/Runtime/ViewPath.swift +89 -0
  343. package/Sources/SwiftUI/Runtime/ViewTraits.swift +175 -0
  344. package/Sources/SwiftUI/Runtime/WebAuthHeadless.swift +49 -0
  345. package/Sources/Symbols/Symbols.swift +25 -0
  346. package/Sources/Translation/Translation.swift +423 -0
  347. package/Sources/UIKit/Activity.swift +213 -0
  348. package/Sources/UIKit/Alerts.swift +69 -0
  349. package/Sources/UIKit/AppDelegate.swift +222 -0
  350. package/Sources/UIKit/Appearance.swift +84 -0
  351. package/Sources/UIKit/ColorConversions.swift +70 -0
  352. package/Sources/UIKit/Controls.swift +225 -0
  353. package/Sources/UIKit/Device.swift +200 -0
  354. package/Sources/UIKit/Feedback.swift +65 -0
  355. package/Sources/UIKit/Font.swift +307 -0
  356. package/Sources/UIKit/Graphics.swift +204 -0
  357. package/Sources/UIKit/HostingController.swift +185 -0
  358. package/Sources/UIKit/Identity.swift +24 -0
  359. package/Sources/UIKit/Introspectable.swift +510 -0
  360. package/Sources/UIKit/Pasteboard.swift +363 -0
  361. package/Sources/UIKit/PhotoAlbum.swift +81 -0
  362. package/Sources/UIKit/RemoteNotifications.swift +15 -0
  363. package/Sources/UIKit/Representable.swift +288 -0
  364. package/Sources/UIKit/SafeArea.swift +12 -0
  365. package/Sources/UIKit/SceneDelegates.swift +132 -0
  366. package/Sources/UIKit/Scenes.swift +40 -0
  367. package/Sources/UIKit/ScrollView.swift +157 -0
  368. package/Sources/UIKit/ShortcutItems.swift +67 -0
  369. package/Sources/UIKit/SymbolConfiguration.swift +124 -0
  370. package/Sources/UIKit/TargetAction.swift +123 -0
  371. package/Sources/UIKit/TextPaste.swift +161 -0
  372. package/Sources/UIKit/TextView.swift +538 -0
  373. package/Sources/UIKit/UIKit.swift +292 -0
  374. package/Sources/UIKit/UIView.swift +855 -0
  375. package/Sources/UIKit/ViewTranslation.swift +311 -0
  376. package/Sources/UniformTypeIdentifiers/UTType.swift +196 -0
  377. package/Sources/UserNotifications/Content.swift +370 -0
  378. package/Sources/UserNotifications/NotificationCenter.swift +309 -0
  379. package/Sources/WeatherKit/WeatherKit.swift +228 -0
  380. package/Sources/WebKit/WebKit.swift +245 -0
  381. package/Sources/os/os.swift +376 -0
  382. package/Sources/zlib/zlib.swift +6 -0
  383. package/index.d.ts +1 -1
  384. package/index.mjs +2 -2
  385. package/manifest.d.mts +2 -0
  386. package/manifest.mjs +39 -0
  387. package/package.json +5 -3
  388. package/sync-sources.mjs +21 -7
  389. package/Sources/FoundationLite/Common.swift +0 -3
  390. package/Sources/FoundationLite/FoundationLite.swift +0 -171
  391. package/Sources/FoundationLite/Interaction.swift +0 -146
  392. package/Sources/FoundationLite/Timer.swift +0 -48
  393. package/Sources/_FoundationCommon/_FoundationCommon.swift +0 -10
@@ -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
+ }