@react-native-kakao/user 0.5.1 → 0.7.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.
- package/android/src/main/java/net/mjstudio/rnkakao/user/RNCKakaoUserModule.kt +263 -4
- package/android/src/newarch/KakaoUserSpec.kt +1 -1
- package/android/src/oldarch/KakaoUserSpec.kt +29 -2
- package/ios/RNCKakaoUser.mm +35 -5
- package/ios/RNCKakaoUserManager.swift +148 -2
- package/lib/commonjs/index.js +24 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/spec/NativeKakaoUser.js.map +1 -1
- package/lib/module/index.js +19 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/spec/NativeKakaoUser.js.map +1 -1
- package/lib/typescript/src/index.d.ts +74 -4
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/spec/NativeKakaoUser.d.ts +10 -2
- package/lib/typescript/src/spec/NativeKakaoUser.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.tsx +92 -6
- package/src/spec/NativeKakaoUser.ts +17 -2
|
@@ -2,8 +2,23 @@ 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.ReadableArray
|
|
6
|
+
import com.kakao.sdk.auth.AuthApiClient
|
|
7
|
+
import com.kakao.sdk.auth.model.OAuthToken
|
|
8
|
+
import com.kakao.sdk.auth.model.Prompt
|
|
9
|
+
import com.kakao.sdk.common.model.KakaoSdkError
|
|
5
10
|
import com.kakao.sdk.user.UserApiClient
|
|
6
|
-
import net.mjstudio.rnkakao.
|
|
11
|
+
import net.mjstudio.rnkakao.core.util.RNCKakaoUtil
|
|
12
|
+
import net.mjstudio.rnkakao.core.util.argArr
|
|
13
|
+
import net.mjstudio.rnkakao.core.util.argMap
|
|
14
|
+
import net.mjstudio.rnkakao.core.util.filterIsInstance
|
|
15
|
+
import net.mjstudio.rnkakao.core.util.pushMapList
|
|
16
|
+
import net.mjstudio.rnkakao.core.util.pushStringList
|
|
17
|
+
import net.mjstudio.rnkakao.core.util.putBooleanIfNotNull
|
|
18
|
+
import net.mjstudio.rnkakao.core.util.putDoubleIfNotNull
|
|
19
|
+
import net.mjstudio.rnkakao.core.util.putIntIfNotNull
|
|
20
|
+
import net.mjstudio.rnkakao.core.util.rejectWith
|
|
21
|
+
import java.util.*
|
|
7
22
|
|
|
8
23
|
class RNCKakaoUserModule internal constructor(context: ReactApplicationContext) :
|
|
9
24
|
KakaoUserSpec(context) {
|
|
@@ -12,9 +27,253 @@ class RNCKakaoUserModule internal constructor(context: ReactApplicationContext)
|
|
|
12
27
|
return NAME
|
|
13
28
|
}
|
|
14
29
|
|
|
15
|
-
override fun
|
|
16
|
-
|
|
17
|
-
|
|
30
|
+
override fun login(
|
|
31
|
+
serviceTerms: ReadableArray?,
|
|
32
|
+
prompts: ReadableArray?,
|
|
33
|
+
useKakaoAccountLogin: Boolean,
|
|
34
|
+
promise: Promise
|
|
35
|
+
) {
|
|
36
|
+
val callback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
|
|
37
|
+
if (error != null) {
|
|
38
|
+
promise.rejectWith(error)
|
|
39
|
+
} else if (token == null) {
|
|
40
|
+
promise.rejectWith("token not found")
|
|
41
|
+
} else {
|
|
42
|
+
promise.resolve(argMap().apply {
|
|
43
|
+
putString("accessToken", token.accessToken)
|
|
44
|
+
putString("refreshToken", token.refreshToken)
|
|
45
|
+
putString("tokenType", null)
|
|
46
|
+
putString("idToken", token.idToken)
|
|
47
|
+
putDouble(
|
|
48
|
+
"accessTokenExpiresAt", token.accessTokenExpiresAt.time.toDouble()
|
|
49
|
+
)
|
|
50
|
+
putDouble(
|
|
51
|
+
"refreshTokenExpiresAt", token.refreshTokenExpiresAt.time.toDouble()
|
|
52
|
+
)
|
|
53
|
+
putDouble(
|
|
54
|
+
"accessTokenExpiresIn",
|
|
55
|
+
RNCKakaoUtil.diffSec(token.accessTokenExpiresAt, Date()).toDouble()
|
|
56
|
+
)
|
|
57
|
+
putDouble(
|
|
58
|
+
"refreshTokenExpiresIn",
|
|
59
|
+
RNCKakaoUtil.diffSec(token.refreshTokenExpiresAt, Date()).toDouble()
|
|
60
|
+
)
|
|
61
|
+
putArray("scopes", argArr().apply {
|
|
62
|
+
pushStringList(token.scopes ?: listOf())
|
|
63
|
+
})
|
|
64
|
+
})
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (UserApiClient.instance.isKakaoTalkLoginAvailable(reactApplicationContext) && !useKakaoAccountLogin) {
|
|
69
|
+
UserApiClient.instance.loginWithKakaoTalk(
|
|
70
|
+
reactApplicationContext,
|
|
71
|
+
serviceTerms = serviceTerms?.filterIsInstance<String>(),
|
|
72
|
+
callback = callback
|
|
73
|
+
)
|
|
74
|
+
} else {
|
|
75
|
+
UserApiClient.instance.loginWithKakaoAccount(
|
|
76
|
+
reactApplicationContext,
|
|
77
|
+
prompts = prompts?.filterIsInstance<String>()?.map {
|
|
78
|
+
when (it) {
|
|
79
|
+
"Login" -> Prompt.LOGIN
|
|
80
|
+
"Create" -> Prompt.CREATE
|
|
81
|
+
"Cert" -> Prompt.CERT
|
|
82
|
+
"UnifyDaum" -> Prompt.UNIFY_DAUM
|
|
83
|
+
"SelectAccount" -> Prompt.SELECT_ACCOUNT
|
|
84
|
+
else -> null
|
|
85
|
+
}
|
|
86
|
+
}?.filterNotNull(),
|
|
87
|
+
serviceTerms = serviceTerms?.filterIsInstance<String>(),
|
|
88
|
+
callback = callback
|
|
89
|
+
)
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
override fun isKakaoTalkLoginAvailable(promise: Promise) {
|
|
94
|
+
promise.resolve(UserApiClient.instance.isKakaoTalkLoginAvailable(reactApplicationContext))
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
override fun logout(promise: Promise) {
|
|
98
|
+
UserApiClient.instance.logout {
|
|
99
|
+
if (it != null) {
|
|
100
|
+
promise.rejectWith(it)
|
|
101
|
+
} else {
|
|
102
|
+
promise.resolve(42)
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
override fun unlink(promise: Promise) {
|
|
108
|
+
UserApiClient.instance.unlink {
|
|
109
|
+
if (it != null) {
|
|
110
|
+
promise.rejectWith(it)
|
|
111
|
+
} else {
|
|
112
|
+
promise.resolve(42)
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
override fun isLogined(promise: Promise) {
|
|
118
|
+
if (AuthApiClient.instance.hasToken()) {
|
|
119
|
+
UserApiClient.instance.accessTokenInfo { _, error ->
|
|
120
|
+
if (error != null) {
|
|
121
|
+
if (error is KakaoSdkError && error.isInvalidTokenError()) {
|
|
122
|
+
promise.resolve(false)
|
|
123
|
+
} else {
|
|
124
|
+
promise.rejectWith(error)
|
|
125
|
+
}
|
|
126
|
+
} else {
|
|
127
|
+
promise.resolve(true)
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
} else {
|
|
131
|
+
promise.resolve(false)
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
override fun scopes(scopes: ReadableArray?, promise: Promise) {
|
|
136
|
+
UserApiClient.instance.scopes { scopeInfo, error ->
|
|
137
|
+
if (error != null) {
|
|
138
|
+
promise.rejectWith(error)
|
|
139
|
+
} else if (scopeInfo?.scopes == null) {
|
|
140
|
+
promise.rejectWith("scopes not found")
|
|
141
|
+
} else {
|
|
142
|
+
promise.resolve(argArr().also { arr ->
|
|
143
|
+
scopeInfo.scopes!!.forEach { scope ->
|
|
144
|
+
arr.pushMap(argMap().also { map ->
|
|
145
|
+
map.putString("id", scope.id)
|
|
146
|
+
map.putString("displayName", scope.displayName)
|
|
147
|
+
map.putString("type", scope.type.name)
|
|
148
|
+
map.putBoolean("using", scope.using)
|
|
149
|
+
map.putBooleanIfNotNull("delegated", scope.delegated)
|
|
150
|
+
map.putBoolean("agreed", scope.agreed)
|
|
151
|
+
map.putBooleanIfNotNull("revocable", scope.revocable)
|
|
152
|
+
})
|
|
153
|
+
}
|
|
154
|
+
})
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
override fun revokeScopes(scopes: ReadableArray, promise: Promise) {
|
|
160
|
+
UserApiClient.instance.revokeScopes(
|
|
161
|
+
scopes = scopes.filterIsInstance<String>() ?: listOf()
|
|
162
|
+
) { scopeInfo, error ->
|
|
163
|
+
if (error != null) {
|
|
164
|
+
promise.rejectWith(error)
|
|
165
|
+
} else if (scopeInfo == null) {
|
|
166
|
+
promise.rejectWith("scopeInfo not found")
|
|
167
|
+
} else {
|
|
168
|
+
promise.resolve(42)
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
override fun serviceTerms(promise: Promise) {
|
|
174
|
+
UserApiClient.instance.serviceTerms { serviceTerms, error ->
|
|
175
|
+
if (error != null) {
|
|
176
|
+
promise.rejectWith(error)
|
|
177
|
+
} else if (serviceTerms?.serviceTerms == null) {
|
|
178
|
+
promise.rejectWith("serviceTerms not found")
|
|
179
|
+
} else {
|
|
180
|
+
promise.resolve(argMap().apply {
|
|
181
|
+
putArray("allowedServiceTerms", argArr().apply {
|
|
182
|
+
serviceTerms.serviceTerms?.forEach { term ->
|
|
183
|
+
pushMap(argMap().apply {
|
|
184
|
+
putString("tag", term.tag)
|
|
185
|
+
putDoubleIfNotNull("agreedAt", term.agreedAt?.time?.toDouble())
|
|
186
|
+
})
|
|
187
|
+
}
|
|
188
|
+
})
|
|
189
|
+
})
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
override fun shippingAddresses(promise: Promise) {
|
|
195
|
+
UserApiClient.instance.shippingAddresses { addrs, error ->
|
|
196
|
+
if (error != null) {
|
|
197
|
+
promise.rejectWith(error)
|
|
198
|
+
} else if (addrs == null) {
|
|
199
|
+
promise.rejectWith("shipping addresses not found")
|
|
200
|
+
} else {
|
|
201
|
+
promise.resolve(argMap().apply {
|
|
202
|
+
putIntIfNotNull("userId", addrs.userId?.toInt())
|
|
203
|
+
putBooleanIfNotNull("needsAgreement", addrs.needsAgreement)
|
|
204
|
+
putArray("shippingAddresses", argArr().apply {
|
|
205
|
+
pushMapList(addrs.shippingAddresses?.map { addr ->
|
|
206
|
+
argMap().apply {
|
|
207
|
+
putInt("id", addr.id.toInt())
|
|
208
|
+
putString("name", addr.name)
|
|
209
|
+
putBoolean("isDefault", addr.isDefault)
|
|
210
|
+
putDoubleIfNotNull("updatedAt", addr.updatedAt?.time?.toDouble())
|
|
211
|
+
putString("type", addr.type?.name)
|
|
212
|
+
putString("baseAddress", addr.baseAddress)
|
|
213
|
+
putString("detailAddress", addr.detailAddress)
|
|
214
|
+
putString("receiverName", addr.receiverName)
|
|
215
|
+
putString("receiverPhoneNumber1", addr.receiverPhoneNumber1)
|
|
216
|
+
putString("receiverPhoneNumber2", addr.receiverPhoneNumber2)
|
|
217
|
+
putString("zoneNumber", addr.zoneNumber)
|
|
218
|
+
putString("zipCode", addr.zipCode)
|
|
219
|
+
}
|
|
220
|
+
} ?: listOf())
|
|
221
|
+
})
|
|
222
|
+
})
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
override fun me(promise: Promise) {
|
|
228
|
+
UserApiClient.instance.me { user, error ->
|
|
229
|
+
if (error != null) {
|
|
230
|
+
promise.rejectWith(error)
|
|
231
|
+
} else if (user == null) {
|
|
232
|
+
promise.rejectWith("user not found")
|
|
233
|
+
} else {
|
|
234
|
+
promise.resolve(argMap().apply {
|
|
235
|
+
putIntIfNotNull("id", user.id?.toInt())
|
|
236
|
+
putString("name", user.kakaoAccount?.name)
|
|
237
|
+
|
|
238
|
+
putString("email", user.kakaoAccount?.email)
|
|
239
|
+
putString("nickname", user.kakaoAccount?.profile?.nickname)
|
|
240
|
+
putString("profileImageUrl", user.kakaoAccount?.profile?.profileImageUrl)
|
|
241
|
+
putString("thumbnailImageUrl", user.kakaoAccount?.profile?.thumbnailImageUrl)
|
|
242
|
+
putString("phoneNumber", user.kakaoAccount?.phoneNumber)
|
|
243
|
+
putString("ageRange", user.kakaoAccount?.ageRange?.name)
|
|
244
|
+
putString("birthday", user.kakaoAccount?.birthday)
|
|
245
|
+
putString("birthdayType", user.kakaoAccount?.birthdayType?.name)
|
|
246
|
+
putString("birthyear", user.kakaoAccount?.birthyear)
|
|
247
|
+
putString("gender", user.kakaoAccount?.gender?.name)
|
|
248
|
+
putBooleanIfNotNull("isEmailValid", user.kakaoAccount?.isEmailValid)
|
|
249
|
+
putBooleanIfNotNull("isEmailVerified", user.kakaoAccount?.isEmailVerified)
|
|
250
|
+
putBooleanIfNotNull("isKorean", user.kakaoAccount?.isKorean)
|
|
251
|
+
putBooleanIfNotNull(
|
|
252
|
+
"ageRangeNeedsAgreement", user.kakaoAccount?.ageRangeNeedsAgreement
|
|
253
|
+
)
|
|
254
|
+
putBooleanIfNotNull(
|
|
255
|
+
"birthdayNeedsAgreement", user.kakaoAccount?.birthdayNeedsAgreement
|
|
256
|
+
)
|
|
257
|
+
putBooleanIfNotNull(
|
|
258
|
+
"birthyearNeedsAgreement", user.kakaoAccount?.birthyearNeedsAgreement
|
|
259
|
+
)
|
|
260
|
+
putBooleanIfNotNull(
|
|
261
|
+
"emailNeedsAgreement", user.kakaoAccount?.emailNeedsAgreement
|
|
262
|
+
)
|
|
263
|
+
putBooleanIfNotNull(
|
|
264
|
+
"genderNeedsAgreement", user.kakaoAccount?.genderNeedsAgreement
|
|
265
|
+
)
|
|
266
|
+
putBooleanIfNotNull(
|
|
267
|
+
"isKoreanNeedsAgreement", user.kakaoAccount?.isKoreanNeedsAgreement
|
|
268
|
+
)
|
|
269
|
+
putBooleanIfNotNull(
|
|
270
|
+
"phoneNumberNeedsAgreement", user.kakaoAccount?.phoneNumberNeedsAgreement
|
|
271
|
+
)
|
|
272
|
+
putBooleanIfNotNull(
|
|
273
|
+
"profileNeedsAgreement", user.kakaoAccount?.profileNeedsAgreement
|
|
274
|
+
)
|
|
275
|
+
})
|
|
276
|
+
}
|
|
18
277
|
}
|
|
19
278
|
}
|
|
20
279
|
|
|
@@ -1,7 +1,34 @@
|
|
|
1
|
-
package net.mjstudio.rnkakao.
|
|
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
|
+
}
|
package/ios/RNCKakaoUser.mm
CHANGED
|
@@ -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)
|
|
21
|
+
: (BOOL)useKakaoAccountLogin resolve
|
|
22
22
|
: (RCTPromiseResolveBlock)resolve reject
|
|
23
23
|
: (RCTPromiseRejectBlock)reject) {
|
|
24
24
|
[[self manager] login:serviceTerms
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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) {
|
|
@@ -42,6 +42,36 @@ RCT_EXPORT_METHOD(isLogined
|
|
|
42
42
|
[[self manager] isLogined:resolve reject:reject];
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
RCT_EXPORT_METHOD(scopes
|
|
46
|
+
: (NSArray*)scopes resolve
|
|
47
|
+
: (RCTPromiseResolveBlock)resolve reject
|
|
48
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
49
|
+
[[self manager] scopes:scopes resolve:resolve reject:reject];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
RCT_EXPORT_METHOD(revokeScopes
|
|
53
|
+
: (NSArray*)scopes resolve
|
|
54
|
+
: (RCTPromiseResolveBlock)resolve reject
|
|
55
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
56
|
+
[[self manager] revokeScopes:scopes resolve:resolve reject:reject];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
RCT_EXPORT_METHOD(serviceTerms
|
|
60
|
+
: (RCTPromiseResolveBlock)resolve reject
|
|
61
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
62
|
+
[[self manager] serviceTerms:resolve reject:reject];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
RCT_EXPORT_METHOD(shippingAddresses
|
|
66
|
+
: (RCTPromiseResolveBlock)resolve reject
|
|
67
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
68
|
+
[[self manager] shippingAddresses:resolve reject:reject];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
RCT_EXPORT_METHOD(me : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) {
|
|
72
|
+
[[self manager] me:resolve reject:reject];
|
|
73
|
+
}
|
|
74
|
+
|
|
45
75
|
// Don't compile this code when we build for the old architecture.
|
|
46
76
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
47
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
|
-
|
|
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(), !
|
|
39
|
+
if UserApi.isKakaoTalkLoginAvailable(), !useKakaoAccountLogin {
|
|
40
40
|
UserApi.shared
|
|
41
41
|
.loginWithKakaoTalk(serviceTerms: emptyArrayToNil(serviceTerms)) { token, error in
|
|
42
42
|
if let error {
|
|
@@ -166,6 +166,152 @@ import RNCKakaoCore
|
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
+
@objc public func scopes(
|
|
170
|
+
_ scopes: [String]? = nil,
|
|
171
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
172
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
173
|
+
) {
|
|
174
|
+
UserApi.shared.scopes(scopes: emptyArrayToNil(scopes)) { scopeInfo, error in
|
|
175
|
+
if let error {
|
|
176
|
+
RNCKakaoUtil.reject(reject, error)
|
|
177
|
+
} else if let scopes = scopeInfo?.scopes {
|
|
178
|
+
resolve(scopes.map { s in
|
|
179
|
+
[
|
|
180
|
+
"id": s.id,
|
|
181
|
+
"displayName": s.displayName,
|
|
182
|
+
"type": s.type.rawValue,
|
|
183
|
+
"using": s.using,
|
|
184
|
+
"delegated": s.delegated as Any,
|
|
185
|
+
"agreed": s.agreed,
|
|
186
|
+
"revocable": s.revocable as Any
|
|
187
|
+
]
|
|
188
|
+
})
|
|
189
|
+
} else {
|
|
190
|
+
RNCKakaoUtil.reject(reject, "scopes not found")
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@objc public func revokeScopes(
|
|
196
|
+
_ scopes: [String],
|
|
197
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
198
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
199
|
+
) {
|
|
200
|
+
UserApi.shared.revokeScopes(scopes: scopes) { info, error in
|
|
201
|
+
if let error {
|
|
202
|
+
RNCKakaoUtil.reject(reject, error)
|
|
203
|
+
} else if info != nil {
|
|
204
|
+
resolve(42)
|
|
205
|
+
} else {
|
|
206
|
+
RNCKakaoUtil.reject(reject, "scopeInfo not found")
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
@objc public func serviceTerms(
|
|
212
|
+
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
213
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
214
|
+
) {
|
|
215
|
+
UserApi.shared.serviceTerms { serviceTerms, error in
|
|
216
|
+
if let error {
|
|
217
|
+
RNCKakaoUtil.reject(reject, error)
|
|
218
|
+
} else if let serviceTerms {
|
|
219
|
+
resolve(
|
|
220
|
+
[
|
|
221
|
+
"allowedServiceTerms": serviceTerms.allowedServiceTerms?.map {
|
|
222
|
+
[
|
|
223
|
+
"tag": $0.tag,
|
|
224
|
+
"agreedAt": $0.agreedAt.timeIntervalSince1970
|
|
225
|
+
]
|
|
226
|
+
},
|
|
227
|
+
"appServiceTerms": serviceTerms.appServiceTerms?.map {
|
|
228
|
+
[
|
|
229
|
+
"tag": $0.tag,
|
|
230
|
+
"createdAt": $0.createdAt.timeIntervalSince1970,
|
|
231
|
+
"updatedAt": $0.updatedAt.timeIntervalSince1970
|
|
232
|
+
]
|
|
233
|
+
}
|
|
234
|
+
]
|
|
235
|
+
)
|
|
236
|
+
} else {
|
|
237
|
+
RNCKakaoUtil.reject(reject, "serviceTerms not found")
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
@objc public func shippingAddresses(
|
|
243
|
+
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
244
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
245
|
+
) {
|
|
246
|
+
UserApi.shared.shippingAddresses { s, error in
|
|
247
|
+
if let error {
|
|
248
|
+
RNCKakaoUtil.reject(reject, error)
|
|
249
|
+
} else if let s {
|
|
250
|
+
resolve([
|
|
251
|
+
"userId": s.userId as Any,
|
|
252
|
+
"needsAgreement": s.needsAgreement as Any,
|
|
253
|
+
"shippingAddresses": s.shippingAddresses?.map {
|
|
254
|
+
[
|
|
255
|
+
"id": $0.id,
|
|
256
|
+
"name": $0.name as Any,
|
|
257
|
+
"isDefault": $0.isDefault,
|
|
258
|
+
"updatedAt": $0.updatedAt?.timeIntervalSince1970 as Any,
|
|
259
|
+
"type": $0.type?.rawValue as Any,
|
|
260
|
+
"baseAddress": $0.baseAddress as Any,
|
|
261
|
+
"detailAddress": $0.detailAddress as Any,
|
|
262
|
+
"receiverName": $0.receiverName as Any,
|
|
263
|
+
"receiverPhoneNumber1": $0.receiverPhoneNumber1 as Any,
|
|
264
|
+
"receiverPhoneNumber2": $0.receiverPhoneNumber2 as Any,
|
|
265
|
+
"zoneNumber": $0.zoneNumber as Any,
|
|
266
|
+
"zipCode": $0.zipCode as Any
|
|
267
|
+
]
|
|
268
|
+
} ?? []
|
|
269
|
+
])
|
|
270
|
+
} else {
|
|
271
|
+
RNCKakaoUtil.reject(reject, "shipping addresses not found")
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
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
|
+
|
|
169
315
|
private func emptyArrayToNil<T>(_ arr: [T]?) -> [T]? {
|
|
170
316
|
if arr == nil || arr?.isEmpty == true { return nil }
|
|
171
317
|
return arr
|
package/lib/commonjs/index.js
CHANGED
|
@@ -7,6 +7,11 @@ exports.isKakaoTalkLoginAvailable = isKakaoTalkLoginAvailable;
|
|
|
7
7
|
exports.isLogined = isLogined;
|
|
8
8
|
exports.login = login;
|
|
9
9
|
exports.logout = logout;
|
|
10
|
+
exports.me = me;
|
|
11
|
+
exports.revokeScopes = revokeScopes;
|
|
12
|
+
exports.scopes = scopes;
|
|
13
|
+
exports.serviceTerms = serviceTerms;
|
|
14
|
+
exports.shippingAddresses = shippingAddresses;
|
|
10
15
|
exports.unlink = unlink;
|
|
11
16
|
var _reactNative = require("react-native");
|
|
12
17
|
const LINKING_ERROR = "The package '@react-native-kakao/user' doesn't seem to be linked. Make sure: \n\n" + _reactNative.Platform.select({
|
|
@@ -16,7 +21,8 @@ const LINKING_ERROR = "The package '@react-native-kakao/user' doesn't seem to be
|
|
|
16
21
|
|
|
17
22
|
// @ts-expect-error
|
|
18
23
|
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
19
|
-
const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : _reactNative.NativeModules.
|
|
24
|
+
const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : _reactNative.NativeModules.RNCKakaoUser;
|
|
25
|
+
console.log(_reactNative.NativeModules.RNCKakaoUser);
|
|
20
26
|
const Native = Module ? Module : new Proxy({}, {
|
|
21
27
|
get() {
|
|
22
28
|
throw new Error(LINKING_ERROR);
|
|
@@ -25,9 +31,9 @@ const Native = Module ? Module : new Proxy({}, {
|
|
|
25
31
|
function login({
|
|
26
32
|
serviceTerms,
|
|
27
33
|
prompts,
|
|
28
|
-
|
|
34
|
+
useKakaoAccountLogin
|
|
29
35
|
} = {}) {
|
|
30
|
-
return Native.login(serviceTerms ?? [], prompts ?? [],
|
|
36
|
+
return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLogin ?? false);
|
|
31
37
|
}
|
|
32
38
|
function logout() {
|
|
33
39
|
return Native.logout();
|
|
@@ -41,4 +47,19 @@ function isLogined() {
|
|
|
41
47
|
function isKakaoTalkLoginAvailable() {
|
|
42
48
|
return Native.isKakaoTalkLoginAvailable();
|
|
43
49
|
}
|
|
50
|
+
function scopes(scopes) {
|
|
51
|
+
return Native.scopes(scopes);
|
|
52
|
+
}
|
|
53
|
+
function revokeScopes(scopes) {
|
|
54
|
+
return Native.revokeScopes(scopes);
|
|
55
|
+
}
|
|
56
|
+
function serviceTerms() {
|
|
57
|
+
return Native.serviceTerms();
|
|
58
|
+
}
|
|
59
|
+
function shippingAddresses() {
|
|
60
|
+
return Native.shippingAddresses();
|
|
61
|
+
}
|
|
62
|
+
function me() {
|
|
63
|
+
return Native.me();
|
|
64
|
+
}
|
|
44
65
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","RNCKakaoUser","console","log","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;AAC9BC,OAAO,CAACC,GAAG,CAACH,0BAAa,CAACC,YAAY,CAAC;AAEvC,MAAMG,MAAY,GAAGL,MAAM,GACvBA,MAAM,GACN,IAAIM,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAAChB,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AA2EE,SAASiB,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,
|
|
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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -6,7 +6,8 @@ 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.
|
|
9
|
+
const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : NativeModules.RNCKakaoUser;
|
|
10
|
+
console.log(NativeModules.RNCKakaoUser);
|
|
10
11
|
const Native = Module ? Module : new Proxy({}, {
|
|
11
12
|
get() {
|
|
12
13
|
throw new Error(LINKING_ERROR);
|
|
@@ -15,9 +16,9 @@ const Native = Module ? Module : new Proxy({}, {
|
|
|
15
16
|
export function login({
|
|
16
17
|
serviceTerms,
|
|
17
18
|
prompts,
|
|
18
|
-
|
|
19
|
+
useKakaoAccountLogin
|
|
19
20
|
} = {}) {
|
|
20
|
-
return Native.login(serviceTerms ?? [], prompts ?? [],
|
|
21
|
+
return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLogin ?? false);
|
|
21
22
|
}
|
|
22
23
|
export function logout() {
|
|
23
24
|
return Native.logout();
|
|
@@ -31,4 +32,19 @@ export function isLogined() {
|
|
|
31
32
|
export function isKakaoTalkLoginAvailable() {
|
|
32
33
|
return Native.isKakaoTalkLoginAvailable();
|
|
33
34
|
}
|
|
35
|
+
export function scopes(scopes) {
|
|
36
|
+
return Native.scopes(scopes);
|
|
37
|
+
}
|
|
38
|
+
export function revokeScopes(scopes) {
|
|
39
|
+
return Native.revokeScopes(scopes);
|
|
40
|
+
}
|
|
41
|
+
export function serviceTerms() {
|
|
42
|
+
return Native.serviceTerms();
|
|
43
|
+
}
|
|
44
|
+
export function shippingAddresses() {
|
|
45
|
+
return Native.shippingAddresses();
|
|
46
|
+
}
|
|
47
|
+
export function me() {
|
|
48
|
+
return Native.me();
|
|
49
|
+
}
|
|
34
50
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","RNCKakaoUser","console","log","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;AAC9BC,OAAO,CAACC,GAAG,CAACb,aAAa,CAACW,YAAY,CAAC;AAEvC,MAAMG,MAAY,GAAGL,MAAM,GACvBA,MAAM,GACN,IAAIM,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACf,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AA2EL,OAAO,SAASgB,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;
|
|
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
|
|
4
|
+
tokenType?: string;
|
|
5
5
|
idToken?: string;
|
|
6
6
|
accessTokenExpiresAt: number;
|
|
7
7
|
refreshTokenExpiresAt: number;
|
|
@@ -9,13 +9,83 @@ export type KakaoLoginToken = {
|
|
|
9
9
|
refreshTokenExpiresIn: number;
|
|
10
10
|
scopes: string[];
|
|
11
11
|
};
|
|
12
|
-
export
|
|
12
|
+
export type KakaoScopeInfo = {
|
|
13
|
+
id: string;
|
|
14
|
+
agreed: boolean;
|
|
15
|
+
displayName: string;
|
|
16
|
+
revocable?: boolean;
|
|
17
|
+
using: boolean;
|
|
18
|
+
delegated?: boolean;
|
|
19
|
+
type: string;
|
|
20
|
+
};
|
|
21
|
+
export type KakaoServiceTerms = {
|
|
22
|
+
tag: string;
|
|
23
|
+
agreedAt: number;
|
|
24
|
+
};
|
|
25
|
+
export type KakaoAppServiceTerms = {
|
|
26
|
+
tag: string;
|
|
27
|
+
createdAt: number;
|
|
28
|
+
updatedAt: number;
|
|
29
|
+
};
|
|
30
|
+
export type KakaoShippingAddressResult = {
|
|
31
|
+
userId?: number;
|
|
32
|
+
needsAgreement?: boolean;
|
|
33
|
+
shippingAddresses: KakaoShippingAddress[];
|
|
34
|
+
};
|
|
35
|
+
export type KakaoShippingAddress = {
|
|
36
|
+
id: number;
|
|
37
|
+
name?: string;
|
|
38
|
+
isDefault: boolean;
|
|
39
|
+
updatedAt?: number;
|
|
40
|
+
type?: string;
|
|
41
|
+
baseAddress?: string;
|
|
42
|
+
detailAddress?: string;
|
|
43
|
+
receiverName?: string;
|
|
44
|
+
receiverPhoneNumber1?: string;
|
|
45
|
+
receiverPhoneNumber2?: string;
|
|
46
|
+
zoneNumber?: string;
|
|
47
|
+
zipCode?: string;
|
|
48
|
+
};
|
|
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, }?: {
|
|
13
75
|
serviceTerms?: string[];
|
|
14
|
-
prompts?:
|
|
15
|
-
|
|
76
|
+
prompts?: ('Loign' | 'Create' | 'Cert' | 'UnifyDaum' | 'SelectAccount')[];
|
|
77
|
+
useKakaoAccountLogin?: boolean;
|
|
16
78
|
}): Promise<KakaoLoginToken>;
|
|
17
79
|
export declare function logout(): Promise<void>;
|
|
18
80
|
export declare function unlink(): Promise<void>;
|
|
19
81
|
export declare function isLogined(): Promise<boolean>;
|
|
20
82
|
export declare function isKakaoTalkLoginAvailable(): Promise<boolean>;
|
|
83
|
+
export declare function scopes(scopes?: string[]): Promise<KakaoScopeInfo[]>;
|
|
84
|
+
export declare function revokeScopes(scopes: string[]): Promise<void>;
|
|
85
|
+
export declare function serviceTerms(): Promise<{
|
|
86
|
+
allowedServiceTerms?: KakaoServiceTerms[];
|
|
87
|
+
appServiceTerms?: KakaoAppServiceTerms[];
|
|
88
|
+
}>;
|
|
89
|
+
export declare function shippingAddresses(): Promise<KakaoShippingAddressResult>;
|
|
90
|
+
export declare function me(): Promise<KakaoUser>;
|
|
21
91
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
|
-
import type { KakaoLoginToken } 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[],
|
|
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>;
|
|
9
|
+
scopes(scopes?: string[]): Promise<KakaoScopeInfo[]>;
|
|
10
|
+
revokeScopes(scopes: string[]): Promise<void>;
|
|
11
|
+
serviceTerms(): Promise<{
|
|
12
|
+
allowedServiceTerms?: KakaoServiceTerms[];
|
|
13
|
+
appServiceTerms?: KakaoAppServiceTerms[];
|
|
14
|
+
}>;
|
|
15
|
+
shippingAddresses(): Promise<KakaoShippingAddressResult>;
|
|
16
|
+
me(): Promise<KakaoUser>;
|
|
9
17
|
}
|
|
10
18
|
declare const _default: Spec;
|
|
11
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,
|
|
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.
|
|
4
|
+
"version": "0.7.0",
|
|
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": "
|
|
110
|
+
"gitHead": "ae9db1ab7ed278e9c72b1ab451c5b4154b7e4e7d"
|
|
111
111
|
}
|
package/src/index.tsx
CHANGED
|
@@ -13,7 +13,8 @@ const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
|
13
13
|
|
|
14
14
|
const Module = isTurboModuleEnabled
|
|
15
15
|
? require('./spec/NativeKakaoUser').default
|
|
16
|
-
: NativeModules.
|
|
16
|
+
: NativeModules.RNCKakaoUser;
|
|
17
|
+
console.log(NativeModules.RNCKakaoUser);
|
|
17
18
|
|
|
18
19
|
const Native: Spec = Module
|
|
19
20
|
? Module
|
|
@@ -29,7 +30,7 @@ const Native: Spec = Module
|
|
|
29
30
|
export type KakaoLoginToken = {
|
|
30
31
|
accessToken: string;
|
|
31
32
|
refreshToken: string;
|
|
32
|
-
tokenType
|
|
33
|
+
tokenType?: string;
|
|
33
34
|
idToken?: string;
|
|
34
35
|
accessTokenExpiresAt: number;
|
|
35
36
|
refreshTokenExpiresAt: number;
|
|
@@ -37,16 +38,78 @@ export type KakaoLoginToken = {
|
|
|
37
38
|
refreshTokenExpiresIn: number;
|
|
38
39
|
scopes: string[];
|
|
39
40
|
};
|
|
41
|
+
export type KakaoScopeInfo = {
|
|
42
|
+
id: string;
|
|
43
|
+
agreed: boolean;
|
|
44
|
+
displayName: string;
|
|
45
|
+
revocable?: boolean;
|
|
46
|
+
using: boolean;
|
|
47
|
+
delegated?: boolean;
|
|
48
|
+
type: string;
|
|
49
|
+
};
|
|
50
|
+
export type KakaoServiceTerms = {
|
|
51
|
+
tag: string;
|
|
52
|
+
agreedAt: number;
|
|
53
|
+
};
|
|
54
|
+
export type KakaoAppServiceTerms = {
|
|
55
|
+
tag: string;
|
|
56
|
+
createdAt: number;
|
|
57
|
+
updatedAt: number;
|
|
58
|
+
};
|
|
59
|
+
export type KakaoShippingAddressResult = {
|
|
60
|
+
userId?: number;
|
|
61
|
+
needsAgreement?: boolean;
|
|
62
|
+
shippingAddresses: KakaoShippingAddress[];
|
|
63
|
+
};
|
|
64
|
+
export type KakaoShippingAddress = {
|
|
65
|
+
id: number;
|
|
66
|
+
name?: string;
|
|
67
|
+
isDefault: boolean;
|
|
68
|
+
updatedAt?: number;
|
|
69
|
+
type?: string;
|
|
70
|
+
baseAddress?: string;
|
|
71
|
+
detailAddress?: string;
|
|
72
|
+
receiverName?: string;
|
|
73
|
+
receiverPhoneNumber1?: string;
|
|
74
|
+
receiverPhoneNumber2?: string;
|
|
75
|
+
zoneNumber?: string;
|
|
76
|
+
zipCode?: string;
|
|
77
|
+
};
|
|
78
|
+
export type KakaoUser = {
|
|
79
|
+
id: number;
|
|
80
|
+
email: string;
|
|
81
|
+
name: string;
|
|
82
|
+
nickname: string;
|
|
83
|
+
profileImageUrl: string;
|
|
84
|
+
thumbnailImageUrl: string;
|
|
85
|
+
phoneNumber: string;
|
|
86
|
+
ageRange: string;
|
|
87
|
+
birthday: string;
|
|
88
|
+
birthdayType: string;
|
|
89
|
+
birthyear: string;
|
|
90
|
+
gender: string;
|
|
91
|
+
isEmailValid: boolean;
|
|
92
|
+
isEmailVerified: boolean;
|
|
93
|
+
isKorean: boolean;
|
|
94
|
+
ageRangeNeedsAgreement?: boolean;
|
|
95
|
+
birthdayNeedsAgreement?: boolean;
|
|
96
|
+
birthyearNeedsAgreement?: boolean;
|
|
97
|
+
emailNeedsAgreement?: boolean;
|
|
98
|
+
genderNeedsAgreement?: boolean;
|
|
99
|
+
isKoreanNeedsAgreement?: boolean;
|
|
100
|
+
phoneNumberNeedsAgreement?: boolean;
|
|
101
|
+
profileNeedsAgreement?: boolean;
|
|
102
|
+
};
|
|
40
103
|
export function login({
|
|
41
104
|
serviceTerms,
|
|
42
105
|
prompts,
|
|
43
|
-
|
|
106
|
+
useKakaoAccountLogin,
|
|
44
107
|
}: {
|
|
45
108
|
serviceTerms?: string[];
|
|
46
|
-
prompts?:
|
|
47
|
-
|
|
109
|
+
prompts?: ('Loign' | 'Create' | 'Cert' | 'UnifyDaum' | 'SelectAccount')[];
|
|
110
|
+
useKakaoAccountLogin?: boolean;
|
|
48
111
|
} = {}): Promise<KakaoLoginToken> {
|
|
49
|
-
return Native.login(serviceTerms ?? [], prompts ?? [],
|
|
112
|
+
return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLogin ?? false);
|
|
50
113
|
}
|
|
51
114
|
|
|
52
115
|
export function logout() {
|
|
@@ -64,3 +127,26 @@ export function isLogined() {
|
|
|
64
127
|
export function isKakaoTalkLoginAvailable(): Promise<boolean> {
|
|
65
128
|
return Native.isKakaoTalkLoginAvailable();
|
|
66
129
|
}
|
|
130
|
+
|
|
131
|
+
export function scopes(scopes?: string[]): Promise<KakaoScopeInfo[]> {
|
|
132
|
+
return Native.scopes(scopes);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export function revokeScopes(scopes: string[]): Promise<void> {
|
|
136
|
+
return Native.revokeScopes(scopes);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export function serviceTerms(): Promise<{
|
|
140
|
+
allowedServiceTerms?: KakaoServiceTerms[];
|
|
141
|
+
appServiceTerms?: KakaoAppServiceTerms[];
|
|
142
|
+
}> {
|
|
143
|
+
return Native.serviceTerms();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export function shippingAddresses(): Promise<KakaoShippingAddressResult> {
|
|
147
|
+
return Native.shippingAddresses();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export function me(): Promise<KakaoUser> {
|
|
151
|
+
return Native.me();
|
|
152
|
+
}
|
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
2
|
import { TurboModuleRegistry } from 'react-native';
|
|
3
3
|
|
|
4
|
-
import type {
|
|
4
|
+
import type {
|
|
5
|
+
KakaoAppServiceTerms,
|
|
6
|
+
KakaoLoginToken,
|
|
7
|
+
KakaoScopeInfo,
|
|
8
|
+
KakaoServiceTerms,
|
|
9
|
+
KakaoShippingAddressResult,
|
|
10
|
+
KakaoUser,
|
|
11
|
+
} from '..';
|
|
5
12
|
|
|
6
13
|
export interface Spec extends TurboModule {
|
|
7
14
|
isKakaoTalkLoginAvailable(): Promise<boolean>;
|
|
8
15
|
login(
|
|
9
16
|
serviceTerms: string[],
|
|
10
17
|
prompts: string[],
|
|
11
|
-
|
|
18
|
+
useKakaoAccountLogin: boolean,
|
|
12
19
|
): Promise<KakaoLoginToken>;
|
|
13
20
|
logout(): Promise<void>;
|
|
14
21
|
unlink(): Promise<void>;
|
|
15
22
|
isLogined(): Promise<boolean>;
|
|
23
|
+
scopes(scopes?: string[]): Promise<KakaoScopeInfo[]>;
|
|
24
|
+
revokeScopes(scopes: string[]): Promise<void>;
|
|
25
|
+
serviceTerms(): Promise<{
|
|
26
|
+
allowedServiceTerms?: KakaoServiceTerms[];
|
|
27
|
+
appServiceTerms?: KakaoAppServiceTerms[];
|
|
28
|
+
}>;
|
|
29
|
+
shippingAddresses(): Promise<KakaoShippingAddressResult>;
|
|
30
|
+
me(): Promise<KakaoUser>;
|
|
16
31
|
}
|
|
17
32
|
|
|
18
33
|
export default TurboModuleRegistry.getEnforcing<Spec>('RNCKakaoUser');
|