react-native-klarna-inapp-sdk 2.3.15 → 2.4.0

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 (62) hide show
  1. package/README.md +1 -0
  2. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/KlarnaMobileSDKPackage.java +2 -4
  3. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/event/KlarnaEventHandlerEventsUtil.java +62 -3
  4. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/util/ArgumentsUtil.java +40 -0
  5. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/signin/KlarnaSignInData.java +15 -0
  6. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/signin/KlarnaSignInEventsMapper.java +40 -0
  7. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/signin/KlarnaSignInModuleImpl.java +124 -0
  8. package/android/src/newarch/java/com/klarna/mobile/sdk/reactnative/spec/RNKlarnaSignInModuleSpec.java +65 -0
  9. package/android/src/oldarch/java/com/klarna/mobile/sdk/reactnative/spec/RNKlarnaSignInModuleSpec.java +39 -0
  10. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/KlarnaMobileSDKPackageTest.java +5 -4
  11. package/ios/Sources/signIn/KlarnaSignInData.h +25 -0
  12. package/ios/Sources/signIn/KlarnaSignInData.mm +21 -0
  13. package/ios/Sources/signIn/KlarnaSignInEventsMapper.h +18 -0
  14. package/ios/Sources/signIn/KlarnaSignInEventsMapper.m +54 -0
  15. package/ios/Sources/signIn/KlarnaSignInModule.h +26 -0
  16. package/ios/Sources/signIn/KlarnaSignInModuleImpl.h +37 -0
  17. package/ios/Sources/signIn/KlarnaSignInModuleImpl.mm +244 -0
  18. package/ios/Sources/signIn/newarch/KlarnaSignInModule.mm +75 -0
  19. package/ios/Sources/signIn/oldarch/KlarnaSignInModule.mm +72 -0
  20. package/lib/commonjs/KlarnaSignInSDK.js +80 -0
  21. package/lib/commonjs/KlarnaSignInSDK.js.map +1 -0
  22. package/lib/commonjs/index.js +11 -0
  23. package/lib/commonjs/index.js.map +1 -1
  24. package/lib/commonjs/specs/NativeKlarnaSignIn.js +10 -0
  25. package/lib/commonjs/specs/NativeKlarnaSignIn.js.map +1 -0
  26. package/lib/commonjs/types/common/KlarnaEnvironment.js +13 -0
  27. package/lib/commonjs/types/common/KlarnaEnvironment.js.map +1 -0
  28. package/lib/commonjs/types/common/KlarnaRegion.js +14 -0
  29. package/lib/commonjs/types/common/KlarnaRegion.js.map +1 -0
  30. package/lib/module/KlarnaSignInSDK.js +72 -0
  31. package/lib/module/KlarnaSignInSDK.js.map +1 -0
  32. package/lib/module/index.js +1 -0
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/specs/NativeKlarnaSignIn.js +3 -0
  35. package/lib/module/specs/NativeKlarnaSignIn.js.map +1 -0
  36. package/lib/module/types/common/KlarnaEnvironment.js +6 -0
  37. package/lib/module/types/common/KlarnaEnvironment.js.map +1 -0
  38. package/lib/module/types/common/KlarnaRegion.js +7 -0
  39. package/lib/module/types/common/KlarnaRegion.js.map +1 -0
  40. package/lib/typescript/KlarnaSignInSDK.d.ts +19 -0
  41. package/lib/typescript/KlarnaSignInSDK.d.ts.map +1 -0
  42. package/lib/typescript/index.d.ts +1 -0
  43. package/lib/typescript/index.d.ts.map +1 -1
  44. package/lib/typescript/specs/NativeKlarnaSignIn.d.ts +10 -0
  45. package/lib/typescript/specs/NativeKlarnaSignIn.d.ts.map +1 -0
  46. package/lib/typescript/types/common/KlarnaEnvironment.d.ts +5 -0
  47. package/lib/typescript/types/common/KlarnaEnvironment.d.ts.map +1 -0
  48. package/lib/typescript/types/common/KlarnaMobileSDKError.d.ts +4 -0
  49. package/lib/typescript/types/common/KlarnaMobileSDKError.d.ts.map +1 -1
  50. package/lib/typescript/types/common/KlarnaProductEvent.d.ts +1 -0
  51. package/lib/typescript/types/common/KlarnaProductEvent.d.ts.map +1 -1
  52. package/lib/typescript/types/common/KlarnaRegion.d.ts +6 -0
  53. package/lib/typescript/types/common/KlarnaRegion.d.ts.map +1 -0
  54. package/package.json +1 -1
  55. package/react-native-klarna-inapp-sdk.podspec +1 -1
  56. package/src/KlarnaSignInSDK.tsx +122 -0
  57. package/src/index.tsx +1 -0
  58. package/src/specs/NativeKlarnaSignIn.ts +25 -0
  59. package/src/types/common/KlarnaEnvironment.ts +4 -0
  60. package/src/types/common/KlarnaMobileSDKError.ts +2 -0
  61. package/src/types/common/KlarnaProductEvent.ts +1 -0
  62. package/src/types/common/KlarnaRegion.ts +5 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RNKlarnaSignIn","KlarnaSignInSDK","constructor","props","instanceId","environment","region","returnUrl","createInstance","trim","Promise","_","reject","sdkError","isFatal","message","name","resolve","Math","random","toString","substring","init","then","catch","error","errorInfo","userInfo","sessionId","params","dispose","signIn","clientId","scope","market","locale","tokenizationId","scopes","split","tokenizationScopes","isTokenizationScopeIncluded","some","value","includes","result"],"sourceRoot":"../../src","sources":["KlarnaSignInSDK.tsx"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './KlarnaPaymentView';
2
2
  export * from './KlarnaStandaloneWebView';
3
3
  export * from './KlarnaCheckoutView';
4
+ export * from './KlarnaSignInSDK';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,2BAA2B;AACzC,cAAc,sBAAsB"}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,2BAA2B;AACzC,cAAc,sBAAsB;AACpC,cAAc,mBAAmB"}
@@ -0,0 +1,3 @@
1
+ import { TurboModuleRegistry } from 'react-native';
2
+ export default TurboModuleRegistry.getEnforcing('RNKlarnaSignIn');
3
+ //# sourceMappingURL=NativeKlarnaSignIn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeKlarnaSignIn.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAuBlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export let KlarnaEnvironment = /*#__PURE__*/function (KlarnaEnvironment) {
2
+ KlarnaEnvironment["Playground"] = "playground";
3
+ KlarnaEnvironment["Production"] = "production";
4
+ return KlarnaEnvironment;
5
+ }({});
6
+ //# sourceMappingURL=KlarnaEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KlarnaEnvironment"],"sourceRoot":"../../../../src","sources":["types/common/KlarnaEnvironment.ts"],"mappings":"AAAA,WAAYA,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA"}
@@ -0,0 +1,7 @@
1
+ export let KlarnaRegion = /*#__PURE__*/function (KlarnaRegion) {
2
+ KlarnaRegion["EU"] = "eu";
3
+ KlarnaRegion["NA"] = "na";
4
+ KlarnaRegion["OC"] = "oc";
5
+ return KlarnaRegion;
6
+ }({});
7
+ //# sourceMappingURL=KlarnaRegion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KlarnaRegion"],"sourceRoot":"../../../../src","sources":["types/common/KlarnaRegion.ts"],"mappings":"AAAA,WAAYA,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA"}
@@ -0,0 +1,19 @@
1
+ import type { KlarnaEnvironment } from './types/common/KlarnaEnvironment';
2
+ import type { KlarnaProductEvent } from './types/common/KlarnaProductEvent';
3
+ import type { KlarnaRegion } from './types/common/KlarnaRegion';
4
+ export interface KlarnaSignInProps {
5
+ readonly environment: KlarnaEnvironment;
6
+ readonly region: KlarnaRegion;
7
+ readonly returnUrl: string;
8
+ }
9
+ export declare class KlarnaSignInSDK {
10
+ readonly environment: KlarnaEnvironment;
11
+ readonly region: KlarnaRegion;
12
+ readonly returnUrl: string;
13
+ readonly instanceId: string;
14
+ private constructor();
15
+ static createInstance(props: KlarnaSignInProps): Promise<KlarnaSignInSDK>;
16
+ dispose(): Promise<void>;
17
+ signIn(clientId: string, scope: string, market: string, locale: string, tokenizationId?: string): Promise<KlarnaProductEvent>;
18
+ }
19
+ //# sourceMappingURL=KlarnaSignInSDK.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KlarnaSignInSDK.d.ts","sourceRoot":"","sources":["../../src/KlarnaSignInSDK.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAGD,qBAAa,eAAe;IAC1B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO;WAOM,cAAc,CACzB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,eAAe,CAAC;IAoC3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC;CA+C/B"}
@@ -1,4 +1,5 @@
1
1
  export * from './KlarnaPaymentView';
2
2
  export * from './KlarnaStandaloneWebView';
3
3
  export * from './KlarnaCheckoutView';
4
+ export * from './KlarnaSignInSDK';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import type { KlarnaProductEvent } from 'src/types/common/KlarnaProductEvent';
3
+ export interface Spec extends TurboModule {
4
+ init(instanceId: string, environment: string, region: string, returnUrl: string): Promise<void>;
5
+ dispose(instanceId: string): Promise<void>;
6
+ signIn(instanceId: string, clientId: string, scope: string, market: string, locale: string, tokenizationId?: string): Promise<KlarnaProductEvent>;
7
+ }
8
+ declare const _default: Spec;
9
+ export default _default;
10
+ //# sourceMappingURL=NativeKlarnaSignIn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeKlarnaSignIn.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeKlarnaSignIn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,IAAI,CACF,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChC;;AAED,wBAAwE"}
@@ -0,0 +1,5 @@
1
+ export declare enum KlarnaEnvironment {
2
+ Playground = "playground",
3
+ Production = "production"
4
+ }
5
+ //# sourceMappingURL=KlarnaEnvironment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KlarnaEnvironment.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaEnvironment.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,UAAU,eAAe;IACzB,UAAU,eAAe;CAC1B"}
@@ -2,5 +2,9 @@ export interface KlarnaMobileSDKError {
2
2
  readonly isFatal: boolean;
3
3
  readonly message: string;
4
4
  readonly name: string;
5
+ readonly sessionId?: string;
6
+ readonly params?: {
7
+ [key: string]: any;
8
+ };
5
9
  }
6
10
  //# sourceMappingURL=KlarnaMobileSDKError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KlarnaMobileSDKError.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaMobileSDKError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"KlarnaMobileSDKError.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaMobileSDKError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CAC1C"}
@@ -3,5 +3,6 @@ export interface KlarnaProductEvent {
3
3
  readonly params: {
4
4
  [key: string]: any;
5
5
  };
6
+ readonly sessionId?: string;
6
7
  }
7
8
  //# sourceMappingURL=KlarnaProductEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KlarnaProductEvent.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaProductEvent.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACzC"}
1
+ {"version":3,"file":"KlarnaProductEvent.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaProductEvent.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,6 @@
1
+ export declare enum KlarnaRegion {
2
+ EU = "eu",
3
+ NA = "na",
4
+ OC = "oc"
5
+ }
6
+ //# sourceMappingURL=KlarnaRegion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KlarnaRegion.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaRegion.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-klarna-inapp-sdk",
3
3
  "title": "Klarna Mobile SDK React Native",
4
- "version": "2.3.15",
4
+ "version": "2.4.0",
5
5
  "description": "This library wraps Klarna Mobile SDK and exposes its functionality as React Native components.",
6
6
  "main": "lib/commonjs/index",
7
7
  "module": "lib/module/index",
@@ -48,5 +48,5 @@ Pod::Spec.new do |s|
48
48
  end
49
49
  end
50
50
 
51
- s.dependency 'KlarnaMobileSDK', '2.6.28'
51
+ s.dependency 'KlarnaMobileSDK', '2.6.29'
52
52
  end
@@ -0,0 +1,122 @@
1
+ import RNKlarnaSignIn from './specs/NativeKlarnaSignIn';
2
+ import type { KlarnaEnvironment } from './types/common/KlarnaEnvironment';
3
+ import type { KlarnaMobileSDKError } from './types/common/KlarnaMobileSDKError';
4
+ import type { KlarnaProductEvent } from './types/common/KlarnaProductEvent';
5
+ import type { KlarnaRegion } from './types/common/KlarnaRegion';
6
+
7
+ export interface KlarnaSignInProps {
8
+ readonly environment: KlarnaEnvironment;
9
+ readonly region: KlarnaRegion;
10
+ readonly returnUrl: string;
11
+ }
12
+
13
+ // declare a class that receive the KlarnaSignInProps in the initializer and expose a method to sign in
14
+ export class KlarnaSignInSDK {
15
+ readonly environment: KlarnaEnvironment;
16
+ readonly region: KlarnaRegion;
17
+ readonly returnUrl: string;
18
+ readonly instanceId: string;
19
+
20
+ private constructor(props: KlarnaSignInProps, instanceId: string) {
21
+ this.environment = props.environment;
22
+ this.region = props.region;
23
+ this.returnUrl = props.returnUrl;
24
+ this.instanceId = instanceId;
25
+ }
26
+
27
+ static async createInstance(
28
+ props: KlarnaSignInProps
29
+ ): Promise<KlarnaSignInSDK> {
30
+ if (props.returnUrl.trim() === '') {
31
+ return new Promise((_, reject) => {
32
+ const sdkError: KlarnaMobileSDKError = {
33
+ isFatal: true,
34
+ message: 'Invalid or null return URL',
35
+ name: 'KlarnaSignInMissingReturnUrl',
36
+ };
37
+ reject(sdkError);
38
+ });
39
+ }
40
+ return new Promise((resolve, reject) => {
41
+ let instanceId = Math.random().toString(36).substring(2, 15);
42
+ RNKlarnaSignIn.init(
43
+ instanceId,
44
+ props.environment,
45
+ props.region,
46
+ props.returnUrl
47
+ )
48
+ .then((_) => {
49
+ resolve(new KlarnaSignInSDK(props, instanceId));
50
+ })
51
+ .catch((error) => {
52
+ const errorInfo = error.userInfo;
53
+ const sdkError: KlarnaMobileSDKError = {
54
+ isFatal: errorInfo.isFatal,
55
+ message: errorInfo.message,
56
+ name: errorInfo.name,
57
+ sessionId: errorInfo.sessionId,
58
+ params: errorInfo.params,
59
+ };
60
+ reject(sdkError);
61
+ });
62
+ });
63
+ }
64
+
65
+ dispose(): Promise<void> {
66
+ return RNKlarnaSignIn.dispose(this.instanceId);
67
+ }
68
+
69
+ signIn(
70
+ clientId: string,
71
+ scope: string,
72
+ market: string,
73
+ locale: string,
74
+ tokenizationId?: string
75
+ ): Promise<KlarnaProductEvent> {
76
+ const scopes = scope.split(' ');
77
+ const tokenizationScopes = [
78
+ 'payment:customer_not_present',
79
+ 'payment:customer_present',
80
+ ];
81
+ const isTokenizationScopeIncluded = tokenizationScopes.some((value) =>
82
+ scopes.includes(value)
83
+ );
84
+ if (
85
+ isTokenizationScopeIncluded &&
86
+ (!tokenizationId || tokenizationId.trim() === '')
87
+ ) {
88
+ return new Promise((_, reject) => {
89
+ const sdkError: KlarnaMobileSDKError = {
90
+ isFatal: false,
91
+ message: `Found ${tokenizationScopes} in scope but tokenizationId is empty.`,
92
+ name: 'KlarnaSignInMissingTokenizationId',
93
+ };
94
+ reject(sdkError);
95
+ });
96
+ }
97
+ return new Promise((resolve, reject) => {
98
+ RNKlarnaSignIn.signIn(
99
+ this.instanceId,
100
+ clientId,
101
+ scope,
102
+ market,
103
+ locale,
104
+ tokenizationId
105
+ )
106
+ .then((result) => {
107
+ resolve(result);
108
+ })
109
+ .catch((error) => {
110
+ const errorInfo = error.userInfo;
111
+ const sdkError: KlarnaMobileSDKError = {
112
+ isFatal: errorInfo.isFatal,
113
+ message: errorInfo.message,
114
+ name: errorInfo.name,
115
+ sessionId: errorInfo.sessionId,
116
+ params: errorInfo.params,
117
+ };
118
+ reject(sdkError);
119
+ });
120
+ });
121
+ }
122
+ }
package/src/index.tsx CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './KlarnaPaymentView';
2
2
  export * from './KlarnaStandaloneWebView';
3
3
  export * from './KlarnaCheckoutView';
4
+ export * from './KlarnaSignInSDK';
@@ -0,0 +1,25 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+ import type { KlarnaProductEvent } from 'src/types/common/KlarnaProductEvent';
4
+
5
+ export interface Spec extends TurboModule {
6
+ init(
7
+ instanceId: string,
8
+ environment: string,
9
+ region: string,
10
+ returnUrl: string
11
+ ): Promise<void>;
12
+
13
+ dispose(instanceId: string): Promise<void>;
14
+
15
+ signIn(
16
+ instanceId: string,
17
+ clientId: string,
18
+ scope: string,
19
+ market: string,
20
+ locale: string,
21
+ tokenizationId?: string
22
+ ): Promise<KlarnaProductEvent>;
23
+ }
24
+
25
+ export default TurboModuleRegistry.getEnforcing<Spec>('RNKlarnaSignIn');
@@ -0,0 +1,4 @@
1
+ export enum KlarnaEnvironment {
2
+ Playground = 'playground',
3
+ Production = 'production',
4
+ }
@@ -2,4 +2,6 @@ export interface KlarnaMobileSDKError {
2
2
  readonly isFatal: boolean;
3
3
  readonly message: string;
4
4
  readonly name: string;
5
+ readonly sessionId?: string;
6
+ readonly params?: { [key: string]: any };
5
7
  }
@@ -1,4 +1,5 @@
1
1
  export interface KlarnaProductEvent {
2
2
  readonly action: string;
3
3
  readonly params: { [key: string]: any };
4
+ readonly sessionId?: string;
4
5
  }
@@ -0,0 +1,5 @@
1
+ export enum KlarnaRegion {
2
+ EU = 'eu',
3
+ NA = 'na',
4
+ OC = 'oc',
5
+ }