Skip to content

Releases: stefanprojchev/ForgePush

1.1.0

17 May 22:23
6ea59c2

Choose a tag to compare

Conventions refactor

Applied the project-wide layered conventions and canonical pragma marks across all 5 targets. No public API removals, no behavior changes.

  • SilentPushHandler and VisiblePushHandler protocols split from implementations into Domain/Services/<Area>/ + Data/Services/<Area>/.
  • Context and Result value types moved into Domain/Models/Entities/ (one type per file).
  • Normalized pragma marks to canonical Dependencies / Init / Implementation / Private.

All 5 sibling products (ForgePush, ForgePushPermission, ForgePushToken, ForgeSilentPush, ForgeVisiblePush) remain importable unchanged.

1.0.1

13 May 11:55
7b880f9

Choose a tag to compare

Switch local path dependencies (ForgeCore, ForgeObservers) to GitHub-hosted versions so consumers can resolve via SPM.

ForgePush 1.0.0

09 Apr 11:26

Choose a tag to compare

First public release.

Libraries

ForgePushPermission

Request, check, and observe notification authorization. Wraps UNUserNotificationCenter with a clean async API.

ForgePushToken

PushTokenManager bridges UIApplicationDelegate APNs callbacks into an AsyncStream<String?>. Thread-safe state, multiple subscribers, deterministic cleanup on deinit.

ForgeSilentPush

SilentPushRouter dispatches background pushes to registered handlers concurrently via TaskGroup. Aggregates results using the most-optimistic policy: .newData > .failed > .noData.

ForgeVisiblePush

VisiblePushRouter dispatches tapped notification responses to matching handlers. Same handler/router pattern as silent push.

ForgePush (umbrella)

Re-exports all four libraries for a single import.

Dependency protocols

All routers take ConnectivityObserving and ProtectedDataObserving as dependencies, so you can use ForgeObservers or provide your own implementations.

Tests

34 tests across token lifecycle, silent/visible router dispatch, result aggregation, and context propagation.

Requirements

  • iOS 18+, macOS 15+
  • Swift 6.3+ (Xcode 26 or later)

Installation

.package(url: "https://github.com/stefanprojchev/ForgePush.git", from: "1.0.0")

Documentation

Full docs: https://stefanprojchev.github.io/ForgePush/