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.
Files changed (50) hide show
  1. package/README.md +3 -3
  2. package/SdkPianoio.podspec +4 -16
  3. package/android/build.gradle +12 -19
  4. package/android/gradle.properties +17 -2
  5. package/android/src/main/java/com/sdkpianoio/SdkPianoioModule.kt +543 -7
  6. package/android/src/main/java/com/sdkpianoio/SdkPianoioPackage.kt +3 -3
  7. package/ios/ComposerPianoImpl.swift +247 -0
  8. package/ios/MyComposerDelegate.swift +79 -206
  9. package/ios/SdkPianoio.swift +150 -0
  10. package/ios/SdkPianoioBridge.m +81 -0
  11. package/ios/services/TokenService.swift +10 -7
  12. package/lib/commonjs/NativeSdkPianoio.ts +20 -22
  13. package/lib/commonjs/PianoComposer.js +36 -97
  14. package/lib/commonjs/PianoComposer.js.map +1 -1
  15. package/lib/commonjs/debug.js +23 -0
  16. package/lib/commonjs/debug.js.map +1 -0
  17. package/lib/commonjs/index.js +7 -0
  18. package/lib/commonjs/index.js.map +1 -1
  19. package/lib/module/NativeSdkPianoio.ts +20 -22
  20. package/lib/module/PianoComposer.js +36 -97
  21. package/lib/module/PianoComposer.js.map +1 -1
  22. package/lib/module/debug.js +18 -0
  23. package/lib/module/debug.js.map +1 -0
  24. package/lib/module/index.js +1 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts +9 -20
  27. package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts.map +1 -1
  28. package/lib/typescript/commonjs/src/PianoComposer.d.ts +25 -28
  29. package/lib/typescript/commonjs/src/PianoComposer.d.ts.map +1 -1
  30. package/lib/typescript/commonjs/src/debug.d.ts +2 -0
  31. package/lib/typescript/commonjs/src/debug.d.ts.map +1 -0
  32. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  33. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  34. package/lib/typescript/module/src/NativeSdkPianoio.d.ts +9 -20
  35. package/lib/typescript/module/src/NativeSdkPianoio.d.ts.map +1 -1
  36. package/lib/typescript/module/src/PianoComposer.d.ts +25 -28
  37. package/lib/typescript/module/src/PianoComposer.d.ts.map +1 -1
  38. package/lib/typescript/module/src/debug.d.ts +2 -0
  39. package/lib/typescript/module/src/debug.d.ts.map +1 -0
  40. package/lib/typescript/module/src/index.d.ts +1 -0
  41. package/lib/typescript/module/src/index.d.ts.map +1 -1
  42. package/package.json +30 -15
  43. package/src/NativeSdkPianoio.ts +20 -22
  44. package/src/PianoComposer.tsx +36 -116
  45. package/src/debug.ts +19 -0
  46. package/src/index.tsx +1 -0
  47. package/ios/ComposerPiano.swift +0 -304
  48. package/ios/SdkPianoio.h +0 -4
  49. package/ios/SdkPianoio.mm +0 -283
  50. 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: ObservableObject, PianoIDDelegate {
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.initialized = true
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<any>;
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
- experienceExecute(): Promise<boolean>;
16
- showLogin(): Promise<boolean>;
17
- showTemplate(): Promise<boolean>;
18
- showForm(): Promise<boolean>;
19
- showRecommendations(): Promise<boolean>;
20
- nonSite(): Promise<boolean>;
21
- userSegmentTrue(): Promise<boolean>;
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
- export default NativeModules.SdkPianoio as SdkPianoioType;
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
- async execute() {
52
- return _NativeSdkPianoio.default.executeComposer();
53
- }
54
- async experienceExecute() {
55
- try {
56
- let r = await _NativeSdkPianoio.default.experienceExecute();
57
- console.log('experienceExecute triggered');
58
- console.log('Experience executed:', r);
59
- } catch (e) {
60
- console.error('Errore nel experienceExecute:', e);
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
- const result = await _NativeSdkPianoio.default.getComposer();
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","execute","executeComposer","experienceExecute","r","console","log","error","composerExecutionCompleted","showForm","showLogin","showTemplate","showRecommendations","nonSite","userSegmentTrue","userSegmentFalse","meterActive","meterExpired","isInitialized","result","getComposer","getComposerFromSdkIOS","toString","JSON","stringify","_default","exports"],"sourceRoot":"../../src","sources":["PianoComposer.tsx"],"mappings":"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","ignoreList":[]}
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":[]}
@@ -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":";;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2D,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
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<any>;
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
- experienceExecute(): Promise<boolean>;
16
- showLogin(): Promise<boolean>;
17
- showTemplate(): Promise<boolean>;
18
- showForm(): Promise<boolean>;
19
- showRecommendations(): Promise<boolean>;
20
- nonSite(): Promise<boolean>;
21
- userSegmentTrue(): Promise<boolean>;
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
- export default NativeModules.SdkPianoio as SdkPianoioType;
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;