@kindly-ai/react-native 1.0.16 → 1.0.17

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 (31) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/maven-repo/ai/kindly/sdk/2.0.15/sdk-2.0.15.aar +0 -0
  3. package/android/maven-repo/ai/kindly/sdk/{2.0.14/sdk-2.0.14.pom → 2.0.15/sdk-2.0.15.pom} +1 -1
  4. package/ios/Frameworks/Kindly.xcframework/Info.plist +5 -5
  5. package/ios/Frameworks/Kindly.xcframework/_CodeSignature/CodeDirectory +0 -0
  6. package/ios/Frameworks/Kindly.xcframework/_CodeSignature/CodeResources +44 -44
  7. package/ios/Frameworks/Kindly.xcframework/_CodeSignature/CodeSignature +0 -0
  8. package/ios/Frameworks/Kindly.xcframework/ios-arm64/Kindly.framework/Assets.car +0 -0
  9. package/ios/Frameworks/Kindly.xcframework/ios-arm64/Kindly.framework/Headers/Kindly-Swift.h +31 -0
  10. package/ios/Frameworks/Kindly.xcframework/ios-arm64/Kindly.framework/Info.plist +0 -0
  11. package/ios/Frameworks/Kindly.xcframework/ios-arm64/Kindly.framework/Kindly +0 -0
  12. package/ios/Frameworks/Kindly.xcframework/ios-arm64/Kindly.framework/Modules/Kindly.swiftmodule/arm64-apple-ios.abi.json +10997 -8742
  13. package/ios/Frameworks/Kindly.xcframework/ios-arm64/Kindly.framework/Modules/Kindly.swiftmodule/arm64-apple-ios.private.swiftinterface +57 -0
  14. package/ios/Frameworks/Kindly.xcframework/ios-arm64/Kindly.framework/Modules/Kindly.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  15. package/ios/Frameworks/Kindly.xcframework/ios-arm64/Kindly.framework/Modules/Kindly.swiftmodule/arm64-apple-ios.swiftinterface +57 -0
  16. package/ios/Frameworks/Kindly.xcframework/ios-arm64/Kindly.framework/_CodeSignature/CodeResources +13 -13
  17. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Assets.car +0 -0
  18. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Headers/Kindly-Swift.h +62 -0
  19. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Info.plist +0 -0
  20. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Kindly +0 -0
  21. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Modules/Kindly.swiftmodule/arm64-apple-ios-simulator.abi.json +10997 -8742
  22. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Modules/Kindly.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +57 -0
  23. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Modules/Kindly.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  24. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Modules/Kindly.swiftmodule/arm64-apple-ios-simulator.swiftinterface +57 -0
  25. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Modules/Kindly.swiftmodule/x86_64-apple-ios-simulator.abi.json +10997 -8742
  26. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Modules/Kindly.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +57 -0
  27. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Modules/Kindly.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  28. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/Modules/Kindly.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +57 -0
  29. package/ios/Frameworks/Kindly.xcframework/ios-arm64_x86_64-simulator/Kindly.framework/_CodeSignature/CodeResources +21 -21
  30. package/package.json +1 -1
  31. package/android/maven-repo/ai/kindly/sdk/2.0.14/sdk-2.0.14.aar +0 -0
@@ -34,6 +34,25 @@ import _Concurrency
34
34
  import _StringProcessing
35
35
  import _SwiftConcurrencyShims
36
36
  import ObjectiveC.runtime
37
+ @objc @_inheritsConvenienceInitializers open class KindlyNotificationServiceExtension : UserNotifications.UNNotificationServiceExtension {
38
+ @objc override dynamic public init()
39
+ @objc override dynamic open func didReceive(_ request: UserNotifications.UNNotificationRequest, withContentHandler contentHandler: @escaping (UserNotifications.UNNotificationContent) -> Swift.Void)
40
+ @objc override dynamic open func serviceExtensionTimeWillExpire()
41
+ open func customize(_ content: UserNotifications.UNMutableNotificationContent, payload: Kindly.KindlyPushDecryption.DecryptedPayload?)
42
+ @objc deinit
43
+ }
44
+ public enum KindlyPushDecryption {
45
+ public struct DecryptedPayload {
46
+ public let chatId: Swift.String
47
+ public let title: Swift.String
48
+ public let body: Swift.String
49
+ public init(chatId: Swift.String, title: Swift.String, body: Swift.String)
50
+ }
51
+ public static func isKindlyNotification(_ userInfo: [Swift.AnyHashable : Any]) -> Swift.Bool
52
+ public static func isDecrypted(_ userInfo: [Swift.AnyHashable : Any]) -> Swift.Bool
53
+ public static func apply(_ payload: Kindly.KindlyPushDecryption.DecryptedPayload, to content: UserNotifications.UNMutableNotificationContent)
54
+ public static func decrypt(userInfo: [Swift.AnyHashable : Any]) -> Kindly.KindlyPushDecryption.DecryptedPayload?
55
+ }
37
56
  public struct ExternalChatMessage : Swift.Hashable, Swift.Identifiable, Swift.Comparable {
38
57
  public let id: Swift.String
39
58
  public static func < (lhs: Kindly.ExternalChatMessage, rhs: Kindly.ExternalChatMessage) -> Swift.Bool
@@ -58,6 +77,10 @@ public struct KindlySDKConfig {
58
77
  get
59
78
  set
60
79
  }
80
+ public var getAuthCredentials: Kindly.AuthCredentialsCallback? {
81
+ get
82
+ set
83
+ }
61
84
  public var allowCameraAccess: Swift.Bool
62
85
  public var allowPhotoLibraryAccess: Swift.Bool
63
86
  public var form: Kindly.KindlySDKConfig.FormConfig
@@ -359,6 +382,25 @@ final public class KindlyChatClient {
359
382
  public init(config: Kindly.CoreSDKConfig, behaviorType: Kindly.BehaviorTypeEnum)
360
383
  @objc deinit
361
384
  }
385
+ public struct KindlyAuthCredentials {
386
+ public let idToken: Swift.String?
387
+ public let accessToken: Swift.String?
388
+ public let issuer: Swift.String?
389
+ public let expiresAt: Foundation.Date?
390
+ public init(idToken: Swift.String? = nil, accessToken: Swift.String? = nil, issuer: Swift.String? = nil, expiresAt: Foundation.Date? = nil)
391
+ public init(idToken: Swift.String? = nil, accessToken: Swift.String? = nil, issuer: Swift.String? = nil, expiresAtUnixSeconds: Swift.Int?)
392
+ }
393
+ extension Kindly.KindlyAuthCredentials {
394
+ public var bearerToken: Swift.String? {
395
+ get
396
+ }
397
+ public var hasToken: Swift.Bool {
398
+ get
399
+ }
400
+ public var companionAccessToken: Swift.String? {
401
+ get
402
+ }
403
+ }
362
404
  @objc @_inheritsConvenienceInitializers public class NotificationDelegate : ObjectiveC.NSObject, UserNotifications.UNUserNotificationCenterDelegate {
363
405
  @objc public func userNotificationCenter(_ center: UserNotifications.UNUserNotificationCenter, willPresent notification: UserNotifications.UNNotification, withCompletionHandler completionHandler: @escaping (UserNotifications.UNNotificationPresentationOptions) -> Swift.Void)
364
406
  @objc public func userNotificationCenter(_ center: UserNotifications.UNUserNotificationCenter, didReceive response: UserNotifications.UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Swift.Void)
@@ -530,11 +572,16 @@ extension Kindly.KindlyChatClient {
530
572
  public static func setCustomTheme(_ theme: any Kindly.Theme)
531
573
  public static func setCustomTheme(background: UIKit.UIColor? = nil, botMessageBackground: UIKit.UIColor? = nil, botMessageText: UIKit.UIColor? = nil, buttonBackground: UIKit.UIColor? = nil, buttonOutline: UIKit.UIColor? = nil, buttonSelectedBackground: UIKit.UIColor? = nil, buttonText: UIKit.UIColor? = nil, defaultShadow: UIKit.UIColor? = nil, inputBackground: UIKit.UIColor? = nil, inputCursor: UIKit.UIColor? = nil, inputText: UIKit.UIColor? = nil, navBarBackground: UIKit.UIColor? = nil, navBarText: UIKit.UIColor? = nil, userMessageBackground: UIKit.UIColor? = nil, userMessageText: UIKit.UIColor? = nil)
532
574
  public static func clearCustomTheme()
575
+ public static var openChatOnNotificationTap: Swift.Bool {
576
+ get
577
+ set
578
+ }
533
579
  public static var enableCrashReporting: Swift.Bool {
534
580
  get
535
581
  set
536
582
  }
537
583
  final public class func start(botKey: Swift.String, languageCode: Swift.String = "en", market: Swift.String, authTokenCallback: Kindly.AuthTokenCallback? = nil)
584
+ final public class func start(botKey: Swift.String, languageCode: Swift.String = "en", market: Swift.String, authCredentialsCallback: @escaping Kindly.AuthCredentialsCallback)
538
585
  final public class func displayChat(languageCode: Swift.String? = nil, triggerDialogueId: Swift.String? = nil)
539
586
  final public func displayChat(languageCode: Swift.String? = nil, triggerDialogueId: Swift.String? = nil)
540
587
  final public class func setLanguage(_ languageCode: Swift.String) -> Kindly.Promise<Swift.Void>
@@ -549,7 +596,15 @@ extension Kindly.KindlyChatClient {
549
596
  @discardableResult
550
597
  final public class func saveAuthToken(_ token: Swift.String) -> Swift.Bool
551
598
  @discardableResult
599
+ final public class func saveAuthCredentials(_ credentials: Kindly.KindlyAuthCredentials) -> Swift.Bool
600
+ @discardableResult
601
+ final public class func authenticate() -> Kindly.Promise<Swift.Void>
602
+ @discardableResult
603
+ final public class func deauthenticate() -> Kindly.Promise<Swift.Void>
604
+ @discardableResult
552
605
  final public func saveAuthToken(_ token: Swift.String) -> Swift.Bool
606
+ @discardableResult
607
+ final public func saveAuthCredentials(_ credentials: Kindly.KindlyAuthCredentials) -> Swift.Bool
553
608
  final public class func closeChat()
554
609
  final public func closeChat()
555
610
  final public class func endChat() -> Kindly.Promise<Swift.Void>
@@ -557,6 +612,7 @@ extension Kindly.KindlyChatClient {
557
612
  final public func endChat() -> Kindly.Promise<Swift.Void>
558
613
  final public class func notificationReceived(_ userInfo: [Swift.AnyHashable : Any])
559
614
  final public class func notificationReceived(_ notification: UserNotifications.UNNotification)
615
+ final public class func notificationWillPresent(_ notification: UserNotifications.UNNotification, completionHandler: @escaping (UserNotifications.UNNotificationPresentationOptions) -> Swift.Void)
560
616
  final public class func notificationResponseReceived(_ response: UserNotifications.UNNotificationResponse)
561
617
  final public class func isKindlyNotification(_ userInfo: [Swift.AnyHashable : Any]) -> Swift.Bool
562
618
  final public class func triggerDialogue(id: Swift.String)
@@ -570,6 +626,7 @@ extension Kindly.KindlyChatClient {
570
626
  @_spi(Testing) final public class func _setVerboseLogs(_ enabled: Swift.Bool)
571
627
  }
572
628
  public typealias AuthTokenCallback = (_ chatId: Swift.String, _ promise: Kindly.Promise<Swift.String>) -> Swift.Void
629
+ public typealias AuthCredentialsCallback = (_ chatId: Swift.String, _ promise: Kindly.Promise<Kindly.KindlyAuthCredentials>) -> Swift.Void
573
630
  extension Kindly.KindlyEventType : Swift.Equatable {}
574
631
  extension Kindly.KindlyEventType : Swift.Hashable {}
575
632
  extension Kindly.KindlyEventType : Swift.RawRepresentable {}
@@ -34,6 +34,25 @@ import _Concurrency
34
34
  import _StringProcessing
35
35
  import _SwiftConcurrencyShims
36
36
  import ObjectiveC.runtime
37
+ @objc @_inheritsConvenienceInitializers open class KindlyNotificationServiceExtension : UserNotifications.UNNotificationServiceExtension {
38
+ @objc override dynamic public init()
39
+ @objc override dynamic open func didReceive(_ request: UserNotifications.UNNotificationRequest, withContentHandler contentHandler: @escaping (UserNotifications.UNNotificationContent) -> Swift.Void)
40
+ @objc override dynamic open func serviceExtensionTimeWillExpire()
41
+ open func customize(_ content: UserNotifications.UNMutableNotificationContent, payload: Kindly.KindlyPushDecryption.DecryptedPayload?)
42
+ @objc deinit
43
+ }
44
+ public enum KindlyPushDecryption {
45
+ public struct DecryptedPayload {
46
+ public let chatId: Swift.String
47
+ public let title: Swift.String
48
+ public let body: Swift.String
49
+ public init(chatId: Swift.String, title: Swift.String, body: Swift.String)
50
+ }
51
+ public static func isKindlyNotification(_ userInfo: [Swift.AnyHashable : Any]) -> Swift.Bool
52
+ public static func isDecrypted(_ userInfo: [Swift.AnyHashable : Any]) -> Swift.Bool
53
+ public static func apply(_ payload: Kindly.KindlyPushDecryption.DecryptedPayload, to content: UserNotifications.UNMutableNotificationContent)
54
+ public static func decrypt(userInfo: [Swift.AnyHashable : Any]) -> Kindly.KindlyPushDecryption.DecryptedPayload?
55
+ }
37
56
  public struct ExternalChatMessage : Swift.Hashable, Swift.Identifiable, Swift.Comparable {
38
57
  public let id: Swift.String
39
58
  public static func < (lhs: Kindly.ExternalChatMessage, rhs: Kindly.ExternalChatMessage) -> Swift.Bool
@@ -58,6 +77,10 @@ public struct KindlySDKConfig {
58
77
  get
59
78
  set
60
79
  }
80
+ public var getAuthCredentials: Kindly.AuthCredentialsCallback? {
81
+ get
82
+ set
83
+ }
61
84
  public var allowCameraAccess: Swift.Bool
62
85
  public var allowPhotoLibraryAccess: Swift.Bool
63
86
  public var form: Kindly.KindlySDKConfig.FormConfig
@@ -359,6 +382,25 @@ final public class KindlyChatClient {
359
382
  public init(config: Kindly.CoreSDKConfig, behaviorType: Kindly.BehaviorTypeEnum)
360
383
  @objc deinit
361
384
  }
385
+ public struct KindlyAuthCredentials {
386
+ public let idToken: Swift.String?
387
+ public let accessToken: Swift.String?
388
+ public let issuer: Swift.String?
389
+ public let expiresAt: Foundation.Date?
390
+ public init(idToken: Swift.String? = nil, accessToken: Swift.String? = nil, issuer: Swift.String? = nil, expiresAt: Foundation.Date? = nil)
391
+ public init(idToken: Swift.String? = nil, accessToken: Swift.String? = nil, issuer: Swift.String? = nil, expiresAtUnixSeconds: Swift.Int?)
392
+ }
393
+ extension Kindly.KindlyAuthCredentials {
394
+ public var bearerToken: Swift.String? {
395
+ get
396
+ }
397
+ public var hasToken: Swift.Bool {
398
+ get
399
+ }
400
+ public var companionAccessToken: Swift.String? {
401
+ get
402
+ }
403
+ }
362
404
  @objc @_inheritsConvenienceInitializers public class NotificationDelegate : ObjectiveC.NSObject, UserNotifications.UNUserNotificationCenterDelegate {
363
405
  @objc public func userNotificationCenter(_ center: UserNotifications.UNUserNotificationCenter, willPresent notification: UserNotifications.UNNotification, withCompletionHandler completionHandler: @escaping (UserNotifications.UNNotificationPresentationOptions) -> Swift.Void)
364
406
  @objc public func userNotificationCenter(_ center: UserNotifications.UNUserNotificationCenter, didReceive response: UserNotifications.UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Swift.Void)
@@ -530,11 +572,16 @@ extension Kindly.KindlyChatClient {
530
572
  public static func setCustomTheme(_ theme: any Kindly.Theme)
531
573
  public static func setCustomTheme(background: UIKit.UIColor? = nil, botMessageBackground: UIKit.UIColor? = nil, botMessageText: UIKit.UIColor? = nil, buttonBackground: UIKit.UIColor? = nil, buttonOutline: UIKit.UIColor? = nil, buttonSelectedBackground: UIKit.UIColor? = nil, buttonText: UIKit.UIColor? = nil, defaultShadow: UIKit.UIColor? = nil, inputBackground: UIKit.UIColor? = nil, inputCursor: UIKit.UIColor? = nil, inputText: UIKit.UIColor? = nil, navBarBackground: UIKit.UIColor? = nil, navBarText: UIKit.UIColor? = nil, userMessageBackground: UIKit.UIColor? = nil, userMessageText: UIKit.UIColor? = nil)
532
574
  public static func clearCustomTheme()
575
+ public static var openChatOnNotificationTap: Swift.Bool {
576
+ get
577
+ set
578
+ }
533
579
  public static var enableCrashReporting: Swift.Bool {
534
580
  get
535
581
  set
536
582
  }
537
583
  final public class func start(botKey: Swift.String, languageCode: Swift.String = "en", market: Swift.String, authTokenCallback: Kindly.AuthTokenCallback? = nil)
584
+ final public class func start(botKey: Swift.String, languageCode: Swift.String = "en", market: Swift.String, authCredentialsCallback: @escaping Kindly.AuthCredentialsCallback)
538
585
  final public class func displayChat(languageCode: Swift.String? = nil, triggerDialogueId: Swift.String? = nil)
539
586
  final public func displayChat(languageCode: Swift.String? = nil, triggerDialogueId: Swift.String? = nil)
540
587
  final public class func setLanguage(_ languageCode: Swift.String) -> Kindly.Promise<Swift.Void>
@@ -549,7 +596,15 @@ extension Kindly.KindlyChatClient {
549
596
  @discardableResult
550
597
  final public class func saveAuthToken(_ token: Swift.String) -> Swift.Bool
551
598
  @discardableResult
599
+ final public class func saveAuthCredentials(_ credentials: Kindly.KindlyAuthCredentials) -> Swift.Bool
600
+ @discardableResult
601
+ final public class func authenticate() -> Kindly.Promise<Swift.Void>
602
+ @discardableResult
603
+ final public class func deauthenticate() -> Kindly.Promise<Swift.Void>
604
+ @discardableResult
552
605
  final public func saveAuthToken(_ token: Swift.String) -> Swift.Bool
606
+ @discardableResult
607
+ final public func saveAuthCredentials(_ credentials: Kindly.KindlyAuthCredentials) -> Swift.Bool
553
608
  final public class func closeChat()
554
609
  final public func closeChat()
555
610
  final public class func endChat() -> Kindly.Promise<Swift.Void>
@@ -557,6 +612,7 @@ extension Kindly.KindlyChatClient {
557
612
  final public func endChat() -> Kindly.Promise<Swift.Void>
558
613
  final public class func notificationReceived(_ userInfo: [Swift.AnyHashable : Any])
559
614
  final public class func notificationReceived(_ notification: UserNotifications.UNNotification)
615
+ final public class func notificationWillPresent(_ notification: UserNotifications.UNNotification, completionHandler: @escaping (UserNotifications.UNNotificationPresentationOptions) -> Swift.Void)
560
616
  final public class func notificationResponseReceived(_ response: UserNotifications.UNNotificationResponse)
561
617
  final public class func isKindlyNotification(_ userInfo: [Swift.AnyHashable : Any]) -> Swift.Bool
562
618
  final public class func triggerDialogue(id: Swift.String)
@@ -564,6 +620,7 @@ extension Kindly.KindlyChatClient {
564
620
  final public class func handleURL(_ url: Foundation.URL) -> Swift.Bool
565
621
  }
566
622
  public typealias AuthTokenCallback = (_ chatId: Swift.String, _ promise: Kindly.Promise<Swift.String>) -> Swift.Void
623
+ public typealias AuthCredentialsCallback = (_ chatId: Swift.String, _ promise: Kindly.Promise<Kindly.KindlyAuthCredentials>) -> Swift.Void
567
624
  extension Kindly.KindlyEventType : Swift.Equatable {}
568
625
  extension Kindly.KindlyEventType : Swift.Hashable {}
569
626
  extension Kindly.KindlyEventType : Swift.RawRepresentable {}
@@ -6,7 +6,7 @@
6
6
  <dict>
7
7
  <key>Assets.car</key>
8
8
  <data>
9
- pb8HRKALxN+PXhfWzC+ZJ15eX0A=
9
+ g/iQpg6yw6bapkTABm/wrvYielg=
10
10
  </data>
11
11
  <key>ConfirmationWindow.nib</key>
12
12
  <data>
@@ -14,7 +14,7 @@
14
14
  </data>
15
15
  <key>Headers/Kindly-Swift.h</key>
16
16
  <data>
17
- MkdcxiJIF1FSwUGEQ1csSt0JKqc=
17
+ 3Zfgp1jBhipvW2p35V5n16NIJX8=
18
18
  </data>
19
19
  <key>Headers/Kindly.h</key>
20
20
  <data>
@@ -22,23 +22,23 @@
22
22
  </data>
23
23
  <key>Info.plist</key>
24
24
  <data>
25
- Wa9eyY/MGq54RoZAboTRZMRtIy0=
25
+ DmmTGzygRu8fSVG8/APVchLzRaY=
26
26
  </data>
27
27
  <key>Modules/Kindly.swiftmodule/arm64-apple-ios.abi.json</key>
28
28
  <data>
29
- +XHWpGh7XzLmYEOZgpIiGlIW2KU=
29
+ 4fh4hwQeQgB4vHNRjYPn14q6tY8=
30
30
  </data>
31
31
  <key>Modules/Kindly.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
32
32
  <data>
33
- xTpugXghnZqpvoYCEs8KnH96IFk=
33
+ zHWAtJHOELD1hCoPVpqtmb0uTXI=
34
34
  </data>
35
35
  <key>Modules/Kindly.swiftmodule/arm64-apple-ios.swiftdoc</key>
36
36
  <data>
37
- 3yHMP84JCLmqlz9BGmfmPHFCjb0=
37
+ iFtvFC/4n3z3aFriXbGFA5zNmOg=
38
38
  </data>
39
39
  <key>Modules/Kindly.swiftmodule/arm64-apple-ios.swiftinterface</key>
40
40
  <data>
41
- 1L3LlsNhkhqwd4POa0Yvv6IoMFU=
41
+ 29KbsFrkosRtVMiI6qjE4ESQ93s=
42
42
  </data>
43
43
  <key>Modules/module.modulemap</key>
44
44
  <data>
@@ -55,7 +55,7 @@
55
55
  <dict>
56
56
  <key>hash2</key>
57
57
  <data>
58
- ey78vbaAGGAofgnSK6XV7mHuSf7yN9GYnimtvVbGLAo=
58
+ 0IzvkxxEyC2sfufBDkjNxvXr8Wdw/qgrGJIY9w4XcaA=
59
59
  </data>
60
60
  </dict>
61
61
  <key>ConfirmationWindow.nib</key>
@@ -69,7 +69,7 @@
69
69
  <dict>
70
70
  <key>hash2</key>
71
71
  <data>
72
- YxAMOVVvyZa779b11gPAT8Y5BSZZNaV09T2kiojd7/8=
72
+ pTR2v29aeArstJ5kdfU5y3AYsu4+3KN3mubm9I4j7xg=
73
73
  </data>
74
74
  </dict>
75
75
  <key>Headers/Kindly.h</key>
@@ -83,28 +83,28 @@
83
83
  <dict>
84
84
  <key>hash2</key>
85
85
  <data>
86
- TvZ102APlOaH6mmn4QYPIbh1vklIOToHBIy9f4a4f6w=
86
+ 7+tJgRMzVjHlqgdMDleq7T3jIhCRBMwGa2gOoll7Z+c=
87
87
  </data>
88
88
  </dict>
89
89
  <key>Modules/Kindly.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
90
90
  <dict>
91
91
  <key>hash2</key>
92
92
  <data>
93
- 4JGKXAJllX0goCMwgcHA8aqLPjia8LR5GH/BhWqlBkc=
93
+ C1YxuU8Rl+Qb6LEljrrKCzm3vDT9Xhjo04e/EQ5qQAA=
94
94
  </data>
95
95
  </dict>
96
96
  <key>Modules/Kindly.swiftmodule/arm64-apple-ios.swiftdoc</key>
97
97
  <dict>
98
98
  <key>hash2</key>
99
99
  <data>
100
- TMoN4OlAiIkKZxu/zkN7D68+nF5rngzEAjK9SMW5wHU=
100
+ dqFjfuRix8S2x5cmGCTNI7tTrk2/rVshW8BF7Udahpk=
101
101
  </data>
102
102
  </dict>
103
103
  <key>Modules/Kindly.swiftmodule/arm64-apple-ios.swiftinterface</key>
104
104
  <dict>
105
105
  <key>hash2</key>
106
106
  <data>
107
- hZ+UsraJifENkHdcje/G97VxKkCB3wKZw71o0fd5Vwk=
107
+ gC0v7kTGJF8EuPXv+2h4u1evm9cYMxbkmXFPDQA9EiE=
108
108
  </data>
109
109
  </dict>
110
110
  <key>Modules/module.modulemap</key>
@@ -370,11 +370,42 @@ extern "C" {
370
370
 
371
371
  #if defined(__OBJC__)
372
372
 
373
+ @class UNNotificationRequest;
374
+ @class UNNotificationContent;
375
+ /// Base class for the host app’s Notification Service Extension.
376
+ /// Subclass it in the extension target and nothing else is needed:
377
+ /// \code
378
+ /// import Kindly
379
+ ///
380
+ /// final class NotificationService: KindlyNotificationServiceExtension {}
381
+ ///
382
+ /// \endcodeiOS runs the extension for every push that carries <code>mutable-content: 1</code>, in every app state including
383
+ /// when the app was killed. The extension decrypts the Kindly payload with the key the SDK stored in the
384
+ /// shared keychain group during token registration, rewrites the title and body, and marks the content as
385
+ /// decrypted so the SDK inside the app never shows it a second time. Pushes that are not Kindly’s, and
386
+ /// Kindly pushes that cannot be decrypted (no key yet, device not unlocked since boot), are delivered
387
+ /// unchanged, which for a Kindly push means the generic placeholder the backend put in <code>aps.alert</code>.
388
+ /// Override <code>customize(_:payload:)</code> to add a category, thread identifier, attachments or a different sound.
389
+ /// Hosts that already have their own extension for another provider keep it and call
390
+ /// <code>KindlyPushDecryption/decrypt(userInfo:)</code> plus <code>KindlyPushDecryption/apply(_:to:)</code> themselves.
391
+ /// Both the app target and the extension target need the same <code>keychain-access-groups</code> entitlement so
392
+ /// the extension can read the key; see the push guide.
393
+ SWIFT_CLASS("_TtC6Kindly34KindlyNotificationServiceExtension")
394
+ @interface KindlyNotificationServiceExtension : UNNotificationServiceExtension
395
+ - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
396
+ - (void)didReceiveNotificationRequest:(UNNotificationRequest * _Nonnull)request withContentHandler:(void (^ _Nonnull)(UNNotificationContent * _Nonnull))contentHandler;
397
+ - (void)serviceExtensionTimeWillExpire;
398
+ @end
399
+
373
400
  @class UNUserNotificationCenter;
374
401
  @class UNNotification;
375
402
  @class UNNotificationResponse;
376
403
  /// Handles push notification presentation and user interaction for the Kindly SDK.
377
404
  /// Set as <code>UNUserNotificationCenter.current().delegate</code> to let the SDK process Kindly notifications.
405
+ /// Notifications that are not Kindly’s are presented with banner and sound, as before. For Kindly
406
+ /// notifications the SDK decrypts, asks <code>KindlyChatClientDelegate.shouldHandleNotification</code>, shows nothing
407
+ /// while the user is on the chat screen, presents content the Notification Service Extension already
408
+ /// decrypted, and replaces a placeholder with its own decrypted banner when there is no extension.
378
409
  SWIFT_CLASS("_TtC6Kindly20NotificationDelegate")
379
410
  @interface NotificationDelegate : NSObject <UNUserNotificationCenterDelegate>
380
411
  - (void)userNotificationCenter:(UNUserNotificationCenter * _Nonnull)center willPresentNotification:(UNNotification * _Nonnull)notification withCompletionHandler:(void (^ _Nonnull)(UNNotificationPresentationOptions))completionHandler;
@@ -762,11 +793,42 @@ extern "C" {
762
793
 
763
794
  #if defined(__OBJC__)
764
795
 
796
+ @class UNNotificationRequest;
797
+ @class UNNotificationContent;
798
+ /// Base class for the host app’s Notification Service Extension.
799
+ /// Subclass it in the extension target and nothing else is needed:
800
+ /// \code
801
+ /// import Kindly
802
+ ///
803
+ /// final class NotificationService: KindlyNotificationServiceExtension {}
804
+ ///
805
+ /// \endcodeiOS runs the extension for every push that carries <code>mutable-content: 1</code>, in every app state including
806
+ /// when the app was killed. The extension decrypts the Kindly payload with the key the SDK stored in the
807
+ /// shared keychain group during token registration, rewrites the title and body, and marks the content as
808
+ /// decrypted so the SDK inside the app never shows it a second time. Pushes that are not Kindly’s, and
809
+ /// Kindly pushes that cannot be decrypted (no key yet, device not unlocked since boot), are delivered
810
+ /// unchanged, which for a Kindly push means the generic placeholder the backend put in <code>aps.alert</code>.
811
+ /// Override <code>customize(_:payload:)</code> to add a category, thread identifier, attachments or a different sound.
812
+ /// Hosts that already have their own extension for another provider keep it and call
813
+ /// <code>KindlyPushDecryption/decrypt(userInfo:)</code> plus <code>KindlyPushDecryption/apply(_:to:)</code> themselves.
814
+ /// Both the app target and the extension target need the same <code>keychain-access-groups</code> entitlement so
815
+ /// the extension can read the key; see the push guide.
816
+ SWIFT_CLASS("_TtC6Kindly34KindlyNotificationServiceExtension")
817
+ @interface KindlyNotificationServiceExtension : UNNotificationServiceExtension
818
+ - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
819
+ - (void)didReceiveNotificationRequest:(UNNotificationRequest * _Nonnull)request withContentHandler:(void (^ _Nonnull)(UNNotificationContent * _Nonnull))contentHandler;
820
+ - (void)serviceExtensionTimeWillExpire;
821
+ @end
822
+
765
823
  @class UNUserNotificationCenter;
766
824
  @class UNNotification;
767
825
  @class UNNotificationResponse;
768
826
  /// Handles push notification presentation and user interaction for the Kindly SDK.
769
827
  /// Set as <code>UNUserNotificationCenter.current().delegate</code> to let the SDK process Kindly notifications.
828
+ /// Notifications that are not Kindly’s are presented with banner and sound, as before. For Kindly
829
+ /// notifications the SDK decrypts, asks <code>KindlyChatClientDelegate.shouldHandleNotification</code>, shows nothing
830
+ /// while the user is on the chat screen, presents content the Notification Service Extension already
831
+ /// decrypted, and replaces a placeholder with its own decrypted banner when there is no extension.
770
832
  SWIFT_CLASS("_TtC6Kindly20NotificationDelegate")
771
833
  @interface NotificationDelegate : NSObject <UNUserNotificationCenterDelegate>
772
834
  - (void)userNotificationCenter:(UNUserNotificationCenter * _Nonnull)center willPresentNotification:(UNNotification * _Nonnull)notification withCompletionHandler:(void (^ _Nonnull)(UNNotificationPresentationOptions))completionHandler;