@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,474 @@
1
+ //
2
+ // Publishers.Concatenate.swift
3
+ //
4
+ //
5
+ // Created by Sergej Jaskiewicz on 24.10.2019.
6
+ //
7
+
8
+ extension Publisher {
9
+
10
+ /// Prefixes a publisher’s output with the specified values.
11
+ ///
12
+ /// Use `prepend(_:)` when you need to prepend specific elements before the output
13
+ /// of a publisher.
14
+ ///
15
+ /// In the example below, the `prepend(_:)` operator publishes the provided elements
16
+ /// before republishing all elements from `dataElements`:
17
+ ///
18
+ /// let dataElements = (0...10)
19
+ /// cancellable = dataElements.publisher
20
+ /// .prepend(0, 1, 255)
21
+ /// .sink { print("\($0)", terminator: " ") }
22
+ ///
23
+ /// // Prints: "0 1 255 0 1 2 3 4 5 6 7 8 9 10"
24
+ ///
25
+ /// - Parameter elements: The elements to publish before this publisher’s elements.
26
+ /// - Returns: A publisher that prefixes the specified elements prior to this
27
+ /// publisher’s elements.
28
+ public func prepend(
29
+ _ elements: Output...
30
+ ) -> Publishers.Concatenate<Publishers.Sequence<[Output], Failure>, Self> {
31
+ return prepend(elements)
32
+ }
33
+
34
+ /// Prefixes a publisher’s output with the specified sequence.
35
+ ///
36
+ /// Use `prepend(_:)` to publish values from two publishers when you need to prepend
37
+ /// one publisher’s elements to another.
38
+ ///
39
+ /// In this example the `/prepend(_:)-v9sb` operator publishes the provided sequence
40
+ /// before republishing all elements from `dataElements`:
41
+ ///
42
+ /// let prefixValues = [0, 1, 255]
43
+ /// let dataElements = (0...10)
44
+ /// cancellable = dataElements.publisher
45
+ /// .prepend(prefixValues)
46
+ /// .sink { print("\($0)", terminator: " ") }
47
+ ///
48
+ /// // Prints: "0 1 255 0 1 2 3 4 5 6 7 8 9 10"
49
+ ///
50
+ /// - Parameter elements: A sequence of elements to publish before this publisher’s
51
+ /// elements.
52
+ /// - Returns: A publisher that prefixes the sequence of elements prior to this
53
+ /// publisher’s elements.
54
+ public func prepend<Elements: Sequence>(
55
+ _ elements: Elements
56
+ ) -> Publishers.Concatenate<Publishers.Sequence<Elements, Failure>, Self>
57
+ where Output == Elements.Element
58
+ {
59
+ return prepend(.init(sequence: elements))
60
+ }
61
+
62
+ /// Prefixes the output of this publisher with the elements emitted by the given
63
+ /// publisher.
64
+ ///
65
+ /// Use `prepend(_:)` to publish values from two publishers when you need to prepend
66
+ /// one publisher’s elements to another.
67
+ ///
68
+ /// In the example below, a publisher of `prefixValues` publishes its elements before
69
+ /// the `dataElements` publishes its elements:
70
+ ///
71
+ /// let prefixValues = [0, 1, 255]
72
+ /// let dataElements = (0...10)
73
+ /// cancellable = dataElements.publisher
74
+ /// .prepend(prefixValues.publisher)
75
+ /// .sink { print("\($0)", terminator: " ") }
76
+ ///
77
+ /// // Prints: "0 1 255 0 1 2 3 4 5 6 7 8 9 10"
78
+ ///
79
+ /// - Parameter publisher: The prefixing publisher.
80
+ /// - Returns: A publisher that prefixes the prefixing publisher’s elements prior to
81
+ /// this publisher’s elements.
82
+ public func prepend<Prefix: Publisher>(
83
+ _ publisher: Prefix
84
+ ) -> Publishers.Concatenate<Prefix, Self>
85
+ where Failure == Prefix.Failure, Output == Prefix.Output
86
+ {
87
+ return .init(prefix: publisher, suffix: self)
88
+ }
89
+
90
+ /// Appends a publisher’s output with the specified elements.
91
+ ///
92
+ /// Use `append(_:)` when you need to prepend specific elements after the output of
93
+ /// a publisher.
94
+ ///
95
+ /// In the example below, the `append(_:)` operator publishes the provided elements
96
+ /// after republishing all elements from `dataElements`:
97
+ ///
98
+ /// let dataElements = (0...10)
99
+ /// cancellable = dataElements.publisher
100
+ /// .append(0, 1, 255)
101
+ /// .sink { print("\($0)", terminator: " ") }
102
+ ///
103
+ /// // Prints: "0 1 2 3 4 5 6 7 8 9 10 0 1 255"
104
+ ///
105
+ ///
106
+ /// - Parameter elements: Elements to publish after this publisher’s elements.
107
+ /// - Returns: A publisher that appends the specifiecd elements after this publisher’s
108
+ /// elements.
109
+ public func append(
110
+ _ elements: Output...
111
+ ) -> Publishers.Concatenate<Self, Publishers.Sequence<[Output], Failure>> {
112
+ return append(elements)
113
+ }
114
+
115
+ /// Appends a publisher’s output with the specified sequence.
116
+ ///
117
+ /// Use `append(_:)` to append a sequence to the end of
118
+ /// a publisher’s output.
119
+ ///
120
+ /// In the example below, the `append(_:)` publisher republishes all elements from
121
+ /// `groundTransport` until it finishes, then publishes the members of `airTransport`:
122
+ ///
123
+ /// let groundTransport = ["car", "bus", "truck", "subway", "bicycle"]
124
+ /// let airTransport = ["parasail", "jet", "helicopter", "rocket"]
125
+ /// cancellable = groundTransport.publisher
126
+ /// .append(airTransport)
127
+ /// .sink { print("\($0)", terminator: " ") }
128
+ ///
129
+ /// // Prints: "car bus truck subway bicycle parasail jet helicopter rocket"
130
+ ///
131
+ /// - Parameter elements: A sequence of elements to publish after this publisher’s
132
+ /// elements.
133
+ /// - Returns: A publisher that appends the sequence of elements after this
134
+ /// publisher’s elements.
135
+ public func append<Elements: Sequence>(
136
+ _ elements: Elements
137
+ ) -> Publishers.Concatenate<Self, Publishers.Sequence<Elements, Failure>>
138
+ where Output == Elements.Element
139
+ {
140
+ return append(.init(sequence: elements))
141
+ }
142
+
143
+ /// Appends the output of this publisher with the elements emitted by the given
144
+ /// publisher.
145
+ ///
146
+ /// Use `append(_:)` to append the output of one publisher to another.
147
+ /// The `append(_:)` operator produces no elements until this publisher finishes.
148
+ /// It then produces this publisher’s elements, followed by the given publisher’s
149
+ /// elements. If this publisher fails with an error, the given publishers elements
150
+ /// aren’t published.
151
+ ///
152
+ /// In the example below, the `append` publisher republishes all elements from
153
+ /// the `numbers` publisher until it finishes, then publishes all elements from
154
+ /// the `otherNumbers` publisher:
155
+ ///
156
+ /// let numbers = (0...10)
157
+ /// let otherNumbers = (25...35)
158
+ /// cancellable = numbers.publisher
159
+ /// .append(otherNumbers.publisher)
160
+ /// .sink { print("\($0)", terminator: " ") }
161
+ ///
162
+ /// // Prints: "0 1 2 3 4 5 6 7 8 9 10 25 26 27 28 29 30 31 32 33 34 35 "
163
+ ///
164
+ /// - Parameter publisher: The appending publisher.
165
+ /// - Returns: A publisher that appends the appending publisher’s elements after this
166
+ /// publisher’s elements.
167
+ public func append<Suffix: Publisher>(
168
+ _ publisher: Suffix
169
+ ) -> Publishers.Concatenate<Self, Suffix>
170
+ where Suffix.Failure == Failure, Suffix.Output == Output
171
+ {
172
+ return .init(prefix: self, suffix: publisher)
173
+ }
174
+ }
175
+
176
+ extension Publishers {
177
+
178
+ /// A publisher that emits all of one publisher’s elements before those from another
179
+ /// publisher.
180
+ public struct Concatenate<Prefix: Publisher, Suffix: Publisher>: Publisher
181
+ where Prefix.Failure == Suffix.Failure, Prefix.Output == Suffix.Output
182
+ {
183
+ public typealias Output = Suffix.Output
184
+
185
+ public typealias Failure = Suffix.Failure
186
+
187
+ /// The publisher to republish, in its entirety, before republishing elements from
188
+ /// `suffix`.
189
+ public let prefix: Prefix
190
+
191
+ /// The publisher to republish only after `prefix` finishes.
192
+ public let suffix: Suffix
193
+
194
+ public init(prefix: Prefix, suffix: Suffix) {
195
+ self.prefix = prefix
196
+ self.suffix = suffix
197
+ }
198
+
199
+ public func receive<Downstream: Subscriber>(subscriber: Downstream)
200
+ where Suffix.Failure == Downstream.Failure, Suffix.Output == Downstream.Input
201
+ {
202
+ let inner = Inner(downstream: subscriber, suffix: suffix)
203
+ prefix.subscribe(Inner<Downstream>.PrefixSubscriber(inner: inner))
204
+ }
205
+ }
206
+ }
207
+
208
+ extension Publishers.Concatenate: Equatable where Prefix: Equatable, Suffix: Equatable {}
209
+
210
+ extension Publishers.Concatenate {
211
+ fileprivate final class Inner<Downstream: Subscriber>
212
+ : Subscription,
213
+ CustomStringConvertible,
214
+ CustomReflectable,
215
+ CustomPlaygroundDisplayConvertible
216
+ where Downstream.Input == Suffix.Output, Downstream.Failure == Suffix.Failure
217
+ {
218
+ typealias Input = Suffix.Output
219
+
220
+ typealias Failure = Suffix.Failure
221
+
222
+ fileprivate struct PrefixSubscriber {
223
+ let inner: Inner<Downstream>
224
+ }
225
+
226
+ fileprivate struct SuffixSubscriber {
227
+ let inner: Inner<Downstream>
228
+ }
229
+
230
+ private let downstream: Downstream
231
+
232
+ private var prefixState = SubscriptionStatus.awaitingSubscription
233
+
234
+ private var suffixState = SubscriptionStatus.awaitingSubscription
235
+
236
+ private var suffix: Suffix?
237
+
238
+ private var pending = Subscribers.Demand.none
239
+
240
+ private let lock = UnfairLock.allocate()
241
+
242
+ fileprivate init(downstream: Downstream, suffix: Suffix) {
243
+ self.downstream = downstream
244
+ self.suffix = suffix
245
+ }
246
+
247
+ deinit {
248
+ lock.deallocate()
249
+ }
250
+
251
+ func request(_ demand: Subscribers.Demand) {
252
+ lock.lock()
253
+ pending += demand
254
+ guard let subscription = prefixState.subscription ?? suffixState.subscription
255
+ else {
256
+ lock.unlock()
257
+ return
258
+ }
259
+ lock.unlock()
260
+ subscription.request(demand)
261
+ }
262
+
263
+ func cancel() {
264
+ lock.lock()
265
+ let upstreamSubscription =
266
+ prefixState.subscription ?? suffixState.subscription
267
+ prefixState = .terminal
268
+ suffixState = .terminal
269
+
270
+ // We MUST release the object AFTER unlocking the lock,
271
+ // since releasing it may trigger execution of arbitrary code,
272
+ // for example, if the object has a deinit.
273
+ // When the object deallocates, its deinit is called, and holding
274
+ // the lock at that moment can lead to deadlocks.
275
+
276
+ withExtendedLifetime(suffix) {
277
+ suffix = nil
278
+ lock.unlock()
279
+ upstreamSubscription?.cancel()
280
+ }
281
+ }
282
+
283
+ var description: String { return "Concatenate" }
284
+
285
+ var customMirror: Mirror {
286
+ return Mirror(self, children: EmptyCollection())
287
+ }
288
+
289
+ var playgroundDescription: Any { return description }
290
+
291
+ // MARK: - Private
292
+
293
+ private func prefixReceive(subscription: Subscription) {
294
+ lock.lock()
295
+ guard case .awaitingSubscription = prefixState else {
296
+ lock.unlock()
297
+ subscription.cancel()
298
+ return
299
+ }
300
+ prefixState = .subscribed(subscription)
301
+ lock.unlock()
302
+ downstream.receive(subscription: self)
303
+ }
304
+
305
+ private func prefixReceive(_ input: Input) -> Subscribers.Demand {
306
+ lock.lock()
307
+ guard case .subscribed = prefixState, pending != .none else {
308
+ lock.unlock()
309
+ return .none
310
+ }
311
+ pending -= 1
312
+ lock.unlock()
313
+ let newDemand = downstream.receive(input)
314
+ if newDemand == .none {
315
+ return .none
316
+ }
317
+ lock.lock()
318
+ pending += newDemand
319
+ lock.unlock()
320
+ return newDemand
321
+ }
322
+
323
+ private func prefixReceive(completion: Subscribers.Completion<Failure>) {
324
+ lock.lock()
325
+ guard case .subscribed = prefixState else {
326
+ lock.unlock()
327
+ return
328
+ }
329
+ prefixState = .terminal
330
+ lock.unlock()
331
+ switch completion {
332
+ case .finished:
333
+ suffix?.subscribe(SuffixSubscriber(inner: self))
334
+ case .failure:
335
+ downstream.receive(completion: completion)
336
+ }
337
+ }
338
+
339
+ private func suffixReceive(subscription: Subscription) {
340
+ lock.lock()
341
+ guard case .awaitingSubscription = suffixState else {
342
+ lock.unlock()
343
+ subscription.cancel()
344
+ return
345
+ }
346
+ suffixState = .subscribed(subscription)
347
+ let pending = self.pending
348
+ lock.unlock()
349
+ if pending != .none {
350
+ subscription.request(pending)
351
+ }
352
+ }
353
+
354
+ private func suffixReceive(_ input: Input) -> Subscribers.Demand {
355
+ lock.lock()
356
+ guard case .subscribed = suffixState else {
357
+ lock.unlock()
358
+ return .none
359
+ }
360
+ lock.unlock()
361
+ return downstream.receive(input)
362
+ }
363
+
364
+ private func suffixReceive(completion: Subscribers.Completion<Failure>) {
365
+ lock.lock()
366
+ guard case .subscribed = suffixState else {
367
+ lock.unlock()
368
+ return
369
+ }
370
+ prefixState = .terminal
371
+ suffixState = .terminal
372
+ lock.unlock()
373
+ downstream.receive(completion: completion)
374
+ }
375
+ }
376
+ }
377
+
378
+ // MARK: - PrefixSubscriber conformances
379
+
380
+ extension Publishers.Concatenate.Inner.PrefixSubscriber: Subscriber {
381
+
382
+ fileprivate typealias Input = Suffix.Output
383
+
384
+ fileprivate typealias Failure = Suffix.Failure
385
+
386
+ fileprivate var combineIdentifier: CombineIdentifier {
387
+ return inner.combineIdentifier
388
+ }
389
+
390
+ fileprivate func receive(subscription: Subscription) {
391
+ inner.prefixReceive(subscription: subscription)
392
+ }
393
+
394
+ fileprivate func receive(_ input: Input) -> Subscribers.Demand {
395
+ return inner.prefixReceive(input)
396
+ }
397
+
398
+ fileprivate func receive(completion: Subscribers.Completion<Failure>) {
399
+ inner.prefixReceive(completion: completion)
400
+ }
401
+ }
402
+
403
+ extension Publishers.Concatenate.Inner.PrefixSubscriber
404
+ : CustomStringConvertible
405
+ {
406
+ fileprivate var description: String {
407
+ return inner.description
408
+ }
409
+ }
410
+
411
+ extension Publishers.Concatenate.Inner.PrefixSubscriber
412
+ : CustomReflectable
413
+ {
414
+ fileprivate var customMirror: Mirror {
415
+ return inner.customMirror
416
+ }
417
+ }
418
+
419
+ extension Publishers.Concatenate.Inner.PrefixSubscriber
420
+ : CustomPlaygroundDisplayConvertible
421
+ {
422
+ fileprivate var playgroundDescription: Any {
423
+ return inner.playgroundDescription
424
+ }
425
+ }
426
+
427
+ // MARK: - SuffixSubscriber conformances
428
+
429
+ extension Publishers.Concatenate.Inner.SuffixSubscriber: Subscriber {
430
+
431
+ fileprivate typealias Input = Suffix.Output
432
+
433
+ fileprivate typealias Failure = Suffix.Failure
434
+
435
+ fileprivate var combineIdentifier: CombineIdentifier {
436
+ return inner.combineIdentifier
437
+ }
438
+
439
+ fileprivate func receive(subscription: Subscription) {
440
+ inner.suffixReceive(subscription: subscription)
441
+ }
442
+
443
+ fileprivate func receive(_ input: Input) -> Subscribers.Demand {
444
+ return inner.suffixReceive(input)
445
+ }
446
+
447
+ fileprivate func receive(completion: Subscribers.Completion<Failure>) {
448
+ inner.suffixReceive(completion: completion)
449
+ }
450
+ }
451
+
452
+ extension Publishers.Concatenate.Inner.SuffixSubscriber
453
+ : CustomStringConvertible
454
+ {
455
+ fileprivate var description: String {
456
+ return inner.description
457
+ }
458
+ }
459
+
460
+ extension Publishers.Concatenate.Inner.SuffixSubscriber
461
+ : CustomReflectable
462
+ {
463
+ fileprivate var customMirror: Mirror {
464
+ return inner.customMirror
465
+ }
466
+ }
467
+
468
+ extension Publishers.Concatenate.Inner.SuffixSubscriber
469
+ : CustomPlaygroundDisplayConvertible
470
+ {
471
+ fileprivate var playgroundDescription: Any {
472
+ return inner.playgroundDescription
473
+ }
474
+ }