@dynamic-labs/sdk-react-core 3.0.0-alpha.26 → 3.0.0-alpha.28
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/CHANGELOG.md +9 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +11 -11
- package/src/lib/data/api/oauth/oauth.cjs +63 -27
- package/src/lib/data/api/oauth/oauth.d.ts +2 -0
- package/src/lib/data/api/oauth/oauth.js +62 -28
- package/src/lib/utils/functions/getOauthLoginUrl/getOauthLoginUrl.cjs +9 -2
- package/src/lib/utils/functions/getOauthLoginUrl/getOauthLoginUrl.js +9 -2
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +26 -13
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +27 -14
- package/src/lib/views/CollectUserDataView/useFields.cjs +1 -1
- package/src/lib/views/CollectUserDataView/useFields.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
|
|
2
|
+
## [3.0.0-alpha.28](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.27...v3.0.0-alpha.28) (2024-07-25)
|
|
3
|
+
|
|
4
|
+
## [3.0.0-alpha.27](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.26...v3.0.0-alpha.27) (2024-07-24)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* add ability to use a different ecdsa validator ([#6407](https://github.com/dynamic-labs/DynamicAuth/issues/6407)) ([a3e99e1](https://github.com/dynamic-labs/DynamicAuth/commit/a3e99e1b2cdcadbce35ff0cacfb8fb82778c0216))
|
|
10
|
+
|
|
2
11
|
## [3.0.0-alpha.26](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.25...v3.0.0-alpha.26) (2024-07-24)
|
|
3
12
|
|
|
4
13
|
## [3.0.0-alpha.25](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.24...v3.0.0-alpha.25) (2024-07-24)
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.28",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
@@ -17,16 +17,16 @@
|
|
|
17
17
|
"react-i18next": "13.5.0",
|
|
18
18
|
"yup": "0.32.11",
|
|
19
19
|
"react-international-phone": "4.2.5",
|
|
20
|
-
"@dynamic-labs/iconic": "3.0.0-alpha.
|
|
21
|
-
"@dynamic-labs/logger": "3.0.0-alpha.
|
|
22
|
-
"@dynamic-labs/message-transport": "3.0.0-alpha.
|
|
23
|
-
"@dynamic-labs/multi-wallet": "3.0.0-alpha.
|
|
24
|
-
"@dynamic-labs/rpc-providers": "3.0.0-alpha.
|
|
25
|
-
"@dynamic-labs/store": "3.0.0-alpha.
|
|
26
|
-
"@dynamic-labs/types": "3.0.0-alpha.
|
|
27
|
-
"@dynamic-labs/utils": "3.0.0-alpha.
|
|
28
|
-
"@dynamic-labs/wallet-book": "3.0.0-alpha.
|
|
29
|
-
"@dynamic-labs/wallet-connector-core": "3.0.0-alpha.
|
|
20
|
+
"@dynamic-labs/iconic": "3.0.0-alpha.28",
|
|
21
|
+
"@dynamic-labs/logger": "3.0.0-alpha.28",
|
|
22
|
+
"@dynamic-labs/message-transport": "3.0.0-alpha.28",
|
|
23
|
+
"@dynamic-labs/multi-wallet": "3.0.0-alpha.28",
|
|
24
|
+
"@dynamic-labs/rpc-providers": "3.0.0-alpha.28",
|
|
25
|
+
"@dynamic-labs/store": "3.0.0-alpha.28",
|
|
26
|
+
"@dynamic-labs/types": "3.0.0-alpha.28",
|
|
27
|
+
"@dynamic-labs/utils": "3.0.0-alpha.28",
|
|
28
|
+
"@dynamic-labs/wallet-book": "3.0.0-alpha.28",
|
|
29
|
+
"@dynamic-labs/wallet-connector-core": "3.0.0-alpha.28",
|
|
30
30
|
"eventemitter3": "5.0.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
@@ -37,12 +37,7 @@ const verifyOAuth = (environmentId_1, providerType_1, _a) => _tslib.__awaiter(vo
|
|
|
37
37
|
return user;
|
|
38
38
|
}
|
|
39
39
|
catch (e) {
|
|
40
|
-
|
|
41
|
-
const data = yield e.json();
|
|
42
|
-
if (data.code === 'social_account_already_exists') {
|
|
43
|
-
throw new utils.SocialAccountAlreadyExistsError();
|
|
44
|
-
}
|
|
45
|
-
return undefined;
|
|
40
|
+
return handleVerifyError(e);
|
|
46
41
|
}
|
|
47
42
|
});
|
|
48
43
|
const unlinkOAuth = (_b) => _tslib.__awaiter(void 0, [_b], void 0, function* ({ environmentId, primaryWalletId, verifiedCrentialId, }) {
|
|
@@ -62,7 +57,6 @@ const unlinkOAuth = (_b) => _tslib.__awaiter(void 0, [_b], void 0, function* ({
|
|
|
62
57
|
}
|
|
63
58
|
});
|
|
64
59
|
const signInOAuth = (environmentId_2, providerType_2, _c) => _tslib.__awaiter(void 0, [environmentId_2, providerType_2, _c], void 0, function* (environmentId, providerType, { code, codeVerifier, state, captchaToken }) {
|
|
65
|
-
var _d, _e, _f;
|
|
66
60
|
const oauthRequest = {
|
|
67
61
|
captchaToken,
|
|
68
62
|
code,
|
|
@@ -79,25 +73,10 @@ const signInOAuth = (environmentId_2, providerType_2, _c) => _tslib.__awaiter(vo
|
|
|
79
73
|
return user;
|
|
80
74
|
}
|
|
81
75
|
catch (e) {
|
|
82
|
-
|
|
83
|
-
const data = yield e.json();
|
|
84
|
-
if (data.error.code === 'gate_blocked') {
|
|
85
|
-
throw new utils.GateBlockedError(data.payload.walletPublicKey);
|
|
86
|
-
}
|
|
87
|
-
if (data.error.code === 'missing_from_list') {
|
|
88
|
-
throw new utils.NoAccessError({
|
|
89
|
-
socialProvider: (_d = data === null || data === void 0 ? void 0 : data.payload) === null || _d === void 0 ? void 0 : _d.socialProvider,
|
|
90
|
-
socialUsername: (_e = data === null || data === void 0 ? void 0 : data.payload) === null || _e === void 0 ? void 0 : _e.socialUsername,
|
|
91
|
-
walletPublicKey: (_f = data === null || data === void 0 ? void 0 : data.payload) === null || _f === void 0 ? void 0 : _f.walletPublicKey,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
if (data.code === 'email_associated_with_different_provider') {
|
|
95
|
-
throw new utils.AccountExistsError(data.error, data.payload);
|
|
96
|
-
}
|
|
97
|
-
return undefined;
|
|
76
|
+
return handleSignInError(e);
|
|
98
77
|
}
|
|
99
78
|
});
|
|
100
|
-
const getOAuthResult = (environmentId_3, providerType_3,
|
|
79
|
+
const getOAuthResult = (environmentId_3, providerType_3, _d) => _tslib.__awaiter(void 0, [environmentId_3, providerType_3, _d], void 0, function* (environmentId, providerType, { state }) {
|
|
101
80
|
const oauthResultRequest = {
|
|
102
81
|
state,
|
|
103
82
|
};
|
|
@@ -115,7 +94,7 @@ const getOAuthResult = (environmentId_3, providerType_3, _g) => _tslib.__awaiter
|
|
|
115
94
|
}
|
|
116
95
|
});
|
|
117
96
|
const farcasterSignIn = (environmentId, farcasterSignInRequest) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
118
|
-
var
|
|
97
|
+
var _e, _f;
|
|
119
98
|
try {
|
|
120
99
|
const response = yield api.sdkApi().farcasterSignIn({
|
|
121
100
|
environmentId,
|
|
@@ -132,8 +111,8 @@ const farcasterSignIn = (environmentId, farcasterSignInRequest) => _tslib.__awai
|
|
|
132
111
|
}
|
|
133
112
|
if (data.error.code === 'missing_from_list') {
|
|
134
113
|
throw new utils.NoAccessError({
|
|
135
|
-
socialProvider: (
|
|
136
|
-
socialUsername: (
|
|
114
|
+
socialProvider: (_e = data === null || data === void 0 ? void 0 : data.payload) === null || _e === void 0 ? void 0 : _e.socialProvider,
|
|
115
|
+
socialUsername: (_f = data === null || data === void 0 ? void 0 : data.payload) === null || _f === void 0 ? void 0 : _f.socialUsername,
|
|
137
116
|
walletPublicKey: data.payload.walletPublicKey,
|
|
138
117
|
});
|
|
139
118
|
}
|
|
@@ -153,10 +132,67 @@ const farcasterVerify = (farcasterVerifyRequest) => _tslib.__awaiter(void 0, voi
|
|
|
153
132
|
return undefined;
|
|
154
133
|
}
|
|
155
134
|
});
|
|
135
|
+
const telegramSignIn = (environmentId, oauthResultRequest) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
136
|
+
const telegramSignInRequest = {
|
|
137
|
+
environmentId,
|
|
138
|
+
oauthResultRequest,
|
|
139
|
+
};
|
|
140
|
+
try {
|
|
141
|
+
const response = yield api.sdkApi().telegramSignIn(telegramSignInRequest);
|
|
142
|
+
const user = storeAuthTokenAndUser.storeAuthTokenAndUser(response);
|
|
143
|
+
return user;
|
|
144
|
+
}
|
|
145
|
+
catch (e) {
|
|
146
|
+
return handleSignInError(e);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
const telegramVerify = (environmentId, oauthResultRequest) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
150
|
+
const telegramVerifyRequest = {
|
|
151
|
+
environmentId,
|
|
152
|
+
oauthResultRequest,
|
|
153
|
+
};
|
|
154
|
+
try {
|
|
155
|
+
const response = yield api.sdkApi().telegramVerify(telegramVerifyRequest);
|
|
156
|
+
const user = storeAuthTokenAndUser.storeAuthTokenAndUser(response);
|
|
157
|
+
return user;
|
|
158
|
+
}
|
|
159
|
+
catch (e) {
|
|
160
|
+
return handleVerifyError(e);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
const handleVerifyError = (e) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
164
|
+
logger.logger.error(e);
|
|
165
|
+
const data = yield e.json();
|
|
166
|
+
if (data.code === 'social_account_already_exists') {
|
|
167
|
+
throw new utils.SocialAccountAlreadyExistsError();
|
|
168
|
+
}
|
|
169
|
+
return undefined;
|
|
170
|
+
});
|
|
171
|
+
const handleSignInError = (e) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
172
|
+
var _g, _h, _j;
|
|
173
|
+
logger.logger.error(e);
|
|
174
|
+
const data = yield e.json();
|
|
175
|
+
if (data.error.code === 'gate_blocked') {
|
|
176
|
+
throw new utils.GateBlockedError(data.payload.walletPublicKey);
|
|
177
|
+
}
|
|
178
|
+
if (data.error.code === 'missing_from_list') {
|
|
179
|
+
throw new utils.NoAccessError({
|
|
180
|
+
socialProvider: (_g = data === null || data === void 0 ? void 0 : data.payload) === null || _g === void 0 ? void 0 : _g.socialProvider,
|
|
181
|
+
socialUsername: (_h = data === null || data === void 0 ? void 0 : data.payload) === null || _h === void 0 ? void 0 : _h.socialUsername,
|
|
182
|
+
walletPublicKey: (_j = data === null || data === void 0 ? void 0 : data.payload) === null || _j === void 0 ? void 0 : _j.walletPublicKey,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
if (data.code === 'email_associated_with_different_provider') {
|
|
186
|
+
throw new utils.AccountExistsError(data.error, data.payload);
|
|
187
|
+
}
|
|
188
|
+
return undefined;
|
|
189
|
+
});
|
|
156
190
|
|
|
157
191
|
exports.farcasterSignIn = farcasterSignIn;
|
|
158
192
|
exports.farcasterVerify = farcasterVerify;
|
|
159
193
|
exports.getOAuthResult = getOAuthResult;
|
|
160
194
|
exports.signInOAuth = signInOAuth;
|
|
195
|
+
exports.telegramSignIn = telegramSignIn;
|
|
196
|
+
exports.telegramVerify = telegramVerify;
|
|
161
197
|
exports.unlinkOAuth = unlinkOAuth;
|
|
162
198
|
exports.verifyOAuth = verifyOAuth;
|
|
@@ -11,3 +11,5 @@ export declare const signInOAuth: (environmentId: string, providerType: Provider
|
|
|
11
11
|
export declare const getOAuthResult: (environmentId: string, providerType: ProviderEnum, { state }: OauthResultRequest) => Promise<OauthResultResponse | undefined>;
|
|
12
12
|
export declare const farcasterSignIn: (environmentId: string, farcasterSignInRequest: FarcasterSignInRequest) => Promise<UserProfile | undefined>;
|
|
13
13
|
export declare const farcasterVerify: (farcasterVerifyRequest: FarcasterVerifyRequest) => Promise<UserProfile | undefined>;
|
|
14
|
+
export declare const telegramSignIn: (environmentId: string, oauthResultRequest: OauthResultRequest) => Promise<UserProfile | undefined>;
|
|
15
|
+
export declare const telegramVerify: (environmentId: string, oauthResultRequest: OauthResultRequest) => Promise<UserProfile | undefined>;
|
|
@@ -33,12 +33,7 @@ const verifyOAuth = (environmentId_1, providerType_1, _a) => __awaiter(void 0, [
|
|
|
33
33
|
return user;
|
|
34
34
|
}
|
|
35
35
|
catch (e) {
|
|
36
|
-
|
|
37
|
-
const data = yield e.json();
|
|
38
|
-
if (data.code === 'social_account_already_exists') {
|
|
39
|
-
throw new SocialAccountAlreadyExistsError();
|
|
40
|
-
}
|
|
41
|
-
return undefined;
|
|
36
|
+
return handleVerifyError(e);
|
|
42
37
|
}
|
|
43
38
|
});
|
|
44
39
|
const unlinkOAuth = (_b) => __awaiter(void 0, [_b], void 0, function* ({ environmentId, primaryWalletId, verifiedCrentialId, }) {
|
|
@@ -58,7 +53,6 @@ const unlinkOAuth = (_b) => __awaiter(void 0, [_b], void 0, function* ({ environ
|
|
|
58
53
|
}
|
|
59
54
|
});
|
|
60
55
|
const signInOAuth = (environmentId_2, providerType_2, _c) => __awaiter(void 0, [environmentId_2, providerType_2, _c], void 0, function* (environmentId, providerType, { code, codeVerifier, state, captchaToken }) {
|
|
61
|
-
var _d, _e, _f;
|
|
62
56
|
const oauthRequest = {
|
|
63
57
|
captchaToken,
|
|
64
58
|
code,
|
|
@@ -75,25 +69,10 @@ const signInOAuth = (environmentId_2, providerType_2, _c) => __awaiter(void 0, [
|
|
|
75
69
|
return user;
|
|
76
70
|
}
|
|
77
71
|
catch (e) {
|
|
78
|
-
|
|
79
|
-
const data = yield e.json();
|
|
80
|
-
if (data.error.code === 'gate_blocked') {
|
|
81
|
-
throw new GateBlockedError(data.payload.walletPublicKey);
|
|
82
|
-
}
|
|
83
|
-
if (data.error.code === 'missing_from_list') {
|
|
84
|
-
throw new NoAccessError({
|
|
85
|
-
socialProvider: (_d = data === null || data === void 0 ? void 0 : data.payload) === null || _d === void 0 ? void 0 : _d.socialProvider,
|
|
86
|
-
socialUsername: (_e = data === null || data === void 0 ? void 0 : data.payload) === null || _e === void 0 ? void 0 : _e.socialUsername,
|
|
87
|
-
walletPublicKey: (_f = data === null || data === void 0 ? void 0 : data.payload) === null || _f === void 0 ? void 0 : _f.walletPublicKey,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
if (data.code === 'email_associated_with_different_provider') {
|
|
91
|
-
throw new AccountExistsError(data.error, data.payload);
|
|
92
|
-
}
|
|
93
|
-
return undefined;
|
|
72
|
+
return handleSignInError(e);
|
|
94
73
|
}
|
|
95
74
|
});
|
|
96
|
-
const getOAuthResult = (environmentId_3, providerType_3,
|
|
75
|
+
const getOAuthResult = (environmentId_3, providerType_3, _d) => __awaiter(void 0, [environmentId_3, providerType_3, _d], void 0, function* (environmentId, providerType, { state }) {
|
|
97
76
|
const oauthResultRequest = {
|
|
98
77
|
state,
|
|
99
78
|
};
|
|
@@ -111,7 +90,7 @@ const getOAuthResult = (environmentId_3, providerType_3, _g) => __awaiter(void 0
|
|
|
111
90
|
}
|
|
112
91
|
});
|
|
113
92
|
const farcasterSignIn = (environmentId, farcasterSignInRequest) => __awaiter(void 0, void 0, void 0, function* () {
|
|
114
|
-
var
|
|
93
|
+
var _e, _f;
|
|
115
94
|
try {
|
|
116
95
|
const response = yield sdkApi().farcasterSignIn({
|
|
117
96
|
environmentId,
|
|
@@ -128,8 +107,8 @@ const farcasterSignIn = (environmentId, farcasterSignInRequest) => __awaiter(voi
|
|
|
128
107
|
}
|
|
129
108
|
if (data.error.code === 'missing_from_list') {
|
|
130
109
|
throw new NoAccessError({
|
|
131
|
-
socialProvider: (
|
|
132
|
-
socialUsername: (
|
|
110
|
+
socialProvider: (_e = data === null || data === void 0 ? void 0 : data.payload) === null || _e === void 0 ? void 0 : _e.socialProvider,
|
|
111
|
+
socialUsername: (_f = data === null || data === void 0 ? void 0 : data.payload) === null || _f === void 0 ? void 0 : _f.socialUsername,
|
|
133
112
|
walletPublicKey: data.payload.walletPublicKey,
|
|
134
113
|
});
|
|
135
114
|
}
|
|
@@ -149,5 +128,60 @@ const farcasterVerify = (farcasterVerifyRequest) => __awaiter(void 0, void 0, vo
|
|
|
149
128
|
return undefined;
|
|
150
129
|
}
|
|
151
130
|
});
|
|
131
|
+
const telegramSignIn = (environmentId, oauthResultRequest) => __awaiter(void 0, void 0, void 0, function* () {
|
|
132
|
+
const telegramSignInRequest = {
|
|
133
|
+
environmentId,
|
|
134
|
+
oauthResultRequest,
|
|
135
|
+
};
|
|
136
|
+
try {
|
|
137
|
+
const response = yield sdkApi().telegramSignIn(telegramSignInRequest);
|
|
138
|
+
const user = storeAuthTokenAndUser(response);
|
|
139
|
+
return user;
|
|
140
|
+
}
|
|
141
|
+
catch (e) {
|
|
142
|
+
return handleSignInError(e);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
const telegramVerify = (environmentId, oauthResultRequest) => __awaiter(void 0, void 0, void 0, function* () {
|
|
146
|
+
const telegramVerifyRequest = {
|
|
147
|
+
environmentId,
|
|
148
|
+
oauthResultRequest,
|
|
149
|
+
};
|
|
150
|
+
try {
|
|
151
|
+
const response = yield sdkApi().telegramVerify(telegramVerifyRequest);
|
|
152
|
+
const user = storeAuthTokenAndUser(response);
|
|
153
|
+
return user;
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
return handleVerifyError(e);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
const handleVerifyError = (e) => __awaiter(void 0, void 0, void 0, function* () {
|
|
160
|
+
logger.error(e);
|
|
161
|
+
const data = yield e.json();
|
|
162
|
+
if (data.code === 'social_account_already_exists') {
|
|
163
|
+
throw new SocialAccountAlreadyExistsError();
|
|
164
|
+
}
|
|
165
|
+
return undefined;
|
|
166
|
+
});
|
|
167
|
+
const handleSignInError = (e) => __awaiter(void 0, void 0, void 0, function* () {
|
|
168
|
+
var _g, _h, _j;
|
|
169
|
+
logger.error(e);
|
|
170
|
+
const data = yield e.json();
|
|
171
|
+
if (data.error.code === 'gate_blocked') {
|
|
172
|
+
throw new GateBlockedError(data.payload.walletPublicKey);
|
|
173
|
+
}
|
|
174
|
+
if (data.error.code === 'missing_from_list') {
|
|
175
|
+
throw new NoAccessError({
|
|
176
|
+
socialProvider: (_g = data === null || data === void 0 ? void 0 : data.payload) === null || _g === void 0 ? void 0 : _g.socialProvider,
|
|
177
|
+
socialUsername: (_h = data === null || data === void 0 ? void 0 : data.payload) === null || _h === void 0 ? void 0 : _h.socialUsername,
|
|
178
|
+
walletPublicKey: (_j = data === null || data === void 0 ? void 0 : data.payload) === null || _j === void 0 ? void 0 : _j.walletPublicKey,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
if (data.code === 'email_associated_with_different_provider') {
|
|
182
|
+
throw new AccountExistsError(data.error, data.payload);
|
|
183
|
+
}
|
|
184
|
+
return undefined;
|
|
185
|
+
});
|
|
152
186
|
|
|
153
|
-
export { farcasterSignIn, farcasterVerify, getOAuthResult, signInOAuth, unlinkOAuth, verifyOAuth };
|
|
187
|
+
export { farcasterSignIn, farcasterVerify, getOAuthResult, signInOAuth, telegramSignIn, telegramVerify, unlinkOAuth, verifyOAuth };
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
+
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
6
7
|
var utils = require('@dynamic-labs/utils');
|
|
7
8
|
var stringifyURIQuery = require('../stringifyURIQuery/stringifyURIQuery.cjs');
|
|
8
9
|
var getProviderByType = require('../getProviderByType/getProviderByType.cjs');
|
|
@@ -39,6 +40,9 @@ const OAUTH_LOGIN_DATA = {
|
|
|
39
40
|
scope: ['user_profile', 'user_media'],
|
|
40
41
|
url: 'https://api.instagram.com/oauth/authorize',
|
|
41
42
|
},
|
|
43
|
+
telegram: {
|
|
44
|
+
url: '', // will be constructed dynamically
|
|
45
|
+
},
|
|
42
46
|
twitch: {
|
|
43
47
|
scope: ['user_read'],
|
|
44
48
|
url: 'https://id.twitch.tv/oauth2/authorize',
|
|
@@ -64,7 +68,7 @@ const getMobileOauthUrl = (provider, loginData) => {
|
|
|
64
68
|
return provider.redirectUrl.replace('redirect', 'authorizeHtml');
|
|
65
69
|
};
|
|
66
70
|
const getOauthLoginUrl = (providers, providerType) => {
|
|
67
|
-
var _a;
|
|
71
|
+
var _a, _b;
|
|
68
72
|
const provider = getProviderByType.getProviderByType(providers, providerType);
|
|
69
73
|
if (!(provider === null || provider === void 0 ? void 0 : provider.clientId)) {
|
|
70
74
|
return '';
|
|
@@ -73,10 +77,13 @@ const getOauthLoginUrl = (providers, providerType) => {
|
|
|
73
77
|
if (!loginData) {
|
|
74
78
|
return '';
|
|
75
79
|
}
|
|
80
|
+
if (providerType === sdkApiCore.ProviderEnum.Telegram) {
|
|
81
|
+
loginData.url = (_a = provider.authorizationUrl) !== null && _a !== void 0 ? _a : '';
|
|
82
|
+
}
|
|
76
83
|
const mobileUrl = getMobileOauthUrl(provider, loginData);
|
|
77
84
|
const baseProps = {
|
|
78
85
|
client_id: provider.clientId,
|
|
79
|
-
redirect_uri: (
|
|
86
|
+
redirect_uri: (_b = provider.redirectUrl) !== null && _b !== void 0 ? _b : '',
|
|
80
87
|
response_type: 'code',
|
|
81
88
|
};
|
|
82
89
|
if (loginData.scope) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use client'
|
|
2
|
+
import { ProviderEnum } from '@dynamic-labs/sdk-api-core';
|
|
2
3
|
import { isMobile } from '@dynamic-labs/utils';
|
|
3
4
|
import { stringifyURIQuery } from '../stringifyURIQuery/stringifyURIQuery.js';
|
|
4
5
|
import { getProviderByType } from '../getProviderByType/getProviderByType.js';
|
|
@@ -35,6 +36,9 @@ const OAUTH_LOGIN_DATA = {
|
|
|
35
36
|
scope: ['user_profile', 'user_media'],
|
|
36
37
|
url: 'https://api.instagram.com/oauth/authorize',
|
|
37
38
|
},
|
|
39
|
+
telegram: {
|
|
40
|
+
url: '', // will be constructed dynamically
|
|
41
|
+
},
|
|
38
42
|
twitch: {
|
|
39
43
|
scope: ['user_read'],
|
|
40
44
|
url: 'https://id.twitch.tv/oauth2/authorize',
|
|
@@ -60,7 +64,7 @@ const getMobileOauthUrl = (provider, loginData) => {
|
|
|
60
64
|
return provider.redirectUrl.replace('redirect', 'authorizeHtml');
|
|
61
65
|
};
|
|
62
66
|
const getOauthLoginUrl = (providers, providerType) => {
|
|
63
|
-
var _a;
|
|
67
|
+
var _a, _b;
|
|
64
68
|
const provider = getProviderByType(providers, providerType);
|
|
65
69
|
if (!(provider === null || provider === void 0 ? void 0 : provider.clientId)) {
|
|
66
70
|
return '';
|
|
@@ -69,10 +73,13 @@ const getOauthLoginUrl = (providers, providerType) => {
|
|
|
69
73
|
if (!loginData) {
|
|
70
74
|
return '';
|
|
71
75
|
}
|
|
76
|
+
if (providerType === ProviderEnum.Telegram) {
|
|
77
|
+
loginData.url = (_a = provider.authorizationUrl) !== null && _a !== void 0 ? _a : '';
|
|
78
|
+
}
|
|
72
79
|
const mobileUrl = getMobileOauthUrl(provider, loginData);
|
|
73
80
|
const baseProps = {
|
|
74
81
|
client_id: provider.clientId,
|
|
75
|
-
redirect_uri: (
|
|
82
|
+
redirect_uri: (_b = provider.redirectUrl) !== null && _b !== void 0 ? _b : '',
|
|
76
83
|
response_type: 'code',
|
|
77
84
|
};
|
|
78
85
|
if (loginData.scope) {
|
|
@@ -105,6 +105,7 @@ const socialProviders = [
|
|
|
105
105
|
'github',
|
|
106
106
|
'google',
|
|
107
107
|
'instagram',
|
|
108
|
+
'telegram',
|
|
108
109
|
'twitch',
|
|
109
110
|
'twitter',
|
|
110
111
|
];
|
|
@@ -228,21 +229,33 @@ const useSocialAuth = ({ sessionTimeout, onSettled, onError, onFarcasterUrl, })
|
|
|
228
229
|
state,
|
|
229
230
|
});
|
|
230
231
|
if (authMode === 'signin') {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
232
|
+
if (provider === sdkApiCore.ProviderEnum.Telegram) {
|
|
233
|
+
const apiCall = () => oauth.telegramSignIn(environmentId, { state });
|
|
234
|
+
yield signInAccount(provider, apiCall);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
const apiCall = () => oauth.signInOAuth(environmentId, provider, {
|
|
238
|
+
captchaToken,
|
|
239
|
+
code: authCode,
|
|
240
|
+
codeVerifier: verifier,
|
|
241
|
+
state,
|
|
242
|
+
});
|
|
243
|
+
yield signInAccount(provider, apiCall);
|
|
244
|
+
}
|
|
238
245
|
}
|
|
239
246
|
else {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
247
|
+
if (provider === sdkApiCore.ProviderEnum.Telegram) {
|
|
248
|
+
const apiCall = () => oauth.telegramVerify(environmentId, { state });
|
|
249
|
+
yield linkAccount(provider, apiCall);
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
const apiCall = () => oauth.verifyOAuth(environmentId, provider, {
|
|
253
|
+
code: authCode,
|
|
254
|
+
codeVerifier: verifier,
|
|
255
|
+
state,
|
|
256
|
+
});
|
|
257
|
+
yield linkAccount(provider, apiCall);
|
|
258
|
+
}
|
|
246
259
|
}
|
|
247
260
|
}
|
|
248
261
|
catch (error) {
|
|
@@ -27,7 +27,7 @@ import { getOauthLoginUrl } from '../../functions/getOauthLoginUrl/getOauthLogin
|
|
|
27
27
|
import { getProviderByType } from '../../functions/getProviderByType/getProviderByType.js';
|
|
28
28
|
import '../../../config/ApiEndpoint.js';
|
|
29
29
|
import '@dynamic-labs/store';
|
|
30
|
-
import { getOAuthResult, signInOAuth, verifyOAuth, farcasterSignIn, farcasterVerify } from '../../../data/api/oauth/oauth.js';
|
|
30
|
+
import { getOAuthResult, telegramSignIn, signInOAuth, telegramVerify, verifyOAuth, farcasterSignIn, farcasterVerify } from '../../../data/api/oauth/oauth.js';
|
|
31
31
|
import '../../../locale/locale.js';
|
|
32
32
|
import { randomString } from '../../functions/randomString/randomString.js';
|
|
33
33
|
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
@@ -101,6 +101,7 @@ const socialProviders = [
|
|
|
101
101
|
'github',
|
|
102
102
|
'google',
|
|
103
103
|
'instagram',
|
|
104
|
+
'telegram',
|
|
104
105
|
'twitch',
|
|
105
106
|
'twitter',
|
|
106
107
|
];
|
|
@@ -224,21 +225,33 @@ const useSocialAuth = ({ sessionTimeout, onSettled, onError, onFarcasterUrl, })
|
|
|
224
225
|
state,
|
|
225
226
|
});
|
|
226
227
|
if (authMode === 'signin') {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
228
|
+
if (provider === ProviderEnum.Telegram) {
|
|
229
|
+
const apiCall = () => telegramSignIn(environmentId, { state });
|
|
230
|
+
yield signInAccount(provider, apiCall);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
const apiCall = () => signInOAuth(environmentId, provider, {
|
|
234
|
+
captchaToken,
|
|
235
|
+
code: authCode,
|
|
236
|
+
codeVerifier: verifier,
|
|
237
|
+
state,
|
|
238
|
+
});
|
|
239
|
+
yield signInAccount(provider, apiCall);
|
|
240
|
+
}
|
|
234
241
|
}
|
|
235
242
|
else {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
243
|
+
if (provider === ProviderEnum.Telegram) {
|
|
244
|
+
const apiCall = () => telegramVerify(environmentId, { state });
|
|
245
|
+
yield linkAccount(provider, apiCall);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
const apiCall = () => verifyOAuth(environmentId, provider, {
|
|
249
|
+
code: authCode,
|
|
250
|
+
codeVerifier: verifier,
|
|
251
|
+
state,
|
|
252
|
+
});
|
|
253
|
+
yield linkAccount(provider, apiCall);
|
|
254
|
+
}
|
|
242
255
|
}
|
|
243
256
|
}
|
|
244
257
|
catch (error) {
|
|
@@ -177,7 +177,7 @@ const useFields = () => {
|
|
|
177
177
|
// - string can contain letters A-Z, a-z, numbers 0-9, or symbols $ ! # % ?
|
|
178
178
|
// - string must be length 3 to 20
|
|
179
179
|
// - string cannot contain consecutive symbols
|
|
180
|
-
validation: yup.string().matches(/^(?!.*([$!#%?])\1)[A-Za-z0-9$!#%?]{3,20}$/, t('dyn_collect_user_data.fields.username.validation')),
|
|
180
|
+
validation: yup.string().matches(/^(?!.*([$!#%?])\1)[A-Za-z0-9$!#%?_-]{3,20}$/, t('dyn_collect_user_data.fields.username.validation')),
|
|
181
181
|
},
|
|
182
182
|
}), [selectedPhoneCountry, t]);
|
|
183
183
|
return { fieldsConfig };
|
|
@@ -173,7 +173,7 @@ const useFields = () => {
|
|
|
173
173
|
// - string can contain letters A-Z, a-z, numbers 0-9, or symbols $ ! # % ?
|
|
174
174
|
// - string must be length 3 to 20
|
|
175
175
|
// - string cannot contain consecutive symbols
|
|
176
|
-
validation: string().matches(/^(?!.*([$!#%?])\1)[A-Za-z0-9$!#%?]{3,20}$/, t('dyn_collect_user_data.fields.username.validation')),
|
|
176
|
+
validation: string().matches(/^(?!.*([$!#%?])\1)[A-Za-z0-9$!#%?_-]{3,20}$/, t('dyn_collect_user_data.fields.username.validation')),
|
|
177
177
|
},
|
|
178
178
|
}), [selectedPhoneCountry, t]);
|
|
179
179
|
return { fieldsConfig };
|