@swiftbrowser/swift 0.1.0 → 0.3.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 +68 -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 +125 -10
  257. package/Sources/SwiftUI/API/Entry.swift +8 -0
  258. package/Sources/SwiftUI/API/Environment.swift +100 -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 +26 -10
  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 +71 -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 +88 -12
  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 +14 -4
  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 +168 -39
  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 +86 -0
  300. package/Sources/SwiftUI/API/Shape.swift +214 -0
  301. package/Sources/SwiftUI/API/ShapeStyle.swift +187 -8
  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 +46 -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 +524 -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 +41 -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,187 @@
1
+ //
2
+ // Publishers.MeasureInterval.swift
3
+ //
4
+ //
5
+ // Created by Sergej Jaskiewicz on 03.12.2019.
6
+ //
7
+
8
+ extension Publisher {
9
+
10
+ /// Measures and emits the time interval between events received from an upstream
11
+ /// publisher.
12
+ ///
13
+ /// Use `measureInterval(using:options:)` to measure the time between events delivered
14
+ /// from an upstream publisher.
15
+ ///
16
+ /// In the example below, a 1-second `Timer` is used as the data source for an event
17
+ /// publisher; the `measureInterval(using:options:)` operator reports the elapsed time
18
+ /// between the reception of events on the main run loop:
19
+ ///
20
+ /// cancellable = Timer.publish(every: 1, on: .main, in: .default)
21
+ /// .autoconnect()
22
+ /// .measureInterval(using: RunLoop.main)
23
+ /// .sink { print("\($0)", terminator: "\n") }
24
+ ///
25
+ /// // Prints:
26
+ /// // Stride(magnitude: 1.0013610124588013)
27
+ /// // Stride(magnitude: 0.9992760419845581)
28
+ ///
29
+ /// The output type of the returned publisher is the time interval of the provided
30
+ /// scheduler.
31
+ ///
32
+ /// This operator uses the provided scheduler’s `now` property to measure intervals
33
+ /// between events.
34
+ ///
35
+ /// - Parameters:
36
+ /// - scheduler: A scheduler to use for tracking the timing of events.
37
+ /// - options: Options that customize the delivery of elements.
38
+ /// - Returns: A publisher that emits elements representing the time interval between
39
+ /// the elements it receives.
40
+ public func measureInterval<Context: Scheduler>(
41
+ using scheduler: Context,
42
+ options: Context.SchedulerOptions? = nil
43
+ ) -> Publishers.MeasureInterval<Self, Context> {
44
+ return .init(upstream: self, scheduler: scheduler)
45
+ }
46
+ }
47
+
48
+ extension Publishers {
49
+
50
+ /// A publisher that measures and emits the time interval between events received from
51
+ /// an upstream publisher.
52
+ public struct MeasureInterval<Upstream: Publisher, Context: Scheduler>: Publisher {
53
+
54
+ public typealias Output = Context.SchedulerTimeType.Stride
55
+
56
+ public typealias Failure = Upstream.Failure
57
+
58
+ /// The publisher from which this publisher receives elements.
59
+ public let upstream: Upstream
60
+
61
+ /// The scheduler used for tracking the timing of events.
62
+ public let scheduler: Context
63
+
64
+ /// Creates a publisher that measures and emits the time interval between events
65
+ /// received from an upstream publisher.
66
+ ///
67
+ /// - Parameters:
68
+ /// - upstream: The publisher from which this publisher receives elements.
69
+ /// - scheduler: A scheduler to use for tracking the timing of events.
70
+ public init(upstream: Upstream, scheduler: Context) {
71
+ self.upstream = upstream
72
+ self.scheduler = scheduler
73
+ }
74
+
75
+ public func receive<Downstream: Subscriber>(subscriber: Downstream)
76
+ where Upstream.Failure == Downstream.Failure,
77
+ Downstream.Input == Context.SchedulerTimeType.Stride
78
+ {
79
+ upstream.subscribe(Inner(scheduler: scheduler, downstream: subscriber))
80
+ }
81
+ }
82
+ }
83
+
84
+ extension Publishers.MeasureInterval {
85
+ private final class Inner<Downstream: Subscriber>
86
+ : Subscriber,
87
+ Subscription,
88
+ CustomStringConvertible,
89
+ CustomReflectable,
90
+ CustomPlaygroundDisplayConvertible
91
+ where Downstream.Input == Context.SchedulerTimeType.Stride,
92
+ Downstream.Failure == Upstream.Failure
93
+ {
94
+ typealias Input = Upstream.Output
95
+ typealias Failure = Upstream.Failure
96
+
97
+ private let lock = UnfairLock.allocate()
98
+
99
+ private let downstream: Downstream
100
+
101
+ private let scheduler: Context
102
+
103
+ private var state = SubscriptionStatus.awaitingSubscription
104
+
105
+ private var last: Context.SchedulerTimeType?
106
+
107
+ init(scheduler: Context, downstream: Downstream) {
108
+ self.downstream = downstream
109
+ self.scheduler = scheduler
110
+ }
111
+
112
+ deinit {
113
+ lock.deallocate()
114
+ }
115
+
116
+ func receive(subscription: Subscription) {
117
+ lock.lock()
118
+ guard case .awaitingSubscription = state else {
119
+ lock.unlock()
120
+ subscription.cancel()
121
+ return
122
+ }
123
+ state = .subscribed(subscription)
124
+ last = scheduler.now
125
+ lock.unlock()
126
+ downstream.receive(subscription: self)
127
+ }
128
+
129
+ func receive(_: Input) -> Subscribers.Demand {
130
+ lock.lock()
131
+ guard case let .subscribed(subscription) = state,
132
+ let previousTime = last else
133
+ {
134
+ lock.unlock()
135
+ return .none
136
+ }
137
+ let now = scheduler.now
138
+ last = now
139
+ lock.unlock()
140
+ let newDemand = downstream.receive(previousTime.distance(to: now))
141
+ if newDemand > 0 {
142
+ subscription.request(newDemand)
143
+ }
144
+ return .none
145
+ }
146
+
147
+ func receive(completion: Subscribers.Completion<Failure>) {
148
+ lock.lock()
149
+ guard case .subscribed = state else {
150
+ lock.unlock()
151
+ return
152
+ }
153
+ state = .terminal
154
+ last = nil
155
+ lock.unlock()
156
+ downstream.receive(completion: completion)
157
+ }
158
+
159
+ func request(_ demand: Subscribers.Demand) {
160
+ lock.lock()
161
+ guard case let .subscribed(subscription) = state else {
162
+ lock.unlock()
163
+ return
164
+ }
165
+ lock.unlock()
166
+ subscription.request(demand)
167
+ }
168
+
169
+ func cancel() {
170
+ lock.lock()
171
+ guard case let .subscribed(subscription) = state else {
172
+ lock.unlock()
173
+ return
174
+ }
175
+ state = .terminal
176
+ last = nil
177
+ lock.unlock()
178
+ subscription.cancel()
179
+ }
180
+
181
+ var description: String { return "MeasureInterval" }
182
+
183
+ var customMirror: Mirror { return Mirror(self, children: EmptyCollection()) }
184
+
185
+ var playgroundDescription: Any { return description }
186
+ }
187
+ }
@@ -0,0 +1,284 @@
1
+ //
2
+ // Publishers.Multicast.swift
3
+ //
4
+ //
5
+ // Created by Sergej Jaskiewicz on 14.06.2019.
6
+ //
7
+
8
+ extension Publisher {
9
+
10
+ /// Applies a closure to create a subject that delivers elements to subscribers.
11
+ ///
12
+ /// Use a multicast publisher when you have multiple downstream subscribers, but you
13
+ /// want upstream publishers to only process one `receive(_:)` call per event.
14
+ /// This is useful when upstream publishers are doing expensive work you don’t want
15
+ /// to duplicate, like performing network requests.
16
+ ///
17
+ /// In contrast with `multicast(subject:)`, this method produces a publisher that
18
+ /// creates a separate `Subject` for each subscriber.
19
+ ///
20
+ /// The following example uses a sequence publisher as a counter to publish three
21
+ /// random numbers, generated by a `map(_:)` operator.
22
+ /// It uses a `multicast(_:)` operator whose closure creates a `PassthroughSubject`
23
+ /// to share the same random number to each of two subscribers. Because the multicast
24
+ /// publisher is a `ConnectablePublisher`, publishing only begins after a call to
25
+ /// `connect()`.
26
+ ///
27
+ /// let pub = ["First", "Second", "Third"].publisher
28
+ /// .map( { return ($0, Int.random(in: 0...100)) } )
29
+ /// .print("Random")
30
+ /// .multicast { PassthroughSubject<(String, Int), Never>() }
31
+ ///
32
+ /// cancellable1 = pub
33
+ /// .sink { print ("Stream 1 received: \($0)")}
34
+ /// cancellable2 = pub
35
+ /// .sink { print ("Stream 2 received: \($0)")}
36
+ /// pub.connect()
37
+ ///
38
+ /// // Prints:
39
+ /// // Random: receive value: (("First", 9))
40
+ /// // Stream 2 received: ("First", 9)
41
+ /// // Stream 1 received: ("First", 9)
42
+ /// // Random: receive value: (("Second", 46))
43
+ /// // Stream 2 received: ("Second", 46)
44
+ /// // Stream 1 received: ("Second", 46)
45
+ /// // Random: receive value: (("Third", 26))
46
+ /// // Stream 2 received: ("Third", 26)
47
+ /// // Stream 1 received: ("Third", 26)
48
+ ///
49
+ /// In this example, the output shows that the `print(_:to:)` operator receives each
50
+ /// random value only one time, and then sends the value to both subscribers.
51
+ ///
52
+ /// - Parameter createSubject: A closure to create a new `Subject` each time
53
+ /// a subscriber attaches to the multicast publisher.
54
+ public func multicast<SubjectType: Subject>(
55
+ _ createSubject: @escaping () -> SubjectType
56
+ ) -> Publishers.Multicast<Self, SubjectType>
57
+ where Failure == SubjectType.Failure, Output == SubjectType.Output
58
+ {
59
+ return Publishers.Multicast(upstream: self, createSubject: createSubject)
60
+ }
61
+
62
+ /// Provides a subject to deliver elements to multiple subscribers.
63
+ ///
64
+ /// Use a multicast publisher when you have multiple downstream subscribers, but you
65
+ /// want upstream publishers to only process one `receive(_:)` call per event.
66
+ /// This is useful when upstream publishers are doing expensive work you don’t want
67
+ /// to duplicate, like performing network requests.
68
+ ///
69
+ /// In contrast with `multicast(_:)`, this method produces a publisher that shares
70
+ /// the provided `Subject` among all the downstream subscribers.
71
+ ///
72
+ /// The following example uses a sequence publisher as a counter to publish three
73
+ /// random numbers, generated by a `map(_:)` operator.
74
+ /// It uses a `multicast(subject:)` operator with a `PassthroughSubject` to share
75
+ /// the same random number to each of two subscribers. Because the multicast publisher
76
+ /// is a `ConnectablePublisher`, publishing only begins after a call to `connect()`.
77
+ ///
78
+ /// let pub = ["First", "Second", "Third"].publisher
79
+ /// .map( { return ($0, Int.random(in: 0...100)) } )
80
+ /// .print("Random")
81
+ /// .multicast(subject: PassthroughSubject<(String, Int), Never>())
82
+ ///
83
+ /// cancellable1 = pub
84
+ /// .sink { print ("Stream 1 received: \($0)")}
85
+ /// cancellable2 = pub
86
+ /// .sink { print ("Stream 2 received: \($0)")}
87
+ /// pub.connect()
88
+ ///
89
+ /// // Prints:
90
+ /// // Random: receive value: (("First", 78))
91
+ /// // Stream 2 received: ("First", 78)
92
+ /// // Stream 1 received: ("First", 78)
93
+ /// // Random: receive value: (("Second", 98))
94
+ /// // Stream 2 received: ("Second", 98)
95
+ /// // Stream 1 received: ("Second", 98)
96
+ /// // Random: receive value: (("Third", 61))
97
+ /// // Stream 2 received: ("Third", 61)
98
+ /// // Stream 1 received: ("Third", 61)
99
+ ///
100
+ /// In this example, the output shows that the `print(_:to:)` operator receives each
101
+ /// random value only one time, and then sends the value to both subscribers.
102
+ ///
103
+ /// - Parameter subject: A subject to deliver elements to downstream subscribers.
104
+ public func multicast<SubjectType: Subject>(
105
+ subject: SubjectType
106
+ ) -> Publishers.Multicast<Self, SubjectType>
107
+ where Failure == SubjectType.Failure, Output == SubjectType.Output
108
+ {
109
+ return multicast { subject }
110
+ }
111
+ }
112
+
113
+ extension Publishers {
114
+
115
+ /// A publisher that uses a subject to deliver elements to multiple subscribers.
116
+ ///
117
+ /// Use a multicast publisher when you have multiple downstream subscribers, but you
118
+ /// want upstream publishers to only process one `receive(_:)` call per event.
119
+ public final class Multicast<Upstream: Publisher, SubjectType: Subject>
120
+ : ConnectablePublisher
121
+ where Upstream.Failure == SubjectType.Failure,
122
+ Upstream.Output == SubjectType.Output
123
+ {
124
+ public typealias Output = Upstream.Output
125
+
126
+ public typealias Failure = Upstream.Failure
127
+
128
+ /// The publisher that this publisher receives elements from.
129
+ public let upstream: Upstream
130
+
131
+ /// A closure to create a new Subject each time a subscriber attaches
132
+ /// to the multicast publisher.
133
+ public let createSubject: () -> SubjectType
134
+
135
+ private let lock = UnfairLock.allocate()
136
+
137
+ private var subject: SubjectType?
138
+
139
+ private var lazySubject: SubjectType {
140
+ lock.lock()
141
+ if let subject = subject {
142
+ lock.unlock()
143
+ return subject
144
+ }
145
+
146
+ let subject = createSubject()
147
+ self.subject = subject
148
+ lock.unlock()
149
+ return subject
150
+ }
151
+
152
+ /// Creates a multicast publisher that applies a closure to create a subject that
153
+ /// delivers elements to subscribers.
154
+ ///
155
+ /// - Parameter createSubject: A closure that returns a `Subject` each time
156
+ /// a subscriber attaches to the multicast publisher.
157
+ public init(upstream: Upstream, createSubject: @escaping () -> SubjectType) {
158
+ self.upstream = upstream
159
+ self.createSubject = createSubject
160
+ }
161
+
162
+ deinit {
163
+ lock.deallocate()
164
+ }
165
+
166
+ public func receive<Downstream: Subscriber>(subscriber: Downstream)
167
+ where SubjectType.Failure == Downstream.Failure,
168
+ SubjectType.Output == Downstream.Input
169
+ {
170
+ lazySubject.subscribe(Inner(parent: self, downstream: subscriber))
171
+ }
172
+
173
+ public func connect() -> Cancellable {
174
+ return upstream.subscribe(lazySubject)
175
+ }
176
+ }
177
+ }
178
+
179
+ extension Publishers.Multicast {
180
+
181
+ private final class Inner<Downstream: Subscriber>
182
+ : Subscriber,
183
+ Subscription,
184
+ CustomStringConvertible,
185
+ CustomReflectable,
186
+ CustomPlaygroundDisplayConvertible
187
+ where Upstream.Output == Downstream.Input, Upstream.Failure == Downstream.Failure
188
+ {
189
+ // NOTE: This class has been audited for thread safety
190
+
191
+ typealias Input = Upstream.Output
192
+
193
+ typealias Failure = Upstream.Failure
194
+
195
+ private enum State {
196
+ case ready(upstream: Upstream, downstream: Downstream)
197
+ case subscribed(upstream: Upstream,
198
+ downstream: Downstream,
199
+ subjectSubscription: Subscription)
200
+ case terminal
201
+ }
202
+
203
+ private let lock = UnfairLock.allocate()
204
+
205
+ private var state: State
206
+
207
+ fileprivate init(parent: Publishers.Multicast<Upstream, SubjectType>,
208
+ downstream: Downstream) {
209
+ state = .ready(upstream: parent.upstream, downstream: downstream)
210
+ }
211
+
212
+ deinit {
213
+ lock.deallocate()
214
+ }
215
+
216
+ fileprivate var description: String { return "Multicast" }
217
+
218
+ fileprivate var customMirror: Mirror {
219
+ return Mirror(self, children: EmptyCollection())
220
+ }
221
+
222
+ fileprivate var playgroundDescription: Any { return description }
223
+
224
+ func receive(subscription: Subscription) {
225
+ lock.lock()
226
+ guard case let .ready(upstream, downstream) = state else {
227
+ lock.unlock()
228
+ subscription.cancel()
229
+ return
230
+ }
231
+ state = .subscribed(upstream: upstream,
232
+ downstream: downstream,
233
+ subjectSubscription: subscription)
234
+ lock.unlock()
235
+ downstream.receive(subscription: self)
236
+ }
237
+
238
+ func receive(_ input: Input) -> Subscribers.Demand {
239
+ lock.lock()
240
+ guard case let .subscribed(_, downstream, subjectSubscription) = state else {
241
+ lock.unlock()
242
+ return .none
243
+ }
244
+ lock.unlock()
245
+ let newDemand = downstream.receive(input)
246
+ if newDemand > 0 {
247
+ subjectSubscription.request(newDemand)
248
+ }
249
+ return .none
250
+ }
251
+
252
+ func receive(completion: Subscribers.Completion<Failure>) {
253
+ lock.lock()
254
+ guard case let .subscribed(_, downstream, _) = state else {
255
+ lock.unlock()
256
+ return
257
+ }
258
+ state = .terminal
259
+ lock.unlock()
260
+ downstream.receive(completion: completion)
261
+ }
262
+
263
+ func request(_ demand: Subscribers.Demand) {
264
+ lock.lock()
265
+ guard case let .subscribed(_, _, subjectSubscription) = state else {
266
+ lock.unlock()
267
+ return
268
+ }
269
+ lock.unlock()
270
+ subjectSubscription.request(demand)
271
+ }
272
+
273
+ func cancel() {
274
+ lock.lock()
275
+ guard case let .subscribed(_, _, subjectSubscription) = state else {
276
+ lock.unlock()
277
+ return
278
+ }
279
+ state = .terminal
280
+ lock.unlock()
281
+ subjectSubscription.cancel()
282
+ }
283
+ }
284
+ }