react-native-sdk-pianoio 0.2.5 → 0.3.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 (50) hide show
  1. package/README.md +36 -2
  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 -200
  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 +13 -4
  13. package/lib/commonjs/PianoComposer.js +16 -9
  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 +13 -4
  20. package/lib/module/PianoComposer.js +16 -9
  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 +2 -2
  27. package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts.map +1 -1
  28. package/lib/typescript/commonjs/src/PianoComposer.d.ts +2 -2
  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 +2 -2
  35. package/lib/typescript/module/src/NativeSdkPianoio.d.ts.map +1 -1
  36. package/lib/typescript/module/src/PianoComposer.d.ts +2 -2
  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 +31 -16
  43. package/src/NativeSdkPianoio.ts +13 -4
  44. package/src/PianoComposer.tsx +17 -10
  45. package/src/debug.ts +19 -0
  46. package/src/index.tsx +1 -0
  47. package/ios/ComposerPiano.swift +0 -297
  48. package/ios/SdkPianoio.h +0 -4
  49. package/ios/SdkPianoio.mm +0 -267
  50. package/ios/services/ComposerService.swift +0 -49
@@ -1,2 +1,3 @@
1
1
  export { default as PianoComposer } from './PianoComposer';
2
+ export { debugNativeModule } from './debug';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
@@ -9,7 +9,7 @@ interface SdkPianoioType {
9
9
  setComposerCustomVariable(name: string, value: string): Promise<any>;
10
10
  setComposerUserToken(token: string): Promise<any>;
11
11
  executeComposer(): Promise<void>;
12
- experienceExecute(): Promise<boolean>;
12
+ executeExperience(): Promise<boolean>;
13
13
  showLogin(): Promise<boolean>;
14
14
  showTemplate(): Promise<boolean>;
15
15
  showForm(): Promise<boolean>;
@@ -19,7 +19,7 @@ interface SdkPianoioType {
19
19
  userSegmentFalse(): Promise<boolean>;
20
20
  meterActive(): Promise<boolean>;
21
21
  meterExpired(): Promise<boolean>;
22
- experienceExecute(): Promise<boolean>;
22
+ composerExecutionCompleted(): Promise<boolean>;
23
23
  }
24
24
  declare const _default: SdkPianoioType;
25
25
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeSdkPianoio.d.ts","sourceRoot":"","sources":["../../../../src/NativeSdkPianoio.ts"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;wBAE0C,cAAc;AAAzD,wBAA0D"}
1
+ {"version":3,"file":"NativeSdkPianoio.d.ts","sourceRoot":"","sources":["../../../../src/NativeSdkPianoio.ts"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;wBAW4B,cAAc;AAA3C,wBAA4C"}
@@ -18,7 +18,8 @@ declare class PianoComposer {
18
18
  setUserToken(token: string): Promise<any>;
19
19
  setUrl(url: string): Promise<any>;
20
20
  execute(): Promise<void>;
21
- executeExperience(): Promise<boolean>;
21
+ executeExperience(): Promise<void>;
22
+ composerExecutionCompleted(): Promise<void>;
22
23
  showForm(): Promise<boolean>;
23
24
  showLogin(): Promise<void>;
24
25
  showTemplate(): Promise<void>;
@@ -28,7 +29,6 @@ declare class PianoComposer {
28
29
  userSegmentFalse(): Promise<void>;
29
30
  meterActive(): Promise<void>;
30
31
  meterExpired(): Promise<void>;
31
- experienceExecute(): Promise<void>;
32
32
  static isInitialized(): Promise<boolean>;
33
33
  static getComposerFromSdkIOS(): Promise<any>;
34
34
  toString(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"PianoComposer.d.ts","sourceRoot":"","sources":["../../../../src/PianoComposer.tsx"],"names":[],"mappings":"AAEA,cAAM,aAAa;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAM;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,eAAe,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAChD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1B,OAAO;WAIM,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKlD,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;IAKtB,SAAS,CAAC,MAAM,EAAE,MAAM;IAKxB,WAAW,CAAC,QAAQ,EAAE,MAAM;IAK5B,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAM7C,YAAY,CAAC,KAAK,EAAE,MAAM;IAK1B,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,OAAO;IAIP,iBAAiB;IAIjB,QAAQ;IAIR,SAAS;IAST,YAAY;IASZ,mBAAmB;IASnB,OAAO;IASP,eAAe;IASf,gBAAgB;IAShB,WAAW;IASX,YAAY;IASZ,iBAAiB;WASV,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;WASjC,qBAAqB;IAM5B,QAAQ;CAWf;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"PianoComposer.d.ts","sourceRoot":"","sources":["../../../../src/PianoComposer.tsx"],"names":[],"mappings":"AAEA,cAAM,aAAa;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAM;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,eAAe,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAChD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1B,OAAO;WAIM,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKlD,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;IAKtB,SAAS,CAAC,MAAM,EAAE,MAAM;IAKxB,WAAW,CAAC,QAAQ,EAAE,MAAM;IAK5B,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAM7C,YAAY,CAAC,KAAK,EAAE,MAAM;IAK1B,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,OAAO;IAIP,iBAAiB;IAUjB,0BAA0B;IAU1B,QAAQ;IAIR,SAAS;IAST,YAAY;IASZ,mBAAmB;IASnB,OAAO;IASP,eAAe;IASf,gBAAgB;IAShB,WAAW;IASX,YAAY;WASL,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;WASjC,qBAAqB;IAM5B,QAAQ;CAWf;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const debugNativeModule: () => any;
2
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../../src/debug.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,WAgB7B,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { default as PianoComposer } from './PianoComposer';
2
+ export { debugNativeModule } from './debug';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,23 +1,20 @@
1
1
  {
2
2
  "name": "react-native-sdk-pianoio",
3
- "version": "0.2.5",
3
+ "version": "0.3.1",
4
4
  "description": "Piano io sdk integration",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
7
7
  "module": "./lib/module/index.js",
8
- "types": "lib/typescript/module/src/index.d.ts",
8
+ "sideEffects": false,
9
9
  "exports": {
10
10
  ".": {
11
- "import": {
12
- "types": "./lib/typescript/module/src/index.d.ts",
13
- "default": "./lib/module/index.js"
14
- },
15
- "require": {
16
- "types": "./lib/typescript/commonjs/src/index.d.ts",
17
- "default": "./lib/commonjs/index.js"
18
- }
11
+ "types": "./lib/typescript/module/src/index.d.ts",
12
+ "import": "./lib/module/index.js",
13
+ "require": "./lib/commonjs/index.js",
14
+ "default": "./lib/module/index.js"
19
15
  },
20
- "./package.json": "./package.json"
16
+ "./package.json": "./package.json",
17
+ "./types": "./lib/typescript/module/src/index.d.ts"
21
18
  },
22
19
  "files": [
23
20
  "src",
@@ -41,16 +38,29 @@
41
38
  "scripts": {
42
39
  "example": "yarn workspace react-native-sdk-pianoio-example",
43
40
  "test": "jest",
41
+ "test:watch": "jest --watch",
42
+ "test:coverage": "jest --coverage",
44
43
  "typecheck": "tsc",
45
44
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
45
+ "lint:fix": "eslint \"**/*.{js,ts,tsx}\" --fix",
46
+ "format": "prettier --write \"**/*.{js,ts,tsx,json,md}\"",
47
+ "format:check": "prettier --check \"**/*.{js,ts,tsx,json,md}\"",
46
48
  "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
47
49
  "prepare": "bob build",
50
+ "build": "bob build",
51
+ "prepack": "bob build",
48
52
  "release": "release-it"
49
53
  },
50
54
  "keywords": [
51
55
  "react-native",
52
56
  "ios",
53
- "android"
57
+ "android",
58
+ "piano",
59
+ "piano-io",
60
+ "paywall",
61
+ "subscription",
62
+ "monetization",
63
+ "sdk"
54
64
  ],
55
65
  "repository": {
56
66
  "type": "git",
@@ -59,9 +69,9 @@
59
69
  "author": "sarakalessia <alessia@hexagonswiss.ch> ",
60
70
  "license": "MIT",
61
71
  "bugs": {
62
- "url": ""
72
+ "url": "https://github.com/HexagonSwiss/hex-react-native-sdk-pianoio/issues"
63
73
  },
64
- "homepage": "https://github.com/HexagonSwiss/hex-react-native-sdk-pianoio.git$#readme",
74
+ "homepage": "https://github.com/HexagonSwiss/hex-react-native-sdk-pianoio#readme",
65
75
  "publishConfig": {
66
76
  "registry": "https://registry.npmjs.org/"
67
77
  },
@@ -71,7 +81,7 @@
71
81
  "@react-native-community/cli": "15.0.1",
72
82
  "@react-native/eslint-config": "^0.73.1",
73
83
  "@release-it/conventional-changelog": "^9.0.2",
74
- "@types/jest": "^29.5.5",
84
+ "@types/jest": "^29.5.14",
75
85
  "@types/react": "^19.0.0",
76
86
  "commitlint": "^19.6.1",
77
87
  "del-cli": "^5.1.0",
@@ -87,6 +97,11 @@
87
97
  "turbo": "^1.10.7",
88
98
  "typescript": "^5.2.2"
89
99
  },
100
+ "engines": {
101
+ "node": ">=18.0.0",
102
+ "npm": ">=9.0.0",
103
+ "yarn": ">=3.0.0"
104
+ },
90
105
  "peerDependencies": {
91
106
  "react": "*",
92
107
  "react-native": "*"
@@ -200,4 +215,4 @@
200
215
  "languages": "kotlin-objc",
201
216
  "version": "0.48.9"
202
217
  }
203
- }
218
+ }
@@ -1,4 +1,4 @@
1
- import { NativeModules } from 'react-native';
1
+ import { NativeModules, Platform } from 'react-native';
2
2
 
3
3
  interface SdkPianoioType {
4
4
  initializeComposer(aid: string): Promise<any>;
@@ -12,7 +12,7 @@ interface SdkPianoioType {
12
12
  setComposerUserToken(token: string): Promise<any>;
13
13
  executeComposer(): Promise<void>;
14
14
 
15
- experienceExecute(): Promise<boolean>;
15
+ executeExperience(): Promise<boolean>;
16
16
  showLogin(): Promise<boolean>;
17
17
  showTemplate(): Promise<boolean>;
18
18
  showForm(): Promise<boolean>;
@@ -22,7 +22,16 @@ interface SdkPianoioType {
22
22
  userSegmentFalse(): Promise<boolean>;
23
23
  meterActive(): Promise<boolean>;
24
24
  meterExpired(): Promise<boolean>;
25
- experienceExecute(): Promise<boolean>;
25
+ composerExecutionCompleted(): Promise<boolean>;
26
26
  }
27
27
 
28
- export default NativeModules.SdkPianoio as SdkPianoioType;
28
+ const SdkPianoio = NativeModules.SdkPianoio;
29
+
30
+ if (!SdkPianoio) {
31
+ throw new Error(
32
+ `react-native-sdk-pianoio: Native module 'SdkPianoio' is not available on ${Platform.OS}. ` +
33
+ 'Make sure you have properly linked the library and rebuilt your app.'
34
+ );
35
+ }
36
+
37
+ export default SdkPianoio as SdkPianoioType;
@@ -59,7 +59,23 @@ class PianoComposer {
59
59
  }
60
60
 
61
61
  async executeExperience() {
62
- return SdkPianoio.experienceExecute();
62
+ try {
63
+ let r = await SdkPianoio.executeExperience();
64
+ console.log('executeExperience triggered');
65
+ console.log('Experience executed:', r);
66
+ } catch (e) {
67
+ console.error('Errore nel executeExperience:', e);
68
+ }
69
+ }
70
+
71
+ async composerExecutionCompleted() {
72
+ try {
73
+ let r = await SdkPianoio.composerExecutionCompleted();
74
+ console.log('composerExecutionCompleted triggered');
75
+ console.log('Composer execution completed:', r);
76
+ } catch (e) {
77
+ console.error('Errore nel composerExecutionCompleted:', e);
78
+ }
63
79
  }
64
80
 
65
81
  async showForm() {
@@ -138,15 +154,6 @@ class PianoComposer {
138
154
  }
139
155
  }
140
156
 
141
- async experienceExecute() {
142
- try {
143
- await SdkPianoio.experienceExecute();
144
- console.log('experienceExecute triggered');
145
- } catch (e) {
146
- console.error('Errore nel experienceExecute:', e);
147
- }
148
- }
149
-
150
157
  static async isInitialized(): Promise<boolean> {
151
158
  try {
152
159
  const result = await SdkPianoio.getComposer();
package/src/debug.ts ADDED
@@ -0,0 +1,19 @@
1
+ import { NativeModules, Platform } from 'react-native';
2
+
3
+ export const debugNativeModule = () => {
4
+ console.log('🔍 Debugging Native Module...');
5
+ console.log('Platform:', Platform.OS);
6
+ console.log('Available Native Modules:', Object.keys(NativeModules));
7
+
8
+ const SdkPianoio = NativeModules.SdkPianoio;
9
+ console.log('SdkPianoio module:', SdkPianoio);
10
+
11
+ if (SdkPianoio) {
12
+ console.log('✅ SdkPianoio module found!');
13
+ console.log('Available methods:', Object.keys(SdkPianoio));
14
+ } else {
15
+ console.log('❌ SdkPianoio module NOT found!');
16
+ }
17
+
18
+ return SdkPianoio;
19
+ };
package/src/index.tsx CHANGED
@@ -1,5 +1,6 @@
1
1
  // import SdkPianoio from './NativeSdkPianoio';
2
2
  export { default as PianoComposer } from './PianoComposer';
3
+ export { debugNativeModule } from './debug';
3
4
 
4
5
  // export const {
5
6
  // initializeComposer,
@@ -1,297 +0,0 @@
1
- //
2
- // ComposerPiano.swift
3
- // SdkPianoio
4
- //
5
- //
6
- import Foundation
7
- import PianoComposer
8
- import PianoOAuth
9
- import PianoConsents
10
- import PianoTemplate
11
- import React
12
-
13
- import SwiftUI
14
-
15
-
16
- @objcMembers public class ComposerPianoImpl: NSObject {
17
- private var composer: PianoComposer?;
18
- private var delegateHelper : MyComposerDelegate?;
19
- public static var aid = "";
20
-
21
- @objc public func initializeComposer(_ aid: String) -> PianoComposer? {
22
- ComposerPianoImpl.aid = aid;
23
- let tokenService = TokenService();
24
- delegateHelper = MyComposerDelegate(tokenService: tokenService);
25
- composer = PianoComposer(aid: ComposerPianoImpl.aid, endpoint: PianoEndpoint.productionEurope);
26
- composer = delegateHelper?.setComposerAndDelegate(composer!);
27
- return composer;
28
- }
29
-
30
- @objc public func addTag(_ tag: String) -> PianoComposer? {
31
- return composer?.tag(tag);
32
- }
33
- @objc public func addTagToComposer(_ composer: PianoComposer, tag: String) {
34
- composer.tag(tag);
35
- }
36
-
37
- @objc public func addTags(_ tags: [String]) -> PianoComposer? {
38
- return composer?.tags(tags);
39
- }
40
-
41
- @objc public func setZoneId(_ zoneId: String) -> PianoComposer? {
42
- return composer?.zoneId(zoneId);
43
- }
44
-
45
- @objc public func setReferrer(_ referrer: String) -> PianoComposer? {
46
- return composer?.referrer(referrer);
47
- }
48
-
49
- @objc public func setUrl(_ url: String) -> PianoComposer? {
50
- return composer?.url(url);
51
- }
52
-
53
- @objc public func setCustomVariable(_ name: String, value: String) -> PianoComposer? {
54
- return composer?.customVariable(name: name, value: value);
55
- }
56
-
57
- @objc public func setUserToken(_ token: String) -> PianoComposer? {
58
- return composer?.userToken(token);
59
- }
60
-
61
- /*@objc public func executeComposer() -> PianoComposer? {
62
- return composer?.execute();
63
- }*/
64
-
65
- @objc public func executeComposer() {
66
- print("Esecuzione composer")
67
- DispatchQueue.main.async( group: nil, qos: .unspecified, flags: [], execute: {
68
- guard let rootVC = UIApplication.shared.connectedScenes
69
- .compactMap({ $0 as? UIWindowScene })
70
- .first(where: { $0.activationState == .foregroundActive })?.windows
71
- .first(where: { $0.isKeyWindow })?.rootViewController else {
72
-
73
- return
74
- }
75
- if let composer = self.composer {
76
- print("Va nell'esecuzione yaay")
77
-
78
- composer.execute()
79
- } else {
80
- print("⚠️ Composer è nil")
81
- }
82
- })
83
- }
84
-
85
-
86
-
87
- // Delegate handler
88
- @objc public func executeExperience() {
89
- let eventDict: [String: Any] = [
90
- "eventType": "login"
91
- ];
92
-
93
- let xpEvent = XpEvent(dict: eventDict);
94
-
95
- if(composer != nil && composer!.delegate != nil ) {
96
- delegateHelper?.executeExperience(composer: composer!, event: xpEvent, params: nil);
97
- }
98
- }
99
-
100
- @objc public func showLogin() {
101
- let eventDict: [String: Any] = [
102
- "eventType": "login"
103
- ];
104
-
105
- let xpEvent = XpEvent(dict: eventDict);
106
-
107
- if(composer != nil && composer!.delegate != nil ) {
108
- delegateHelper?.myShowLogin(composer: composer!, event: xpEvent, params: nil);
109
- }
110
- }
111
-
112
- @objc public func showTemplate() {
113
- DispatchQueue.main.async {
114
- guard let rootVC = UIApplication.shared
115
- .connectedScenes
116
- .compactMap({ $0 as? UIWindowScene })
117
- .flatMap({ $0.windows })
118
- .first(where: { $0.isKeyWindow })?
119
- .rootViewController else {
120
- print("⚠️ rootViewController non trovato")
121
- return
122
- }
123
-
124
- let tokenService = self.delegateHelper!.tokenService
125
- let view = ShowTemplateView(tokenService: tokenService)
126
- let hostingController = UIHostingController(rootView: view)
127
- hostingController.modalPresentationStyle = .fullScreen
128
-
129
- rootVC.present(hostingController, animated: true, completion: nil)
130
- }
131
- }
132
-
133
- @objc public func showForm() {
134
- let eventDict: [String: Any] = [
135
- "eventType": "form"
136
- ];
137
-
138
- let xpEvent = XpEvent(dict: eventDict);
139
-
140
- if(composer != nil && composer!.delegate != nil ) {
141
- delegateHelper?.myShowForm(composer: composer!, event: xpEvent, params: nil);
142
- }
143
- }
144
-
145
- @objc public func showRecommendations() {
146
- let eventDict: [String: Any] = [
147
- "eventType": "recommendations"
148
- ];
149
-
150
- let xpEvent = XpEvent(dict: eventDict);
151
-
152
- if(composer != nil && composer!.delegate != nil ) {
153
- delegateHelper?.showRecommendations(composer: composer!, event: xpEvent, params: nil)
154
- }
155
- }
156
-
157
- @objc public func nonSite() {
158
- let eventDict: [String: Any] = [
159
- "eventType": "nonSite"
160
- ]
161
-
162
- let xpEvent = XpEvent(dict: eventDict)
163
-
164
- if(composer != nil && composer!.delegate != nil ) {
165
- delegateHelper?.nonSite(composer: composer!, event: xpEvent)
166
- }
167
- }
168
-
169
- @objc public func userSegmentTrue() {
170
- let eventDict: [String: Any] = [
171
- "eventType": "userSegmentTrue"
172
- ]
173
-
174
- let xpEvent = XpEvent(dict: eventDict)
175
-
176
- if(composer != nil && composer!.delegate != nil ) {
177
- delegateHelper?.userSegmentTrue(composer: composer!, event: xpEvent)
178
- }
179
- }
180
-
181
- @objc public func userSegmentFalse() {
182
- let eventDict: [String: Any] = [
183
- "eventType": "userSegmentFalse"
184
- ]
185
-
186
- let xpEvent = XpEvent(dict: eventDict)
187
-
188
- if(composer != nil && composer!.delegate != nil ) {
189
- delegateHelper?.userSegmentFalse(composer: composer!, event: xpEvent)
190
- }
191
- }
192
-
193
- @objc public func meterActive() {
194
- let eventDict: [String: Any] = [
195
- "eventType": "meterActive"
196
- ]
197
-
198
- let xpEvent = XpEvent(dict: eventDict)
199
-
200
- if(composer != nil && composer!.delegate != nil ) {
201
- delegateHelper?.meterActive(composer: composer!, event: xpEvent, params: nil)
202
- }
203
- }
204
-
205
- @objc public func meterExpired() {
206
- let eventDict: [String: Any] = [
207
- "eventType": "meterExpired"
208
- ]
209
-
210
- let xpEvent = XpEvent(dict: eventDict)
211
-
212
- if(composer != nil && composer!.delegate != nil ) {
213
- delegateHelper?.meterExpired(composer: composer!, event: xpEvent, params: nil)
214
- }
215
- }
216
-
217
- @objc public func experienceExecute() {
218
- let eventDict: [String: Any] = [
219
- "eventType": "experienceExecute"
220
- ]
221
-
222
- let xpEvent = XpEvent(dict: eventDict)
223
-
224
- if(composer != nil && composer!.delegate != nil ) {
225
- delegateHelper?.experienceExecute(composer: composer!, event: xpEvent, params: nil)
226
- }
227
- }
228
-
229
-
230
-
231
- public func findViewBySelector(selector: String) -> UIView? {
232
- return nil;
233
- }
234
-
235
-
236
- // method to get values and helpers
237
- @objc public func getAid() -> String {
238
- if(composer != nil){
239
- return composer?.aid ?? "";
240
- } else {
241
- return "";
242
- }
243
- }
244
-
245
- @objc public func getTags() -> [String] {
246
- if let tags = composer?.tags, !tags.isEmpty {
247
- return Array(tags) // Restituisce l'array dei tag se presenti e non vuoti
248
- } else {
249
- return [] // Restituisce un array vuoto se non ci sono tag
250
- }
251
- }
252
-
253
- @objc public func getComposer() -> PianoComposer? {
254
- return composer;
255
- }
256
-
257
- @objc public func getZoneId() -> String {
258
- return composer?.zoneId ?? ""
259
- }
260
-
261
- @objc public func getReferrer() -> String {
262
- return composer?.referrer ?? ""
263
- }
264
-
265
- @objc public func getUrl() -> String {
266
- return composer?.url ?? ""
267
- }
268
-
269
- @objc public func getUserToken() -> String {
270
- return composer?.userToken ?? ""
271
- }
272
-
273
- @objc public func addTagsToComposer(_ composer: PianoComposer, tags: [String]) {
274
- composer.tags(tags)
275
- }
276
-
277
- @objc public func setCustomVariable(_ composer: PianoComposer, name: String, value: String) {
278
- composer.customVariable(name: name, value: value)
279
- }
280
-
281
- @objc public func setReferrer(_ composer: PianoComposer, referrer: String) {
282
- composer.referrer(referrer)
283
- }
284
-
285
- @objc public func setUrl(_ composer: PianoComposer, url: String) {
286
- composer.url(url)
287
- }
288
-
289
- @objc public func setUserToken(_ composer: PianoComposer, token: String) {
290
- composer.userToken(token)
291
- }
292
-
293
- @objc public func setZoneId(_ composer: PianoComposer, zoneId: String) {
294
- composer.zoneId(zoneId)
295
- }
296
-
297
- }
package/ios/SdkPianoio.h DELETED
@@ -1,4 +0,0 @@
1
- #import <React/RCTBridgeModule.h>
2
-
3
- @interface SdkPianoio : NSObject <RCTBridgeModule>
4
- @end