From 20a1d441ad6ec9a4cfc21c5c5bb8f08d9e46f5dc Mon Sep 17 00:00:00 2001 From: GErP83 Date: Thu, 13 Aug 2026 14:12:00 +0200 Subject: [PATCH] add changes --- .github/workflows/deployment.yml | 17 ++++ .github/workflows/run-checks.yml | 26 ----- .github/workflows/run-tests.yml | 77 --------------- .github/workflows/testing.yml | 36 +++++++ .swiftformatignore | 1 + LICENSE | 2 +- Makefile | 56 ++++++++--- Package.resolved | 21 +--- Package.swift | 58 +++++------ README.md | 93 +++++++++++++----- Sources/FeatherPush/Component+Push.swift | 52 ---------- Sources/FeatherPush/Models/Delivery.swift | 14 +++ Sources/FeatherPush/Models/Platform.swift | 28 ++++++ .../FeatherPush/Models/PushNotification.swift | 51 ++++++++++ Sources/FeatherPush/Models/Sound.swift | 14 +++ Sources/FeatherPush/Push.swift | 65 ------------ Sources/FeatherPush/PushClient.swift | 21 ++++ Sources/FeatherPush/PushClientError.swift | 25 +++++ Sources/FeatherPush/PushComponent.swift | 15 --- Sources/FeatherPush/PushComponentError.swift | 12 --- Sources/XCTFeatherPush/Assets/feather.png | Bin 149959 -> 0 bytes Sources/XCTFeatherPush/PushTestSuite.swift | 77 --------------- Tests/FeatherPushTests/FeatherPushTests.swift | 55 ++++++++++- .../XCTFeatherPushTests.swift | 16 --- docker/tests/Dockerfile | 11 +++ scripts/check-broken-symlinks.sh | 24 ----- scripts/check-local-swift-dependencies.sh | 23 ----- scripts/check-unacceptable-language.sh | 24 ----- scripts/generate-contributors-list.sh | 16 --- scripts/install-swift-format.sh | 19 ---- scripts/run-checks.sh | 43 -------- scripts/run-chmod.sh | 10 -- scripts/run-clean.sh | 16 --- scripts/run-swift-format.sh | 36 ------- scripts/unacceptable-language.txt | 15 --- 35 files changed, 409 insertions(+), 660 deletions(-) create mode 100644 .github/workflows/deployment.yml delete mode 100644 .github/workflows/run-checks.yml delete mode 100644 .github/workflows/run-tests.yml create mode 100644 .github/workflows/testing.yml create mode 100644 .swiftformatignore delete mode 100644 Sources/FeatherPush/Component+Push.swift create mode 100644 Sources/FeatherPush/Models/Delivery.swift create mode 100644 Sources/FeatherPush/Models/Platform.swift create mode 100644 Sources/FeatherPush/Models/PushNotification.swift create mode 100644 Sources/FeatherPush/Models/Sound.swift delete mode 100644 Sources/FeatherPush/Push.swift create mode 100644 Sources/FeatherPush/PushClient.swift create mode 100644 Sources/FeatherPush/PushClientError.swift delete mode 100644 Sources/FeatherPush/PushComponent.swift delete mode 100644 Sources/FeatherPush/PushComponentError.swift delete mode 100644 Sources/XCTFeatherPush/Assets/feather.png delete mode 100644 Sources/XCTFeatherPush/PushTestSuite.swift delete mode 100644 Tests/XCTFeatherPushTests/XCTFeatherPushTests.swift create mode 100644 docker/tests/Dockerfile delete mode 100755 scripts/check-broken-symlinks.sh delete mode 100755 scripts/check-local-swift-dependencies.sh delete mode 100755 scripts/check-unacceptable-language.sh delete mode 100755 scripts/generate-contributors-list.sh delete mode 100755 scripts/install-swift-format.sh delete mode 100755 scripts/run-checks.sh delete mode 100755 scripts/run-chmod.sh delete mode 100755 scripts/run-clean.sh delete mode 100755 scripts/run-swift-format.sh delete mode 100755 scripts/unacceptable-language.txt diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml new file mode 100644 index 0000000..ca036e3 --- /dev/null +++ b/.github/workflows/deployment.yml @@ -0,0 +1,17 @@ +name: Deployment + +on: + push: + tags: + - 'v*' + - '[0-9]*' + workflow_dispatch: + +jobs: + + create-docc-and-deploy: + uses: BinaryBirds/github-workflows/.github/workflows/docc_deploy.yml@main + permissions: + contents: read + pages: write + id-token: write diff --git a/.github/workflows/run-checks.yml b/.github/workflows/run-checks.yml deleted file mode 100644 index b10006f..0000000 --- a/.github/workflows/run-checks.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Run checks - -on: - pull_request: - branches: - - main - -jobs: - - run-checks: - # runs-on: macOS-latest - runs-on: self-hosted - steps: - - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - name: Install Dependencies - run: | - brew install mint - mint install NickLockwood/SwiftFormat@0.53.4 --no-link - - - name: run script - run: ./scripts/run-checks.sh diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml deleted file mode 100644 index 174656d..0000000 --- a/.github/workflows/run-tests.yml +++ /dev/null @@ -1,77 +0,0 @@ -name: Run tests - -on: - push: - branches: - - main - paths: - - '**.swift' - pull_request: - branches: - - main - -jobs: - - macOS-tests: - runs-on: self-hosted - steps: - - - name: Checkout - uses: actions/checkout@v4 - - # - name: Cache - # uses: actions/cache@v3 - # with: - # path: server/.build - # key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} - # restore-keys: ${{ runner.os }}-spm- - - - name: Test - run: swift test --parallel --enable-code-coverage - - # linux-tests: - # runs-on: ubuntu-latest - # strategy: - # matrix: - # image: - # - 'swift:5.9' - # - 'swift:5.10' - # container: - # image: ${{ matrix.image }} - # steps: - - # - name: Checkout - # uses: actions/checkout@v4 - - # # - name: Cache - # # uses: actions/cache@v3 - # # with: - # # path: server/.build - # # key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} - # # restore-keys: ${{ runner.os }}-spm- - - # - uses: webfactory/ssh-agent@v0.9.0 - # with: - # ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - - # - name: Test - # shell: bash - # run: | - # mkdir ~/.ssh - # echo $PRIVATE_KEY > ~/.ssh/key - # touch ~/.ssh/config - # touch ~/.ssh/known_hosts - # echo "Host github.com" >> ~/.ssh/config - # echo " HostName github.com" >> ~/.ssh/config - # echo " User git" >> ~/.ssh/config - # echo " IdentityFile ./.ssh/key" >> ~/.ssh/config - # echo " StrictHostKeyChecking no" >> ~/.ssh/config - # echo " UserKnownHostsFile ~/.ssh/known_hosts" >> ~/.ssh/config - # chmod 600 ~/.ssh/config - # ssh-keyscan github.com >> ~/.ssh/known_hosts - # eval "$(ssh-agent -s)" - # ssh-add - <<< "${{ secrets.SSH_PRIVATE_KEY }}" - # swift test --parallel --enable-code-coverage - # env: - # PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} - diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml new file mode 100644 index 0000000..539e860 --- /dev/null +++ b/.github/workflows/testing.yml @@ -0,0 +1,36 @@ +name: Testing + +on: + pull_request: + branches: + - main + +jobs: + api_breakage: + name: Check API breakage + uses: BinaryBirds/github-workflows/.github/workflows/api_breakage.yml@main + + swiftlang_checks: + name: Swiftlang Checks + uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main + with: + license_header_check_project_name: "project" + format_check_enabled: true + broken_symlink_check_enabled: true + unacceptable_language_check_enabled: true + shell_check_enabled: false + docs_check_enabled: false + api_breakage_check_enabled: false + license_header_check_enabled: false + yamllint_check_enabled: false + python_lint_check_enabled: false + + bb_checks: + name: BB Checks + uses: BinaryBirds/github-workflows/.github/workflows/extra_soundness.yml@main + with: + local_swift_dependencies_check_enabled: true + run_tests_with_cache_enabled: true + headers_check_enabled: false + docc_warnings_check_enabled: true + run_tests_swift_versions: '["6.1", "6.2"]' diff --git a/.swiftformatignore b/.swiftformatignore new file mode 100644 index 0000000..c73cf0c --- /dev/null +++ b/.swiftformatignore @@ -0,0 +1 @@ +Package.swift \ No newline at end of file diff --git a/LICENSE b/LICENSE index 9a07ee3..d48549a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ MIT License Copyright (c) 2018-2022 Tibor Bödecs -Copyright (c) 2022-2024 Binary Birds Ltd. +Copyright (c) 2022-2026 Binary Birds Kft. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/Makefile b/Makefile index dc1a39a..9372543 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,48 @@ -build: - swift build +SHELL=/bin/bash -release: - swift build -c release - -test: - swift test --parallel +baseUrl = https://raw.githubusercontent.com/BinaryBirds/github-workflows/refs/heads/main/scripts + +check: symlinks language deps lint headers docc-warnings package + +breakage: + curl -s $(baseUrl)/check-api-breakage.sh | bash -test-with-coverage: - swift test --parallel --enable-code-coverage +package: + curl -s $(baseUrl)/check-swift-package.sh | bash -clean: - rm -rf .build +symlinks: + curl -s $(baseUrl)/check-broken-symlinks.sh | bash + +language: + curl -s $(baseUrl)/check-unacceptable-language.sh | bash + +deps: + curl -s $(baseUrl)/check-local-swift-dependencies.sh | bash -check: - ./scripts/run-checks.sh +lint: + curl -s $(baseUrl)/run-swift-format.sh | bash format: - ./scripts/run-swift-format.sh --fix + curl -s $(baseUrl)/run-swift-format.sh | bash -s -- --fix + +docc-local: + curl -s $(baseUrl)/generate-docc.sh | bash -s -- --local + +run-docc: + curl -s $(baseUrl)/run-docc-docker.sh | bash + +docc-warnings: + curl -s $(baseUrl)/check-docc-warnings.sh | bash + +headers: + curl -s $(baseUrl)/check-swift-headers.sh | bash + +fix-headers: + curl -s $(baseUrl)/check-swift-headers.sh | bash -s -- --fix + +test: + swift test --parallel + +docker-test: + docker build -t tests . -f ./docker/tests/Dockerfile && docker run --rm tests + diff --git a/Package.resolved b/Package.resolved index d7f3d45..f17c4c2 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,23 +1,4 @@ { - "pins" : [ - { - "identity" : "feather-component", - "kind" : "remoteSourceControl", - "location" : "https://github.com/feather-framework/feather-component.git", - "state" : { - "revision" : "c209d87352d27afc124422db11c9ca2bb0f7a376", - "version" : "0.5.0" - } - }, - { - "identity" : "swift-log", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-log", - "state" : { - "revision" : "e97a6fcb1ab07462881ac165fdbb37f067e205d5", - "version" : "1.5.4" - } - } - ], + "pins" : [], "version" : 2 } diff --git a/Package.swift b/Package.swift index 203601a..8ae0415 100644 --- a/Package.swift +++ b/Package.swift @@ -1,50 +1,52 @@ -// swift-tools-version:5.9 +// swift-tools-version:6.1 import PackageDescription +// NOTE: https://github.com/swift-server/swift-http-server/blob/main/Package.swift +var defaultSwiftSettings: [SwiftSetting] = [ + // https://github.com/swiftlang/swift-evolution/blob/main/proposals/0441-formalize-language-mode-terminology.md + .swiftLanguageMode(.v6), + // https://github.com/swiftlang/swift-evolution/blob/main/proposals/0444-member-import-visibility.md + .enableUpcomingFeature("MemberImportVisibility"), + // https://forums.swift.org/t/experimental-support-for-lifetime-dependencies-in-swift-6-2-and-beyond/78638 + .enableExperimentalFeature("Lifetimes"), + // https://github.com/swiftlang/swift/pull/65218 + .enableExperimentalFeature("AvailabilityMacro=featherPush:macOS 15, iOS 18, watchOS 11, tvOS 11, visionOS 2"), +] + +#if compiler(>=6.2) +defaultSwiftSettings.append( + // https://github.com/swiftlang/swift-evolution/blob/main/proposals/0461-async-function-isolation.md + .enableUpcomingFeature("NonisolatedNonsendingByDefault") +) +#endif + let package = Package( name: "feather-push", platforms: [ - .macOS(.v13), - .iOS(.v16), - .tvOS(.v16), - .watchOS(.v9), - .visionOS(.v1), + .macOS(.v15), + .iOS(.v18), + .tvOS(.v18), + .watchOS(.v11), + .visionOS(.v2), ], products: [ .library(name: "FeatherPush", targets: ["FeatherPush"]), - .library(name: "XCTFeatherPush", targets: ["XCTFeatherPush"]), ], dependencies: [ - .package(url: "https://github.com/feather-framework/feather-component.git", .upToNextMinor(from: "0.5.0") - ), + // [docc-plugin-placeholder] ], targets: [ .target( name: "FeatherPush", - dependencies: [ - .product(name: "FeatherComponent", package: "feather-component") - ] - ), - .target( - name: "XCTFeatherPush", - dependencies: [ - .target(name: "FeatherPush"), - ], - resources: [ - .copy("Assets/feather.png") - ] + dependencies: [], + swiftSettings: defaultSwiftSettings ), .testTarget( name: "FeatherPushTests", dependencies: [ .target(name: "FeatherPush"), - ] - ), - .testTarget( - name: "XCTFeatherPushTests", - dependencies: [ - .target(name: "XCTFeatherPush"), - ] + ], + swiftSettings: defaultSwiftSettings ), ] ) diff --git a/README.md b/README.md index 03fe75e..26467d9 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,87 @@ # Feather Push -An abstract push notification component for Feather CMS. +An abstract push notification client for Feather CMS. -## Getting started +[![Release: 1.0.0-beta.1](https://img.shields.io/badge/Release-1%2E0%2E0--beta%2E1-F05138)](https://github.com/feather-framework/feather-push/releases/tag/1.0.0-beta.1) -⚠️ This repository is a work in progress, things can break until it reaches v1.0.0. +## Features -Use at your own risk. +- Topic-based push notification delivery +- Silent and normal delivery modes +- Deep-link and rich notification metadata +- Badge, sound, and notification collapsing support +- Provider-neutral client and error APIs -### Adding the dependency +## Requirements -To add a dependency on the package, declare it in your `Package.swift`: +![Swift 6.1+](https://img.shields.io/badge/Swift-6%2E1%2B-F05138) +![Platforms: Linux, macOS, iOS, tvOS, watchOS, visionOS](https://img.shields.io/badge/Platforms-Linux_%7C_macOS_%7C_iOS_%7C_tvOS_%7C_watchOS_%7C_visionOS-F05138) + +- Swift 6.1+ +- Platforms: + - Linux + - macOS 15+ + - iOS 18+ + - tvOS 18+ + - watchOS 11+ + - visionOS 2+ + +## Installation + +Use Swift Package Manager; add the dependency to your `Package.swift` file: ```swift -.package(url: "https://github.com/feather-framework/feather-push.git", .upToNextMinor(from: "0.1.0")), +.package(url: "https://github.com/feather-framework/feather-push", exact: "1.0.0-beta.1"), ``` -and to your application target, add `FeatherPush` to your dependencies: +Then add `FeatherPush` to your target dependencies: ```swift -.product(name: "FeatherPush", package: "feather-push") +.product(name: "FeatherPush", package: "feather-push"), ``` -Example `Package.swift` file with `FeatherPush` as a dependency: +## Usage + +[![DocC API documentation](https://img.shields.io/badge/DocC-API_documentation-F05138)](https://feather-framework.github.io/feather-push/) + +API documentation is available at the following link. ```swift -// swift-tools-version:5.9 -import PackageDescription - -let package = Package( - name: "my-application", - dependencies: [ - .package(url: "https://github.com/feather-framework/feather-push.git", .upToNextMinor(from: "0.1.0")), - ], - targets: [ - .target(name: "MyApplication", dependencies: [ - .product(name: "FeatherPush", package: "feather-push") - ]), - .testTarget(name: "MyApplicationTests", dependencies: [ - .target(name: "MyApplication"), - ]), - ] +let notification = PushNotification( + title: "New message", + body: "You have a new message.", + data: ["messageID": "123"], + deepLink: "myapp://messages/123", + badge: 1, + sound: .default +) + +try await client.send( + notification: notification, + to: "topic" ) ``` +> [!WARNING] +> This repository is a work in progress, things can break until it reaches v1.0.0. + +## Push implementations + +The following push client implementations are available for use: + +- [Feather Push APNS](https://github.com/feather-framework/feather-push-apns) +- [Feather Push FCM](https://github.com/feather-framework/feather-push-fcm) +- [Feather Push Ephemeral](https://github.com/feather-framework/feather-push-ephemeral) + +## Development + +- Build: `swift build` +- Test: + - local: `make test` + - using Docker: `make docker-test` +- Format: `make format` +- Check: `make check` + +## Contributing + +[Pull requests](https://github.com/feather-framework/feather-push/pulls) are welcome. Please keep changes focused and include tests for new logic. diff --git a/Sources/FeatherPush/Component+Push.swift b/Sources/FeatherPush/Component+Push.swift deleted file mode 100644 index 287b413..0000000 --- a/Sources/FeatherPush/Component+Push.swift +++ /dev/null @@ -1,52 +0,0 @@ -// -// Component+Push.swift -// FeatherPush -// -// Created by Tibor Bodecs on 20/11/2023. -// - -import FeatherComponent -import Logging - -public enum PushComponentID: ComponentID { - - /// default push component identifier - case `default` - - /// custom push component identifier - case custom(String) - - /// rawId - public var rawId: String { - switch self { - case .default: - return "push-component-id" - case .custom(let value): - return "\(value)-push-component-id" - } - } -} - -public extension ComponentRegistry { - - /// add a new push component using a context - func addPush( - _ context: ComponentContext, - id: PushComponentID = .default - ) async throws { - try await add(context, id: id) - } - - /// returns a push component by a given id - func push( - _ id: PushComponentID = .default, - logger: Logger? = nil - ) throws -> PushComponent { - guard let push = try get(id, logger: logger) as? PushComponent else { - fatalError( - "Push component not found, call `addPush()` to register." - ) - } - return push - } -} diff --git a/Sources/FeatherPush/Models/Delivery.swift b/Sources/FeatherPush/Models/Delivery.swift new file mode 100644 index 0000000..f1527b4 --- /dev/null +++ b/Sources/FeatherPush/Models/Delivery.swift @@ -0,0 +1,14 @@ +// +// Delivery.swift +// feather-push +// +// Created by Binary Birds on 2026. 08. 13. +// + +/// The delivery priority of a push notification. +public enum Delivery: String, Sendable { + /// Delivers the notification normally. + case normal + /// Delivers the notification without presenting an alert. + case silent +} diff --git a/Sources/FeatherPush/Models/Platform.swift b/Sources/FeatherPush/Models/Platform.swift new file mode 100644 index 0000000..712bd15 --- /dev/null +++ b/Sources/FeatherPush/Models/Platform.swift @@ -0,0 +1,28 @@ +// +// Platform.swift +// feather-push +// +// Created by Binary Birds on 2026. 08. 13. +// + +/// A platform supported by a push provider. +public enum Platform: Sendable, Equatable { + /// Apple iPhone and iPad platform. + case iOS + /// Apple Mac platform. + case macOS + /// Apple TV platform. + case tvOS + /// Apple Watch platform. + case watchOS + /// Apple Vision Pro platform. + case visionOS + /// Safari web-push platform. + case safari + /// Android platform. + case android + /// Generic web-push platform. + case web + /// A provider-specific platform. + case custom(String) +} diff --git a/Sources/FeatherPush/Models/PushNotification.swift b/Sources/FeatherPush/Models/PushNotification.swift new file mode 100644 index 0000000..2f23bb2 --- /dev/null +++ b/Sources/FeatherPush/Models/PushNotification.swift @@ -0,0 +1,51 @@ +// +// PushNotification.swift +// feather-push +// +// Created by Binary Birds on 2026. 08. 13. +// + +/// A push notification payload. +public struct PushNotification: Sendable { + /// The notification title. + public let title: String + /// The notification body. + public let body: String + /// Provider-specific notification metadata. + public let data: [String: String] + /// The requested delivery priority. + public let delivery: Delivery + /// An optional deep link opened when the notification is selected. + public let deepLink: String? + /// An optional image URL supported by providers that render rich notifications. + public let imageURL: String? + /// An optional badge value for the application icon. + public let badge: Int? + /// An optional notification sound. + public let sound: Sound? + /// An optional identifier used to collapse equivalent notifications. + public let collapseID: String? + + /// Creates a push notification. + public init( + title: String, + body: String, + data: [String: String] = [:], + delivery: Delivery = .normal, + deepLink: String? = nil, + imageURL: String? = nil, + badge: Int? = nil, + sound: Sound? = nil, + collapseID: String? = nil + ) { + self.title = title + self.body = body + self.data = data + self.delivery = delivery + self.deepLink = deepLink + self.imageURL = imageURL + self.badge = badge + self.sound = sound + self.collapseID = collapseID + } +} diff --git a/Sources/FeatherPush/Models/Sound.swift b/Sources/FeatherPush/Models/Sound.swift new file mode 100644 index 0000000..98d78db --- /dev/null +++ b/Sources/FeatherPush/Models/Sound.swift @@ -0,0 +1,14 @@ +// +// Sound.swift +// feather-push +// +// Created by Binary Birds on 2026. 08. 13. +// + +/// The sound to play when a notification is presented. +public enum Sound: Sendable, Equatable { + /// Use the platform default notification sound. + case `default` + /// Use a bundled, provider-specific sound name. + case named(String) +} diff --git a/Sources/FeatherPush/Push.swift b/Sources/FeatherPush/Push.swift deleted file mode 100644 index dd3f709..0000000 --- a/Sources/FeatherPush/Push.swift +++ /dev/null @@ -1,65 +0,0 @@ -// -// Push.swift -// FeatherPush -// -// Created by Tibor Bodecs on 2023. 01. 16.. -// - -public enum Delivery: String, Sendable { - case normal - case silent -} - -public enum Platform: Sendable { - case iOS - case macOS - case tvOS - case watchOS - case visionOS - case safari - case android - case web - case custom(String) -} - -/// push notification recipient -public struct Recipient: Sendable { - /// device token - public let token: String - /// device platform - public let platform: Platform - - /// init push notification recipient - public init( - token: String, - platform: Platform - ) { - self.token = token - self.platform = platform - } -} - -/// push notification -public struct Notification: Sendable { - /// title - public let title: String - /// body - public let body: String - /// userInfo - public let userInfo: [String: String] - /// delivery - public let delivery: Delivery - - /// init push notification - public init( - title: String, - body: String, - userInfo: [String: String] = [:], - delivery: Delivery = .normal - ) { - self.title = title - self.body = body - self.userInfo = userInfo - self.delivery = delivery - } -} diff --git a/Sources/FeatherPush/PushClient.swift b/Sources/FeatherPush/PushClient.swift new file mode 100644 index 0000000..2d4bc70 --- /dev/null +++ b/Sources/FeatherPush/PushClient.swift @@ -0,0 +1,21 @@ +// +// PushClient.swift +// feather-push +// +// Created by Tibor Bodecs on 2023. 01. 16. +// + +/// A client capable of delivering push notifications. +public protocol PushClient: Sendable { + + /// Sends a push notification to the given recipients. + /// + /// - Parameters: + /// - notification: The notification to deliver. + /// - topic: The topic that receives the notification. + /// - Throws: `PushClientError` when delivery fails. + func send( + notification: PushNotification, + to topic: String + ) async throws(PushClientError) +} diff --git a/Sources/FeatherPush/PushClientError.swift b/Sources/FeatherPush/PushClientError.swift new file mode 100644 index 0000000..9c4b298 --- /dev/null +++ b/Sources/FeatherPush/PushClientError.swift @@ -0,0 +1,25 @@ +// +// PushClientError.swift +// feather-push +// +// Created by Tibor Bodecs on 2023. 01. 16. +// + +/// Errors that can occur while delivering a push notification. +public enum PushClientError: Error { + + /// The topic is empty or otherwise invalid. + case invalidTopic + /// The notification payload is invalid or cannot be delivered. + case invalidNotification + /// The provider credentials or authorization are invalid. + case unauthorized + /// The provider temporarily rejected the request because it was rate-limited. + case rateLimited + /// The provider is temporarily unavailable. + case unavailable + /// The provider rejected the request with a descriptive reason. + case rejected(String) + /// An underlying provider error that does not have a more specific mapping. + case unknown(Error) +} diff --git a/Sources/FeatherPush/PushComponent.swift b/Sources/FeatherPush/PushComponent.swift deleted file mode 100644 index 55c9695..0000000 --- a/Sources/FeatherPush/PushComponent.swift +++ /dev/null @@ -1,15 +0,0 @@ -// -// PushComponent.swift -// FeatherPush -// -// Created by Tibor Bodecs on 2023. 01. 16.. -// - -import FeatherComponent - -/// the push component protocol -public protocol PushComponent: Component { - - /// send a push notification to a given recipients - func send(notification: Notification, to: [Recipient]) async throws -} diff --git a/Sources/FeatherPush/PushComponentError.swift b/Sources/FeatherPush/PushComponentError.swift deleted file mode 100644 index 8bb383f..0000000 --- a/Sources/FeatherPush/PushComponentError.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// PushComponentError.swift -// FeatherPush -// -// Created by Tibor Bodecs on 2023. 01. 16.. -// - -/// push component error -public enum PushComponentError: Error { - - case unknown(Error) -} diff --git a/Sources/XCTFeatherPush/Assets/feather.png b/Sources/XCTFeatherPush/Assets/feather.png deleted file mode 100644 index 500265bba660bbc217080af6879cb48928cfcfc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149959 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 z

A^Swl6798MzM0xAKDNSmHnC;(hRRdFix>q55pSRqqYdbY?s#mncw=f*;mbJdT` zRfz|#H%KapZ4b)*o>U=$hewU$?xXv_G{@m99T)#ldT)uAG^Df9N3TS9{tX7dYe?f2 zJlHr<&i!N}(?ZqEwy|qM_ub%QHw2RFT6FZqQ~8_ZS}o96@mVYSWeF=;d1FnI8}WML zgZ}Mg8_{i08P$+I)=OCMqh7izz&|b|kuGOB8p&O4XO1A{Kg#m(4s}oe`lF_&e~Zx9 zs@&u1=cZ#-_d~Yi>XsQA5fF|z2SX3BC99y=7(}xdYiMT@8C$(wObGON{!(9v zJgD)53=yt5yr`l@AXN*4k)vsT0{)!{Z}o3vG~-G(Icv_elz1%xYNVwRoUn@JWh~cB zt%}5P=No!t>O0RN_!GYSC2^uFMTSew&lhCcV2bTR<3&qR+N_v7_gVzS>Gn|U%-4=#??x+XsLhnfPpgQFn!9cKe09wMI52%&YQJ

{jOG}+fz9{;MU2)*w$>g*eiD*tb> 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%0Dx070K!;}|=jMzrnKu4e*i$jmsT|Q(q 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 URL? { - Bundle.module.url(forResource: "feather", withExtension: "png") - } - - // MARK: - tests - - func testPlainText( - from: String, - to: String - ) async throws { - - } - -} diff --git a/Tests/FeatherPushTests/FeatherPushTests.swift b/Tests/FeatherPushTests/FeatherPushTests.swift index f07db9e..01b88d3 100644 --- a/Tests/FeatherPushTests/FeatherPushTests.swift +++ b/Tests/FeatherPushTests/FeatherPushTests.swift @@ -1,14 +1,59 @@ // // FeatherPushTests.swift -// FeatherPushTests +// feather-push // -// Created by Tibor Bodecs on 2023. 01. 16.. +// Created by Tibor Bodecs on 2023. 01. 16. // -import XCTest import FeatherPush +import Testing -final class FeatherPushTests: XCTestCase { +@Suite +struct FeatherPushTests { - func testExample() async throws {} + @Test + func notificationDefaults() { + let notification = PushNotification( + title: "Title", + body: "Body" + ) + + #expect(notification.data.isEmpty) + #expect(notification.delivery == .normal) + #expect(notification.deepLink == nil) + #expect(notification.badge == nil) + } + + @Test + func notificationSupportsDeepLinksAndProviderMetadata() { + let notification = PushNotification( + title: "New item", + body: "Open the item", + data: ["itemID": "123"], + deepLink: "myapp://items/123", + imageURL: "https://example.com/image.png", + badge: 1, + sound: .default, + collapseID: "item-123" + ) + + #expect(notification.data["itemID"] == "123") + #expect(notification.deepLink == "myapp://items/123") + #expect(notification.sound == .default) + #expect(notification.collapseID == "item-123") + } + + @Test + func clientErrorsExposeProviderNeutralCases() { + let errors: [PushClientError] = [ + .invalidTopic, + .invalidNotification, + .unauthorized, + .rateLimited, + .unavailable, + .rejected("provider rejected the request"), + ] + + #expect(errors.count == 6) + } } diff --git a/Tests/XCTFeatherPushTests/XCTFeatherPushTests.swift b/Tests/XCTFeatherPushTests/XCTFeatherPushTests.swift deleted file mode 100644 index f1a7ec5..0000000 --- a/Tests/XCTFeatherPushTests/XCTFeatherPushTests.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// XCTFeatherPushTests.swift -// XCTFeatherPushTests -// -// Created by Tibor Bodecs on 2023. 01. 16.. -// - -import XCTest -import XCTFeatherPush - -final class XCTFeatherPushTests: XCTestCase { - - func testExample() async throws { - - } -} diff --git a/docker/tests/Dockerfile b/docker/tests/Dockerfile new file mode 100644 index 0000000..73be175 --- /dev/null +++ b/docker/tests/Dockerfile @@ -0,0 +1,11 @@ +FROM swift:6.1 + +WORKDIR /app + +COPY . ./ + +RUN swift package resolve +RUN swift package clean +RUN swift package update + +CMD ["swift", "test", "--parallel", "--enable-code-coverage"] diff --git a/scripts/check-broken-symlinks.sh b/scripts/check-broken-symlinks.sh deleted file mode 100755 index 3d7e919..0000000 --- a/scripts/check-broken-symlinks.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -log() { printf -- "** %s\n" "$*" >&2; } -error() { printf -- "** ERROR: %s\n" "$*" >&2; } -fatal() { error "$@"; exit 1; } - -CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)" - -log "Checking for broken symlinks..." -NUM_BROKEN_SYMLINKS=0 -while read -r -d '' file; do - if ! test -e "${REPO_ROOT}/${file}"; then - error "Broken symlink: ${file}" - ((NUM_BROKEN_SYMLINKS++)) - fi -done < <(git -C "${REPO_ROOT}" ls-files -z) - -if [ "${NUM_BROKEN_SYMLINKS}" -gt 0 ]; then - fatal "❌ Found ${NUM_BROKEN_SYMLINKS} symlinks." -fi - -log "✅ Found 0 symlinks." diff --git a/scripts/check-local-swift-dependencies.sh b/scripts/check-local-swift-dependencies.sh deleted file mode 100755 index c5fcb58..0000000 --- a/scripts/check-local-swift-dependencies.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -log() { printf -- "** %s\n" "$*" >&2; } -error() { printf -- "** ERROR: %s\n" "$*" >&2; } -fatal() { error "$@"; exit 1; } - -CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)" - -read -ra PATHS_TO_CHECK <<< "$( \ - git -C "${REPO_ROOT}" ls-files -z \ - "Package.swift" \ - | xargs -0 \ -)" - -for FILE_PATH in "${PATHS_TO_CHECK[@]}"; do - if [[ $(grep ".package(path:" "${FILE_PATH}"|wc -l) -ne 0 ]] ; then - fatal "❌ The '${FILE_PATH}' file contains local Swift package reference(s)." - fi -done - -log "✅ Found 0 local Swift package dependency references." diff --git a/scripts/check-unacceptable-language.sh b/scripts/check-unacceptable-language.sh deleted file mode 100755 index 3d93707..0000000 --- a/scripts/check-unacceptable-language.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -log() { printf -- "** %s\n" "$*" >&2; } -error() { printf -- "** ERROR: %s\n" "$*" >&2; } -fatal() { error "$@"; exit 1; } - -CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)" -UNACCEPTABLE_LANGUAGE_PATTERNS_PATH="${CURRENT_SCRIPT_DIR}/unacceptable-language.txt" - -log "Checking for unacceptable language..." -PATHS_WITH_UNACCEPTABLE_LANGUAGE=$(git -C "${REPO_ROOT}" grep \ - -l -F -w \ - -f "${UNACCEPTABLE_LANGUAGE_PATTERNS_PATH}" \ - -- \ - ":(exclude)${UNACCEPTABLE_LANGUAGE_PATTERNS_PATH}" \ -) || true | /usr/bin/paste -s -d " " - - -if [ -n "${PATHS_WITH_UNACCEPTABLE_LANGUAGE}" ]; then - fatal "❌ Found unacceptable language in files: ${PATHS_WITH_UNACCEPTABLE_LANGUAGE}." -fi - -log "✅ Found no unacceptable language." diff --git a/scripts/generate-contributors-list.sh b/scripts/generate-contributors-list.sh deleted file mode 100755 index ec165b8..0000000 --- a/scripts/generate-contributors-list.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -contributors=$( cd "$here"/.. && git shortlog -es | cut -f2 | sed 's/^/- /' ) - -cat > "$here/../CONTRIBUTORS.txt" <<- EOF - ### Contributors - - $contributors - - **Updating this list** - - Please do not edit this file manually. It is generated using \`bash ./scripts/generate-contributors-list.sh\`. - If a name is misspelled or appearing multiple times: add an entry in \`./.mailmap\`. -EOF diff --git a/scripts/install-swift-format.sh b/scripts/install-swift-format.sh deleted file mode 100755 index 3fb3333..0000000 --- a/scripts/install-swift-format.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -log() { printf -- "** %s\n" "$*" >&2; } -error() { printf -- "** ERROR: %s\n" "$*" >&2; } -fatal() { error "$@"; exit 1; } - -# https://github.com/apple/swift-format - -VERSION="509.0.0" - -curl -L -o "${VERSION}.tar.gz" "https://github.com/apple/swift-format/archive/refs/tags/${VERSION}.tar.gz" -tar -xf "${VERSION}.tar.gz" -cd "swift-format-${VERSION}" -swift build -c release -install .build/release/swift-format /usr/local/bin/swift-format -cd .. -rm -f "${VERSION}.tar.gz" -rm -rf "swift-format-${VERSION}" diff --git a/scripts/run-checks.sh b/scripts/run-checks.sh deleted file mode 100755 index b42e0f9..0000000 --- a/scripts/run-checks.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -log() { printf -- "** %s\n" "$*" >&2; } -error() { printf -- "** ERROR: %s\n" "$*" >&2; } -fatal() { error "$@"; exit 1; } - -CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -NUM_CHECKS_FAILED=0 - -FIX_FORMAT="" -for arg in "$@"; do - if [ "$arg" == "--fix" ]; then - FIX_FORMAT="--fix" - fi -done - -SCRIPT_PATHS=( - "${CURRENT_SCRIPT_DIR}/check-broken-symlinks.sh" - "${CURRENT_SCRIPT_DIR}/check-unacceptable-language.sh" - "${CURRENT_SCRIPT_DIR}/check-local-swift-dependencies.sh" -) - -for SCRIPT_PATH in "${SCRIPT_PATHS[@]}"; do - log "Running ${SCRIPT_PATH}..." - if ! bash "${SCRIPT_PATH}"; then - ((NUM_CHECKS_FAILED+=1)) - fi -done - -log "Running swift-format..." -bash "${CURRENT_SCRIPT_DIR}"/run-swift-format.sh $FIX_FORMAT > /dev/null -FORMAT_EXIT_CODE=$? -if [ $FORMAT_EXIT_CODE -ne 0 ]; then - ((NUM_CHECKS_FAILED+=1)) -fi - -if [ "${NUM_CHECKS_FAILED}" -gt 0 ]; then - fatal "❌ ${NUM_CHECKS_FAILED} check(s) failed." -fi - -log "✅ All check(s) passed." diff --git a/scripts/run-chmod.sh b/scripts/run-chmod.sh deleted file mode 100755 index 783e89d..0000000 --- a/scripts/run-chmod.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -log() { printf -- "** %s\n" "$*" >&2; } -error() { printf -- "** ERROR: %s\n" "$*" >&2; } -fatal() { error "$@"; exit 1; } - -CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)" -chmod -R oug+x "${REPO_ROOT}/scripts/" \ No newline at end of file diff --git a/scripts/run-clean.sh b/scripts/run-clean.sh deleted file mode 100755 index 737914f..0000000 --- a/scripts/run-clean.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -log() { printf -- "** %s\n" "$*" >&2; } -error() { printf -- "** ERROR: %s\n" "$*" >&2; } -fatal() { error "$@"; exit 1; } - -CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)" - - -rm -rf ".build" -rm -rf ".swiftpm" -rm -f "openapi/openapi.yaml" -rm -f "db.sqlite" -rm -f "migration-entries.json" diff --git a/scripts/run-swift-format.sh b/scripts/run-swift-format.sh deleted file mode 100755 index 4f5d8ed..0000000 --- a/scripts/run-swift-format.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -log() { printf -- "** %s\n" "$*" >&2; } -error() { printf -- "** ERROR: %s\n" "$*" >&2; } -fatal() { error "$@"; exit 1; } - -CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)" - -FORMAT_COMMAND=(lint --strict) -for arg in "$@"; do - if [ "$arg" == "--fix" ]; then - FORMAT_COMMAND=(format --in-place) - fi -done - -SWIFTFORMAT_BIN=${SWIFTFORMAT_BIN:-$(command -v swift-format)} || fatal "❌ SWIFTFORMAT_BIN unset and no swift-format on PATH" - -git -C "${REPO_ROOT}" ls-files -z '*.swift' \ - | grep -z -v \ - -e 'Package.swift' \ - | xargs -0 "${SWIFTFORMAT_BIN}" "${FORMAT_COMMAND[@]}" --parallel \ - && SWIFT_FORMAT_RC=$? || SWIFT_FORMAT_RC=$? - -if [ "${SWIFT_FORMAT_RC}" -ne 0 ]; then - fatal "❌ Running swift-format produced errors. - - To fix, run the following command: - - % ./scripts/run-swift-format.sh --fix - " - exit "${SWIFT_FORMAT_RC}" -fi - -log "✅ Ran swift-format with no errors." diff --git a/scripts/unacceptable-language.txt b/scripts/unacceptable-language.txt deleted file mode 100755 index 6ac4a98..0000000 --- a/scripts/unacceptable-language.txt +++ /dev/null @@ -1,15 +0,0 @@ -blacklist -whitelist -slave -master -sane -sanity -insane -insanity -kill -killed -killing -hang -hung -hanged -hanging