@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.
Files changed (400) hide show
  1. package/Package.swift +214 -0
  2. package/README.md +10 -2
  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 +61 -0
  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/FoundationBridge/Bundle.swift +119 -0
  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 +29 -0
  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/Locale.swift +86 -0
  170. package/Sources/FoundationBridge/Localization.swift +149 -0
  171. package/Sources/FoundationBridge/Locks.swift +50 -0
  172. package/Sources/FoundationBridge/Markdown.swift +527 -0
  173. package/Sources/FoundationBridge/MeasurementFormat.swift +95 -0
  174. package/Sources/FoundationBridge/NotificationCenter.swift +154 -0
  175. package/Sources/FoundationBridge/OpenURLHandlers.swift +60 -0
  176. package/Sources/FoundationBridge/Operation.swift +195 -0
  177. package/Sources/FoundationBridge/ProcessInfo.swift +32 -0
  178. package/Sources/FoundationBridge/RelativeDateTimeFormatter.swift +136 -0
  179. package/Sources/FoundationBridge/SceneStorage.swift +78 -0
  180. package/Sources/FoundationBridge/SecurityExports.swift +8 -0
  181. package/Sources/FoundationBridge/Selector.swift +226 -0
  182. package/Sources/FoundationBridge/StringComparators.swift +17 -0
  183. package/Sources/FoundationBridge/Table.swift +211 -0
  184. package/Sources/FoundationBridge/TextAttributes.swift +42 -0
  185. package/Sources/FoundationBridge/Timer.swift +53 -0
  186. package/Sources/FoundationBridge/UITextChecker.swift +30 -0
  187. package/Sources/FoundationBridge/URLSession.swift +718 -0
  188. package/Sources/FoundationBridge/UserDefaults.swift +183 -0
  189. package/Sources/FoundationBridge/WebAuthRedirects.swift +227 -0
  190. package/Sources/FoundationBridge/WebSocket.swift +187 -0
  191. package/Sources/FoundationModels/FoundationModels.swift +1098 -0
  192. package/Sources/ImageIO/GIF.swift +72 -0
  193. package/Sources/ImageIO/ImageIO.swift +248 -0
  194. package/Sources/ImageIO/ImageTypes.swift +28 -0
  195. package/Sources/LinkPresentation/LinkPresentation.swift +249 -0
  196. package/Sources/LocalAuthentication/LAContext.swift +86 -0
  197. package/Sources/MapKit/Geometry.swift +223 -0
  198. package/Sources/MapKit/Map.swift +638 -0
  199. package/Sources/MapKit/MapView.swift +229 -0
  200. package/Sources/MobileCoreServices/MobileCoreServices.swift +28 -0
  201. package/Sources/NaturalLanguage/LanguageIdentifier.swift +317 -0
  202. package/Sources/NaturalLanguage/NaturalLanguage.swift +135 -0
  203. package/Sources/OSLog/OSLog.swift +6 -0
  204. package/Sources/Photos/Photos.swift +572 -0
  205. package/Sources/PhotosUI/PhotosPicker.swift +248 -0
  206. package/Sources/PhotosUI/PhotosPickerItem.swift +261 -0
  207. package/Sources/QuickLook/QuickLook.swift +168 -0
  208. package/Sources/SafariServices/SafariServices.swift +106 -0
  209. package/Sources/Security/Security.swift +332 -0
  210. package/Sources/StoreKit/AppStore.swift +207 -0
  211. package/Sources/StoreKit/Products.swift +280 -0
  212. package/Sources/StoreKit/RequestReview.swift +28 -0
  213. package/Sources/StoreKit/StoreKit1.swift +486 -0
  214. package/Sources/StoreKit/StoreViews.swift +428 -0
  215. package/Sources/StoreKit/Transactions.swift +197 -0
  216. package/Sources/SwiftData/Macros.swift +58 -0
  217. package/Sources/SwiftData/ModelActor.swift +38 -0
  218. package/Sources/SwiftData/ModelContainer.swift +129 -0
  219. package/Sources/SwiftData/ModelContext.swift +451 -0
  220. package/Sources/SwiftData/PersistentModel.swift +238 -0
  221. package/Sources/SwiftData/Properties.swift +261 -0
  222. package/Sources/SwiftData/Query.swift +256 -0
  223. package/Sources/SwiftData/Schema.swift +192 -0
  224. package/Sources/SwiftData/Store.swift +146 -0
  225. package/Sources/SwiftData/StringPredicates.swift +125 -0
  226. package/Sources/SwiftDataMacros/EntryMacro.swift +82 -0
  227. package/Sources/SwiftDataMacros/GenerableMacro.swift +183 -0
  228. package/Sources/SwiftDataMacros/ModelActorMacro.swift +46 -0
  229. package/Sources/SwiftDataMacros/ModelMacro.swift +260 -0
  230. package/Sources/SwiftDataMacros/Plugin.swift +18 -0
  231. package/Sources/SwiftDataMacros/PredicateMacro.swift +1244 -0
  232. package/Sources/SwiftUI/API/Accessibility.swift +181 -0
  233. package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
  234. package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
  235. package/Sources/SwiftUI/API/Alert.swift +221 -0
  236. package/Sources/SwiftUI/API/AlignmentGuides.swift +65 -0
  237. package/Sources/SwiftUI/API/Animation.swift +285 -0
  238. package/Sources/SwiftUI/API/App.swift +87 -0
  239. package/Sources/SwiftUI/API/BindingCollections.swift +35 -0
  240. package/Sources/SwiftUI/API/BindingForEach.swift +27 -0
  241. package/Sources/SwiftUI/API/Bitmaps.swift +254 -0
  242. package/Sources/SwiftUI/API/ButtonStyles.swift +96 -0
  243. package/Sources/SwiftUI/API/Canvas.swift +337 -0
  244. package/Sources/SwiftUI/API/Color.swift +237 -0
  245. package/Sources/SwiftUI/API/ColorEffects.swift +52 -0
  246. package/Sources/SwiftUI/API/ColorPickerAndLabeledContent.swift +138 -0
  247. package/Sources/SwiftUI/API/ColorSpaces.swift +161 -0
  248. package/Sources/SwiftUI/API/Commands.swift +106 -0
  249. package/Sources/SwiftUI/API/ContainerBackground.swift +28 -0
  250. package/Sources/SwiftUI/API/ContentShape.swift +33 -0
  251. package/Sources/SwiftUI/API/ContentSizeCategory.swift +35 -0
  252. package/Sources/SwiftUI/API/ContentUnavailable.swift +101 -0
  253. package/Sources/SwiftUI/API/Controls.swift +300 -0
  254. package/Sources/SwiftUI/API/CustomLayout.swift +442 -0
  255. package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
  256. package/Sources/SwiftUI/API/Decorations.swift +92 -0
  257. package/Sources/SwiftUI/API/EditMode.swift +212 -0
  258. package/Sources/SwiftUI/API/Effects.swift +388 -0
  259. package/Sources/SwiftUI/API/Entry.swift +8 -0
  260. package/Sources/SwiftUI/API/Environment.swift +439 -0
  261. package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
  262. package/Sources/SwiftUI/API/Focus.swift +137 -0
  263. package/Sources/SwiftUI/API/Font.swift +131 -0
  264. package/Sources/SwiftUI/API/Gauge.swift +290 -0
  265. package/Sources/SwiftUI/API/Geometry.swift +89 -0
  266. package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
  267. package/Sources/SwiftUI/API/GeometryReader.swift +135 -0
  268. package/Sources/SwiftUI/API/GestureState.swift +65 -0
  269. package/Sources/SwiftUI/API/Gestures.swift +342 -0
  270. package/Sources/SwiftUI/API/Glass.swift +127 -0
  271. package/Sources/SwiftUI/API/Grid.swift +188 -0
  272. package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
  273. package/Sources/SwiftUI/API/KeyPress.swift +54 -0
  274. package/Sources/SwiftUI/API/LabelStyle.swift +124 -0
  275. package/Sources/SwiftUI/API/Layout.swift +220 -0
  276. package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
  277. package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
  278. package/Sources/SwiftUI/API/Lists.swift +331 -0
  279. package/Sources/SwiftUI/API/Menu.swift +58 -0
  280. package/Sources/SwiftUI/API/Modifiers.swift +313 -0
  281. package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
  282. package/Sources/SwiftUI/API/Namespace.swift +44 -0
  283. package/Sources/SwiftUI/API/Navigation.swift +386 -0
  284. package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
  285. package/Sources/SwiftUI/API/ObservableObject.swift +293 -0
  286. package/Sources/SwiftUI/API/OnChange.swift +48 -0
  287. package/Sources/SwiftUI/API/Path.swift +543 -0
  288. package/Sources/SwiftUI/API/Phase8Controls.swift +411 -0
  289. package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
  290. package/Sources/SwiftUI/API/Picker.swift +185 -0
  291. package/Sources/SwiftUI/API/PointerAndKeyboard.swift +77 -0
  292. package/Sources/SwiftUI/API/Popover.swift +41 -0
  293. package/Sources/SwiftUI/API/Preferences.swift +262 -0
  294. package/Sources/SwiftUI/API/Presentation.swift +122 -0
  295. package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
  296. package/Sources/SwiftUI/API/Primitives.swift +517 -0
  297. package/Sources/SwiftUI/API/Publishers.swift +107 -0
  298. package/Sources/SwiftUI/API/Redaction.swift +75 -0
  299. package/Sources/SwiftUI/API/RowActions.swift +84 -0
  300. package/Sources/SwiftUI/API/Scenes.swift +131 -0
  301. package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
  302. package/Sources/SwiftUI/API/ScrollTargets.swift +104 -0
  303. package/Sources/SwiftUI/API/ScrollViewReader.swift +144 -0
  304. package/Sources/SwiftUI/API/SectionSupplements.swift +96 -0
  305. package/Sources/SwiftUI/API/Shape.swift +214 -0
  306. package/Sources/SwiftUI/API/ShapeStyle.swift +409 -0
  307. package/Sources/SwiftUI/API/ShapeTrim.swift +78 -0
  308. package/Sources/SwiftUI/API/Sharing.swift +193 -0
  309. package/Sources/SwiftUI/API/StackLayouts.swift +199 -0
  310. package/Sources/SwiftUI/API/State.swift +144 -0
  311. package/Sources/SwiftUI/API/StatusGaps.swift +121 -0
  312. package/Sources/SwiftUI/API/StrokeStyle.swift +30 -0
  313. package/Sources/SwiftUI/API/SymbolEffects.swift +203 -0
  314. package/Sources/SwiftUI/API/TabContent.swift +841 -0
  315. package/Sources/SwiftUI/API/Table.swift +382 -0
  316. package/Sources/SwiftUI/API/Tabs.swift +263 -0
  317. package/Sources/SwiftUI/API/Tasks.swift +35 -0
  318. package/Sources/SwiftUI/API/Text.swift +386 -0
  319. package/Sources/SwiftUI/API/TextDates.swift +61 -0
  320. package/Sources/SwiftUI/API/TextDecorations.swift +52 -0
  321. package/Sources/SwiftUI/API/TextFieldAxis.swift +103 -0
  322. package/Sources/SwiftUI/API/TextFieldCommit.swift +52 -0
  323. package/Sources/SwiftUI/API/Timeline.swift +212 -0
  324. package/Sources/SwiftUI/API/Toolbar.swift +251 -0
  325. package/Sources/SwiftUI/API/Transfer.swift +145 -0
  326. package/Sources/SwiftUI/API/UnevenRoundedRectangle.swift +66 -0
  327. package/Sources/SwiftUI/API/Video.swift +64 -0
  328. package/Sources/SwiftUI/API/View.swift +215 -0
  329. package/Sources/SwiftUI/API/ViewModifier.swift +43 -0
  330. package/Sources/SwiftUI/API/VisualEffect.swift +155 -0
  331. package/Sources/SwiftUI/API/Windows.swift +25 -0
  332. package/Sources/SwiftUI/Charts/Axis.swift +325 -0
  333. package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
  334. package/Sources/SwiftUI/Charts/Chart.swift +660 -0
  335. package/Sources/SwiftUI/Charts/ChartContent.swift +376 -0
  336. package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
  337. package/Sources/SwiftUI/Charts/Marks.swift +204 -0
  338. package/Sources/SwiftUI/Charts/Plottable.swift +99 -0
  339. package/Sources/SwiftUI/Charts/Scales.swift +326 -0
  340. package/Sources/SwiftUI/Localization/Localization.swift +498 -0
  341. package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
  342. package/Sources/SwiftUI/Runtime/Executor.swift +85 -0
  343. package/Sources/SwiftUI/Runtime/Exports.swift +101 -0
  344. package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
  345. package/Sources/SwiftUI/Runtime/JSON.swift +143 -0
  346. package/Sources/SwiftUI/Runtime/JSONParser.swift +443 -0
  347. package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
  348. package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
  349. package/Sources/SwiftUI/Runtime/Ops.swift +152 -0
  350. package/Sources/SwiftUI/Runtime/Reconciler.swift +219 -0
  351. package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
  352. package/Sources/SwiftUI/Runtime/Runtime.swift +2146 -0
  353. package/Sources/SwiftUI/Runtime/Sameness.swift +152 -0
  354. package/Sources/SwiftUI/Runtime/ViewPath.swift +89 -0
  355. package/Sources/SwiftUI/Runtime/ViewTraits.swift +175 -0
  356. package/Sources/SwiftUI/Runtime/WebAuthHeadless.swift +49 -0
  357. package/Sources/Symbols/Symbols.swift +25 -0
  358. package/Sources/Translation/Translation.swift +423 -0
  359. package/Sources/UIKit/Activity.swift +213 -0
  360. package/Sources/UIKit/Alerts.swift +69 -0
  361. package/Sources/UIKit/AppDelegate.swift +222 -0
  362. package/Sources/UIKit/Appearance.swift +84 -0
  363. package/Sources/UIKit/ColorConversions.swift +70 -0
  364. package/Sources/UIKit/Controls.swift +225 -0
  365. package/Sources/UIKit/Device.swift +200 -0
  366. package/Sources/UIKit/Feedback.swift +65 -0
  367. package/Sources/UIKit/Font.swift +307 -0
  368. package/Sources/UIKit/Graphics.swift +204 -0
  369. package/Sources/UIKit/HostingController.swift +185 -0
  370. package/Sources/UIKit/Identity.swift +24 -0
  371. package/Sources/UIKit/Introspectable.swift +510 -0
  372. package/Sources/UIKit/Pasteboard.swift +363 -0
  373. package/Sources/UIKit/PhotoAlbum.swift +81 -0
  374. package/Sources/UIKit/RemoteNotifications.swift +15 -0
  375. package/Sources/UIKit/Representable.swift +288 -0
  376. package/Sources/UIKit/SafeArea.swift +12 -0
  377. package/Sources/UIKit/SceneDelegates.swift +132 -0
  378. package/Sources/UIKit/Scenes.swift +40 -0
  379. package/Sources/UIKit/ScrollView.swift +157 -0
  380. package/Sources/UIKit/ShortcutItems.swift +67 -0
  381. package/Sources/UIKit/SymbolConfiguration.swift +124 -0
  382. package/Sources/UIKit/TargetAction.swift +123 -0
  383. package/Sources/UIKit/TextPaste.swift +161 -0
  384. package/Sources/UIKit/TextView.swift +538 -0
  385. package/Sources/UIKit/UIKit.swift +292 -0
  386. package/Sources/UIKit/UIView.swift +855 -0
  387. package/Sources/UIKit/ViewTranslation.swift +311 -0
  388. package/Sources/UniformTypeIdentifiers/UTType.swift +196 -0
  389. package/Sources/UserNotifications/Content.swift +370 -0
  390. package/Sources/UserNotifications/NotificationCenter.swift +309 -0
  391. package/Sources/WeatherKit/WeatherKit.swift +228 -0
  392. package/Sources/WebKit/WebKit.swift +245 -0
  393. package/Sources/os/os.swift +376 -0
  394. package/Sources/zlib/zlib.swift +6 -0
  395. package/index.d.ts +2 -0
  396. package/index.mjs +16 -0
  397. package/manifest.d.mts +2 -0
  398. package/manifest.mjs +39 -0
  399. package/package.json +30 -4
  400. package/sync-sources.mjs +33 -0
@@ -0,0 +1,152 @@
1
+ /// One instruction for a renderer. See docs/ops-protocol.md.
2
+ public enum _Op: Equatable, Sendable {
3
+ case create(id: Int, kind: String, props: _JSON)
4
+ case update(id: Int, props: _JSON)
5
+ case insert(parent: Int, id: Int, index: Int)
6
+ case remove(id: Int)
7
+ /// End of a render pass, optionally animated (`withAnimation`).
8
+ case commit(animation: _JSON? = nil)
9
+ /// Headless mode only: echoes a replayed event (an object with at least
10
+ /// `type`) before its ops.
11
+ case event(_JSON)
12
+ /// The app's `UserDefaults`, whole, after a change; the host stores them
13
+ /// and hands them back at the next launch (`SB_DEFAULTS`).
14
+ case defaults(_JSON)
15
+ /// Phase 13: something only the host can do (`fetch`, an `image` probe);
16
+ /// the host answers with a `response` event carrying the same id.
17
+ case request(id: Int, kind: String, params: _JSON)
18
+ /// Phase 18: one saved batch of a SwiftData store (an object with `store`,
19
+ /// `put` and `delete`); the host writes it to IndexedDB and hands the
20
+ /// store back at the next launch (`SB_SWIFTDATA`).
21
+ case swiftData(_JSON)
22
+ /// A bitmap's source (an image file, or a generator's pixels) under its
23
+ /// content key, sent once before the first element that draws it; the
24
+ /// host keeps it for the run (docs/ops-protocol.md, "Bitmaps and Core Image").
25
+ case imageData(_JSON)
26
+
27
+ public var json: _JSON {
28
+ switch self {
29
+ case .create(let id, let kind, let props):
30
+ return .object(["op": .string("create"), "id": .number(Double(id)), "kind": .string(kind), "props": props])
31
+ case .update(let id, let props):
32
+ return .object(["op": .string("update"), "id": .number(Double(id)), "props": props])
33
+ case .insert(let parent, let id, let index):
34
+ return .object(["op": .string("insert"), "parent": .number(Double(parent)),
35
+ "id": .number(Double(id)), "index": .number(Double(index))])
36
+ case .remove(let id):
37
+ return .object(["op": .string("remove"), "id": .number(Double(id))])
38
+ case .commit(let animation):
39
+ if let animation { return .object(["op": .string("commit"), "animation": animation]) }
40
+ return .object(["op": .string("commit")])
41
+ case .event(let event):
42
+ if case .object(var fields) = event {
43
+ fields["op"] = .string("event")
44
+ return .object(fields)
45
+ }
46
+ return .object(["op": .string("event")])
47
+ case .defaults(let values):
48
+ return .object(["op": .string("defaults"), "values": values])
49
+ case .request(let id, let kind, let params):
50
+ return .object(["op": .string("request"), "id": .number(Double(id)), "kind": .string(kind), "params": params])
51
+ case .swiftData(let change):
52
+ if case .object(var fields) = change {
53
+ fields["op"] = .string("swiftdata")
54
+ return .object(fields)
55
+ }
56
+ return .object(["op": .string("swiftdata")])
57
+ case .imageData(let source):
58
+ if case .object(var fields) = source {
59
+ fields["op"] = .string("imagedata")
60
+ return .object(fields)
61
+ }
62
+ return .object(["op": .string("imagedata")])
63
+ }
64
+ }
65
+ }
66
+
67
+ /// Where ops go. The browser build buffers them for JavaScript; headless mode
68
+ /// prints them; tests record them.
69
+ @MainActor
70
+ public protocol _RenderHost: AnyObject {
71
+ func apply(_ ops: [_Op])
72
+ }
73
+
74
+ /// Prints one op per line (JSON Lines).
75
+ @MainActor
76
+ final class _HeadlessHost: _RenderHost {
77
+ func apply(_ ops: [_Op]) {
78
+ for op in ops { print(op.json.serialized) }
79
+ }
80
+ }
81
+
82
+ /// Keeps pending ops serialized as a JSON array in a heap buffer that the
83
+ /// browser reads out of linear memory via the `sb_ops_*` exports, and their
84
+ /// `.bytes` values beside it (`sb_bytes_*`) once the page has asked for them
85
+ /// (else as base64). The ops are serialized when the page reads them, once
86
+ /// per batch, not on every `apply`.
87
+ @MainActor
88
+ final class _BufferedHost: _RenderHost {
89
+ static let shared = _BufferedHost()
90
+
91
+ private(set) var pending: [_Op] = []
92
+ private var buffer: UnsafeMutableBufferPointer<UInt8> = .allocate(capacity: 2)
93
+ private let outbox = _BytesOutbox()
94
+ private var stale = true
95
+ /// The page reads `.bytes` beside the JSON: it called `sb_bytes_count`.
96
+ private var bytesBeside = false
97
+
98
+ func apply(_ ops: [_Op]) {
99
+ pending.append(contentsOf: ops)
100
+ stale = true
101
+ }
102
+
103
+ func clear() {
104
+ pending.removeAll()
105
+ stale = true
106
+ }
107
+
108
+ var pointer: Int32 { serialize(); return Int32(Int(bitPattern: buffer.baseAddress)) }
109
+ var length: Int32 { serialize(); return Int32(buffer.count) }
110
+
111
+ /// The buffer's text (tests: `pointer` is a wasm32 address).
112
+ var text: String { serialize(); return String(decoding: buffer, as: UTF8.self) }
113
+
114
+ /// The `.bytes` values of the pending ops, by the `n` of their `{"$bytes": n}`.
115
+ /// The first read opts the page in: from then on the ops name them as `{"$bytes": n}`.
116
+ var bytes: [UnsafeMutableBufferPointer<UInt8>] {
117
+ if !bytesBeside {
118
+ bytesBeside = true
119
+ stale = true
120
+ }
121
+ serialize()
122
+ return outbox.items
123
+ }
124
+
125
+ private func serialize() {
126
+ guard stale else { return }
127
+ stale = false
128
+ outbox.removeAll()
129
+ let json = _JSON.array(pending.map(\.json))
130
+ let bytes = Array((bytesBeside ? json.serialized(outbox: outbox) : json.serialized).utf8)
131
+ buffer.deallocate()
132
+ buffer = .allocate(capacity: bytes.count)
133
+ _ = buffer.initialize(from: bytes)
134
+ }
135
+ }
136
+
137
+ /// Holds the serialized state snapshot for the `sb_state_*` exports.
138
+ @MainActor
139
+ final class _StateBuffer {
140
+ static let shared = _StateBuffer()
141
+ private var buffer: UnsafeMutableBufferPointer<UInt8> = .allocate(capacity: 0)
142
+
143
+ func refresh(with json: _JSON) {
144
+ let bytes = Array(json.serialized.utf8)
145
+ buffer.deallocate()
146
+ buffer = .allocate(capacity: bytes.count)
147
+ _ = buffer.initialize(from: bytes)
148
+ }
149
+
150
+ var pointer: Int32 { Int32(Int(bitPattern: buffer.baseAddress)) }
151
+ var length: Int32 { Int32(buffer.count) }
152
+ }
@@ -0,0 +1,219 @@
1
+ /// A node of the element tree produced from the mounted view tree each pass.
2
+ struct _Element {
3
+ var kind: String
4
+ var props: _JSON
5
+ var children: [_Element]
6
+ var handler: ((_JSON) -> Void)?
7
+ /// Identity for keyed children (`ForEach`); unkeyed elements match by position.
8
+ var key: AnyHashable?
9
+ /// What makes this element a selectable or deletable `List` row (Phase 8).
10
+ var row: _RowMark?
11
+ /// `accessibilityLabel` / `accessibilityIdentifier`, for event scripts only.
12
+ var accessibility: _AccessibilityMark?
13
+ /// `.layoutValue(key:value:)` above this element, by key type: what a
14
+ /// custom layout's subview reads (CustomLayout.swift).
15
+ var layoutValues: [ObjectIdentifier: Any]?
16
+ /// Identity of this element value: a fresh token per produced element,
17
+ /// kept by copies. Two elements with one token are the same subtree (a
18
+ /// clean node's cached output), which the reconciler skips whole.
19
+ var token: Int = _Element.nextToken()
20
+
21
+ nonisolated(unsafe) private static var tokenCounter = 0
22
+ static func nextToken() -> Int {
23
+ tokenCounter += 1
24
+ return tokenCounter
25
+ }
26
+ }
27
+
28
+ /// Row metadata the runtime attaches while producing elements and consumes
29
+ /// when it emits a `list`: a `.tag` (or a `ForEach` id, the implicit tag), a
30
+ /// `NavigationLink(value:)`'s value and handler, and the `onDelete` of the
31
+ /// row's `ForEach`.
32
+ struct _RowMark {
33
+ var tag: AnyHashable?
34
+ var linkValue: AnyHashable?
35
+ var linkHandler: ((_JSON) -> Void)?
36
+ var delete: (() -> Void)?
37
+ var deleteDisabled = false
38
+
39
+ var isEmpty: Bool { tag == nil && linkValue == nil && delete == nil && !deleteDisabled }
40
+
41
+ /// Fills what `self` lacks from an inner element's mark.
42
+ func merged(with inner: _RowMark) -> _RowMark {
43
+ var result = self
44
+ if result.tag == nil { result.tag = inner.tag }
45
+ if result.linkValue == nil {
46
+ result.linkValue = inner.linkValue
47
+ result.linkHandler = inner.linkHandler
48
+ }
49
+ if result.delete == nil { result.delete = inner.delete }
50
+ result.deleteDisabled = result.deleteDisabled || inner.deleteDisabled
51
+ return result
52
+ }
53
+ }
54
+
55
+ /// Diffs successive element trees and emits ops. Ids are assigned by position
56
+ /// (or key) and kind: an element that keeps both keeps its id across passes.
57
+ @MainActor
58
+ final class _Reconciler {
59
+ struct Rendered {
60
+ var id: Int
61
+ var kind: String
62
+ var props: _JSON
63
+ var children: [Rendered]
64
+ var key: AnyHashable?
65
+ /// The token of the element this was rendered from.
66
+ var token: Int
67
+ /// Not sent to the host; headless event scripts match it.
68
+ var accessibility: _AccessibilityMark?
69
+ }
70
+
71
+ private(set) var roots: [Rendered] = []
72
+ private var nextId = 1
73
+ private(set) var handlers: [Int: (_JSON) -> Void] = [:]
74
+
75
+ func update(with elements: [_Element], animation: _JSON? = nil) -> [_Op] {
76
+ var ops: [_Op] = []
77
+ roots = diff(parent: 0, old: roots, new: elements, ops: &ops)
78
+ ops.append(.commit(animation: animation))
79
+ return ops
80
+ }
81
+
82
+ private func diff(parent: Int, old: [Rendered], new: [_Element], ops: inout [_Op]) -> [Rendered] {
83
+ let keyed = new.contains { $0.key != nil } || old.contains { $0.key != nil }
84
+ return keyed
85
+ ? diffKeyed(parent: parent, old: old, new: new, ops: &ops)
86
+ : diffPositional(parent: parent, old: old, new: new, ops: &ops)
87
+ }
88
+
89
+ private func diffPositional(parent: Int, old: [Rendered], new: [_Element], ops: inout [_Op]) -> [Rendered] {
90
+ var result: [Rendered] = []
91
+ result.reserveCapacity(new.count)
92
+
93
+ for (index, element) in new.enumerated() {
94
+ if index < old.count, old[index].kind == element.kind {
95
+ result.append(reuse(old[index], for: element, ops: &ops))
96
+ } else {
97
+ if index < old.count { destroy(old[index], ops: &ops) }
98
+ result.append(create(element, parent: parent, index: index, ops: &ops))
99
+ }
100
+ }
101
+
102
+ for stale in old.dropFirst(new.count) {
103
+ destroy(stale, ops: &ops)
104
+ }
105
+ return result
106
+ }
107
+
108
+ /// Keyed children: match by key, move what survives, create the rest.
109
+ /// Unkeyed children in a keyed list are matched by their position.
110
+ private func diffKeyed(parent: Int, old: [Rendered], new: [_Element], ops: inout [_Op]) -> [Rendered] {
111
+ func identity(_ key: AnyHashable?, _ index: Int) -> AnyHashable {
112
+ key ?? AnyHashable(_PositionKey(index: index))
113
+ }
114
+
115
+ var oldByIdentity: [AnyHashable: Rendered] = [:]
116
+ for (index, rendered) in old.enumerated() {
117
+ oldByIdentity[identity(rendered.key, index)] = rendered
118
+ }
119
+ let newIdentities = new.enumerated().map { identity($1.key, $0) }
120
+ let kept = Set(newIdentities.enumerated().compactMap { index, id in
121
+ oldByIdentity[id].map { $0.kind == new[index].kind ? id : nil } ?? nil
122
+ })
123
+
124
+ // 1. Remove everything that does not survive, so the parent's children
125
+ // are exactly the kept old elements in their old order.
126
+ var pending: [AnyHashable] = []
127
+ for (index, rendered) in old.enumerated() {
128
+ let id = identity(rendered.key, index)
129
+ if kept.contains(id) { pending.append(id) } else { destroy(rendered, ops: &ops) }
130
+ }
131
+
132
+ // 2. Walk the new order; anything not already at the front is moved there.
133
+ var result: [Rendered] = []
134
+ result.reserveCapacity(new.count)
135
+ for (index, element) in new.enumerated() {
136
+ let id = newIdentities[index]
137
+ if kept.contains(id), let previous = oldByIdentity[id] {
138
+ if pending.first == id {
139
+ pending.removeFirst()
140
+ } else {
141
+ pending.removeAll { $0 == id }
142
+ ops.append(.insert(parent: parent, id: previous.id, index: index))
143
+ }
144
+ var rendered = reuse(previous, for: element, ops: &ops)
145
+ rendered.key = element.key
146
+ result.append(rendered)
147
+ } else {
148
+ var rendered = create(element, parent: parent, index: index, ops: &ops)
149
+ rendered.key = element.key
150
+ result.append(rendered)
151
+ }
152
+ }
153
+ return result
154
+ }
155
+
156
+ private func reuse(_ previous: Rendered, for element: _Element, ops: inout [_Op]) -> Rendered {
157
+ // The same element value as last pass (a clean subtree's cached
158
+ // output): nothing below it changed, and its handlers are registered.
159
+ if previous.token == element.token { return previous }
160
+ var rendered = previous
161
+ rendered.token = element.token
162
+ rendered.accessibility = element.accessibility
163
+ if rendered.props != element.props {
164
+ ops.append(.update(id: rendered.id, props: element.props))
165
+ rendered.props = element.props
166
+ }
167
+ setHandler(element.handler, for: rendered.id)
168
+ rendered.children = diff(parent: rendered.id, old: rendered.children, new: element.children, ops: &ops)
169
+ return rendered
170
+ }
171
+
172
+ private func create(_ element: _Element, parent: Int, index: Int, ops: inout [_Op]) -> Rendered {
173
+ let id = nextId
174
+ nextId += 1
175
+ ops.append(.create(id: id, kind: element.kind, props: element.props))
176
+ ops.append(.insert(parent: parent, id: id, index: index))
177
+ setHandler(element.handler, for: id)
178
+ let children = element.children.enumerated().map { childIndex, child in
179
+ create(child, parent: id, index: childIndex, ops: &ops)
180
+ }
181
+ return Rendered(id: id, kind: element.kind, props: element.props, children: children, key: element.key,
182
+ token: element.token, accessibility: element.accessibility)
183
+ }
184
+
185
+ private func destroy(_ rendered: Rendered, ops: inout [_Op]) {
186
+ ops.append(.remove(id: rendered.id))
187
+ forget(rendered)
188
+ }
189
+
190
+ private func forget(_ rendered: Rendered) {
191
+ handlers[rendered.id] = nil
192
+ for child in rendered.children { forget(child) }
193
+ }
194
+
195
+ private func setHandler(_ handler: ((_JSON) -> Void)?, for id: Int) {
196
+ if let handler {
197
+ handlers[id] = handler
198
+ } else {
199
+ handlers[id] = nil
200
+ }
201
+ }
202
+ }
203
+
204
+ private struct _PositionKey: Hashable {
205
+ let index: Int
206
+ }
207
+
208
+ /// Key given to the elements a keyed mounted node produces.
209
+ struct _ElementKey: Hashable {
210
+ let base: AnyHashable
211
+ let index: Int
212
+ }
213
+
214
+ /// `_ElementKey` qualified by the keyed group's position among its siblings,
215
+ /// so two `ForEach`es in one container never share a key.
216
+ struct _GroupKey: Hashable {
217
+ let position: Int
218
+ let key: AnyHashable
219
+ }