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