@capawesome/capacitor-singular 0.0.1

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 (79) hide show
  1. package/CapawesomeCapacitorSingular.podspec +19 -0
  2. package/LICENSE +21 -0
  3. package/Package.swift +26 -0
  4. package/README.md +1262 -0
  5. package/android/build.gradle +61 -0
  6. package/android/src/main/AndroidManifest.xml +5 -0
  7. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/Singular.java +443 -0
  8. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/SingularHelper.java +53 -0
  9. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/SingularPlugin.java +336 -0
  10. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/CustomException.java +20 -0
  11. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/CustomExceptions.java +34 -0
  12. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/events/DeviceAttributionInfoReceivedEvent.java +48 -0
  13. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/events/SdidReceivedEvent.java +23 -0
  14. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/events/SdidSetEvent.java +23 -0
  15. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/events/SingularLinkResolvedEvent.java +44 -0
  16. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/CreateReferrerShortLinkOptions.java +61 -0
  17. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/InitializeOptions.java +168 -0
  18. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/SetCustomUserIdOptions.java +24 -0
  19. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/SetDeviceTokenOptions.java +24 -0
  20. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/SetGlobalPropertyOptions.java +44 -0
  21. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/SetLimitAdvertisingIdentifiersOptions.java +22 -0
  22. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/SetLimitDataSharingOptions.java +22 -0
  23. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/TrackAdRevenueOptions.java +157 -0
  24. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/TrackEventOptions.java +35 -0
  25. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/TrackRevenueOptions.java +56 -0
  26. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/options/UnsetGlobalPropertyOptions.java +24 -0
  27. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/results/CreateReferrerShortLinkResult.java +23 -0
  28. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/results/GetGlobalPropertiesResult.java +31 -0
  29. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/results/GetLimitDataSharingResult.java +22 -0
  30. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/classes/results/IsAllTrackingStoppedResult.java +22 -0
  31. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/interfaces/Callback.java +5 -0
  32. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/interfaces/EmptyCallback.java +5 -0
  33. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/interfaces/NonEmptyResultCallback.java +7 -0
  34. package/android/src/main/java/io/capawesome/capacitorjs/plugins/singular/interfaces/Result.java +7 -0
  35. package/android/src/main/res/.gitkeep +0 -0
  36. package/dist/docs.json +2014 -0
  37. package/dist/esm/definitions.d.ts +925 -0
  38. package/dist/esm/definitions.js +39 -0
  39. package/dist/esm/definitions.js.map +1 -0
  40. package/dist/esm/index.d.ts +4 -0
  41. package/dist/esm/index.js +7 -0
  42. package/dist/esm/index.js.map +1 -0
  43. package/dist/esm/web.d.ts +27 -0
  44. package/dist/esm/web.js +73 -0
  45. package/dist/esm/web.js.map +1 -0
  46. package/dist/plugin.cjs.js +126 -0
  47. package/dist/plugin.cjs.js.map +1 -0
  48. package/dist/plugin.js +129 -0
  49. package/dist/plugin.js.map +1 -0
  50. package/ios/Plugin/Classes/Events/DeviceAttributionInfoReceivedEvent.swift +43 -0
  51. package/ios/Plugin/Classes/Events/SdidReceivedEvent.swift +16 -0
  52. package/ios/Plugin/Classes/Events/SdidSetEvent.swift +16 -0
  53. package/ios/Plugin/Classes/Events/SingularLinkResolvedEvent.swift +28 -0
  54. package/ios/Plugin/Classes/Events/SkanConversionValueUpdatedEvent.swift +30 -0
  55. package/ios/Plugin/Classes/Options/CreateReferrerShortLinkOptions.swift +25 -0
  56. package/ios/Plugin/Classes/Options/InitializeOptions.swift +44 -0
  57. package/ios/Plugin/Classes/Options/SetCustomUserIdOptions.swift +13 -0
  58. package/ios/Plugin/Classes/Options/SetDeviceTokenOptions.swift +30 -0
  59. package/ios/Plugin/Classes/Options/SetGlobalPropertyOptions.swift +20 -0
  60. package/ios/Plugin/Classes/Options/SetLimitAdvertisingIdentifiersOptions.swift +13 -0
  61. package/ios/Plugin/Classes/Options/SetLimitDataSharingOptions.swift +13 -0
  62. package/ios/Plugin/Classes/Options/SkanUpdateConversionValueOptions.swift +27 -0
  63. package/ios/Plugin/Classes/Options/TrackAdRevenueOptions.swift +47 -0
  64. package/ios/Plugin/Classes/Options/TrackEventOptions.swift +15 -0
  65. package/ios/Plugin/Classes/Options/TrackRevenueOptions.swift +22 -0
  66. package/ios/Plugin/Classes/Options/UnsetGlobalPropertyOptions.swift +13 -0
  67. package/ios/Plugin/Classes/Results/CreateReferrerShortLinkResult.swift +16 -0
  68. package/ios/Plugin/Classes/Results/GetGlobalPropertiesResult.swift +16 -0
  69. package/ios/Plugin/Classes/Results/GetLimitDataSharingResult.swift +16 -0
  70. package/ios/Plugin/Classes/Results/IsAllTrackingStoppedResult.swift +16 -0
  71. package/ios/Plugin/Classes/Results/SkanGetConversionValueResult.swift +20 -0
  72. package/ios/Plugin/Enums/CustomError.swift +88 -0
  73. package/ios/Plugin/Enums/SkanCoarseConversionValue.swift +31 -0
  74. package/ios/Plugin/Info.plist +24 -0
  75. package/ios/Plugin/Protocols/Result.swift +6 -0
  76. package/ios/Plugin/Singular.swift +341 -0
  77. package/ios/Plugin/SingularHelper.swift +40 -0
  78. package/ios/Plugin/SingularPlugin.swift +340 -0
  79. package/package.json +102 -0
@@ -0,0 +1,25 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class CreateReferrerShortLinkOptions: NSObject {
5
+ let baseLink: String
6
+ let passthroughParameters: [String: String]?
7
+ let referrerId: String
8
+ let referrerName: String
9
+
10
+ init(_ call: CAPPluginCall) throws {
11
+ guard let baseLink = call.getString("baseLink") else {
12
+ throw CustomError.baseLinkMissing
13
+ }
14
+ guard let referrerId = call.getString("referrerId") else {
15
+ throw CustomError.referrerIdMissing
16
+ }
17
+ guard let referrerName = call.getString("referrerName") else {
18
+ throw CustomError.referrerNameMissing
19
+ }
20
+ self.baseLink = baseLink
21
+ self.referrerId = referrerId
22
+ self.referrerName = referrerName
23
+ self.passthroughParameters = SingularHelper.createStringHashMapFromJSObject(call.getObject("passthroughParameters"))
24
+ }
25
+ }
@@ -0,0 +1,44 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class InitializeOptions: NSObject {
5
+ let apiKey: String
6
+ let brandedDomains: [String]?
7
+ let customSdid: String?
8
+ let customUserId: String?
9
+ let espDomains: [String]?
10
+ let globalProperties: [String: String]?
11
+ let iosManualSkanConversionManagement: Bool
12
+ let iosSkAdNetworkEnabled: Bool
13
+ let iosWaitForTrackingAuthorizationTimeout: Int
14
+ let limitAdvertisingIdentifiers: Bool
15
+ let limitDataSharing: Bool?
16
+ let loggingEnabled: Bool
17
+ let secret: String
18
+ let sessionTimeout: Int
19
+ let shortLinkResolveTimeout: Int
20
+
21
+ init(_ call: CAPPluginCall) throws {
22
+ guard let apiKey = call.getString("apiKey") else {
23
+ throw CustomError.apiKeyMissing
24
+ }
25
+ guard let secret = call.getString("secret") else {
26
+ throw CustomError.secretMissing
27
+ }
28
+ self.apiKey = apiKey
29
+ self.secret = secret
30
+ self.brandedDomains = call.getArray("brandedDomains", String.self)
31
+ self.customSdid = call.getString("customSdid")
32
+ self.customUserId = call.getString("customUserId")
33
+ self.espDomains = call.getArray("espDomains", String.self)
34
+ self.globalProperties = SingularHelper.createStringHashMapFromJSObject(call.getObject("globalProperties"))
35
+ self.iosManualSkanConversionManagement = call.getBool("iosManualSkanConversionManagement", false)
36
+ self.iosSkAdNetworkEnabled = call.getBool("iosSkAdNetworkEnabled", true)
37
+ self.iosWaitForTrackingAuthorizationTimeout = call.getInt("iosWaitForTrackingAuthorizationTimeout", 0)
38
+ self.limitAdvertisingIdentifiers = call.getBool("limitAdvertisingIdentifiers", false)
39
+ self.limitDataSharing = call.getBool("limitDataSharing")
40
+ self.loggingEnabled = call.getBool("loggingEnabled", false)
41
+ self.sessionTimeout = call.getInt("sessionTimeout", 60)
42
+ self.shortLinkResolveTimeout = call.getInt("shortLinkResolveTimeout", 10)
43
+ }
44
+ }
@@ -0,0 +1,13 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class SetCustomUserIdOptions: NSObject {
5
+ let customUserId: String
6
+
7
+ init(_ call: CAPPluginCall) throws {
8
+ guard let customUserId = call.getString("customUserId") else {
9
+ throw CustomError.customUserIdMissing
10
+ }
11
+ self.customUserId = customUserId
12
+ }
13
+ }
@@ -0,0 +1,30 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class SetDeviceTokenOptions: NSObject {
5
+ let token: Data
6
+
7
+ init(_ call: CAPPluginCall) throws {
8
+ guard let token = call.getString("token") else {
9
+ throw CustomError.tokenMissing
10
+ }
11
+ self.token = try SetDeviceTokenOptions.createDataFromHexString(token)
12
+ }
13
+
14
+ private static func createDataFromHexString(_ hexString: String) throws -> Data {
15
+ guard !hexString.isEmpty, hexString.count % 2 == 0 else {
16
+ throw CustomError.tokenInvalid
17
+ }
18
+ var data = Data(capacity: hexString.count / 2)
19
+ var index = hexString.startIndex
20
+ while index < hexString.endIndex {
21
+ let nextIndex = hexString.index(index, offsetBy: 2)
22
+ guard let byte = UInt8(hexString[index..<nextIndex], radix: 16) else {
23
+ throw CustomError.tokenInvalid
24
+ }
25
+ data.append(byte)
26
+ index = nextIndex
27
+ }
28
+ return data
29
+ }
30
+ }
@@ -0,0 +1,20 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class SetGlobalPropertyOptions: NSObject {
5
+ let key: String
6
+ let overrideExisting: Bool
7
+ let value: String
8
+
9
+ init(_ call: CAPPluginCall) throws {
10
+ guard let key = call.getString("key") else {
11
+ throw CustomError.keyMissing
12
+ }
13
+ guard let value = call.getString("value") else {
14
+ throw CustomError.valueMissing
15
+ }
16
+ self.key = key
17
+ self.value = value
18
+ self.overrideExisting = call.getBool("overrideExisting", true)
19
+ }
20
+ }
@@ -0,0 +1,13 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class SetLimitAdvertisingIdentifiersOptions: NSObject {
5
+ let limit: Bool
6
+
7
+ init(_ call: CAPPluginCall) throws {
8
+ guard let limit = call.getBool("limit") else {
9
+ throw CustomError.limitMissing
10
+ }
11
+ self.limit = limit
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class SetLimitDataSharingOptions: NSObject {
5
+ let limit: Bool
6
+
7
+ init(_ call: CAPPluginCall) throws {
8
+ guard let limit = call.getBool("limit") else {
9
+ throw CustomError.limitMissing
10
+ }
11
+ self.limit = limit
12
+ }
13
+ }
@@ -0,0 +1,27 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class SkanUpdateConversionValueOptions: NSObject {
5
+ let coarseValue: SkanCoarseConversionValue?
6
+ let lockWindow: Bool?
7
+ let value: Int
8
+
9
+ init(_ call: CAPPluginCall) throws {
10
+ guard let value = call.getInt("value") else {
11
+ throw CustomError.valueMissing
12
+ }
13
+ self.value = value
14
+ self.coarseValue = try SkanUpdateConversionValueOptions.createCoarseValueFromCall(call)
15
+ self.lockWindow = call.getBool("lockWindow")
16
+ }
17
+
18
+ private static func createCoarseValueFromCall(_ call: CAPPluginCall) throws -> SkanCoarseConversionValue? {
19
+ guard let coarseValue = call.getString("coarseValue") else {
20
+ return nil
21
+ }
22
+ guard let value = SkanCoarseConversionValue(rawValue: coarseValue) else {
23
+ throw CustomError.coarseValueInvalid
24
+ }
25
+ return value
26
+ }
27
+ }
@@ -0,0 +1,47 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class TrackAdRevenueOptions: NSObject {
5
+ let adGroupId: String?
6
+ let adGroupName: String?
7
+ let adGroupPriority: String?
8
+ let adGroupType: String?
9
+ let adPlacementName: String?
10
+ let adPlatform: String
11
+ let adType: String?
12
+ let adUnitId: String?
13
+ let adUnitName: String?
14
+ let currency: String
15
+ let impressionId: String?
16
+ let networkName: String?
17
+ let placementId: String?
18
+ let precision: String?
19
+ let revenue: Double
20
+
21
+ init(_ call: CAPPluginCall) throws {
22
+ guard let adPlatform = call.getString("adPlatform") else {
23
+ throw CustomError.adPlatformMissing
24
+ }
25
+ guard let currency = call.getString("currency") else {
26
+ throw CustomError.currencyMissing
27
+ }
28
+ guard let revenue = call.getDouble("revenue") else {
29
+ throw CustomError.revenueMissing
30
+ }
31
+ self.adPlatform = adPlatform
32
+ self.currency = currency
33
+ self.revenue = revenue
34
+ self.adGroupId = call.getString("adGroupId")
35
+ self.adGroupName = call.getString("adGroupName")
36
+ self.adGroupPriority = call.getString("adGroupPriority")
37
+ self.adGroupType = call.getString("adGroupType")
38
+ self.adPlacementName = call.getString("adPlacementName")
39
+ self.adType = call.getString("adType")
40
+ self.adUnitId = call.getString("adUnitId")
41
+ self.adUnitName = call.getString("adUnitName")
42
+ self.impressionId = call.getString("impressionId")
43
+ self.networkName = call.getString("networkName")
44
+ self.placementId = call.getString("placementId")
45
+ self.precision = call.getString("precision")
46
+ }
47
+ }
@@ -0,0 +1,15 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class TrackEventOptions: NSObject {
5
+ let attributes: [String: Any]?
6
+ let name: String
7
+
8
+ init(_ call: CAPPluginCall) throws {
9
+ guard let name = call.getString("name") else {
10
+ throw CustomError.nameMissing
11
+ }
12
+ self.name = name
13
+ self.attributes = SingularHelper.createHashMapFromJSObject(call.getObject("attributes"))
14
+ }
15
+ }
@@ -0,0 +1,22 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class TrackRevenueOptions: NSObject {
5
+ let amount: Double
6
+ let attributes: [String: Any]?
7
+ let currency: String
8
+ let eventName: String?
9
+
10
+ init(_ call: CAPPluginCall) throws {
11
+ guard let amount = call.getDouble("amount") else {
12
+ throw CustomError.amountMissing
13
+ }
14
+ guard let currency = call.getString("currency") else {
15
+ throw CustomError.currencyMissing
16
+ }
17
+ self.amount = amount
18
+ self.currency = currency
19
+ self.attributes = SingularHelper.createHashMapFromJSObject(call.getObject("attributes"))
20
+ self.eventName = call.getString("eventName")
21
+ }
22
+ }
@@ -0,0 +1,13 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class UnsetGlobalPropertyOptions: NSObject {
5
+ let key: String
6
+
7
+ init(_ call: CAPPluginCall) throws {
8
+ guard let key = call.getString("key") else {
9
+ throw CustomError.keyMissing
10
+ }
11
+ self.key = key
12
+ }
13
+ }
@@ -0,0 +1,16 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class CreateReferrerShortLinkResult: NSObject, Result {
5
+ private let link: String
6
+
7
+ init(link: String) {
8
+ self.link = link
9
+ }
10
+
11
+ @objc public func toJSObject() -> AnyObject {
12
+ var result = JSObject()
13
+ result["link"] = link
14
+ return result as AnyObject
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class GetGlobalPropertiesResult: NSObject, Result {
5
+ private let properties: [AnyHashable: Any]?
6
+
7
+ init(properties: [AnyHashable: Any]?) {
8
+ self.properties = properties
9
+ }
10
+
11
+ @objc public func toJSObject() -> AnyObject {
12
+ var result = JSObject()
13
+ result["properties"] = SingularHelper.createStringJSObjectFromHashMap(properties)
14
+ return result as AnyObject
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class GetLimitDataSharingResult: NSObject, Result {
5
+ private let limit: Bool
6
+
7
+ init(limit: Bool) {
8
+ self.limit = limit
9
+ }
10
+
11
+ @objc public func toJSObject() -> AnyObject {
12
+ var result = JSObject()
13
+ result["limit"] = limit
14
+ return result as AnyObject
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class IsAllTrackingStoppedResult: NSObject, Result {
5
+ private let stopped: Bool
6
+
7
+ init(stopped: Bool) {
8
+ self.stopped = stopped
9
+ }
10
+
11
+ @objc public func toJSObject() -> AnyObject {
12
+ var result = JSObject()
13
+ result["stopped"] = stopped
14
+ return result as AnyObject
15
+ }
16
+ }
@@ -0,0 +1,20 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public class SkanGetConversionValueResult: NSObject, Result {
5
+ private let value: NSNumber?
6
+
7
+ init(value: NSNumber?) {
8
+ self.value = value
9
+ }
10
+
11
+ @objc public func toJSObject() -> AnyObject {
12
+ var result = JSObject()
13
+ if let value = value {
14
+ result["value"] = value.intValue
15
+ } else {
16
+ result["value"] = NSNull()
17
+ }
18
+ return result as AnyObject
19
+ }
20
+ }
@@ -0,0 +1,88 @@
1
+ import Foundation
2
+
3
+ public enum CustomError: Error {
4
+ case adPlatformMissing
5
+ case amountMissing
6
+ case apiKeyMissing
7
+ case baseLinkMissing
8
+ case coarseValueInvalid
9
+ case conversionValueNotUpdated
10
+ case currencyMissing
11
+ case customUserIdMissing
12
+ case globalPropertyNotSet
13
+ case initializationFailed
14
+ case keyMissing
15
+ case limitMissing
16
+ case nameMissing
17
+ case notInitialized
18
+ case referrerIdMissing
19
+ case referrerNameMissing
20
+ case revenueMissing
21
+ case secretMissing
22
+ case shortLinkNotCreated
23
+ case tokenInvalid
24
+ case tokenMissing
25
+ case valueMissing
26
+
27
+ public var code: String? {
28
+ switch self {
29
+ case .initializationFailed:
30
+ return "INITIALIZATION_FAILED"
31
+ case .notInitialized:
32
+ return "NOT_INITIALIZED"
33
+ default:
34
+ return nil
35
+ }
36
+ }
37
+ }
38
+
39
+ extension CustomError: LocalizedError {
40
+ public var errorDescription: String? {
41
+ switch self {
42
+ case .adPlatformMissing:
43
+ return NSLocalizedString("adPlatform must be provided.", comment: "adPlatformMissing")
44
+ case .amountMissing:
45
+ return NSLocalizedString("amount must be provided.", comment: "amountMissing")
46
+ case .apiKeyMissing:
47
+ return NSLocalizedString("apiKey must be provided.", comment: "apiKeyMissing")
48
+ case .baseLinkMissing:
49
+ return NSLocalizedString("baseLink must be provided.", comment: "baseLinkMissing")
50
+ case .coarseValueInvalid:
51
+ return NSLocalizedString("coarseValue is invalid.", comment: "coarseValueInvalid")
52
+ case .conversionValueNotUpdated:
53
+ return NSLocalizedString("The conversion value could not be updated.", comment: "conversionValueNotUpdated")
54
+ case .currencyMissing:
55
+ return NSLocalizedString("currency must be provided.", comment: "currencyMissing")
56
+ case .customUserIdMissing:
57
+ return NSLocalizedString("customUserId must be provided.", comment: "customUserIdMissing")
58
+ case .globalPropertyNotSet:
59
+ return NSLocalizedString("The global property could not be set.", comment: "globalPropertyNotSet")
60
+ case .initializationFailed:
61
+ return NSLocalizedString("The SDK could not be initialized.", comment: "initializationFailed")
62
+ case .keyMissing:
63
+ return NSLocalizedString("key must be provided.", comment: "keyMissing")
64
+ case .limitMissing:
65
+ return NSLocalizedString("limit must be provided.", comment: "limitMissing")
66
+ case .nameMissing:
67
+ return NSLocalizedString("name must be provided.", comment: "nameMissing")
68
+ case .notInitialized:
69
+ return NSLocalizedString("The plugin has not been initialized yet.", comment: "notInitialized")
70
+ case .referrerIdMissing:
71
+ return NSLocalizedString("referrerId must be provided.", comment: "referrerIdMissing")
72
+ case .referrerNameMissing:
73
+ return NSLocalizedString("referrerName must be provided.", comment: "referrerNameMissing")
74
+ case .revenueMissing:
75
+ return NSLocalizedString("revenue must be provided.", comment: "revenueMissing")
76
+ case .secretMissing:
77
+ return NSLocalizedString("secret must be provided.", comment: "secretMissing")
78
+ case .shortLinkNotCreated:
79
+ return NSLocalizedString("The short link could not be created.", comment: "shortLinkNotCreated")
80
+ case .tokenInvalid:
81
+ return NSLocalizedString("token must be a hex-encoded string.", comment: "tokenInvalid")
82
+ case .tokenMissing:
83
+ return NSLocalizedString("token must be provided.", comment: "tokenMissing")
84
+ case .valueMissing:
85
+ return NSLocalizedString("value must be provided.", comment: "valueMissing")
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,31 @@
1
+ import Foundation
2
+
3
+ public enum SkanCoarseConversionValue: String {
4
+ case high = "HIGH"
5
+ case low = "LOW"
6
+ case medium = "MEDIUM"
7
+
8
+ public init?(skanValue: Int) {
9
+ switch skanValue {
10
+ case 0:
11
+ self = .low
12
+ case 1:
13
+ self = .medium
14
+ case 2:
15
+ self = .high
16
+ default:
17
+ return nil
18
+ }
19
+ }
20
+
21
+ public var skanValue: Int {
22
+ switch self {
23
+ case .high:
24
+ return 2
25
+ case .low:
26
+ return 0
27
+ case .medium:
28
+ return 1
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string>$(EXECUTABLE_NAME)</string>
9
+ <key>CFBundleIdentifier</key>
10
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11
+ <key>CFBundleInfoDictionaryVersion</key>
12
+ <string>6.0</string>
13
+ <key>CFBundleName</key>
14
+ <string>$(PRODUCT_NAME)</string>
15
+ <key>CFBundlePackageType</key>
16
+ <string>FMWK</string>
17
+ <key>CFBundleShortVersionString</key>
18
+ <string>1.0</string>
19
+ <key>CFBundleVersion</key>
20
+ <string>$(CURRENT_PROJECT_VERSION)</string>
21
+ <key>NSPrincipalClass</key>
22
+ <string></string>
23
+ </dict>
24
+ </plist>
@@ -0,0 +1,6 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc public protocol Result {
5
+ @objc func toJSObject() -> AnyObject
6
+ }