@onairos/react-native 3.0.64 โ†’ 3.0.65

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.
@@ -8,6 +8,12 @@ export interface DataRequest {
8
8
  description: string;
9
9
  reward: string;
10
10
  }
11
+ export interface TestModeOptions {
12
+ existingUser?: boolean;
13
+ newUser?: boolean;
14
+ fastTraining?: boolean;
15
+ skipRealConnections?: boolean;
16
+ }
11
17
  export interface UniversalOnboardingProps {
12
18
  visible: boolean;
13
19
  onClose: () => void;
@@ -25,7 +31,7 @@ export interface UniversalOnboardingProps {
25
31
  onComplete: (apiUrl: string, token: string, data: any) => void;
26
32
  embedd?: boolean;
27
33
  debug?: boolean;
28
- test?: boolean;
34
+ test?: boolean | TestModeOptions;
29
35
  buttonType?: 'default' | 'pill';
30
36
  buttonForm?: 'signup' | 'login';
31
37
  preferredPlatform?: string;
@@ -109,6 +115,7 @@ export interface TrainingModalProps {
109
115
  onComplete?: () => void;
110
116
  modelKey?: string;
111
117
  username?: string;
118
+ test?: boolean;
112
119
  }
113
120
  export interface OAuthWebViewProps {
114
121
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,EAAE;QAEX,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;QAEjB,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;KACnD,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,GAAG,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE;QAEZ,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;QAEjB,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;KACnD,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxD,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE;QAEJ,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;QAEjB,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;KACnD,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAE9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,EAAE;QAEX,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;QAEjB,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;KACnD,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,GAAG,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE;QAEZ,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;QAEjB,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;KACnD,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxD,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE;QAEJ,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;QAEjB,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,kBAAkB,CAAC,EAAE,WAAW,CAAC;QACjC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;KACnD,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;CAC7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onairos/react-native",
3
- "version": "3.0.64",
3
+ "version": "3.0.65",
4
4
  "description": "Onairos React Native SDK for social media authentication and AI model training",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -27,6 +27,7 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
27
27
  onComplete,
28
28
  modelKey,
29
29
  username,
30
+ test = false,
30
31
  }) => {
31
32
  // Socket and training state
32
33
  const socketRef = useRef<Socket | null>(null);
@@ -106,6 +107,50 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
106
107
  setHasError(true);
107
108
  }
108
109
  };
110
+
111
+ // Simulate training progress for test mode
112
+ const simulateTraining = () => {
113
+ console.log('๐Ÿงช Starting simulated training...');
114
+ setTrainingStatus('Initializing training...');
115
+ setInternalProgress(10);
116
+
117
+ // Fast training for test mode (shorter delays)
118
+ const baseDelay = 800;
119
+ const stages = [
120
+ { progress: 20, status: 'Analyzing data patterns...', delay: baseDelay },
121
+ { progress: 35, status: 'Building neural network...', delay: baseDelay },
122
+ { progress: 50, status: 'Training model...', delay: baseDelay },
123
+ { progress: 65, status: 'Optimizing parameters...', delay: baseDelay },
124
+ { progress: 80, status: 'Running test inference...', delay: baseDelay },
125
+ { progress: 95, status: 'Finalizing model...', delay: baseDelay },
126
+ { progress: 100, status: 'Complete!', delay: 300 },
127
+ ];
128
+
129
+ let currentStage = 0;
130
+
131
+ const progressInterval = setInterval(() => {
132
+ if (currentStage < stages.length) {
133
+ const stage = stages[currentStage];
134
+ setInternalProgress(stage.progress);
135
+ setTrainingStatus(stage.status);
136
+
137
+ if (stage.progress === 100) {
138
+ setIsTrainingComplete(true);
139
+ clearInterval(progressInterval);
140
+
141
+ // Auto-complete after a short delay
142
+ setTimeout(() => {
143
+ onComplete && onComplete();
144
+ }, 800);
145
+ }
146
+
147
+ currentStage++;
148
+ }
149
+ }, stages[currentStage]?.delay || baseDelay);
150
+
151
+ // Cleanup interval on unmount
152
+ return () => clearInterval(progressInterval);
153
+ };
109
154
 
110
155
  // Setup socket connection and training
111
156
  useEffect(() => {
@@ -113,6 +158,15 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
113
158
 
114
159
  console.log('Setting up socket connection for training...');
115
160
  console.log('๐Ÿง‘โ€๐Ÿ’ป User info available:', userInfo);
161
+ console.log('๐Ÿงช Test mode:', test);
162
+
163
+ // If test mode is enabled, use simulation instead of real API
164
+ if (test) {
165
+ console.log('๐Ÿงช Test mode enabled - Using simulated training');
166
+ setSocketConnected(true);
167
+ simulateTraining();
168
+ return;
169
+ }
116
170
 
117
171
  // Initialize real socket connection - backend confirmed this is working
118
172
  try {
@@ -159,7 +213,7 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
159
213
 
160
214
  // Auto-complete after a short delay
161
215
  setTimeout(() => {
162
- onComplete();
216
+ onComplete && onComplete();
163
217
  }, 1500);
164
218
  });
165
219
 
@@ -180,8 +234,8 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
180
234
  console.error('Socket connection failed, falling back to simulation:', socketError);
181
235
  // Fallback to simulation if socket fails
182
236
  console.log('๐Ÿ”Œ Falling back to simulated socket connection...');
183
- setSocketConnected(true);
184
- startEnochTraining('simulated-socket-id');
237
+ setSocketConnected(true);
238
+ simulateTraining();
185
239
  }
186
240
 
187
241
  // Cleanup function
@@ -192,7 +246,7 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
192
246
  socketRef.current = null;
193
247
  }
194
248
  };
195
- }, [visible, userInfo]);
249
+ }, [visible, userInfo, test]);
196
250
 
197
251
  return (
198
252
  <Modal
@@ -27,7 +27,7 @@ import { OAuthWebView } from './onboarding/OAuthWebView';
27
27
  import { useConnections } from '../hooks/useConnections';
28
28
  import { COLORS, DEEP_LINK_CONFIG } from '../constants';
29
29
  import { initiateOAuth, initiateNativeAuth, hasNativeSDK, isOAuthCallback, testApiConnectivity, handleOAuthCallbackUrl, refreshYouTubeTokens, requestEmailVerification, verifyEmailCode, checkEmailVerificationStatus, disconnectPlatform } from '../services/platformAuthService';
30
- import type { UniversalOnboardingProps, ConnectionStatus } from '../types';
30
+ import type { UniversalOnboardingProps, ConnectionStatus, TestModeOptions } from '../types';
31
31
 
32
32
  // Optional Opacity SDK imports with error handling
33
33
  let opacityInit: any = null;
@@ -88,14 +88,34 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
88
88
  const isMountedRef = useRef<boolean>(true);
89
89
  const codeInputRefs = useRef<Array<TextInput | null>>([]);
90
90
 
91
+ // Add state for showing additional platforms
92
+ const [showAllPlatforms, setShowAllPlatforms] = useState<boolean>(false);
93
+ const [showTestDataRequest, setShowTestDataRequest] = useState<boolean>(false);
94
+
95
+ // Parse test mode options
96
+ const testModeOptions = typeof test === 'object' ? test : {};
97
+ const isTestMode = test === true || (typeof test === 'object' && test !== null);
98
+ const showTestControls = (debug || isTestMode) && requestData;
99
+
100
+ // Simple 2-flow system
101
+ const isExistingUserFlow = testModeOptions.existingUser || false;
102
+ const isNewUserFlow = testModeOptions.newUser || false;
103
+
91
104
  const platforms = [
92
105
  { id: 'instagram', name: 'Instagram', icon: require('../assets/images/instagram.png') },
93
106
  { id: 'youtube', name: 'YouTube', icon: require('../assets/images/youtube.png') },
107
+ { id: 'email', name: 'Gmail', icon: require('../assets/images/email.png') },
94
108
  { id: 'reddit', name: 'Reddit', icon: require('../assets/images/reddit.png') },
95
109
  { id: 'pinterest', name: 'Pinterest', icon: require('../assets/images/pinterest.png') },
96
- { id: 'email', name: 'Gmail', icon: require('../assets/images/email.png') },
97
110
  ];
98
111
 
112
+ // Define primary platforms (shown by default)
113
+ const primaryPlatforms = platforms.slice(0, 3); // Instagram, YouTube, Gmail
114
+ const additionalPlatforms = platforms.slice(3); // Reddit, Pinterest
115
+
116
+ // Get platforms to display based on showAllPlatforms state
117
+ const platformsToDisplay = showAllPlatforms ? platforms : primaryPlatforms;
118
+
99
119
  const {
100
120
  connectPlatform,
101
121
  disconnectPlatform,
@@ -570,21 +590,41 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
570
590
  throw new Error('Email verification service not available');
571
591
  }
572
592
 
593
+ // Test Mode: Use specific flows
594
+ if (isTestMode) {
595
+ console.log('๐Ÿงช Test mode verification - simulating success');
596
+
597
+ if (isExistingUserFlow) {
598
+ // Flow 1: Existing User โ†’ Data Request โ†’ Close (return API URL)
599
+ console.log('๐Ÿงช Test Flow 1: Existing User โ†’ Show Data Request');
600
+ setIsExistingUser(true);
601
+ setShowDataRequestModal(true);
602
+ return;
603
+ } else if (isNewUserFlow) {
604
+ // Flow 2: New User โ†’ Platform Connect โ†’ PIN โ†’ Training
605
+ console.log('๐Ÿงช Test Flow 2: New User โ†’ Platform Connect');
606
+ const emailPrefix = email.trim().split('@')[0] || 'TestUser';
607
+ setUsername(emailPrefix);
608
+ setStep('connect');
609
+ return;
610
+ }
611
+ }
612
+
613
+ // Real API call (production)
573
614
  const result = await verifyEmailCode(email.trim(), verificationCode.trim());
574
615
 
575
616
  if (result.success) {
576
617
  console.log('โœ… Email verification successful');
577
618
 
578
- // For now, always treat as new users for testing (can be updated later)
579
- // In production, this would check if user exists in database
580
- const existingUser = false; // TODO: Check backend for existing user
619
+ // Check if user exists in backend
620
+ const existingUser = (result as any).existingUser || false;
581
621
  setIsExistingUser(existingUser);
582
622
 
583
623
  if (existingUser) {
584
- console.log('Existing user detected, showing data request modal');
624
+ console.log('๐Ÿ‘ค Existing user detected, showing data request modal');
585
625
  setShowDataRequestModal(true);
586
626
  } else {
587
- console.log('New user, proceeding to platform connection');
627
+ console.log('๐Ÿ†• New user, proceeding to platform connection');
588
628
  // Safely set username from email prefix
589
629
  try {
590
630
  const emailPrefix = email.trim().split('@')[0];
@@ -693,23 +733,23 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
693
733
  }, [handleClose]);
694
734
 
695
735
  const canProceedToPin = useCallback(() => {
696
- // For testing, allow proceeding without any platforms connected
697
- if (debug || test) {
698
- console.log('๐Ÿงช Testing mode: Allowing proceed without platform connections');
736
+ // Test mode: Always allow proceeding (simulates platform connections)
737
+ if (isTestMode || testModeOptions.skipRealConnections) {
738
+ console.log('๐Ÿงช Test mode: Allowing proceed without real platform connections');
699
739
  return true;
700
740
  }
701
741
 
702
- // Check if at least one platform is toggled on
742
+ // Production: Check if at least one platform is connected
703
743
  const hasPlatformConnected = Object.values(platformToggles).some(value => value === true);
704
744
 
705
- // If auto mode is enabled and partner is not "couplebible", require inferenceData
745
+ // Auto mode validation
706
746
  if (auto && partner !== 'couplebible' && !inferenceData) {
707
747
  console.warn('Auto mode enabled but no inference data provided (and partner is not couplebible)');
708
748
  return false;
709
749
  }
710
750
 
711
751
  return hasPlatformConnected;
712
- }, [platformToggles, auto, partner, inferenceData, debug, test]);
752
+ }, [platformToggles, auto, partner, inferenceData, isTestMode, testModeOptions]);
713
753
 
714
754
  const handleProceed = () => {
715
755
  console.log('Proceeding to next step');
@@ -931,7 +971,7 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
931
971
 
932
972
  {/* Platform connection options */}
933
973
  <View style={styles.platformsContainer}>
934
- {platforms.map((platform) => (
974
+ {platformsToDisplay.map((platform) => (
935
975
  <TouchableOpacity
936
976
  key={platform.id}
937
977
  style={styles.platformItem}
@@ -964,7 +1004,71 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
964
1004
  )}
965
1005
  </TouchableOpacity>
966
1006
  ))}
1007
+
1008
+ {/* Show more/less platforms button */}
1009
+ {additionalPlatforms.length > 0 && (
1010
+ <TouchableOpacity
1011
+ style={styles.expandButton}
1012
+ onPress={() => setShowAllPlatforms(!showAllPlatforms)}
1013
+ >
1014
+ <Icon
1015
+ name={showAllPlatforms ? "expand_less" : "add"}
1016
+ size={24}
1017
+ color={COLORS.primary}
1018
+ />
1019
+ <Text style={styles.expandButtonText}>
1020
+ {showAllPlatforms
1021
+ ? "Show Less"
1022
+ : `${additionalPlatforms.length} More Connectors`
1023
+ }
1024
+ </Text>
1025
+ </TouchableOpacity>
1026
+ )}
967
1027
  </View>
1028
+
1029
+ {/* Test mode controls - Simple 2-flow system */}
1030
+ {showTestControls && (
1031
+ <View style={styles.testModeContainer}>
1032
+ <Text style={styles.testModeTitle}>๐Ÿงช Test Mode - 2 Main Flows</Text>
1033
+
1034
+ <TouchableOpacity
1035
+ style={styles.testExistingUserButton}
1036
+ onPress={() => {
1037
+ // Flow 1: Existing User
1038
+ setIsExistingUser(true);
1039
+ setShowDataRequestModal(true);
1040
+ }}
1041
+ >
1042
+ <Icon name="person" size={20} color="#28a745" />
1043
+ <Text style={styles.testExistingUserButtonText}>
1044
+ Flow 1: Existing User (Email โ†’ Code โ†’ Data Request โ†’ Close)
1045
+ </Text>
1046
+ </TouchableOpacity>
1047
+
1048
+ <TouchableOpacity
1049
+ style={styles.testSkipToTrainingButton}
1050
+ onPress={() => {
1051
+ // Flow 2: New User - Skip to connect step
1052
+ setStep('connect');
1053
+ }}
1054
+ >
1055
+ <Icon name="person-add" size={20} color="#17a2b8" />
1056
+ <Text style={styles.testSkipToTrainingButtonText}>
1057
+ Flow 2: New User (Connect โ†’ PIN โ†’ Training)
1058
+ </Text>
1059
+ </TouchableOpacity>
1060
+
1061
+ <TouchableOpacity
1062
+ style={styles.testDataRequestButton}
1063
+ onPress={() => setShowTestDataRequest(true)}
1064
+ >
1065
+ <Icon name="preview" size={20} color={COLORS.primary} />
1066
+ <Text style={styles.testDataRequestButtonText}>
1067
+ Preview Data Request Modal
1068
+ </Text>
1069
+ </TouchableOpacity>
1070
+ </View>
1071
+ )}
968
1072
  </ScrollView>
969
1073
 
970
1074
  <View style={styles.footer}>
@@ -1038,6 +1142,7 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
1038
1142
  onComplete={handleTrainingComplete}
1039
1143
  modelKey="onairosTrainingModel"
1040
1144
  username={username}
1145
+ test={isTestMode}
1041
1146
  />
1042
1147
  )}
1043
1148
 
@@ -1072,6 +1177,20 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
1072
1177
  AppName={AppName}
1073
1178
  />
1074
1179
  )}
1180
+
1181
+ {/* Test mode data request modal */}
1182
+ {showTestDataRequest && requestData && (
1183
+ <DataRequestModal
1184
+ visible={showTestDataRequest}
1185
+ onClose={() => setShowTestDataRequest(false)}
1186
+ onAccept={() => {
1187
+ setShowTestDataRequest(false);
1188
+ Alert.alert('Test Mode', 'This is a preview of the data request. In actual implementation, this would proceed with the data sharing agreement.');
1189
+ }}
1190
+ requestData={requestData}
1191
+ AppName={`${AppName} (Test Preview)`}
1192
+ />
1193
+ )}
1075
1194
  </Modal>
1076
1195
  );
1077
1196
  };
@@ -1420,4 +1539,89 @@ const styles = StyleSheet.create({
1420
1539
  color: '#666',
1421
1540
  fontSize: 16,
1422
1541
  },
1542
+ // Expand button styles
1543
+ expandButton: {
1544
+ flexDirection: 'row',
1545
+ alignItems: 'center',
1546
+ justifyContent: 'center',
1547
+ padding: 12,
1548
+ backgroundColor: '#f8f9fa',
1549
+ borderRadius: 12,
1550
+ borderWidth: 1,
1551
+ borderColor: '#e9ecef',
1552
+ marginTop: 8,
1553
+ },
1554
+ expandButtonText: {
1555
+ fontSize: 14,
1556
+ fontWeight: '500',
1557
+ color: COLORS.primary,
1558
+ marginLeft: 8,
1559
+ },
1560
+ // Test mode styles
1561
+ testModeContainer: {
1562
+ marginTop: 16,
1563
+ paddingHorizontal: 16,
1564
+ backgroundColor: '#f8f9fa',
1565
+ borderRadius: 12,
1566
+ padding: 16,
1567
+ borderWidth: 1,
1568
+ borderColor: '#e9ecef',
1569
+ },
1570
+ testModeTitle: {
1571
+ fontSize: 16,
1572
+ fontWeight: '600',
1573
+ color: '#495057',
1574
+ marginBottom: 12,
1575
+ textAlign: 'center',
1576
+ },
1577
+ testDataRequestButton: {
1578
+ flexDirection: 'row',
1579
+ alignItems: 'center',
1580
+ justifyContent: 'center',
1581
+ padding: 12,
1582
+ backgroundColor: '#fff3cd',
1583
+ borderRadius: 12,
1584
+ borderWidth: 1,
1585
+ borderColor: '#ffeaa7',
1586
+ marginBottom: 8,
1587
+ },
1588
+ testDataRequestButtonText: {
1589
+ fontSize: 14,
1590
+ fontWeight: '500',
1591
+ color: '#856404',
1592
+ marginLeft: 8,
1593
+ },
1594
+ testExistingUserButton: {
1595
+ flexDirection: 'row',
1596
+ alignItems: 'center',
1597
+ justifyContent: 'center',
1598
+ padding: 12,
1599
+ backgroundColor: '#d4edda',
1600
+ borderRadius: 12,
1601
+ borderWidth: 1,
1602
+ borderColor: '#c3e6cb',
1603
+ marginBottom: 8,
1604
+ },
1605
+ testExistingUserButtonText: {
1606
+ fontSize: 14,
1607
+ fontWeight: '500',
1608
+ color: '#155724',
1609
+ marginLeft: 8,
1610
+ },
1611
+ testSkipToTrainingButton: {
1612
+ flexDirection: 'row',
1613
+ alignItems: 'center',
1614
+ justifyContent: 'center',
1615
+ padding: 12,
1616
+ backgroundColor: '#d1ecf1',
1617
+ borderRadius: 12,
1618
+ borderWidth: 1,
1619
+ borderColor: '#bee5eb',
1620
+ },
1621
+ testSkipToTrainingButtonText: {
1622
+ fontSize: 14,
1623
+ fontWeight: '500',
1624
+ color: '#0c5460',
1625
+ marginLeft: 8,
1626
+ },
1423
1627
  });
@@ -90,9 +90,14 @@ declare module '@onairos/react-native' {
90
90
  }
91
91
 
92
92
  export interface TrainingModalProps {
93
+ visible: boolean;
93
94
  progress: number;
94
95
  eta: string;
95
96
  onCancel: () => void;
97
+ onComplete?: () => void;
98
+ modelKey?: string;
99
+ username?: string;
100
+ test?: boolean; // Enable test mode for simulated training
96
101
  }
97
102
 
98
103
  export interface OAuthWebViewProps {
@@ -33,6 +33,16 @@ export interface OnairosButtonProps {
33
33
  darkMode?: boolean;
34
34
  }
35
35
 
36
+ export interface TestModeOptions {
37
+ // Simple 2-flow system
38
+ existingUser?: boolean; // Flow 1: Email โ†’ Code โ†’ Data Request โ†’ Close (return API URL)
39
+ newUser?: boolean; // Flow 2: Email โ†’ Code โ†’ Platform Connect โ†’ PIN โ†’ Training โ†’ Complete
40
+
41
+ // Optional tweaks
42
+ fastTraining?: boolean; // Speed up training simulation
43
+ skipRealConnections?: boolean; // Allow mock platform connections
44
+ }
45
+
36
46
  export interface UniversalOnboardingProps {
37
47
  visible: boolean;
38
48
  onClose: () => void;
@@ -48,7 +58,7 @@ export interface UniversalOnboardingProps {
48
58
  onComplete: (apiUrl: string, token: string, userData: any) => void;
49
59
  preferredPlatform?: string;
50
60
  debug?: boolean;
51
- test?: boolean;
61
+ test?: boolean | TestModeOptions; // Enhanced test mode with options
52
62
  embedd?: boolean;
53
63
  }
54
64
 
@@ -83,6 +93,7 @@ export interface TrainingModalProps {
83
93
  onComplete?: () => void;
84
94
  modelKey?: string;
85
95
  username?: string;
96
+ test?: boolean; // Enable test mode for simulated training
86
97
  }
87
98
 
88
99
  export interface OAuthWebViewProps {
package/src/types.ts CHANGED
@@ -10,6 +10,16 @@ export interface DataRequest {
10
10
  reward: string;
11
11
  }
12
12
 
13
+ export interface TestModeOptions {
14
+ // Simple 2-flow system
15
+ existingUser?: boolean; // Flow 1: Email โ†’ Code โ†’ Data Request โ†’ Close (return API URL)
16
+ newUser?: boolean; // Flow 2: Email โ†’ Code โ†’ Platform Connect โ†’ PIN โ†’ Training โ†’ Complete
17
+
18
+ // Optional tweaks
19
+ fastTraining?: boolean; // Speed up training simulation
20
+ skipRealConnections?: boolean; // Allow mock platform connections
21
+ }
22
+
13
23
  export interface UniversalOnboardingProps {
14
24
  visible: boolean;
15
25
  onClose: () => void;
@@ -29,7 +39,7 @@ export interface UniversalOnboardingProps {
29
39
  onComplete: (apiUrl: string, token: string, data: any) => void;
30
40
  embedd?: boolean;
31
41
  debug?: boolean;
32
- test?: boolean;
42
+ test?: boolean | TestModeOptions; // Enhanced test mode with options
33
43
  buttonType?: 'default' | 'pill';
34
44
  buttonForm?: 'signup' | 'login';
35
45
  preferredPlatform?: string;
@@ -120,6 +130,7 @@ export interface TrainingModalProps {
120
130
  onComplete?: () => void;
121
131
  modelKey?: string;
122
132
  username?: string;
133
+ test?: boolean; // Enable test mode for simulated training
123
134
  }
124
135
 
125
136
  export interface OAuthWebViewProps {