From a9bf89cc84dd203f53909ff920bc15d530898cc2 Mon Sep 17 00:00:00 2001 From: Dimitri Bouniol Date: Mon, 16 Dec 2024 01:34:34 -0800 Subject: [PATCH 1/2] Added specifications section to readme --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 9bc18d4..c5effd7 100644 --- a/README.md +++ b/README.md @@ -176,6 +176,13 @@ TBD The `WebPushTesting` module can be used to obtain a mocked `WebPushManager` instance that allows you to capture all messages that are sent out, or throw your own errors to validate your code functions appropriately. Only import `WebPushTesting` in your testing targets. +## Specifications + +- [RFC8030 Generic Event Delivery Using HTTP Push](https://datatracker.ietf.org/doc/html/rfc8030) +- [RFC8188 Encrypted Content-Encoding for HTTP](https://datatracker.ietf.org/doc/html/rfc8188) +- [RFC8291 Message Encryption for Web Push](https://datatracker.ietf.org/doc/html/rfc8291) +- [RFC8292 Voluntary Application Server Identification (VAPID) for Web Push](https://datatracker.ietf.org/doc/html/rfc8292) + ## Contributing Contribution is welcome! Please take a look at the issues already available, or start a new discussion to propose a new feature. Although guarantees can't be made regarding feature requests, PRs that fit within the goals of the project and that have been discussed beforehand are more than welcome! From 919259d5fcb89ac35bccbc03ec086cf617b180a4 Mon Sep 17 00:00:00 2001 From: Dimitri Bouniol Date: Mon, 16 Dec 2024 01:51:47 -0800 Subject: [PATCH 2/2] Updated the style used when referencing RFC documents --- README.md | 8 ++++---- Sources/WebPush/Errors/HTTPError.swift | 4 ++-- Sources/WebPush/Helpers/URL+Origin.swift | 2 +- Sources/WebPush/Subscriber.swift | 2 +- Sources/WebPush/VAPID/VAPID.swift | 2 +- Sources/WebPush/VAPID/VAPIDConfiguration.swift | 2 +- Sources/WebPush/VAPID/VAPIDToken.swift | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c5effd7..fbf476a 100644 --- a/README.md +++ b/README.md @@ -178,10 +178,10 @@ The `WebPushTesting` module can be used to obtain a mocked `WebPushManager` inst ## Specifications -- [RFC8030 Generic Event Delivery Using HTTP Push](https://datatracker.ietf.org/doc/html/rfc8030) -- [RFC8188 Encrypted Content-Encoding for HTTP](https://datatracker.ietf.org/doc/html/rfc8188) -- [RFC8291 Message Encryption for Web Push](https://datatracker.ietf.org/doc/html/rfc8291) -- [RFC8292 Voluntary Application Server Identification (VAPID) for Web Push](https://datatracker.ietf.org/doc/html/rfc8292) +- [RFC 8030 Generic Event Delivery Using HTTP Push](https://datatracker.ietf.org/doc/html/rfc8030) +- [RFC 8188 Encrypted Content-Encoding for HTTP](https://datatracker.ietf.org/doc/html/rfc8188) +- [RFC 8291 Message Encryption for Web Push](https://datatracker.ietf.org/doc/html/rfc8291) +- [RFC 8292 Voluntary Application Server Identification (VAPID) for Web Push](https://datatracker.ietf.org/doc/html/rfc8292) ## Contributing diff --git a/Sources/WebPush/Errors/HTTPError.swift b/Sources/WebPush/Errors/HTTPError.swift index e520378..80a4b6e 100644 --- a/Sources/WebPush/Errors/HTTPError.swift +++ b/Sources/WebPush/Errors/HTTPError.swift @@ -11,8 +11,8 @@ import Foundation /// An unknown HTTP error was encountered. /// -/// - SeeAlso: [RFC8030 Generic Event Delivery Using HTTP Push](https://datatracker.ietf.org/doc/html/rfc8030) -/// - SeeAlso: [RFC8292 Voluntary Application Server Identification (VAPID) for Web Push](https://datatracker.ietf.org/doc/html/rfc8292) +/// - SeeAlso: [RFC 8030 Generic Event Delivery Using HTTP Push](https://datatracker.ietf.org/doc/html/rfc8030) +/// - SeeAlso: [RFC 8292 Voluntary Application Server Identification (VAPID) for Web Push](https://datatracker.ietf.org/doc/html/rfc8292) /// - SeeAlso: [Sending web push notifications in web apps and browsers — Review responses for push notification errors](https://developer.apple.com/documentation/usernotifications/sending-web-push-notifications-in-web-apps-and-browsers#Review-responses-for-push-notification-errors) public struct HTTPError: LocalizedError { let response: HTTPClientResponse diff --git a/Sources/WebPush/Helpers/URL+Origin.swift b/Sources/WebPush/Helpers/URL+Origin.swift index aec9a58..612c541 100644 --- a/Sources/WebPush/Helpers/URL+Origin.swift +++ b/Sources/WebPush/Helpers/URL+Origin.swift @@ -13,7 +13,7 @@ extension URL { /// /// This implementation is similar to the [WHATWG Standard](https://url.spec.whatwg.org/#concept-url-origin), except that it uses the unicode form of the host, and is limited to HTTP and HTTPS schemas. /// - /// - SeeAlso: [RFC8292 Voluntary Application Server Identification (VAPID) for Web Push §2. Application Server Self-Identification](https://datatracker.ietf.org/doc/html/rfc8292#section-2) + /// - SeeAlso: [RFC 8292 Voluntary Application Server Identification (VAPID) for Web Push §2. Application Server Self-Identification](https://datatracker.ietf.org/doc/html/rfc8292#section-2) /// - SeeAlso: [RFC6454 The Web Origin Concept §6.1. Unicode Serialization of an Origin](https://datatracker.ietf.org/doc/html/rfc6454#section-6.1) var origin: String { /// Note that we need the unicode variant, which only URLComponents provides. diff --git a/Sources/WebPush/Subscriber.swift b/Sources/WebPush/Subscriber.swift index 5915bd2..9d46d3c 100644 --- a/Sources/WebPush/Subscriber.swift +++ b/Sources/WebPush/Subscriber.swift @@ -31,7 +31,7 @@ public protocol SubscriberProtocol: Sendable { /// The set of cryptographic secrets shared by the browser (is. user agent) along with a subscription. /// -/// - SeeAlso: [RFC8291 Message Encryption for Web Push §2.1. Key and Secret Distribution](https://datatracker.ietf.org/doc/html/rfc8291#section-2.1) +/// - SeeAlso: [RFC 8291 Message Encryption for Web Push §2.1. Key and Secret Distribution](https://datatracker.ietf.org/doc/html/rfc8291#section-2.1) public struct UserAgentKeyMaterial: Sendable { /// The underlying type of an authentication secret. public typealias Salt = Data diff --git a/Sources/WebPush/VAPID/VAPID.swift b/Sources/WebPush/VAPID/VAPID.swift index 0051e55..9d81297 100644 --- a/Sources/WebPush/VAPID/VAPID.swift +++ b/Sources/WebPush/VAPID/VAPID.swift @@ -12,5 +12,5 @@ public typealias VAPID = VoluntaryApplicationServerIdentification /// A set of types for Voluntary Application Server Identification, also known as VAPID. /// -/// - SeeAlso: [RFC8292](https://datatracker.ietf.org/doc/html/rfc8292) +/// - SeeAlso: [RFC 8292](https://datatracker.ietf.org/doc/html/rfc8292) public enum VoluntaryApplicationServerIdentification: Sendable {} diff --git a/Sources/WebPush/VAPID/VAPIDConfiguration.swift b/Sources/WebPush/VAPID/VAPIDConfiguration.swift index 0ab55cb..c122cdc 100644 --- a/Sources/WebPush/VAPID/VAPIDConfiguration.swift +++ b/Sources/WebPush/VAPID/VAPIDConfiguration.swift @@ -202,7 +202,7 @@ extension VAPID.Configuration { /// This allows administrators of push services to contact you should an issue arise with your application server. /// /// - Note: Although the specification notes that this field is optional, some push services may refuse connection from serers without contact information. - /// - SeeAlso: [RFC8292 Voluntary Application Server Identification (VAPID) for Web Push §2.1. Application Server Contact Information](https://datatracker.ietf.org/doc/html/rfc8292#section-2.1) + /// - SeeAlso: [RFC 8292 Voluntary Application Server Identification (VAPID) for Web Push §2.1. Application Server Contact Information](https://datatracker.ietf.org/doc/html/rfc8292#section-2.1) public enum ContactInformation: Hashable, Codable, Sendable { /// A URL-based contact method, such as a support page on your website. case url(URL) diff --git a/Sources/WebPush/VAPID/VAPIDToken.swift b/Sources/WebPush/VAPID/VAPIDToken.swift index 236a222..fd94864 100644 --- a/Sources/WebPush/VAPID/VAPIDToken.swift +++ b/Sources/WebPush/VAPID/VAPIDToken.swift @@ -12,7 +12,7 @@ import Foundation extension VAPID { /// An internal representation the token and authorization headers used self-identification. /// - /// - SeeAlso: [RFC8292 Voluntary Application Server Identification (VAPID) for Web Push §2. Application Server Self-Identification](https://datatracker.ietf.org/doc/html/rfc8292#section-2) + /// - SeeAlso: [RFC 8292 Voluntary Application Server Identification (VAPID) for Web Push §2. Application Server Self-Identification](https://datatracker.ietf.org/doc/html/rfc8292#section-2) struct Token: Hashable, Codable, Sendable { enum CodingKeys: String, CodingKey { case audience = "aud"