@cloudbase/oauth 0.1.1-alpha → 0.1.1-alpha.2
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/Dockerfile +15 -0
- package/README.md +1 -1
- package/_exmaple/assets/scripts/function/function.ts +99 -0
- package/_exmaple/assets/scripts/index.ts +99 -0
- package/_exmaple/assets/scripts/request.ts +11 -0
- package/_exmaple/index.html +15 -0
- package/_exmaple/package.json +33 -0
- package/_exmaple/tsconfig.json +71 -0
- package/_exmaple/typings.d.ts +0 -0
- package/_exmaple/webpack.config.js +42 -0
- package/cdnjs/1.0.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.0/cloudbase.database.js +8 -0
- package/cdnjs/1.0.0/cloudbase.full.js +8 -0
- package/cdnjs/1.0.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.0/cloudbase.js +1 -0
- package/cdnjs/1.0.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.1/cloudbase.database.js +8 -0
- package/cdnjs/1.0.1/cloudbase.full.js +8 -0
- package/cdnjs/1.0.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.1/cloudbase.js +1 -0
- package/cdnjs/1.0.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.2/cloudbase.database.js +8 -0
- package/cdnjs/1.0.2/cloudbase.full.js +8 -0
- package/cdnjs/1.0.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.2/cloudbase.js +1 -0
- package/cdnjs/1.0.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.3/cloudbase.database.js +8 -0
- package/cdnjs/1.0.3/cloudbase.full.js +8 -0
- package/cdnjs/1.0.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.3/cloudbase.js +1 -0
- package/cdnjs/1.0.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.4/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.4/cloudbase.database.js +8 -0
- package/cdnjs/1.0.4/cloudbase.full.js +8 -0
- package/cdnjs/1.0.4/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.4/cloudbase.js +1 -0
- package/cdnjs/1.0.4/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.0/cloudbase.database.js +8 -0
- package/cdnjs/1.1.0/cloudbase.full.js +8 -0
- package/cdnjs/1.1.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.0/cloudbase.js +1 -0
- package/cdnjs/1.1.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.1/cloudbase.database.js +8 -0
- package/cdnjs/1.1.1/cloudbase.full.js +8 -0
- package/cdnjs/1.1.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.1/cloudbase.js +1 -0
- package/cdnjs/1.1.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.2/cloudbase.database.js +8 -0
- package/cdnjs/1.1.2/cloudbase.full.js +8 -0
- package/cdnjs/1.1.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.2/cloudbase.js +1 -0
- package/cdnjs/1.1.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.3/cloudbase.database.js +8 -0
- package/cdnjs/1.1.3/cloudbase.full.js +8 -0
- package/cdnjs/1.1.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.3/cloudbase.js +1 -0
- package/cdnjs/1.1.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.4/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.4/cloudbase.database.js +8 -0
- package/cdnjs/1.1.4/cloudbase.full.js +8 -0
- package/cdnjs/1.1.4/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.4/cloudbase.js +1 -0
- package/cdnjs/1.1.4/cloudbase.storage.js +1 -0
- package/cdnjs/1.2.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.2.1/cloudbase.database.js +8 -0
- package/cdnjs/1.2.1/cloudbase.full.js +8 -0
- package/cdnjs/1.2.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.2.1/cloudbase.js +1 -0
- package/cdnjs/1.2.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.2.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.2.2/cloudbase.database.js +8 -0
- package/cdnjs/1.2.2/cloudbase.full.js +8 -0
- package/cdnjs/1.2.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.2.2/cloudbase.js +1 -0
- package/cdnjs/1.2.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.2.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.2.3/cloudbase.database.js +8 -0
- package/cdnjs/1.2.3/cloudbase.full.js +8 -0
- package/cdnjs/1.2.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.2.3/cloudbase.js +1 -0
- package/cdnjs/1.2.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.0/cloudbase.database.js +8 -0
- package/cdnjs/1.3.0/cloudbase.full.js +8 -0
- package/cdnjs/1.3.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.0/cloudbase.js +1 -0
- package/cdnjs/1.3.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.1/cloudbase.database.js +8 -0
- package/cdnjs/1.3.1/cloudbase.full.js +8 -0
- package/cdnjs/1.3.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.1/cloudbase.js +1 -0
- package/cdnjs/1.3.1/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.2/cloudbase.database.js +8 -0
- package/cdnjs/1.3.2/cloudbase.full.js +8 -0
- package/cdnjs/1.3.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.2/cloudbase.js +1 -0
- package/cdnjs/1.3.2/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.3/cloudbase.database.js +8 -0
- package/cdnjs/1.3.3/cloudbase.full.js +8 -0
- package/cdnjs/1.3.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.3/cloudbase.js +1 -0
- package/cdnjs/1.3.3/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.database.js +8 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.full.js +8 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.5/cloudbase.analytics.js +1 -0
- package/cdnjs/1.3.5/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.5/cloudbase.database.js +10 -0
- package/cdnjs/1.3.5/cloudbase.full.js +10 -0
- package/cdnjs/1.3.5/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.5/cloudbase.js +1 -0
- package/cdnjs/1.3.5/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.5/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.0/cloudbase.database.js +10 -0
- package/cdnjs/1.4.0/cloudbase.full.js +10 -0
- package/cdnjs/1.4.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.0/cloudbase.js +1 -0
- package/cdnjs/1.4.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.1/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.1/cloudbase.database.js +10 -0
- package/cdnjs/1.4.1/cloudbase.full.js +10 -0
- package/cdnjs/1.4.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.1/cloudbase.js +1 -0
- package/cdnjs/1.4.1/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.0/cloudbase.database.js +10 -0
- package/cdnjs/1.5.0/cloudbase.full.js +10 -0
- package/cdnjs/1.5.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.0/cloudbase.js +1 -0
- package/cdnjs/1.5.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.1/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.1/cloudbase.database.js +26 -0
- package/cdnjs/1.5.1/cloudbase.full.js +26 -0
- package/cdnjs/1.5.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.1/cloudbase.js +1 -0
- package/cdnjs/1.5.1/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.database.js +26 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.full.js +26 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.6.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.6.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.6.0/cloudbase.database.js +26 -0
- package/cdnjs/1.6.0/cloudbase.full.js +26 -0
- package/cdnjs/1.6.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.6.0/cloudbase.js +1 -0
- package/cdnjs/1.6.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.6.0/cloudbase.storage.js +1 -0
- package/{CHANGELOG.md → changelog.md} +0 -0
- package/dist/README.md +153 -0
- package/{app → dist/app}/index.d.ts +1 -0
- package/{app → dist/app}/index.js +0 -0
- package/dist/app/index.js.map +1 -0
- package/{app → dist/app}/internal.d.ts +0 -0
- package/{app → dist/app}/internal.js +0 -0
- package/{app → dist/app}/internal.js.map +0 -0
- package/{app → dist/app}/openuri.d.ts +0 -0
- package/{app → dist/app}/openuri.js +2 -1
- package/{app → dist/app}/openuri.js.map +1 -1
- package/{app → dist/app}/request.d.ts +4 -3
- package/{app → dist/app}/request.js +20 -12
- package/dist/app/request.js.map +1 -0
- package/{app → dist/app}/storage.d.ts +0 -0
- package/{app → dist/app}/storage.js +0 -0
- package/{app → dist/app}/storage.js.map +0 -0
- package/{auth → dist/auth}/consts.d.ts +21 -4
- package/{auth → dist/auth}/consts.js +27 -5
- package/dist/auth/consts.js.map +1 -0
- package/{auth → dist/auth}/index.d.ts +83 -34
- package/{auth → dist/auth}/index.js +239 -92
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/models.d.ts +284 -0
- package/{oauthclient → dist/auth}/models.js +1 -0
- package/dist/auth/models.js.map +1 -0
- package/{captcha → dist/captcha}/index.d.ts +0 -0
- package/{captcha → dist/captcha}/index.js +4 -2
- package/dist/captcha/index.js.map +1 -0
- package/dist/changelog.md +30 -0
- package/dist/function/index.d.ts +38 -0
- package/dist/function/index.js +80 -0
- package/dist/function/index.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/{oauthclient → dist/oauthclient}/consts.d.ts +0 -0
- package/{oauthclient → dist/oauthclient}/consts.js +0 -0
- package/{oauthclient → dist/oauthclient}/consts.js.map +0 -0
- package/{oauthclient → dist/oauthclient}/index.d.ts +0 -0
- package/{oauthclient → dist/oauthclient}/index.js +2 -2
- package/dist/oauthclient/index.js.map +1 -0
- package/{oauthclient → dist/oauthclient}/interface.d.ts +4 -0
- package/{oauthclient → dist/oauthclient}/interface.js +0 -0
- package/{oauthclient → dist/oauthclient}/interface.js.map +1 -1
- package/{oauthclient → dist/oauthclient}/models.d.ts +12 -11
- package/{auth → dist/oauthclient}/models.js +0 -0
- package/{oauthclient → dist/oauthclient}/models.js.map +0 -0
- package/{oauthclient → dist/oauthclient}/oauthclient.d.ts +11 -7
- package/{oauthclient → dist/oauthclient}/oauthclient.js +27 -12
- package/dist/oauthclient/oauthclient.js.map +1 -0
- package/dist/package.json +32 -0
- package/{utils/single-promise.d.ts → dist/utils/promise.d.ts} +3 -3
- package/{utils/single-promise.js → dist/utils/promise.js} +6 -6
- package/dist/utils/promise.js.map +1 -0
- package/{utils → dist/utils}/uuid.d.ts +0 -0
- package/{utils → dist/utils}/uuid.js +0 -0
- package/{utils → dist/utils}/uuid.js.map +0 -0
- package/docs/dev.md +71 -0
- package/docs/errlog.md +79 -0
- package/package.json +3 -2
- package/publish.sh +2 -0
- package/src/app/index.ts +83 -0
- package/src/app/internal.ts +26 -0
- package/src/app/openuri.ts +111 -0
- package/src/app/request.ts +66 -0
- package/src/app/storage.ts +58 -0
- package/src/auth/consts.ts +74 -0
- package/src/auth/index.ts +718 -0
- package/src/auth/models.ts +352 -0
- package/src/captcha/index.ts +170 -0
- package/src/function/index.ts +103 -0
- package/src/index.ts +32 -0
- package/src/oauthclient/consts.ts +48 -0
- package/src/oauthclient/index.ts +33 -0
- package/src/oauthclient/interface.ts +34 -0
- package/src/oauthclient/models.ts +50 -0
- package/src/oauthclient/oauthclient.ts +487 -0
- package/src/utils/promise.ts +41 -0
- package/src/utils/uuid.ts +11 -0
- package/test/e2e/cases/custom-login.test.js +122 -0
- package/test/e2e/cases/index.test.js +61 -0
- package/test/e2e/cases/login-state.test.js +89 -0
- package/test/e2e/environment.js +39 -0
- package/test/e2e/global_setup.js +33 -0
- package/test/e2e/global_teardown.js +15 -0
- package/test/e2e/setup.js +37 -0
- package/test/unit/index.test.js +89 -0
- package/test/web/cases/auth/index.js +256 -0
- package/test/web/cases/database/collection.js +173 -0
- package/test/web/cases/database/command.js +754 -0
- package/test/web/cases/database/date.js +122 -0
- package/test/web/cases/database/db.js +20 -0
- package/test/web/cases/database/document.js +160 -0
- package/test/web/cases/database/geo-advanced.js +327 -0
- package/test/web/cases/database/geo.js +105 -0
- package/test/web/cases/database/index.js +315 -0
- package/test/web/cases/database/order.js +83 -0
- package/test/web/cases/database/realtime.js +102 -0
- package/test/web/cases/database/regex.js +140 -0
- package/test/web/cases/ext/index.js +88 -0
- package/test/web/cases/function/index.js +77 -0
- package/test/web/cases/storage/cos.jpeg +0 -0
- package/test/web/cases/storage/index.js +207 -0
- package/test/web/index.html +63 -0
- package/test/web/index.js +109 -0
- package/test/web/util.js +80 -0
- package/tsconfig.json +35 -0
- package/wiki/README.md +75 -0
- package/app/index.js.map +0 -1
- package/app/request.js.map +0 -1
- package/auth/consts.js.map +0 -1
- package/auth/index.js.map +0 -1
- package/auth/models.d.ts +0 -158
- package/auth/models.js.map +0 -1
- package/captcha/index.js.map +0 -1
- package/index.d.ts +0 -8
- package/index.js +0 -17
- package/index.js.map +0 -1
- package/oauthclient/index.js.map +0 -1
- package/oauthclient/oauthclient.js.map +0 -1
- package/utils/single-promise.js.map +0 -1
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
export interface SignInRequest {
|
|
2
|
+
username?: string;
|
|
3
|
+
password?: string;
|
|
4
|
+
verification_token?: string;
|
|
5
|
+
two_factor_password?: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface SignInWithProviderRequest {
|
|
9
|
+
provider_token: string;
|
|
10
|
+
provider_id?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface SignUpRequest {
|
|
14
|
+
phone_number?: string;
|
|
15
|
+
email?: string;
|
|
16
|
+
|
|
17
|
+
verification_token?: string;
|
|
18
|
+
provider_token?: string;
|
|
19
|
+
|
|
20
|
+
username?: string;
|
|
21
|
+
password?: string;
|
|
22
|
+
name?: string;
|
|
23
|
+
gender?: string;
|
|
24
|
+
picture?: string;
|
|
25
|
+
locale?: string;
|
|
26
|
+
|
|
27
|
+
anonymous_token?: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface SendVerificationCodeRequest {
|
|
31
|
+
phone_number?: string;
|
|
32
|
+
email?: string;
|
|
33
|
+
// 可选 ANY,USER,NOT_USER, CUR_USER;
|
|
34
|
+
target?: string | 'ANY';
|
|
35
|
+
usage?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface SendVerificationCodeResponse {
|
|
39
|
+
verification_id: string;
|
|
40
|
+
is_user: boolean | false;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface VerifyResponse {
|
|
44
|
+
verification_token: string;
|
|
45
|
+
expires_in: number;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface VerifyRequest {
|
|
49
|
+
verification_code: string;
|
|
50
|
+
verification_id: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
export interface VerifyRequest {
|
|
55
|
+
verification_code: string;
|
|
56
|
+
verification_id: string;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
export interface ResetPasswordRequest {
|
|
61
|
+
email: string;
|
|
62
|
+
phone_number: string;
|
|
63
|
+
new_password: string,
|
|
64
|
+
verification_token: string;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface ProviderBindRequest {
|
|
68
|
+
provider_token: string;
|
|
69
|
+
expires_in: number;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface GrantProviderTokenRequest {
|
|
73
|
+
provider_id: string;
|
|
74
|
+
provider_redirect_uri?: string;
|
|
75
|
+
provider_code?: string;
|
|
76
|
+
provider_access_token?: string;
|
|
77
|
+
provider_id_token?: string;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface GrantProviderTokenResponse {
|
|
81
|
+
provider_token: string;
|
|
82
|
+
expires_in: number;
|
|
83
|
+
provider_profile?: ProviderProfile;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface PatchProviderTokenRequest {
|
|
87
|
+
provider_token: string;
|
|
88
|
+
provider_params: Map<string, string>;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface PatchProviderTokenResponse {
|
|
92
|
+
provider_token: string;
|
|
93
|
+
expires_in: number;
|
|
94
|
+
provider_profile: ProviderProfile;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface GenProviderRedirectUriRequest {
|
|
98
|
+
provider_id: string;
|
|
99
|
+
redirect_uri: string;
|
|
100
|
+
state: string;
|
|
101
|
+
scope?: string;
|
|
102
|
+
response_type?: string;
|
|
103
|
+
other_params?: Map<string, string>;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export interface GenProviderRedirectUriResponse {
|
|
107
|
+
uri: string;
|
|
108
|
+
signout_uri?: string;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface BindWithProviderRequest {
|
|
112
|
+
provider_token: string;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface BindWithProviderRequest {
|
|
116
|
+
provider_token: string;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export interface UserProfileProvider {
|
|
120
|
+
id: string;
|
|
121
|
+
provider_user_id: string;
|
|
122
|
+
name?: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface UserProfile {
|
|
126
|
+
name?: string;
|
|
127
|
+
picture?: string;
|
|
128
|
+
username?: string;
|
|
129
|
+
email?: string;
|
|
130
|
+
email_verified?: boolean;
|
|
131
|
+
phone_number?: string;
|
|
132
|
+
groups?: [ProfileGroup];
|
|
133
|
+
providers?: [UserProfileProvider];
|
|
134
|
+
gender?: string;
|
|
135
|
+
birthdate?: string;
|
|
136
|
+
zoneinfo?: string;
|
|
137
|
+
locale?: string;
|
|
138
|
+
created_from?: string;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export interface ProvidersResponse {
|
|
142
|
+
total: number;
|
|
143
|
+
data: [UserProvider];
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export interface UserProvider {
|
|
147
|
+
id: string;
|
|
148
|
+
name: string;
|
|
149
|
+
provider_user_name?: string;
|
|
150
|
+
bind: boolean;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface ProfileGroup {
|
|
154
|
+
id: string;
|
|
155
|
+
expires_at?: string;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
export interface ProviderProfile {
|
|
160
|
+
provider_id: string;
|
|
161
|
+
name?: string;
|
|
162
|
+
picture?: string;
|
|
163
|
+
phone_number?: string;
|
|
164
|
+
email?: string;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export interface TransByProviderRequest {
|
|
168
|
+
provider_token: string;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export interface GrantTokenRequest {
|
|
172
|
+
grant_type: string;
|
|
173
|
+
code?: string,
|
|
174
|
+
refresh_token?: string,
|
|
175
|
+
username?: string,
|
|
176
|
+
password?: string,
|
|
177
|
+
scope?: string,
|
|
178
|
+
nonce?: string,
|
|
179
|
+
code_verifier?: string,
|
|
180
|
+
device_code?: string
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export interface UnbindProviderRequest {
|
|
184
|
+
provider_id: string;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export interface CheckPasswordRequest {
|
|
188
|
+
password: string;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export interface CheckIfUserExistRequest {
|
|
192
|
+
username: string;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export interface CheckIfUserExistResponse {
|
|
196
|
+
exist: boolean;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
export interface EditContactRequest {
|
|
201
|
+
phone_number?: string;
|
|
202
|
+
email?: string;
|
|
203
|
+
sudo_token: string;
|
|
204
|
+
verification_token: string;
|
|
205
|
+
// 冲突解决方案
|
|
206
|
+
// 可选:DEFAULT, 默认解决方案:提示用户该手机号已被其他人绑定
|
|
207
|
+
// DELETE_ACCOUNT_TRANSFER,标记原来的账号为已注销,并将手机换绑给自己
|
|
208
|
+
// TRANSFER 仅换绑手机号,不注销原有账号。(原有账号无法登录情况下,则自动标记为注销)
|
|
209
|
+
conflict_resolution?: string;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export interface SetPasswordRequest {
|
|
213
|
+
sudo_token: string;
|
|
214
|
+
new_password: string;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
export interface SetPasswordRequest {
|
|
219
|
+
new_password: string;
|
|
220
|
+
sudo_token: string;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export interface UpdatePasswordRequest {
|
|
224
|
+
old_password: string;
|
|
225
|
+
new_password: string;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// password 和 verification_token 而选一,如果绑定了手机号,则必须使用verification_token 进行sudo
|
|
229
|
+
export interface SudoRequest {
|
|
230
|
+
password?: string;
|
|
231
|
+
verification_token?: string
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export interface SudoResponse {
|
|
235
|
+
sudo_token: string
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
export interface WithSudoRequest {
|
|
239
|
+
sudo_token: string
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
export interface ChangeBoundProviderRequest {
|
|
243
|
+
trans_token: string;
|
|
244
|
+
provider_id: string;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
export interface ChangeBoundProviderResponse {
|
|
248
|
+
client_id: string;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
export interface QueryUserProfileRequest {
|
|
252
|
+
id?: [string];
|
|
253
|
+
username?: string;
|
|
254
|
+
email?: string;
|
|
255
|
+
phone_number?: string;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export interface QueryUserProfileResponse {
|
|
259
|
+
total: number;
|
|
260
|
+
data?: [SimpleUserProfile];
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export interface SimpleUserProfile {
|
|
264
|
+
sub: string;
|
|
265
|
+
name: string;
|
|
266
|
+
picture?: string;
|
|
267
|
+
gender?: string;
|
|
268
|
+
locale?: string;
|
|
269
|
+
email?: string;
|
|
270
|
+
phone_number?: string;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export interface AuthorizeRequest {
|
|
274
|
+
client_id: string,
|
|
275
|
+
response_type?: string,
|
|
276
|
+
redirect_uri?: string,
|
|
277
|
+
state?: string,
|
|
278
|
+
scope?: string,
|
|
279
|
+
code_challenge?: string,
|
|
280
|
+
code_challenge_method?: string,
|
|
281
|
+
sign_out_uri?: string
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export interface AuthorizeResponse {
|
|
285
|
+
code?: string,
|
|
286
|
+
access_token?: string,
|
|
287
|
+
id_token?: string,
|
|
288
|
+
token_type?: string,
|
|
289
|
+
scope?: string,
|
|
290
|
+
state?: string,
|
|
291
|
+
expires_in?: number
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
export interface AuthorizeInfoRequest {
|
|
295
|
+
client_id: string,
|
|
296
|
+
response_type?: string,
|
|
297
|
+
redirect_uri?: string,
|
|
298
|
+
state?: string,
|
|
299
|
+
scope?: string,
|
|
300
|
+
sign_out_uri?: string,
|
|
301
|
+
locale?: string,
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
export interface AuthorizeInfoResponse {
|
|
305
|
+
client: Client;
|
|
306
|
+
scopes?: Scope[];
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
export interface Client {
|
|
310
|
+
id: string;
|
|
311
|
+
name: string;
|
|
312
|
+
description?: string;
|
|
313
|
+
picture?: string;
|
|
314
|
+
url?: string;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
export interface Scope {
|
|
318
|
+
id: string;
|
|
319
|
+
name: string;
|
|
320
|
+
description?: string;
|
|
321
|
+
picture?: string;
|
|
322
|
+
url?: string;
|
|
323
|
+
children?: Scope[];
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
export interface RevokeDeviceRequest {
|
|
327
|
+
device_id: string;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
export interface AuthorizeDeviceRequest {
|
|
331
|
+
client_id: string;
|
|
332
|
+
user_code: string;
|
|
333
|
+
scope?: string;
|
|
334
|
+
state?: string;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
export interface DeviceAuthorizeRequest {
|
|
338
|
+
client_id?: string;
|
|
339
|
+
scope?: string;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
``
|
|
343
|
+
|
|
344
|
+
export interface DeviceAuthorizeResponse {
|
|
345
|
+
device_code: string;
|
|
346
|
+
user_code?: string;
|
|
347
|
+
expires_in: number;
|
|
348
|
+
interval: number;
|
|
349
|
+
verification_uri?: string;
|
|
350
|
+
verification_uri_complete?: string
|
|
351
|
+
}
|
|
352
|
+
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import {App, RequestOptions, RequestFn, Storage, OpenURIWithCallback} from "../app";
|
|
2
|
+
import {_getComponent} from "../app/internal";
|
|
3
|
+
|
|
4
|
+
export interface CaptchaOptions {
|
|
5
|
+
request: RequestFn;
|
|
6
|
+
storage: Storage;
|
|
7
|
+
openURIWithCallback: OpenURIWithCallback;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface CaptchaInitOptions {
|
|
11
|
+
request?: RequestFn;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function getCaptcha(app: App, opts?: CaptchaInitOptions): Captcha {
|
|
15
|
+
return _getComponent<Captcha>(app, "captcha", (): Captcha => {
|
|
16
|
+
const initOpts = {
|
|
17
|
+
request: app.options.request,
|
|
18
|
+
storage: app.options.storage,
|
|
19
|
+
openURIWithCallback: app.options.openURIWithCallback,
|
|
20
|
+
}
|
|
21
|
+
if (opts && opts.request) {
|
|
22
|
+
initOpts.request = opts.request
|
|
23
|
+
}
|
|
24
|
+
return new Captcha(initOpts)
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface CaptchaToken {
|
|
29
|
+
captcha_token: string
|
|
30
|
+
expires_in: number
|
|
31
|
+
expires_at?: Date | null;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface CaptchaRequestOptions extends RequestOptions {
|
|
35
|
+
withCaptcha?: boolean;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface GetCaptchaResponse {
|
|
39
|
+
captcha_token?: string
|
|
40
|
+
expires_in?: number
|
|
41
|
+
url?: string
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const GET_CAPTCHA_URL = '/auth/v1/captcha/init'
|
|
45
|
+
|
|
46
|
+
export class Captcha {
|
|
47
|
+
private _config: CaptchaOptions;
|
|
48
|
+
private _tokenSectionName: string;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* constructor
|
|
52
|
+
* @param {CaptchaOptions} opts
|
|
53
|
+
*/
|
|
54
|
+
constructor(opts: CaptchaOptions) {
|
|
55
|
+
this._config = opts
|
|
56
|
+
this._tokenSectionName = 'captcha_'
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* request http like simple fetch api, exp:request('/v1/user/me', {withCredentials:true})
|
|
61
|
+
* @param {string} url
|
|
62
|
+
* @param {AuthClientRequestOptions} options
|
|
63
|
+
*/
|
|
64
|
+
public async request<T>(
|
|
65
|
+
url: string,
|
|
66
|
+
options?: CaptchaRequestOptions,
|
|
67
|
+
): Promise<T> {
|
|
68
|
+
if (!options) {
|
|
69
|
+
options = {};
|
|
70
|
+
}
|
|
71
|
+
if (!options.method) {
|
|
72
|
+
options.method = 'GET'
|
|
73
|
+
}
|
|
74
|
+
const state = options.method + ":" + url
|
|
75
|
+
let reqURL = url;
|
|
76
|
+
if (options.withCaptcha) {
|
|
77
|
+
reqURL = await this._appendCaptchaTokenToURL(url, state, false);
|
|
78
|
+
}
|
|
79
|
+
let resp : T;
|
|
80
|
+
try {
|
|
81
|
+
resp = await this._config.request<T>(reqURL, options)
|
|
82
|
+
} catch (err) {
|
|
83
|
+
if (err.error === 'captcha_required' || err.error === 'captcha_invalid') {
|
|
84
|
+
url = await this._appendCaptchaTokenToURL(url, state, err.error === 'captcha_invalid')
|
|
85
|
+
return this._config.request<T>(url, options)
|
|
86
|
+
} else {
|
|
87
|
+
return Promise.reject(err)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return resp;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* _getCaptchaToken get captcha token
|
|
95
|
+
*/
|
|
96
|
+
private async _getCaptchaToken(forceNewToken: boolean, state: string): Promise<string> {
|
|
97
|
+
if (!forceNewToken) {
|
|
98
|
+
// if local has captcha token then return
|
|
99
|
+
const captchaToken = await this._findCaptchaToken()
|
|
100
|
+
if (captchaToken) {
|
|
101
|
+
return captchaToken
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const redirectURL = window.location.origin + window.location.pathname
|
|
105
|
+
const captchaTokenResp = await this._config.request<GetCaptchaResponse>(GET_CAPTCHA_URL, {
|
|
106
|
+
method: 'POST',
|
|
107
|
+
body: {
|
|
108
|
+
redirect_uri: redirectURL,
|
|
109
|
+
state: state
|
|
110
|
+
},
|
|
111
|
+
withBasicAuth: true,
|
|
112
|
+
})
|
|
113
|
+
if (captchaTokenResp.captcha_token) {
|
|
114
|
+
const captchaToken = {
|
|
115
|
+
captcha_token: captchaTokenResp.captcha_token,
|
|
116
|
+
expires_in: captchaTokenResp.expires_in,
|
|
117
|
+
}
|
|
118
|
+
await this._saveCaptchaToken(captchaToken)
|
|
119
|
+
return captchaTokenResp.captcha_token
|
|
120
|
+
}
|
|
121
|
+
const callbackData = await this._config.openURIWithCallback(captchaTokenResp.url, {width:'355px', height: '355px'})
|
|
122
|
+
const captchaToken: CaptchaToken = {
|
|
123
|
+
captcha_token: callbackData.captcha_token,
|
|
124
|
+
expires_in: Number(callbackData.expires_in)
|
|
125
|
+
}
|
|
126
|
+
await this._saveCaptchaToken(captchaToken)
|
|
127
|
+
return captchaToken.captcha_token
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
private async _appendCaptchaTokenToURL(url: string, state: string, forceNewToken: boolean): Promise<string> {
|
|
131
|
+
const captchaToken = await this._getCaptchaToken(forceNewToken, state);
|
|
132
|
+
if (url.indexOf("?") > 0) {
|
|
133
|
+
url += "&captcha_token=" + captchaToken
|
|
134
|
+
} else {
|
|
135
|
+
url += "?captcha_token=" + captchaToken
|
|
136
|
+
}
|
|
137
|
+
return url
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
private async _saveCaptchaToken(token: CaptchaToken) {
|
|
141
|
+
token.expires_at = new Date(
|
|
142
|
+
Date.now() + (token.expires_in - 10) * 1000,
|
|
143
|
+
);
|
|
144
|
+
const tokenStr: string = JSON.stringify(token);
|
|
145
|
+
await this._config.storage.setItem(this._tokenSectionName, tokenStr);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
private async _findCaptchaToken(): Promise<string> {
|
|
149
|
+
const tokenStr: string = await this._config.storage.getItem(
|
|
150
|
+
this._tokenSectionName,
|
|
151
|
+
);
|
|
152
|
+
if (tokenStr !== undefined && tokenStr !== null) {
|
|
153
|
+
try {
|
|
154
|
+
const captchaToken = JSON.parse(tokenStr);
|
|
155
|
+
if (captchaToken && captchaToken.expires_at) {
|
|
156
|
+
captchaToken.expires_at = new Date(captchaToken.expires_at);
|
|
157
|
+
}
|
|
158
|
+
const isExpired = captchaToken.expires_at < new Date();
|
|
159
|
+
if (isExpired) {
|
|
160
|
+
return null
|
|
161
|
+
}
|
|
162
|
+
return captchaToken.captcha_token
|
|
163
|
+
} catch (error) {
|
|
164
|
+
await this._config.storage.removeItem(this._tokenSectionName);
|
|
165
|
+
return null
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return null
|
|
169
|
+
}
|
|
170
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import {App} from "../app";
|
|
2
|
+
import {getOAuthClient, AuthClient, ErrorType} from "../oauthclient";
|
|
3
|
+
import {uuidv4} from "../utils/uuid";
|
|
4
|
+
import {_getComponent} from "../app/internal";
|
|
5
|
+
|
|
6
|
+
export interface FunctionOptions {
|
|
7
|
+
credentialsClient: AuthClient;
|
|
8
|
+
env: string
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Returns the existing `Auth` instance that is associated with the app
|
|
13
|
+
*/
|
|
14
|
+
export function getFunction(app: App): Function {
|
|
15
|
+
return _getComponent<Function>(app, "function", (): Function => {
|
|
16
|
+
const credentialsClient = getOAuthClient(app)
|
|
17
|
+
return new Function({
|
|
18
|
+
credentialsClient: credentialsClient,
|
|
19
|
+
env: app.options.clientId
|
|
20
|
+
})
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
export class Function {
|
|
26
|
+
|
|
27
|
+
private _config: FunctionOptions;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* constructor
|
|
31
|
+
* @param {AuthOptions} opts
|
|
32
|
+
*/
|
|
33
|
+
constructor(opts: FunctionOptions) {
|
|
34
|
+
this._config = {
|
|
35
|
+
credentialsClient: opts.credentialsClient,
|
|
36
|
+
env: opts.env,
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* callFunction call function
|
|
42
|
+
* @param {SignInRequest} params A SignInRequest Object.
|
|
43
|
+
* @return {Promise<Credentials>} A Promise<Credentials> object.
|
|
44
|
+
*/
|
|
45
|
+
public async callFunction(params: FunctionRequest): Promise<FunctionResponse> {
|
|
46
|
+
let accessToken: string
|
|
47
|
+
try {
|
|
48
|
+
accessToken = await this._config.credentialsClient.getAccessToken()
|
|
49
|
+
} catch (e) {
|
|
50
|
+
if (e.error === ErrorType.UNAUTHENTICATED) {
|
|
51
|
+
accessToken = ""
|
|
52
|
+
} else {
|
|
53
|
+
return Promise.reject(e)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const requestId = uuidv4()
|
|
57
|
+
var reqBody = {
|
|
58
|
+
"action": "functions.invokeFunction",
|
|
59
|
+
"dataVersion": "2020-01-10",
|
|
60
|
+
"env": this._config.env,
|
|
61
|
+
"function_name": params.name,
|
|
62
|
+
"request_data": JSON.stringify(params.data),
|
|
63
|
+
"seqId": requestId,
|
|
64
|
+
"access_token": accessToken
|
|
65
|
+
}
|
|
66
|
+
const url = "/web?env=" + this._config.env
|
|
67
|
+
const resp = await this._config.credentialsClient.request<functionHTTPResponse>(url, {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
body: reqBody,
|
|
70
|
+
headers: {
|
|
71
|
+
'content-type': 'application/json'
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
if (resp.code) {
|
|
75
|
+
return Promise.reject({
|
|
76
|
+
error: resp.code,
|
|
77
|
+
error_description: resp.message
|
|
78
|
+
})
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
requestId: resp.requestId,
|
|
82
|
+
result: resp.data.response_data,
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
export interface FunctionRequest {
|
|
89
|
+
name: string;
|
|
90
|
+
data: any;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface FunctionResponse {
|
|
94
|
+
requestId: string;
|
|
95
|
+
result: any;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface functionHTTPResponse {
|
|
99
|
+
requestId: string;
|
|
100
|
+
data: any
|
|
101
|
+
code: string
|
|
102
|
+
message: string
|
|
103
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Auth, getAuth } from "./auth";
|
|
2
|
+
import { App, initializeApp, Options } from "./app";
|
|
3
|
+
|
|
4
|
+
export function initializeClient(options: Options): Client {
|
|
5
|
+
return new Client(options);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class Client {
|
|
9
|
+
public auth: Auth;
|
|
10
|
+
public app: App;
|
|
11
|
+
|
|
12
|
+
constructor(initOptions: Options) {
|
|
13
|
+
this.app = initializeApp(initOptions);
|
|
14
|
+
this.auth = getAuth(this.app);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
RequestOptions,
|
|
20
|
+
ResponseError,
|
|
21
|
+
ErrorType,
|
|
22
|
+
RequestFn,
|
|
23
|
+
} from "./app/request";
|
|
24
|
+
export { Storage } from "./app/storage";
|
|
25
|
+
export { initializeApp, Options } from "./app";
|
|
26
|
+
export { Auth, getAuth } from "./auth";
|
|
27
|
+
export {
|
|
28
|
+
UserProfile,
|
|
29
|
+
PatchProviderTokenResponse,
|
|
30
|
+
GrantProviderTokenResponse,
|
|
31
|
+
} from "./auth/models";
|
|
32
|
+
export { Credentials } from "./oauthclient/models";
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export enum Syntax {
|
|
2
|
+
CLIENT_ID = 'client_id',
|
|
3
|
+
CLIENT_SECRET = 'client_secret',
|
|
4
|
+
RESPONSE_TYPE = 'response_type',
|
|
5
|
+
SCOPE = 'scope',
|
|
6
|
+
STATE = 'state',
|
|
7
|
+
REDIRECT_URI = 'redirect_uri',
|
|
8
|
+
ERROR = 'error',
|
|
9
|
+
ERROR_DESCRIPTION = 'error_description',
|
|
10
|
+
ERROR_URI = 'error_uri',
|
|
11
|
+
GRANT_TYPE = 'grant_type',
|
|
12
|
+
CODE = 'code',
|
|
13
|
+
ACCESS_TOKEN = 'access_token',
|
|
14
|
+
TOKEN_TYPE = 'token_type',
|
|
15
|
+
EXPIRES_IN = 'expires_in',
|
|
16
|
+
USERNAME = 'username',
|
|
17
|
+
PASSWORD = 'password',
|
|
18
|
+
REFRESH_TOKEN = 'refresh_token',
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export enum ErrorType {
|
|
22
|
+
UNREACHABLE = 'unreachable',
|
|
23
|
+
LOCAL = 'local',
|
|
24
|
+
CANCELLED = 'cancelled',
|
|
25
|
+
UNKNOWN = 'unknown',
|
|
26
|
+
INVALID_ARGUMENT = 'invalid_argument',
|
|
27
|
+
DEADLINE_EXCEEDED = 'deadline_exceeded',
|
|
28
|
+
NOT_FOUND = 'not_found',
|
|
29
|
+
ALREADY_EXISTS = 'already_exists',
|
|
30
|
+
PERMISSION_DENIED = 'permission_denied',
|
|
31
|
+
UNAUTHENTICATED = 'unauthenticated',
|
|
32
|
+
RESOURCE_EXHAUSTED = 'resource_exhausted',
|
|
33
|
+
FAILED_PRECONDITION = 'failed_precondition',
|
|
34
|
+
ABORTED = 'aborted',
|
|
35
|
+
OUT_OF_RANGE = 'out_of_range',
|
|
36
|
+
UNIMPLEMENTED = 'unimplemented',
|
|
37
|
+
INTERNAL = 'internal',
|
|
38
|
+
UNAVAILABLE = 'unavailable',
|
|
39
|
+
DATA_LOSS = 'data_loss',
|
|
40
|
+
// CommonError
|
|
41
|
+
ACCESS_DENIED = 'access_denied',
|
|
42
|
+
UNSUPPORTED_RESPONSE_TYPE = 'unsupported_response_type',
|
|
43
|
+
INVALID_SCOPE = 'invalid_scope',
|
|
44
|
+
INVALID_GRANT = 'invalid_grant',
|
|
45
|
+
SERVER_ERROR = 'server_error',
|
|
46
|
+
TEMPORARILY_UNAVAILABLE = 'temporarily_unavailable',
|
|
47
|
+
INTERACTION_REQUIRED = 'interaction_required',
|
|
48
|
+
}
|