@react-native-kakao/user 0.6.0 → 0.7.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.
@@ -2,8 +2,24 @@ package net.mjstudio.rnkakao.user
2
2
 
3
3
  import com.facebook.react.bridge.Promise
4
4
  import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.bridge.ReactMethod
6
+ import com.facebook.react.bridge.ReadableArray
7
+ import com.kakao.sdk.auth.AuthApiClient
8
+ import com.kakao.sdk.auth.model.OAuthToken
9
+ import com.kakao.sdk.auth.model.Prompt
10
+ import com.kakao.sdk.common.model.KakaoSdkError
5
11
  import com.kakao.sdk.user.UserApiClient
6
- import net.mjstudio.rnkakao.share.KakaoUserSpec
12
+ import net.mjstudio.rnkakao.core.util.RNCKakaoUtil
13
+ import net.mjstudio.rnkakao.core.util.argArr
14
+ import net.mjstudio.rnkakao.core.util.argMap
15
+ import net.mjstudio.rnkakao.core.util.filterIsInstance
16
+ import net.mjstudio.rnkakao.core.util.pushMapList
17
+ import net.mjstudio.rnkakao.core.util.pushStringList
18
+ import net.mjstudio.rnkakao.core.util.putBooleanIfNotNull
19
+ import net.mjstudio.rnkakao.core.util.putDoubleIfNotNull
20
+ import net.mjstudio.rnkakao.core.util.putIntIfNotNull
21
+ import net.mjstudio.rnkakao.core.util.rejectWith
22
+ import java.util.*
7
23
 
8
24
  class RNCKakaoUserModule internal constructor(context: ReactApplicationContext) :
9
25
  KakaoUserSpec(context) {
@@ -12,9 +28,263 @@ class RNCKakaoUserModule internal constructor(context: ReactApplicationContext)
12
28
  return NAME
13
29
  }
14
30
 
15
- override fun loginWithKakaoTalk(promise: Promise) {
16
- UserApiClient.instance.loginWithKakaoTalk(reactApplicationContext) { token, error ->
17
-
31
+ @ReactMethod
32
+ override fun login(
33
+ serviceTerms: ReadableArray?,
34
+ prompts: ReadableArray?,
35
+ useKakaoAccountLogin: Boolean,
36
+ promise: Promise
37
+ ) {
38
+ val callback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
39
+ if (error != null) {
40
+ promise.rejectWith(error)
41
+ } else if (token == null) {
42
+ promise.rejectWith("token not found")
43
+ } else {
44
+ promise.resolve(argMap().apply {
45
+ putString("accessToken", token.accessToken)
46
+ putString("refreshToken", token.refreshToken)
47
+ putString("tokenType", null)
48
+ putString("idToken", token.idToken)
49
+ putDouble(
50
+ "accessTokenExpiresAt", token.accessTokenExpiresAt.time.toDouble()
51
+ )
52
+ putDouble(
53
+ "refreshTokenExpiresAt", token.refreshTokenExpiresAt.time.toDouble()
54
+ )
55
+ putDouble(
56
+ "accessTokenExpiresIn",
57
+ RNCKakaoUtil.diffSec(token.accessTokenExpiresAt, Date()).toDouble()
58
+ )
59
+ putDouble(
60
+ "refreshTokenExpiresIn",
61
+ RNCKakaoUtil.diffSec(token.refreshTokenExpiresAt, Date()).toDouble()
62
+ )
63
+ putArray("scopes", argArr().apply {
64
+ pushStringList(token.scopes ?: listOf())
65
+ })
66
+ })
67
+ }
68
+ }
69
+
70
+ if (UserApiClient.instance.isKakaoTalkLoginAvailable(reactApplicationContext) && !useKakaoAccountLogin) {
71
+ UserApiClient.instance.loginWithKakaoTalk(
72
+ reactApplicationContext,
73
+ serviceTerms = serviceTerms?.filterIsInstance<String>(),
74
+ callback = callback
75
+ )
76
+ } else {
77
+ UserApiClient.instance.loginWithKakaoAccount(
78
+ reactApplicationContext,
79
+ prompts = prompts?.filterIsInstance<String>()?.map {
80
+ when (it) {
81
+ "Login" -> Prompt.LOGIN
82
+ "Create" -> Prompt.CREATE
83
+ "Cert" -> Prompt.CERT
84
+ "UnifyDaum" -> Prompt.UNIFY_DAUM
85
+ "SelectAccount" -> Prompt.SELECT_ACCOUNT
86
+ else -> null
87
+ }
88
+ }?.filterNotNull(),
89
+ serviceTerms = serviceTerms?.filterIsInstance<String>(),
90
+ callback = callback
91
+ )
92
+ }
93
+ }
94
+
95
+ @ReactMethod
96
+ override fun isKakaoTalkLoginAvailable(promise: Promise) {
97
+ promise.resolve(UserApiClient.instance.isKakaoTalkLoginAvailable(reactApplicationContext))
98
+ }
99
+
100
+ @ReactMethod
101
+ override fun logout(promise: Promise) {
102
+ UserApiClient.instance.logout {
103
+ if (it != null) {
104
+ promise.rejectWith(it)
105
+ } else {
106
+ promise.resolve(42)
107
+ }
108
+ }
109
+ }
110
+
111
+ @ReactMethod
112
+ override fun unlink(promise: Promise) {
113
+ UserApiClient.instance.unlink {
114
+ if (it != null) {
115
+ promise.rejectWith(it)
116
+ } else {
117
+ promise.resolve(42)
118
+ }
119
+ }
120
+ }
121
+
122
+ @ReactMethod
123
+ override fun isLogined(promise: Promise) {
124
+ if (AuthApiClient.instance.hasToken()) {
125
+ UserApiClient.instance.accessTokenInfo { _, error ->
126
+ if (error != null) {
127
+ if (error is KakaoSdkError && error.isInvalidTokenError()) {
128
+ promise.resolve(false)
129
+ } else {
130
+ promise.rejectWith(error)
131
+ }
132
+ } else {
133
+ promise.resolve(true)
134
+ }
135
+ }
136
+ } else {
137
+ promise.resolve(false)
138
+ }
139
+ }
140
+
141
+ @ReactMethod
142
+ override fun scopes(scopes: ReadableArray?, promise: Promise) {
143
+ UserApiClient.instance.scopes { scopeInfo, error ->
144
+ if (error != null) {
145
+ promise.rejectWith(error)
146
+ } else if (scopeInfo?.scopes == null) {
147
+ promise.rejectWith("scopes not found")
148
+ } else {
149
+ promise.resolve(argArr().also { arr ->
150
+ scopeInfo.scopes!!.forEach { scope ->
151
+ arr.pushMap(argMap().also { map ->
152
+ map.putString("id", scope.id)
153
+ map.putString("displayName", scope.displayName)
154
+ map.putString("type", scope.type.name)
155
+ map.putBoolean("using", scope.using)
156
+ map.putBooleanIfNotNull("delegated", scope.delegated)
157
+ map.putBoolean("agreed", scope.agreed)
158
+ map.putBooleanIfNotNull("revocable", scope.revocable)
159
+ })
160
+ }
161
+ })
162
+ }
163
+ }
164
+ }
165
+
166
+ @ReactMethod
167
+ override fun revokeScopes(scopes: ReadableArray, promise: Promise) {
168
+ UserApiClient.instance.revokeScopes(
169
+ scopes = scopes.filterIsInstance<String>() ?: listOf()
170
+ ) { scopeInfo, error ->
171
+ if (error != null) {
172
+ promise.rejectWith(error)
173
+ } else if (scopeInfo == null) {
174
+ promise.rejectWith("scopeInfo not found")
175
+ } else {
176
+ promise.resolve(42)
177
+ }
178
+ }
179
+ }
180
+
181
+ @ReactMethod
182
+ override fun serviceTerms(promise: Promise) {
183
+ UserApiClient.instance.serviceTerms { serviceTerms, error ->
184
+ if (error != null) {
185
+ promise.rejectWith(error)
186
+ } else if (serviceTerms?.serviceTerms == null) {
187
+ promise.rejectWith("serviceTerms not found")
188
+ } else {
189
+ promise.resolve(argMap().apply {
190
+ putArray("allowedServiceTerms", argArr().apply {
191
+ serviceTerms.serviceTerms?.forEach { term ->
192
+ pushMap(argMap().apply {
193
+ putString("tag", term.tag)
194
+ putDoubleIfNotNull("agreedAt", term.agreedAt?.time?.toDouble())
195
+ })
196
+ }
197
+ })
198
+ })
199
+ }
200
+ }
201
+ }
202
+
203
+ @ReactMethod
204
+ override fun shippingAddresses(promise: Promise) {
205
+ UserApiClient.instance.shippingAddresses { addrs, error ->
206
+ if (error != null) {
207
+ promise.rejectWith(error)
208
+ } else if (addrs == null) {
209
+ promise.rejectWith("shipping addresses not found")
210
+ } else {
211
+ promise.resolve(argMap().apply {
212
+ putIntIfNotNull("userId", addrs.userId?.toInt())
213
+ putBooleanIfNotNull("needsAgreement", addrs.needsAgreement)
214
+ putArray("shippingAddresses", argArr().apply {
215
+ pushMapList(addrs.shippingAddresses?.map { addr ->
216
+ argMap().apply {
217
+ putInt("id", addr.id.toInt())
218
+ putString("name", addr.name)
219
+ putBoolean("isDefault", addr.isDefault)
220
+ putDoubleIfNotNull("updatedAt", addr.updatedAt?.time?.toDouble())
221
+ putString("type", addr.type?.name)
222
+ putString("baseAddress", addr.baseAddress)
223
+ putString("detailAddress", addr.detailAddress)
224
+ putString("receiverName", addr.receiverName)
225
+ putString("receiverPhoneNumber1", addr.receiverPhoneNumber1)
226
+ putString("receiverPhoneNumber2", addr.receiverPhoneNumber2)
227
+ putString("zoneNumber", addr.zoneNumber)
228
+ putString("zipCode", addr.zipCode)
229
+ }
230
+ } ?: listOf())
231
+ })
232
+ })
233
+ }
234
+ }
235
+ }
236
+
237
+ @ReactMethod
238
+ override fun me(promise: Promise) {
239
+ UserApiClient.instance.me { user, error ->
240
+ if (error != null) {
241
+ promise.rejectWith(error)
242
+ } else if (user == null) {
243
+ promise.rejectWith("user not found")
244
+ } else {
245
+ promise.resolve(argMap().apply {
246
+ putIntIfNotNull("id", user.id?.toInt())
247
+ putString("name", user.kakaoAccount?.name)
248
+
249
+ putString("email", user.kakaoAccount?.email)
250
+ putString("nickname", user.kakaoAccount?.profile?.nickname)
251
+ putString("profileImageUrl", user.kakaoAccount?.profile?.profileImageUrl)
252
+ putString("thumbnailImageUrl", user.kakaoAccount?.profile?.thumbnailImageUrl)
253
+ putString("phoneNumber", user.kakaoAccount?.phoneNumber)
254
+ putString("ageRange", user.kakaoAccount?.ageRange?.name)
255
+ putString("birthday", user.kakaoAccount?.birthday)
256
+ putString("birthdayType", user.kakaoAccount?.birthdayType?.name)
257
+ putString("birthyear", user.kakaoAccount?.birthyear)
258
+ putString("gender", user.kakaoAccount?.gender?.name)
259
+ putBooleanIfNotNull("isEmailValid", user.kakaoAccount?.isEmailValid)
260
+ putBooleanIfNotNull("isEmailVerified", user.kakaoAccount?.isEmailVerified)
261
+ putBooleanIfNotNull("isKorean", user.kakaoAccount?.isKorean)
262
+ putBooleanIfNotNull(
263
+ "ageRangeNeedsAgreement", user.kakaoAccount?.ageRangeNeedsAgreement
264
+ )
265
+ putBooleanIfNotNull(
266
+ "birthdayNeedsAgreement", user.kakaoAccount?.birthdayNeedsAgreement
267
+ )
268
+ putBooleanIfNotNull(
269
+ "birthyearNeedsAgreement", user.kakaoAccount?.birthyearNeedsAgreement
270
+ )
271
+ putBooleanIfNotNull(
272
+ "emailNeedsAgreement", user.kakaoAccount?.emailNeedsAgreement
273
+ )
274
+ putBooleanIfNotNull(
275
+ "genderNeedsAgreement", user.kakaoAccount?.genderNeedsAgreement
276
+ )
277
+ putBooleanIfNotNull(
278
+ "isKoreanNeedsAgreement", user.kakaoAccount?.isKoreanNeedsAgreement
279
+ )
280
+ putBooleanIfNotNull(
281
+ "phoneNumberNeedsAgreement", user.kakaoAccount?.phoneNumberNeedsAgreement
282
+ )
283
+ putBooleanIfNotNull(
284
+ "profileNeedsAgreement", user.kakaoAccount?.profileNeedsAgreement
285
+ )
286
+ })
287
+ }
18
288
  }
19
289
  }
20
290
 
@@ -1,4 +1,4 @@
1
- package net.mjstudio.rnkakao.share
1
+ package net.mjstudio.rnkakao.user
2
2
 
3
3
  import com.facebook.react.bridge.ReactApplicationContext
4
4
  import net.mjstudio.rnkakao.user.NativeKakaoUserSpec
@@ -1,7 +1,34 @@
1
- package net.mjstudio.rnkakao.share
1
+ package net.mjstudio.rnkakao.user
2
2
 
3
+ import com.facebook.react.bridge.Promise
3
4
  import com.facebook.react.bridge.ReactApplicationContext
4
5
  import com.facebook.react.bridge.ReactContextBaseJavaModule
6
+ import com.facebook.react.bridge.ReadableArray
5
7
 
6
8
  abstract class KakaoUserSpec internal constructor(context: ReactApplicationContext) :
7
- ReactContextBaseJavaModule(context)
9
+ ReactContextBaseJavaModule(context) {
10
+ abstract fun login(
11
+ serviceTerms: ReadableArray?,
12
+ prompts: ReadableArray?,
13
+ useKakaoAccountLogin: Boolean,
14
+ promise: Promise
15
+ )
16
+
17
+ abstract fun isKakaoTalkLoginAvailable(promise: Promise)
18
+
19
+ abstract fun logout(promise: Promise)
20
+
21
+ abstract fun unlink(promise: Promise)
22
+
23
+ abstract fun isLogined(promise: Promise)
24
+
25
+ abstract fun scopes(scopes: ReadableArray?, promise: Promise)
26
+
27
+ abstract fun revokeScopes(scopes: ReadableArray, promise: Promise)
28
+
29
+ abstract fun serviceTerms(promise: Promise)
30
+
31
+ abstract fun shippingAddresses(promise: Promise)
32
+
33
+ abstract fun me(promise: Promise)
34
+ }
@@ -18,14 +18,14 @@ RCT_EXPORT_METHOD(isKakaoTalkLoginAvailable
18
18
  RCT_EXPORT_METHOD(login
19
19
  : (NSArray*)serviceTerms prompts
20
20
  : (NSArray*)prompts useKakaoAccountLoginIos
21
- : (BOOL)useKakaoAccountLoginIos resolve
21
+ : (BOOL)useKakaoAccountLogin resolve
22
22
  : (RCTPromiseResolveBlock)resolve reject
23
23
  : (RCTPromiseRejectBlock)reject) {
24
24
  [[self manager] login:serviceTerms
25
- prompts:prompts
26
- useKakaoAccountLoginIos:useKakaoAccountLoginIos
27
- resolve:resolve
28
- reject:reject];
25
+ prompts:prompts
26
+ useKakaoAccountLogin:useKakaoAccountLogin
27
+ resolve:resolve
28
+ reject:reject];
29
29
  }
30
30
 
31
31
  RCT_EXPORT_METHOD(logout : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) {
@@ -68,6 +68,10 @@ RCT_EXPORT_METHOD(shippingAddresses
68
68
  [[self manager] shippingAddresses:resolve reject:reject];
69
69
  }
70
70
 
71
+ RCT_EXPORT_METHOD(me : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) {
72
+ [[self manager] me:resolve reject:reject];
73
+ }
74
+
71
75
  // Don't compile this code when we build for the old architecture.
72
76
  #ifdef RCT_NEW_ARCH_ENABLED
73
77
  - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
@@ -28,7 +28,7 @@ import RNCKakaoCore
28
28
  @objc public func login(
29
29
  _ serviceTerms: [String],
30
30
  prompts: [String],
31
- useKakaoAccountLoginIos: Bool,
31
+ useKakaoAccountLogin: Bool,
32
32
  resolve: @escaping RCTPromiseResolveBlock,
33
33
  reject: @escaping RCTPromiseRejectBlock
34
34
  ) {
@@ -36,7 +36,7 @@ import RNCKakaoCore
36
36
  RNCKakaoUtil.reject(reject, "KakaoSdk is not initialized")
37
37
  return
38
38
  }
39
- if UserApi.isKakaoTalkLoginAvailable(), !useKakaoAccountLoginIos {
39
+ if UserApi.isKakaoTalkLoginAvailable(), !useKakaoAccountLogin {
40
40
  UserApi.shared
41
41
  .loginWithKakaoTalk(serviceTerms: emptyArrayToNil(serviceTerms)) { token, error in
42
42
  if let error {
@@ -174,8 +174,8 @@ import RNCKakaoCore
174
174
  UserApi.shared.scopes(scopes: emptyArrayToNil(scopes)) { scopeInfo, error in
175
175
  if let error {
176
176
  RNCKakaoUtil.reject(reject, error)
177
- } else if let scopeInfo {
178
- resolve(scopeInfo.scopes?.map { s in
177
+ } else if let scopes = scopeInfo?.scopes {
178
+ resolve(scopes.map { s in
179
179
  [
180
180
  "id": s.id,
181
181
  "displayName": s.displayName,
@@ -185,9 +185,9 @@ import RNCKakaoCore
185
185
  "agreed": s.agreed,
186
186
  "revocable": s.revocable as Any
187
187
  ]
188
- } ?? [])
188
+ })
189
189
  } else {
190
- RNCKakaoUtil.reject(reject, "scopeInfo not found")
190
+ RNCKakaoUtil.reject(reject, "scopes not found")
191
191
  }
192
192
  }
193
193
  }
@@ -273,6 +273,45 @@ import RNCKakaoCore
273
273
  }
274
274
  }
275
275
 
276
+ @objc public func me(
277
+ _ resolve: @escaping RCTPromiseResolveBlock,
278
+ reject: @escaping RCTPromiseRejectBlock
279
+ ) {
280
+ UserApi.shared.me { user, error in
281
+ if let error {
282
+ RNCKakaoUtil.reject(reject, error)
283
+ } else if let user {
284
+ resolve([
285
+ "id": user.id as Any,
286
+ "name": user.kakaoAccount?.name as Any,
287
+ "email": user.kakaoAccount?.email as Any,
288
+ "nickname": user.kakaoAccount?.profile?.nickname as Any,
289
+ "profileImageUrl": user.kakaoAccount?.profile?.profileImageUrl?.absoluteString as Any,
290
+ "thumbnailImageUrl": user.kakaoAccount?.profile?.thumbnailImageUrl?.absoluteString as Any,
291
+ "phoneNumber": user.kakaoAccount?.phoneNumber as Any,
292
+ "ageRange": user.kakaoAccount?.ageRange?.rawValue as Any,
293
+ "birthday": user.kakaoAccount?.birthday as Any,
294
+ "birthdayType": user.kakaoAccount?.birthdayType as Any,
295
+ "birthyear": user.kakaoAccount?.birthyear as Any,
296
+ "gender": user.kakaoAccount?.gender?.rawValue as Any,
297
+ "isEmailValid": user.kakaoAccount?.isEmailValid as Any,
298
+ "isEmailVerified": user.kakaoAccount?.isEmailVerified as Any,
299
+ "isKorean": user.kakaoAccount?.isKorean as Any,
300
+ "ageRangeNeedsAgreement": user.kakaoAccount?.ageRangeNeedsAgreement as Any,
301
+ "birthdayNeedsAgreement": user.kakaoAccount?.birthdayNeedsAgreement as Any,
302
+ "birthyearNeedsAgreement": user.kakaoAccount?.birthyearNeedsAgreement as Any,
303
+ "emailNeedsAgreement": user.kakaoAccount?.emailNeedsAgreement as Any,
304
+ "genderNeedsAgreement": user.kakaoAccount?.genderNeedsAgreement as Any,
305
+ "isKoreanNeedsAgreement": user.kakaoAccount?.isKoreanNeedsAgreement as Any,
306
+ "phoneNumberNeedsAgreement": user.kakaoAccount?.phoneNumberNeedsAgreement as Any,
307
+ "profileNeedsAgreement": user.kakaoAccount?.profileNeedsAgreement as Any
308
+ ])
309
+ } else {
310
+ RNCKakaoUtil.reject(reject, "user not found")
311
+ }
312
+ }
313
+ }
314
+
276
315
  private func emptyArrayToNil<T>(_ arr: [T]?) -> [T]? {
277
316
  if arr == nil || arr?.isEmpty == true { return nil }
278
317
  return arr
@@ -7,6 +7,7 @@ exports.isKakaoTalkLoginAvailable = isKakaoTalkLoginAvailable;
7
7
  exports.isLogined = isLogined;
8
8
  exports.login = login;
9
9
  exports.logout = logout;
10
+ exports.me = me;
10
11
  exports.revokeScopes = revokeScopes;
11
12
  exports.scopes = scopes;
12
13
  exports.serviceTerms = serviceTerms;
@@ -20,7 +21,7 @@ const LINKING_ERROR = "The package '@react-native-kakao/user' doesn't seem to be
20
21
 
21
22
  // @ts-expect-error
22
23
  const isTurboModuleEnabled = global.__turboModuleProxy != null;
23
- const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : _reactNative.NativeModules.KakaoShare;
24
+ const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : _reactNative.NativeModules.RNCKakaoUser;
24
25
  const Native = Module ? Module : new Proxy({}, {
25
26
  get() {
26
27
  throw new Error(LINKING_ERROR);
@@ -29,9 +30,9 @@ const Native = Module ? Module : new Proxy({}, {
29
30
  function login({
30
31
  serviceTerms,
31
32
  prompts,
32
- useKakaoAccountLoginIos
33
+ useKakaoAccountLogin
33
34
  } = {}) {
34
- return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLoginIos ?? false);
35
+ return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLogin ?? false);
35
36
  }
36
37
  function logout() {
37
38
  return Native.logout();
@@ -57,4 +58,7 @@ function serviceTerms() {
57
58
  function shippingAddresses() {
58
59
  return Native.shippingAddresses();
59
60
  }
61
+ function me() {
62
+ return Native.me();
63
+ }
60
64
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","KakaoShare","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLoginIos","logout","unlink","isLogined","isKakaoTalkLoginAvailable","scopes","revokeScopes","shippingAddresses"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIA,MAAMC,aAAa,GACjB,mFAAmF,GACnFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,MAAM,GAAGH,oBAAoB,GAC/BN,OAAO,CAAC,wBAAwB,CAAC,CAACK,OAAO,GACzCK,0BAAa,CAACC,UAAU;AAE5B,MAAMC,MAAY,GAAGH,MAAM,GACvBA,MAAM,GACN,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACd,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAkDE,SAASe,KAAKA,CAAC;EACpBC,YAAY;EACZC,OAAO;EACPC;AAKF,CAAC,GAAG,CAAC,CAAC,EAA4B;EAChC,OAAOP,MAAM,CAACI,KAAK,CAACC,YAAY,IAAI,EAAE,EAAEC,OAAO,IAAI,EAAE,EAAEC,uBAAuB,IAAI,KAAK,CAAC;AAC1F;AAEO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOR,MAAM,CAACQ,MAAM,CAAC,CAAC;AACxB;AAEO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOT,MAAM,CAACS,MAAM,CAAC,CAAC;AACxB;AAEO,SAASC,SAASA,CAAA,EAAG;EAC1B,OAAOV,MAAM,CAACU,SAAS,CAAC,CAAC;AAC3B;AAEO,SAASC,yBAAyBA,CAAA,EAAqB;EAC5D,OAAOX,MAAM,CAACW,yBAAyB,CAAC,CAAC;AAC3C;AAEO,SAASC,MAAMA,CAACA,MAAiB,EAA6B;EACnE,OAAOZ,MAAM,CAACY,MAAM,CAACA,MAAM,CAAC;AAC9B;AAEO,SAASC,YAAYA,CAACD,MAAgB,EAAiB;EAC5D,OAAOZ,MAAM,CAACa,YAAY,CAACD,MAAM,CAAC;AACpC;AAEO,SAASP,YAAYA,CAAA,EAGzB;EACD,OAAOL,MAAM,CAACK,YAAY,CAAC,CAAC;AAC9B;AAEO,SAASS,iBAAiBA,CAAA,EAAwC;EACvE,OAAOd,MAAM,CAACc,iBAAiB,CAAC,CAAC;AACnC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","RNCKakaoUser","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLogin","logout","unlink","isLogined","isKakaoTalkLoginAvailable","scopes","revokeScopes","shippingAddresses","me"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIA,MAAMC,aAAa,GACjB,mFAAmF,GACnFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,MAAM,GAAGH,oBAAoB,GAC/BN,OAAO,CAAC,wBAAwB,CAAC,CAACK,OAAO,GACzCK,0BAAa,CAACC,YAAY;AAE9B,MAAMC,MAAY,GAAGH,MAAM,GACvBA,MAAM,GACN,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACd,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AA2EE,SAASe,KAAKA,CAAC;EACpBC,YAAY;EACZC,OAAO;EACPC;AAKF,CAAC,GAAG,CAAC,CAAC,EAA4B;EAChC,OAAOP,MAAM,CAACI,KAAK,CAACC,YAAY,IAAI,EAAE,EAAEC,OAAO,IAAI,EAAE,EAAEC,oBAAoB,IAAI,KAAK,CAAC;AACvF;AAEO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOR,MAAM,CAACQ,MAAM,CAAC,CAAC;AACxB;AAEO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOT,MAAM,CAACS,MAAM,CAAC,CAAC;AACxB;AAEO,SAASC,SAASA,CAAA,EAAG;EAC1B,OAAOV,MAAM,CAACU,SAAS,CAAC,CAAC;AAC3B;AAEO,SAASC,yBAAyBA,CAAA,EAAqB;EAC5D,OAAOX,MAAM,CAACW,yBAAyB,CAAC,CAAC;AAC3C;AAEO,SAASC,MAAMA,CAACA,MAAiB,EAA6B;EACnE,OAAOZ,MAAM,CAACY,MAAM,CAACA,MAAM,CAAC;AAC9B;AAEO,SAASC,YAAYA,CAACD,MAAgB,EAAiB;EAC5D,OAAOZ,MAAM,CAACa,YAAY,CAACD,MAAM,CAAC;AACpC;AAEO,SAASP,YAAYA,CAAA,EAGzB;EACD,OAAOL,MAAM,CAACK,YAAY,CAAC,CAAC;AAC9B;AAEO,SAASS,iBAAiBA,CAAA,EAAwC;EACvE,OAAOd,MAAM,CAACc,iBAAiB,CAAC,CAAC;AACnC;AAEO,SAASC,EAAEA,CAAA,EAAuB;EACvC,OAAOf,MAAM,CAACe,EAAE,CAAC,CAAC;AACpB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoUser.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA6BpCC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoUser.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA+BpCC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
@@ -6,7 +6,7 @@ const LINKING_ERROR = "The package '@react-native-kakao/user' doesn't seem to be
6
6
 
7
7
  // @ts-expect-error
8
8
  const isTurboModuleEnabled = global.__turboModuleProxy != null;
9
- const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : NativeModules.KakaoShare;
9
+ const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : NativeModules.RNCKakaoUser;
10
10
  const Native = Module ? Module : new Proxy({}, {
11
11
  get() {
12
12
  throw new Error(LINKING_ERROR);
@@ -15,9 +15,9 @@ const Native = Module ? Module : new Proxy({}, {
15
15
  export function login({
16
16
  serviceTerms,
17
17
  prompts,
18
- useKakaoAccountLoginIos
18
+ useKakaoAccountLogin
19
19
  } = {}) {
20
- return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLoginIos ?? false);
20
+ return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLogin ?? false);
21
21
  }
22
22
  export function logout() {
23
23
  return Native.logout();
@@ -43,4 +43,7 @@ export function serviceTerms() {
43
43
  export function shippingAddresses() {
44
44
  return Native.shippingAddresses();
45
45
  }
46
+ export function me() {
47
+ return Native.me();
48
+ }
46
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","KakaoShare","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLoginIos","logout","unlink","isLogined","isKakaoTalkLoginAvailable","scopes","revokeScopes","shippingAddresses"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAItD,MAAMC,aAAa,GACjB,mFAAmF,GACnFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,MAAM,GAAGH,oBAAoB,GAC/BI,OAAO,CAAC,wBAAwB,CAAC,CAACL,OAAO,GACzCL,aAAa,CAACW,UAAU;AAE5B,MAAMC,MAAY,GAAGH,MAAM,GACvBA,MAAM,GACN,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACb,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAkDL,OAAO,SAASc,KAAKA,CAAC;EACpBC,YAAY;EACZC,OAAO;EACPC;AAKF,CAAC,GAAG,CAAC,CAAC,EAA4B;EAChC,OAAOP,MAAM,CAACI,KAAK,CAACC,YAAY,IAAI,EAAE,EAAEC,OAAO,IAAI,EAAE,EAAEC,uBAAuB,IAAI,KAAK,CAAC;AAC1F;AAEA,OAAO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOR,MAAM,CAACQ,MAAM,CAAC,CAAC;AACxB;AAEA,OAAO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOT,MAAM,CAACS,MAAM,CAAC,CAAC;AACxB;AAEA,OAAO,SAASC,SAASA,CAAA,EAAG;EAC1B,OAAOV,MAAM,CAACU,SAAS,CAAC,CAAC;AAC3B;AAEA,OAAO,SAASC,yBAAyBA,CAAA,EAAqB;EAC5D,OAAOX,MAAM,CAACW,yBAAyB,CAAC,CAAC;AAC3C;AAEA,OAAO,SAASC,MAAMA,CAACA,MAAiB,EAA6B;EACnE,OAAOZ,MAAM,CAACY,MAAM,CAACA,MAAM,CAAC;AAC9B;AAEA,OAAO,SAASC,YAAYA,CAACD,MAAgB,EAAiB;EAC5D,OAAOZ,MAAM,CAACa,YAAY,CAACD,MAAM,CAAC;AACpC;AAEA,OAAO,SAASP,YAAYA,CAAA,EAGzB;EACD,OAAOL,MAAM,CAACK,YAAY,CAAC,CAAC;AAC9B;AAEA,OAAO,SAASS,iBAAiBA,CAAA,EAAwC;EACvE,OAAOd,MAAM,CAACc,iBAAiB,CAAC,CAAC;AACnC","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","RNCKakaoUser","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLogin","logout","unlink","isLogined","isKakaoTalkLoginAvailable","scopes","revokeScopes","shippingAddresses","me"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAItD,MAAMC,aAAa,GACjB,mFAAmF,GACnFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,MAAM,GAAGH,oBAAoB,GAC/BI,OAAO,CAAC,wBAAwB,CAAC,CAACL,OAAO,GACzCL,aAAa,CAACW,YAAY;AAE9B,MAAMC,MAAY,GAAGH,MAAM,GACvBA,MAAM,GACN,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACb,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AA2EL,OAAO,SAASc,KAAKA,CAAC;EACpBC,YAAY;EACZC,OAAO;EACPC;AAKF,CAAC,GAAG,CAAC,CAAC,EAA4B;EAChC,OAAOP,MAAM,CAACI,KAAK,CAACC,YAAY,IAAI,EAAE,EAAEC,OAAO,IAAI,EAAE,EAAEC,oBAAoB,IAAI,KAAK,CAAC;AACvF;AAEA,OAAO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOR,MAAM,CAACQ,MAAM,CAAC,CAAC;AACxB;AAEA,OAAO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOT,MAAM,CAACS,MAAM,CAAC,CAAC;AACxB;AAEA,OAAO,SAASC,SAASA,CAAA,EAAG;EAC1B,OAAOV,MAAM,CAACU,SAAS,CAAC,CAAC;AAC3B;AAEA,OAAO,SAASC,yBAAyBA,CAAA,EAAqB;EAC5D,OAAOX,MAAM,CAACW,yBAAyB,CAAC,CAAC;AAC3C;AAEA,OAAO,SAASC,MAAMA,CAACA,MAAiB,EAA6B;EACnE,OAAOZ,MAAM,CAACY,MAAM,CAACA,MAAM,CAAC;AAC9B;AAEA,OAAO,SAASC,YAAYA,CAACD,MAAgB,EAAiB;EAC5D,OAAOZ,MAAM,CAACa,YAAY,CAACD,MAAM,CAAC;AACpC;AAEA,OAAO,SAASP,YAAYA,CAAA,EAGzB;EACD,OAAOL,MAAM,CAACK,YAAY,CAAC,CAAC;AAC9B;AAEA,OAAO,SAASS,iBAAiBA,CAAA,EAAwC;EACvE,OAAOd,MAAM,CAACc,iBAAiB,CAAC,CAAC;AACnC;AAEA,OAAO,SAASC,EAAEA,CAAA,EAAuB;EACvC,OAAOf,MAAM,CAACe,EAAE,CAAC,CAAC;AACpB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoUser.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AA6BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoUser.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  export type KakaoLoginToken = {
2
2
  accessToken: string;
3
3
  refreshToken: string;
4
- tokenType: string;
4
+ tokenType?: string;
5
5
  idToken?: string;
6
6
  accessTokenExpiresAt: number;
7
7
  refreshTokenExpiresAt: number;
@@ -46,10 +46,35 @@ export type KakaoShippingAddress = {
46
46
  zoneNumber?: string;
47
47
  zipCode?: string;
48
48
  };
49
- export declare function login({ serviceTerms, prompts, useKakaoAccountLoginIos, }?: {
49
+ export type KakaoUser = {
50
+ id: number;
51
+ email: string;
52
+ name: string;
53
+ nickname: string;
54
+ profileImageUrl: string;
55
+ thumbnailImageUrl: string;
56
+ phoneNumber: string;
57
+ ageRange: string;
58
+ birthday: string;
59
+ birthdayType: string;
60
+ birthyear: string;
61
+ gender: string;
62
+ isEmailValid: boolean;
63
+ isEmailVerified: boolean;
64
+ isKorean: boolean;
65
+ ageRangeNeedsAgreement?: boolean;
66
+ birthdayNeedsAgreement?: boolean;
67
+ birthyearNeedsAgreement?: boolean;
68
+ emailNeedsAgreement?: boolean;
69
+ genderNeedsAgreement?: boolean;
70
+ isKoreanNeedsAgreement?: boolean;
71
+ phoneNumberNeedsAgreement?: boolean;
72
+ profileNeedsAgreement?: boolean;
73
+ };
74
+ export declare function login({ serviceTerms, prompts, useKakaoAccountLogin, }?: {
50
75
  serviceTerms?: string[];
51
- prompts?: string[];
52
- useKakaoAccountLoginIos?: boolean;
76
+ prompts?: ('Loign' | 'Create' | 'Cert' | 'UnifyDaum' | 'SelectAccount')[];
77
+ useKakaoAccountLogin?: boolean;
53
78
  }): Promise<KakaoLoginToken>;
54
79
  export declare function logout(): Promise<void>;
55
80
  export declare function unlink(): Promise<void>;
@@ -62,4 +87,5 @@ export declare function serviceTerms(): Promise<{
62
87
  appServiceTerms?: KakaoAppServiceTerms[];
63
88
  }>;
64
89
  export declare function shippingAddresses(): Promise<KakaoShippingAddressResult>;
90
+ export declare function me(): Promise<KakaoUser>;
65
91
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AA4BA,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;CAC3C,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,wBAAgB,KAAK,CAAC,EACpB,YAAY,EACZ,OAAO,EACP,uBAAuB,GACxB,GAAE;IACD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,OAAO,CAAC,eAAe,CAAC,CAEhC;AAED,wBAAgB,MAAM,kBAErB;AAED,wBAAgB,MAAM,kBAErB;AAED,wBAAgB,SAAS,qBAExB;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5D;AAED,wBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAEnE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED,wBAAgB,YAAY,IAAI,OAAO,CAAC;IACtC,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC1C,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC1C,CAAC,CAED;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAEvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { TurboModule } from 'react-native';
2
- import type { KakaoAppServiceTerms, KakaoLoginToken, KakaoScopeInfo, KakaoServiceTerms, KakaoShippingAddressResult } from '..';
2
+ import type { KakaoAppServiceTerms, KakaoLoginToken, KakaoScopeInfo, KakaoServiceTerms, KakaoShippingAddressResult, KakaoUser } from '..';
3
3
  export interface Spec extends TurboModule {
4
4
  isKakaoTalkLoginAvailable(): Promise<boolean>;
5
- login(serviceTerms: string[], prompts: string[], useKakaoAccountLoginIos: boolean): Promise<KakaoLoginToken>;
5
+ login(serviceTerms: string[], prompts: string[], useKakaoAccountLogin: boolean): Promise<KakaoLoginToken>;
6
6
  logout(): Promise<void>;
7
7
  unlink(): Promise<void>;
8
8
  isLogined(): Promise<boolean>;
@@ -13,6 +13,7 @@ export interface Spec extends TurboModule {
13
13
  appServiceTerms?: KakaoAppServiceTerms[];
14
14
  }>;
15
15
  shippingAddresses(): Promise<KakaoShippingAddressResult>;
16
+ me(): Promise<KakaoUser>;
16
17
  }
17
18
  declare const _default: Spec;
18
19
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeKakaoUser.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeKakaoUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,IAAI,CAAC;AAEZ,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CACH,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EAAE,EACjB,uBAAuB,EAAE,OAAO,GAC/B,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,YAAY,IAAI,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC1C,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,iBAAiB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC1D;;AAED,wBAAsE"}
1
+ {"version":3,"file":"NativeKakaoUser.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeKakaoUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,SAAS,EACV,MAAM,IAAI,CAAC;AAEZ,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CACH,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EAAE,EACjB,oBAAoB,EAAE,OAAO,GAC5B,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,YAAY,IAAI,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC1C,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,iBAAiB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACzD,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;CAC1B;;AAED,wBAAsE"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-native-kakao/user",
3
3
  "description": "React Native Kakao User SDK",
4
- "version": "0.6.0",
4
+ "version": "0.7.1",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
7
7
  "types": "lib/typescript/src/index.d.ts",
@@ -107,5 +107,5 @@
107
107
  "javaPackageName": "net.mjstudio.rnkakao.user"
108
108
  }
109
109
  },
110
- "gitHead": "454f7b143a7c4cc623051911e888c97b998ad82e"
110
+ "gitHead": "bbdcef0f45c18ff6084230e6b800251216c26401"
111
111
  }
package/src/index.tsx CHANGED
@@ -13,7 +13,7 @@ const isTurboModuleEnabled = global.__turboModuleProxy != null;
13
13
 
14
14
  const Module = isTurboModuleEnabled
15
15
  ? require('./spec/NativeKakaoUser').default
16
- : NativeModules.KakaoShare;
16
+ : NativeModules.RNCKakaoUser;
17
17
 
18
18
  const Native: Spec = Module
19
19
  ? Module
@@ -29,7 +29,7 @@ const Native: Spec = Module
29
29
  export type KakaoLoginToken = {
30
30
  accessToken: string;
31
31
  refreshToken: string;
32
- tokenType: string;
32
+ tokenType?: string;
33
33
  idToken?: string;
34
34
  accessTokenExpiresAt: number;
35
35
  refreshTokenExpiresAt: number;
@@ -74,16 +74,41 @@ export type KakaoShippingAddress = {
74
74
  zoneNumber?: string;
75
75
  zipCode?: string;
76
76
  };
77
+ export type KakaoUser = {
78
+ id: number;
79
+ email: string;
80
+ name: string;
81
+ nickname: string;
82
+ profileImageUrl: string;
83
+ thumbnailImageUrl: string;
84
+ phoneNumber: string;
85
+ ageRange: string;
86
+ birthday: string;
87
+ birthdayType: string;
88
+ birthyear: string;
89
+ gender: string;
90
+ isEmailValid: boolean;
91
+ isEmailVerified: boolean;
92
+ isKorean: boolean;
93
+ ageRangeNeedsAgreement?: boolean;
94
+ birthdayNeedsAgreement?: boolean;
95
+ birthyearNeedsAgreement?: boolean;
96
+ emailNeedsAgreement?: boolean;
97
+ genderNeedsAgreement?: boolean;
98
+ isKoreanNeedsAgreement?: boolean;
99
+ phoneNumberNeedsAgreement?: boolean;
100
+ profileNeedsAgreement?: boolean;
101
+ };
77
102
  export function login({
78
103
  serviceTerms,
79
104
  prompts,
80
- useKakaoAccountLoginIos,
105
+ useKakaoAccountLogin,
81
106
  }: {
82
107
  serviceTerms?: string[];
83
- prompts?: string[];
84
- useKakaoAccountLoginIos?: boolean;
108
+ prompts?: ('Loign' | 'Create' | 'Cert' | 'UnifyDaum' | 'SelectAccount')[];
109
+ useKakaoAccountLogin?: boolean;
85
110
  } = {}): Promise<KakaoLoginToken> {
86
- return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLoginIos ?? false);
111
+ return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLogin ?? false);
87
112
  }
88
113
 
89
114
  export function logout() {
@@ -120,3 +145,7 @@ export function serviceTerms(): Promise<{
120
145
  export function shippingAddresses(): Promise<KakaoShippingAddressResult> {
121
146
  return Native.shippingAddresses();
122
147
  }
148
+
149
+ export function me(): Promise<KakaoUser> {
150
+ return Native.me();
151
+ }
@@ -7,6 +7,7 @@ import type {
7
7
  KakaoScopeInfo,
8
8
  KakaoServiceTerms,
9
9
  KakaoShippingAddressResult,
10
+ KakaoUser,
10
11
  } from '..';
11
12
 
12
13
  export interface Spec extends TurboModule {
@@ -14,7 +15,7 @@ export interface Spec extends TurboModule {
14
15
  login(
15
16
  serviceTerms: string[],
16
17
  prompts: string[],
17
- useKakaoAccountLoginIos: boolean,
18
+ useKakaoAccountLogin: boolean,
18
19
  ): Promise<KakaoLoginToken>;
19
20
  logout(): Promise<void>;
20
21
  unlink(): Promise<void>;
@@ -26,6 +27,7 @@ export interface Spec extends TurboModule {
26
27
  appServiceTerms?: KakaoAppServiceTerms[];
27
28
  }>;
28
29
  shippingAddresses(): Promise<KakaoShippingAddressResult>;
30
+ me(): Promise<KakaoUser>;
29
31
  }
30
32
 
31
33
  export default TurboModuleRegistry.getEnforcing<Spec>('RNCKakaoUser');