react-native-sdk-pianoio 0.3.0 → 0.3.2
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.
- package/README.md +3 -3
- package/SdkPianoio.podspec +4 -16
- package/android/build.gradle +12 -19
- package/android/gradle.properties +17 -2
- package/android/src/main/java/com/sdkpianoio/SdkPianoioModule.kt +543 -7
- package/android/src/main/java/com/sdkpianoio/SdkPianoioPackage.kt +3 -3
- package/ios/ComposerPianoImpl.swift +247 -0
- package/ios/MyComposerDelegate.swift +79 -206
- package/ios/SdkPianoio.swift +150 -0
- package/ios/SdkPianoioBridge.m +81 -0
- package/ios/services/TokenService.swift +10 -7
- package/lib/commonjs/NativeSdkPianoio.ts +20 -22
- package/lib/commonjs/PianoComposer.js +36 -97
- package/lib/commonjs/PianoComposer.js.map +1 -1
- package/lib/commonjs/debug.js +23 -0
- package/lib/commonjs/debug.js.map +1 -0
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeSdkPianoio.ts +20 -22
- package/lib/module/PianoComposer.js +36 -97
- package/lib/module/PianoComposer.js.map +1 -1
- package/lib/module/debug.js +18 -0
- package/lib/module/debug.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts +9 -20
- package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/PianoComposer.d.ts +25 -28
- package/lib/typescript/commonjs/src/PianoComposer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/debug.d.ts +2 -0
- package/lib/typescript/commonjs/src/debug.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +1 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/NativeSdkPianoio.d.ts +9 -20
- package/lib/typescript/module/src/NativeSdkPianoio.d.ts.map +1 -1
- package/lib/typescript/module/src/PianoComposer.d.ts +25 -28
- package/lib/typescript/module/src/PianoComposer.d.ts.map +1 -1
- package/lib/typescript/module/src/debug.d.ts +2 -0
- package/lib/typescript/module/src/debug.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +1 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/package.json +30 -15
- package/src/NativeSdkPianoio.ts +20 -22
- package/src/PianoComposer.tsx +36 -116
- package/src/debug.ts +19 -0
- package/src/index.tsx +1 -0
- package/ios/ComposerPiano.swift +0 -304
- package/ios/SdkPianoio.h +0 -4
- package/ios/SdkPianoio.mm +0 -283
- package/ios/services/ComposerService.swift +0 -49
@@ -0,0 +1,150 @@
|
|
1
|
+
import Foundation
|
2
|
+
import React
|
3
|
+
import PianoComposer
|
4
|
+
import PianoOAuth
|
5
|
+
|
6
|
+
@objc(SdkPianoio)
|
7
|
+
class SdkPianoio: NSObject {
|
8
|
+
private var moduleImpl: ComposerPianoImpl?
|
9
|
+
|
10
|
+
override init() {
|
11
|
+
super.init()
|
12
|
+
self.moduleImpl = ComposerPianoImpl()
|
13
|
+
}
|
14
|
+
|
15
|
+
@objc
|
16
|
+
static func requiresMainQueueSetup() -> Bool {
|
17
|
+
return false
|
18
|
+
}
|
19
|
+
|
20
|
+
@objc(initializeComposer:resolver:rejecter:)
|
21
|
+
func initializeComposer(aid: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
22
|
+
moduleImpl?.initializeComposer(aid)
|
23
|
+
resolver(true)
|
24
|
+
}
|
25
|
+
|
26
|
+
@objc(getComposer:rejecter:)
|
27
|
+
func getComposer(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
28
|
+
guard let moduleImpl = moduleImpl else {
|
29
|
+
rejecter("composer_error", "Composer not initialized", nil)
|
30
|
+
return
|
31
|
+
}
|
32
|
+
|
33
|
+
let composer = moduleImpl.getComposer()
|
34
|
+
if composer != nil {
|
35
|
+
let response: [String: Any] = [
|
36
|
+
"aid": moduleImpl.getAid(),
|
37
|
+
"tags": moduleImpl.getTags(),
|
38
|
+
"zoneId": moduleImpl.getZoneId(),
|
39
|
+
"referrer": moduleImpl.getReferrer(),
|
40
|
+
"url": moduleImpl.getUrl(),
|
41
|
+
"userToken": moduleImpl.getUserToken()
|
42
|
+
]
|
43
|
+
resolver(response)
|
44
|
+
} else {
|
45
|
+
rejecter("composer_error", "Cannot get composer", nil)
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
@objc(addComposerTag:resolver:rejecter:)
|
50
|
+
func addComposerTag(tag: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
51
|
+
moduleImpl?.addTag(tag)
|
52
|
+
resolver(nil)
|
53
|
+
}
|
54
|
+
|
55
|
+
@objc(addComposerTags:resolver:rejecter:)
|
56
|
+
func addComposerTags(tags: [String], resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
57
|
+
moduleImpl?.addTags(tags)
|
58
|
+
resolver(nil)
|
59
|
+
}
|
60
|
+
|
61
|
+
@objc(setComposerCustomVariable:value:resolver:rejecter:)
|
62
|
+
func setComposerCustomVariable(name: String, value: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
63
|
+
moduleImpl?.setCustomVariable(name, value: value)
|
64
|
+
resolver(nil)
|
65
|
+
}
|
66
|
+
|
67
|
+
@objc(setComposerReferrer:resolver:rejecter:)
|
68
|
+
func setComposerReferrer(referrer: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
69
|
+
moduleImpl?.setReferrer(referrer)
|
70
|
+
resolver(nil)
|
71
|
+
}
|
72
|
+
|
73
|
+
@objc(setComposerUrl:resolver:rejecter:)
|
74
|
+
func setComposerUrl(url: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
75
|
+
moduleImpl?.setUrl(url)
|
76
|
+
resolver(nil)
|
77
|
+
}
|
78
|
+
|
79
|
+
@objc(setComposerUserToken:resolver:rejecter:)
|
80
|
+
func setComposerUserToken(token: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
81
|
+
moduleImpl?.setUserToken(token)
|
82
|
+
resolver(nil)
|
83
|
+
}
|
84
|
+
|
85
|
+
@objc(setComposerZoneId:resolver:rejecter:)
|
86
|
+
func setComposerZoneId(zoneId: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
87
|
+
moduleImpl?.setZoneId(zoneId)
|
88
|
+
resolver(nil)
|
89
|
+
}
|
90
|
+
|
91
|
+
@objc(executeExperience:rejecter:)
|
92
|
+
func executeExperience(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
93
|
+
moduleImpl?.executeExperience(resolver: resolver, rejecter: rejecter)
|
94
|
+
}
|
95
|
+
|
96
|
+
@objc(executeComposer:rejecter:)
|
97
|
+
func executeComposer(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
98
|
+
moduleImpl?.executeComposerWithResolver(resolver: resolver, rejecter: rejecter)
|
99
|
+
}
|
100
|
+
|
101
|
+
@objc(showLogin:rejecter:)
|
102
|
+
func showLogin(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
103
|
+
moduleImpl?.showLoginWithResolver(resolver: resolver, rejecter: rejecter)
|
104
|
+
}
|
105
|
+
|
106
|
+
@objc(showTemplate:rejecter:)
|
107
|
+
func showTemplate(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
108
|
+
moduleImpl?.showTemplateWithResolver(resolver: resolver, rejecter: rejecter)
|
109
|
+
}
|
110
|
+
|
111
|
+
@objc(showForm:rejecter:)
|
112
|
+
func showForm(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
113
|
+
moduleImpl?.showFormWithResolver(resolver: resolver, rejecter: rejecter)
|
114
|
+
}
|
115
|
+
|
116
|
+
@objc(showRecommendations:rejecter:)
|
117
|
+
func showRecommendations(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
118
|
+
moduleImpl?.showRecommendationsWithResolver(resolver: resolver, rejecter: rejecter)
|
119
|
+
}
|
120
|
+
|
121
|
+
@objc(nonSite:rejecter:)
|
122
|
+
func nonSite(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
123
|
+
moduleImpl?.nonSiteWithResolver(resolver: resolver, rejecter: rejecter)
|
124
|
+
}
|
125
|
+
|
126
|
+
@objc(userSegmentTrue:rejecter:)
|
127
|
+
func userSegmentTrue(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
128
|
+
moduleImpl?.userSegmentTrueWithResolver(resolver: resolver, rejecter: rejecter)
|
129
|
+
}
|
130
|
+
|
131
|
+
@objc(userSegmentFalse:rejecter:)
|
132
|
+
func userSegmentFalse(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
133
|
+
moduleImpl?.userSegmentFalseWithResolver(resolver: resolver, rejecter: rejecter)
|
134
|
+
}
|
135
|
+
|
136
|
+
@objc(meterActive:rejecter:)
|
137
|
+
func meterActive(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
138
|
+
moduleImpl?.meterActiveWithResolver(resolver: resolver, rejecter: rejecter)
|
139
|
+
}
|
140
|
+
|
141
|
+
@objc(meterExpired:rejecter:)
|
142
|
+
func meterExpired(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
143
|
+
moduleImpl?.meterExpiredWithResolver(resolver: resolver, rejecter: rejecter)
|
144
|
+
}
|
145
|
+
|
146
|
+
@objc(composerExecutionCompleted:rejecter:)
|
147
|
+
func composerExecutionCompleted(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
148
|
+
moduleImpl?.composerExecutionCompletedWithResolver(resolver: resolver, rejecter: rejecter)
|
149
|
+
}
|
150
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
#import <React/RCTBridgeModule.h>
|
2
|
+
|
3
|
+
// Questa macro registra la sua classe Swift 'SdkPianoio' con il bridge di React Native.
|
4
|
+
@interface RCT_EXTERN_MODULE(SdkPianoio, NSObject)
|
5
|
+
|
6
|
+
// Ora, esponiamo ogni metodo dalla sua classe Swift che vogliamo chiamare da JavaScript.
|
7
|
+
// Le annotazioni @objc(...) nel suo file Swift definiscono queste esatte firme.
|
8
|
+
|
9
|
+
RCT_EXTERN_METHOD(initializeComposer:(NSString *)aid
|
10
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
11
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
12
|
+
|
13
|
+
RCT_EXTERN_METHOD(getComposer:(RCTPromiseResolveBlock)resolve
|
14
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
15
|
+
|
16
|
+
RCT_EXTERN_METHOD(addComposerTag:(NSString *)tag
|
17
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
18
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
19
|
+
|
20
|
+
RCT_EXTERN_METHOD(addComposerTags:(NSArray<NSString *> *)tags
|
21
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
22
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
23
|
+
|
24
|
+
RCT_EXTERN_METHOD(setComposerCustomVariable:(NSString *)name
|
25
|
+
value:(NSString *)value
|
26
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
27
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
28
|
+
|
29
|
+
RCT_EXTERN_METHOD(setComposerReferrer:(NSString *)referrer
|
30
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
31
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
32
|
+
|
33
|
+
RCT_EXTERN_METHOD(setComposerUrl:(NSString *)url
|
34
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
35
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
36
|
+
|
37
|
+
RCT_EXTERN_METHOD(setComposerUserToken:(NSString *)token
|
38
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
39
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
40
|
+
|
41
|
+
RCT_EXTERN_METHOD(setComposerZoneId:(NSString *)zoneId
|
42
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
43
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
44
|
+
|
45
|
+
RCT_EXTERN_METHOD(executeExperience:(RCTPromiseResolveBlock)resolve
|
46
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
47
|
+
|
48
|
+
RCT_EXTERN_METHOD(executeComposer:(RCTPromiseResolveBlock)resolve
|
49
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
50
|
+
|
51
|
+
RCT_EXTERN_METHOD(showLogin:(RCTPromiseResolveBlock)resolve
|
52
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
53
|
+
|
54
|
+
RCT_EXTERN_METHOD(showTemplate:(RCTPromiseResolveBlock)resolve
|
55
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
56
|
+
|
57
|
+
RCT_EXTERN_METHOD(showForm:(RCTPromiseResolveBlock)resolve
|
58
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
59
|
+
|
60
|
+
RCT_EXTERN_METHOD(showRecommendations:(RCTPromiseResolveBlock)resolve
|
61
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
62
|
+
|
63
|
+
RCT_EXTERN_METHOD(nonSite:(RCTPromiseResolveBlock)resolve
|
64
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
65
|
+
|
66
|
+
RCT_EXTERN_METHOD(userSegmentTrue:(RCTPromiseResolveBlock)resolve
|
67
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
68
|
+
|
69
|
+
RCT_EXTERN_METHOD(userSegmentFalse:(RCTPromiseResolveBlock)resolve
|
70
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
71
|
+
|
72
|
+
RCT_EXTERN_METHOD(meterActive:(RCTPromiseResolveBlock)resolve
|
73
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
74
|
+
|
75
|
+
RCT_EXTERN_METHOD(meterExpired:(RCTPromiseResolveBlock)resolve
|
76
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
77
|
+
|
78
|
+
RCT_EXTERN_METHOD(composerExecutionCompleted:(RCTPromiseResolveBlock)resolve
|
79
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
80
|
+
|
81
|
+
@end
|
@@ -7,21 +7,24 @@
|
|
7
7
|
|
8
8
|
import PianoOAuth
|
9
9
|
|
10
|
-
class TokenService:
|
10
|
+
public class TokenService: NSObject, PianoIDDelegate {
|
11
11
|
|
12
12
|
@Published private(set) var initialized = false
|
13
13
|
@Published private(set) var token: PianoIDToken?
|
14
14
|
|
15
|
-
init() {
|
15
|
+
public override init() {
|
16
16
|
/// Set Piano ID settings
|
17
17
|
PianoID.shared.endpoint = PianoEndpoint.sandbox
|
18
18
|
PianoID.shared.aid = ComposerPianoImpl.aid
|
19
|
+
|
20
|
+
super.init()
|
21
|
+
|
19
22
|
PianoID.shared.delegate = self
|
20
23
|
|
21
24
|
token = PianoID.shared.currentToken
|
22
|
-
request { _ in
|
25
|
+
request { [weak self] _ in
|
23
26
|
DispatchQueue.main.async {
|
24
|
-
self
|
27
|
+
self?.initialized = true
|
25
28
|
}
|
26
29
|
}
|
27
30
|
}
|
@@ -48,7 +51,7 @@ class TokenService: ObservableObject, PianoIDDelegate {
|
|
48
51
|
}
|
49
52
|
|
50
53
|
/// Sign In callback
|
51
|
-
func signIn(result: PianoIDSignInResult!, withError error: Error!) {
|
54
|
+
public func signIn(result: PianoIDSignInResult!, withError error: Error!) {
|
52
55
|
if let r = result {
|
53
56
|
token = r.token
|
54
57
|
} else {
|
@@ -57,11 +60,11 @@ class TokenService: ObservableObject, PianoIDDelegate {
|
|
57
60
|
}
|
58
61
|
|
59
62
|
/// Sign Out callback
|
60
|
-
func signOut(withError error: Error!) {
|
63
|
+
public func signOut(withError error: Error!) {
|
61
64
|
token = nil
|
62
65
|
}
|
63
66
|
|
64
67
|
/// Cancel callback
|
65
|
-
func cancel() {
|
68
|
+
public func cancel() {
|
66
69
|
}
|
67
70
|
}
|
@@ -1,28 +1,26 @@
|
|
1
|
-
import { NativeModules } from 'react-native';
|
1
|
+
import { NativeModules, Platform } from 'react-native';
|
2
2
|
|
3
3
|
interface SdkPianoioType {
|
4
|
-
initializeComposer(aid: string): Promise<
|
4
|
+
initializeComposer(aid: string): Promise<boolean>;
|
5
|
+
executeExperience(): Promise<any>;
|
5
6
|
getComposer(): Promise<any>;
|
6
|
-
addComposerTag(tag: string): Promise<any>;
|
7
|
-
addComposerTags(tags: string[]): Promise<any>;
|
8
|
-
setComposerZoneId(zoneId: string): Promise<any>;
|
9
|
-
setComposerReferrer(referrer: string): Promise<any>;
|
10
|
-
setComposerUrl(url: string): Promise<any>;
|
11
|
-
setComposerCustomVariable(name: string, value: string): Promise<any>;
|
12
|
-
setComposerUserToken(token: string): Promise<any>;
|
13
|
-
executeComposer(): Promise<void>;
|
14
7
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
userSegmentFalse(): Promise<boolean>;
|
23
|
-
meterActive(): Promise<boolean>;
|
24
|
-
meterExpired(): Promise<boolean>;
|
25
|
-
composerExecutionCompleted(): Promise<boolean>;
|
8
|
+
addComposerTag(tag: string): Promise<void>;
|
9
|
+
addComposerTags(tags: string[]): Promise<void>;
|
10
|
+
setComposerZoneId(zoneId: string): Promise<void>;
|
11
|
+
setComposerReferrer(referrer: string): Promise<void>;
|
12
|
+
setComposerUrl(url: string): Promise<void>;
|
13
|
+
setComposerCustomVariable(name: string, value: string): Promise<void>;
|
14
|
+
setComposerUserToken(token: string): Promise<void>;
|
26
15
|
}
|
27
16
|
|
28
|
-
|
17
|
+
const SdkPianoio = NativeModules.SdkPianoio;
|
18
|
+
|
19
|
+
if (!SdkPianoio) {
|
20
|
+
throw new Error(
|
21
|
+
`react-native-sdk-pianoio: Native module 'SdkPianoio' is not available on ${Platform.OS}. ` +
|
22
|
+
'Make sure you have properly linked the library and rebuilt your app.'
|
23
|
+
);
|
24
|
+
}
|
25
|
+
|
26
|
+
export default SdkPianoio as SdkPianoioType;
|
@@ -7,135 +7,75 @@ exports.default = void 0;
|
|
7
7
|
var _NativeSdkPianoio = _interopRequireDefault(require("./NativeSdkPianoio"));
|
8
8
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
9
9
|
class PianoComposer {
|
10
|
+
// --- Properties to hold configuration state ---
|
11
|
+
|
10
12
|
tags = [];
|
11
13
|
zoneId = null;
|
12
14
|
referrer = null;
|
13
15
|
customVariables = {};
|
14
16
|
userToken = null;
|
15
17
|
url = null;
|
18
|
+
|
19
|
+
// The constructor is private to force users to use the async `create` method.
|
16
20
|
constructor(aid) {
|
17
21
|
this.aid = aid;
|
18
22
|
}
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Creates and initializes a new PianoComposer instance.
|
26
|
+
* This is the entry point for using the library.
|
27
|
+
* @param aid Your Application ID from Piano.io
|
28
|
+
*/
|
19
29
|
static async create(aid) {
|
20
30
|
await _NativeSdkPianoio.default.initializeComposer(aid);
|
21
31
|
return new PianoComposer(aid);
|
22
32
|
}
|
33
|
+
|
34
|
+
// --- Configuration Methods ---
|
35
|
+
|
23
36
|
async addTag(tag) {
|
24
|
-
this.tags.push(tag);
|
37
|
+
this.tags.push(tag); // Store state locally
|
25
38
|
return _NativeSdkPianoio.default.addComposerTag(tag);
|
26
39
|
}
|
27
40
|
async addTags(tags) {
|
28
|
-
this.tags.push(...tags);
|
41
|
+
this.tags.push(...tags); // Store state locally
|
29
42
|
return _NativeSdkPianoio.default.addComposerTags(tags);
|
30
43
|
}
|
31
44
|
async setZoneId(zoneId) {
|
32
|
-
this.zoneId = zoneId;
|
45
|
+
this.zoneId = zoneId; // Store state locally
|
33
46
|
return _NativeSdkPianoio.default.setComposerZoneId(zoneId);
|
34
47
|
}
|
35
48
|
async setReferrer(referrer) {
|
36
|
-
this.referrer = referrer;
|
49
|
+
this.referrer = referrer; // Store state locally
|
37
50
|
return _NativeSdkPianoio.default.setComposerReferrer(referrer);
|
38
51
|
}
|
39
52
|
async setCustomVariable(name, value) {
|
40
|
-
this.customVariables[name] = value;
|
53
|
+
this.customVariables[name] = value; // Store state locally
|
41
54
|
return _NativeSdkPianoio.default.setComposerCustomVariable(name, value);
|
42
55
|
}
|
43
56
|
async setUserToken(token) {
|
44
|
-
this.userToken = token;
|
57
|
+
this.userToken = token; // Store state locally
|
45
58
|
return _NativeSdkPianoio.default.setComposerUserToken(token);
|
46
59
|
}
|
47
60
|
async setUrl(url) {
|
48
|
-
this.url = url;
|
61
|
+
this.url = url; // Store state locally
|
49
62
|
return _NativeSdkPianoio.default.setComposerUrl(url);
|
50
63
|
}
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
}
|
63
|
-
async composerExecutionCompleted() {
|
64
|
-
try {
|
65
|
-
let r = await _NativeSdkPianoio.default.composerExecutionCompleted();
|
66
|
-
console.log('composerExecutionCompleted triggered');
|
67
|
-
console.log('Composer execution completed:', r);
|
68
|
-
} catch (e) {
|
69
|
-
console.error('Errore nel composerExecutionCompleted:', e);
|
70
|
-
}
|
71
|
-
}
|
72
|
-
async showForm() {
|
73
|
-
return _NativeSdkPianoio.default.showForm();
|
74
|
-
}
|
75
|
-
async showLogin() {
|
76
|
-
try {
|
77
|
-
await _NativeSdkPianoio.default.showLogin();
|
78
|
-
console.log('Login triggered');
|
79
|
-
} catch (e) {
|
80
|
-
console.error('Errore nel login:', e);
|
81
|
-
}
|
82
|
-
}
|
83
|
-
async showTemplate() {
|
84
|
-
try {
|
85
|
-
await _NativeSdkPianoio.default.showTemplate();
|
86
|
-
console.log('Template triggered');
|
87
|
-
} catch (e) {
|
88
|
-
console.error('Errore nel Template:', e);
|
89
|
-
}
|
90
|
-
}
|
91
|
-
async showRecommendations() {
|
92
|
-
try {
|
93
|
-
await _NativeSdkPianoio.default.showRecommendations();
|
94
|
-
console.log('showRecommendations triggered');
|
95
|
-
} catch (e) {
|
96
|
-
console.error('Errore nel Template:', e);
|
97
|
-
}
|
98
|
-
}
|
99
|
-
async nonSite() {
|
100
|
-
try {
|
101
|
-
await _NativeSdkPianoio.default.nonSite();
|
102
|
-
console.log('nonSite triggered');
|
103
|
-
} catch (e) {
|
104
|
-
console.error('Errore nel Template:', e);
|
105
|
-
}
|
106
|
-
}
|
107
|
-
async userSegmentTrue() {
|
108
|
-
try {
|
109
|
-
await _NativeSdkPianoio.default.userSegmentTrue();
|
110
|
-
console.log('userSegmentTrue triggered');
|
111
|
-
} catch (e) {
|
112
|
-
console.error('Errore nel userSegmentTrue:', e);
|
113
|
-
}
|
114
|
-
}
|
115
|
-
async userSegmentFalse() {
|
116
|
-
try {
|
117
|
-
await _NativeSdkPianoio.default.userSegmentFalse();
|
118
|
-
console.log('userSegmentFalse triggered');
|
119
|
-
} catch (e) {
|
120
|
-
console.error('Errore nel userSegmentFalse:', e);
|
121
|
-
}
|
122
|
-
}
|
123
|
-
async meterActive() {
|
124
|
-
try {
|
125
|
-
await _NativeSdkPianoio.default.meterActive();
|
126
|
-
console.log('Template meterActive');
|
127
|
-
} catch (e) {
|
128
|
-
console.error('Errore nel meterActive:', e);
|
129
|
-
}
|
130
|
-
}
|
131
|
-
async meterExpired() {
|
132
|
-
try {
|
133
|
-
await _NativeSdkPianoio.default.meterExpired();
|
134
|
-
console.log('meterExpired triggered');
|
135
|
-
} catch (e) {
|
136
|
-
console.error('Errore nel meterExpired:', e);
|
137
|
-
}
|
64
|
+
|
65
|
+
// --- Core Execution Method ---
|
66
|
+
|
67
|
+
/**
|
68
|
+
* Executes the Piano experience with the current configuration.
|
69
|
+
* This is the primary method to get a decision from the Piano backend.
|
70
|
+
* @returns A promise that resolves with the event data object from the native SDK.
|
71
|
+
*/
|
72
|
+
async executeExperience() {
|
73
|
+
// This now correctly calls the native method AND returns the result.
|
74
|
+
return _NativeSdkPianoio.default.executeExperience();
|
138
75
|
}
|
76
|
+
|
77
|
+
// --- Static Helper Methods ---
|
78
|
+
|
139
79
|
static async isInitialized() {
|
140
80
|
try {
|
141
81
|
const result = await _NativeSdkPianoio.default.getComposer();
|
@@ -145,13 +85,12 @@ class PianoComposer {
|
|
145
85
|
}
|
146
86
|
}
|
147
87
|
static async getComposerFromSdkIOS() {
|
148
|
-
|
149
|
-
return result;
|
88
|
+
return _NativeSdkPianoio.default.getComposer();
|
150
89
|
}
|
151
90
|
async toString() {
|
152
91
|
return `PianoComposer {
|
153
92
|
aid: ${this.aid},
|
154
|
-
tags: ${this.tags},
|
93
|
+
tags: ${this.tags.join(',')},
|
155
94
|
zoneId: ${this.zoneId},
|
156
95
|
referrer: ${this.referrer},
|
157
96
|
customVariables: ${JSON.stringify(this.customVariables)},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_NativeSdkPianoio","_interopRequireDefault","require","e","__esModule","default","PianoComposer","tags","zoneId","referrer","customVariables","userToken","url","constructor","aid","create","SdkPianoio","initializeComposer","addTag","tag","push","addComposerTag","addTags","addComposerTags","setZoneId","setComposerZoneId","setReferrer","setComposerReferrer","setCustomVariable","name","value","setComposerCustomVariable","setUserToken","token","setComposerUserToken","setUrl","setComposerUrl","
|
1
|
+
{"version":3,"names":["_NativeSdkPianoio","_interopRequireDefault","require","e","__esModule","default","PianoComposer","tags","zoneId","referrer","customVariables","userToken","url","constructor","aid","create","SdkPianoio","initializeComposer","addTag","tag","push","addComposerTag","addTags","addComposerTags","setZoneId","setComposerZoneId","setReferrer","setComposerReferrer","setCustomVariable","name","value","setComposerCustomVariable","setUserToken","token","setComposerUserToken","setUrl","setComposerUrl","executeExperience","isInitialized","result","getComposer","getComposerFromSdkIOS","toString","join","JSON","stringify","_default","exports"],"sourceRoot":"../../src","sources":["PianoComposer.tsx"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.debugNativeModule = void 0;
|
7
|
+
var _reactNative = require("react-native");
|
8
|
+
const debugNativeModule = () => {
|
9
|
+
console.log('🔍 Debugging Native Module...');
|
10
|
+
console.log('Platform:', _reactNative.Platform.OS);
|
11
|
+
console.log('Available Native Modules:', Object.keys(_reactNative.NativeModules));
|
12
|
+
const SdkPianoio = _reactNative.NativeModules.SdkPianoio;
|
13
|
+
console.log('SdkPianoio module:', SdkPianoio);
|
14
|
+
if (SdkPianoio) {
|
15
|
+
console.log('✅ SdkPianoio module found!');
|
16
|
+
console.log('Available methods:', Object.keys(SdkPianoio));
|
17
|
+
} else {
|
18
|
+
console.log('❌ SdkPianoio module NOT found!');
|
19
|
+
}
|
20
|
+
return SdkPianoio;
|
21
|
+
};
|
22
|
+
exports.debugNativeModule = debugNativeModule;
|
23
|
+
//# sourceMappingURL=debug.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_reactNative","require","debugNativeModule","console","log","Platform","OS","Object","keys","NativeModules","SdkPianoio","exports"],"sourceRoot":"../../src","sources":["debug.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACrCC,OAAO,CAACC,GAAG,CAAC,+BAA+B,CAAC;EAC5CD,OAAO,CAACC,GAAG,CAAC,WAAW,EAAEC,qBAAQ,CAACC,EAAE,CAAC;EACrCH,OAAO,CAACC,GAAG,CAAC,2BAA2B,EAAEG,MAAM,CAACC,IAAI,CAACC,0BAAa,CAAC,CAAC;EAEpE,MAAMC,UAAU,GAAGD,0BAAa,CAACC,UAAU;EAC3CP,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEM,UAAU,CAAC;EAE7C,IAAIA,UAAU,EAAE;IACdP,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;IACzCD,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEG,MAAM,CAACC,IAAI,CAACE,UAAU,CAAC,CAAC;EAC5D,CAAC,MAAM;IACLP,OAAO,CAACC,GAAG,CAAC,gCAAgC,CAAC;EAC/C;EAEA,OAAOM,UAAU;AACnB,CAAC;AAACC,OAAA,CAAAT,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
@@ -9,6 +9,13 @@ Object.defineProperty(exports, "PianoComposer", {
|
|
9
9
|
return _PianoComposer.default;
|
10
10
|
}
|
11
11
|
});
|
12
|
+
Object.defineProperty(exports, "debugNativeModule", {
|
13
|
+
enumerable: true,
|
14
|
+
get: function () {
|
15
|
+
return _debug.debugNativeModule;
|
16
|
+
}
|
17
|
+
});
|
12
18
|
var _PianoComposer = _interopRequireDefault(require("./PianoComposer.js"));
|
19
|
+
var _debug = require("./debug.js");
|
13
20
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
14
21
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_PianoComposer","_interopRequireDefault","require","e","__esModule","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
1
|
+
{"version":3,"names":["_PianoComposer","_interopRequireDefault","require","_debug","e","__esModule","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAA4C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
@@ -1,28 +1,26 @@
|
|
1
|
-
import { NativeModules } from 'react-native';
|
1
|
+
import { NativeModules, Platform } from 'react-native';
|
2
2
|
|
3
3
|
interface SdkPianoioType {
|
4
|
-
initializeComposer(aid: string): Promise<
|
4
|
+
initializeComposer(aid: string): Promise<boolean>;
|
5
|
+
executeExperience(): Promise<any>;
|
5
6
|
getComposer(): Promise<any>;
|
6
|
-
addComposerTag(tag: string): Promise<any>;
|
7
|
-
addComposerTags(tags: string[]): Promise<any>;
|
8
|
-
setComposerZoneId(zoneId: string): Promise<any>;
|
9
|
-
setComposerReferrer(referrer: string): Promise<any>;
|
10
|
-
setComposerUrl(url: string): Promise<any>;
|
11
|
-
setComposerCustomVariable(name: string, value: string): Promise<any>;
|
12
|
-
setComposerUserToken(token: string): Promise<any>;
|
13
|
-
executeComposer(): Promise<void>;
|
14
7
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
userSegmentFalse(): Promise<boolean>;
|
23
|
-
meterActive(): Promise<boolean>;
|
24
|
-
meterExpired(): Promise<boolean>;
|
25
|
-
composerExecutionCompleted(): Promise<boolean>;
|
8
|
+
addComposerTag(tag: string): Promise<void>;
|
9
|
+
addComposerTags(tags: string[]): Promise<void>;
|
10
|
+
setComposerZoneId(zoneId: string): Promise<void>;
|
11
|
+
setComposerReferrer(referrer: string): Promise<void>;
|
12
|
+
setComposerUrl(url: string): Promise<void>;
|
13
|
+
setComposerCustomVariable(name: string, value: string): Promise<void>;
|
14
|
+
setComposerUserToken(token: string): Promise<void>;
|
26
15
|
}
|
27
16
|
|
28
|
-
|
17
|
+
const SdkPianoio = NativeModules.SdkPianoio;
|
18
|
+
|
19
|
+
if (!SdkPianoio) {
|
20
|
+
throw new Error(
|
21
|
+
`react-native-sdk-pianoio: Native module 'SdkPianoio' is not available on ${Platform.OS}. ` +
|
22
|
+
'Make sure you have properly linked the library and rebuilt your app.'
|
23
|
+
);
|
24
|
+
}
|
25
|
+
|
26
|
+
export default SdkPianoio as SdkPianoioType;
|