@cloudbase/oauth 1.2.0-beta → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc +26 -0
  3. package/CHANGELOG.md +30 -0
  4. package/Dockerfile +15 -0
  5. package/README.md +183 -0
  6. package/_exmaple/assets/scripts/function/function.ts +99 -0
  7. package/_exmaple/assets/scripts/index.ts +101 -0
  8. package/_exmaple/assets/scripts/request.ts +11 -0
  9. package/_exmaple/index.html +15 -0
  10. package/_exmaple/package.json +33 -0
  11. package/_exmaple/tsconfig.json +71 -0
  12. package/_exmaple/typings.d.ts +0 -0
  13. package/_exmaple/webpack.config.js +42 -0
  14. package/dist/cjs/auth/apis.d.ts +55 -0
  15. package/dist/cjs/auth/apis.js +568 -0
  16. package/{auth → dist/cjs/auth}/consts.d.ts +9 -21
  17. package/dist/cjs/auth/consts.js +61 -0
  18. package/dist/cjs/auth/models.d.ts +354 -0
  19. package/dist/cjs/auth/models.js +3 -0
  20. package/dist/cjs/captcha/captcha.d.ts +35 -0
  21. package/dist/cjs/captcha/captcha.js +267 -0
  22. package/dist/cjs/index.d.ts +14 -0
  23. package/dist/cjs/index.js +63 -0
  24. package/{oauthclient → dist/cjs/oauth2client}/consts.d.ts +22 -1
  25. package/dist/cjs/oauth2client/consts.js +73 -0
  26. package/dist/cjs/oauth2client/interface.d.ts +15 -0
  27. package/dist/cjs/oauth2client/interface.js +10 -0
  28. package/dist/cjs/oauth2client/models.d.ts +47 -0
  29. package/dist/cjs/oauth2client/models.js +3 -0
  30. package/dist/cjs/oauth2client/oauth2client.d.ts +71 -0
  31. package/dist/cjs/oauth2client/oauth2client.js +640 -0
  32. package/dist/cjs/utils/function/single-promise.d.ts +5 -0
  33. package/dist/cjs/utils/function/single-promise.js +89 -0
  34. package/dist/cjs/utils/uuid.d.ts +1 -0
  35. package/dist/cjs/utils/uuid.js +12 -0
  36. package/dist/esm/auth/apis.d.ts +55 -0
  37. package/dist/esm/auth/apis.js +566 -0
  38. package/dist/esm/auth/consts.d.ts +54 -0
  39. package/dist/esm/auth/consts.js +58 -0
  40. package/dist/esm/auth/models.d.ts +354 -0
  41. package/dist/esm/auth/models.js +1 -0
  42. package/dist/esm/captcha/captcha.d.ts +35 -0
  43. package/dist/esm/captcha/captcha.js +264 -0
  44. package/dist/esm/index.d.ts +14 -0
  45. package/dist/esm/index.js +32 -0
  46. package/dist/esm/oauth2client/consts.d.ts +67 -0
  47. package/dist/esm/oauth2client/consts.js +70 -0
  48. package/dist/esm/oauth2client/interface.d.ts +15 -0
  49. package/dist/esm/oauth2client/interface.js +7 -0
  50. package/dist/esm/oauth2client/models.d.ts +47 -0
  51. package/dist/esm/oauth2client/models.js +1 -0
  52. package/dist/esm/oauth2client/oauth2client.d.ts +71 -0
  53. package/dist/esm/oauth2client/oauth2client.js +636 -0
  54. package/dist/esm/utils/function/single-promise.d.ts +5 -0
  55. package/dist/esm/utils/function/single-promise.js +86 -0
  56. package/dist/esm/utils/uuid.d.ts +1 -0
  57. package/dist/esm/utils/uuid.js +8 -0
  58. package/package.json +27 -14
  59. package/publish.sh +2 -0
  60. package/src/auth/apis.ts +642 -0
  61. package/src/auth/consts.ts +57 -0
  62. package/src/auth/models.ts +444 -0
  63. package/src/captcha/captcha.ts +222 -0
  64. package/src/index.ts +49 -0
  65. package/src/oauth2client/consts.ts +69 -0
  66. package/src/oauth2client/interface.ts +57 -0
  67. package/src/oauth2client/models.ts +61 -0
  68. package/src/oauth2client/oauth2client.ts +620 -0
  69. package/src/utils/function/single-promise.ts +40 -0
  70. package/src/utils/uuid.ts +11 -0
  71. package/tsconfig.esm.json +44 -0
  72. package/tsconfig.json +44 -0
  73. package/wiki/README.md +75 -0
  74. package/app/index.d.ts +0 -29
  75. package/app/index.js +0 -50
  76. package/app/index.js.map +0 -1
  77. package/app/internal.d.ts +0 -12
  78. package/app/internal.js +0 -25
  79. package/app/internal.js.map +0 -1
  80. package/app/openuri.d.ts +0 -20
  81. package/app/openuri.js +0 -106
  82. package/app/openuri.js.map +0 -1
  83. package/app/request.d.ts +0 -19
  84. package/app/request.js +0 -52
  85. package/app/request.js.map +0 -1
  86. package/app/storage.d.ts +0 -41
  87. package/app/storage.js +0 -35
  88. package/app/storage.js.map +0 -1
  89. package/auth/consts.js +0 -79
  90. package/auth/consts.js.map +0 -1
  91. package/auth/index.d.ts +0 -242
  92. package/auth/index.js +0 -550
  93. package/auth/index.js.map +0 -1
  94. package/auth/models.d.ts +0 -284
  95. package/auth/models.js +0 -4
  96. package/auth/models.js.map +0 -1
  97. package/captcha/index.d.ts +0 -45
  98. package/captcha/index.js +0 -135
  99. package/captcha/index.js.map +0 -1
  100. package/function/index.d.ts +0 -38
  101. package/function/index.js +0 -80
  102. package/function/index.js.map +0 -1
  103. package/index.d.ts +0 -8
  104. package/index.js +0 -17
  105. package/index.js.map +0 -1
  106. package/oauthclient/consts.js +0 -53
  107. package/oauthclient/consts.js.map +0 -1
  108. package/oauthclient/index.d.ts +0 -18
  109. package/oauthclient/index.js +0 -21
  110. package/oauthclient/index.js.map +0 -1
  111. package/oauthclient/interface.d.ts +0 -29
  112. package/oauthclient/interface.js +0 -10
  113. package/oauthclient/interface.js.map +0 -1
  114. package/oauthclient/models.d.ts +0 -40
  115. package/oauthclient/models.js +0 -3
  116. package/oauthclient/models.js.map +0 -1
  117. package/oauthclient/oauthclient.d.ts +0 -146
  118. package/oauthclient/oauthclient.js +0 -414
  119. package/oauthclient/oauthclient.js.map +0 -1
  120. package/utils/promise.d.ts +0 -18
  121. package/utils/promise.js +0 -48
  122. package/utils/promise.js.map +0 -1
  123. package/utils/uuid.d.ts +0 -5
  124. package/utils/uuid.js +0 -16
  125. package/utils/uuid.js.map +0 -1
package/tsconfig.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "compileOnSave": true,
3
+ "compilerOptions": {
4
+ "allowSyntheticDefaultImports": true,
5
+ "declaration": true,
6
+ "esModuleInterop": true,
7
+ "experimentalDecorators": true,
8
+ "emitDecoratorMetadata": true,
9
+ "module": "commonjs",
10
+ "noFallthroughCasesInSwitch": true,
11
+ "noUnusedLocals": true,
12
+ "noUnusedParameters": true,
13
+ "outDir": "dist/cjs",
14
+ "rootDir": "src",
15
+ "pretty": true,
16
+ "noImplicitAny": false,
17
+ "removeComments": true,
18
+ "skipLibCheck": true,
19
+ "strictBindCallApply": true,
20
+ "declarationMap": false,
21
+ "inlineSourceMap": true,
22
+ "inlineSources": true,
23
+ "target": "es5",
24
+ "moduleResolution": "node",
25
+ "typeRoots": [
26
+ "node_modules/@types"
27
+ ],
28
+ "types": [
29
+ "node"
30
+ ],
31
+ "lib": [
32
+ "es2015",
33
+ "dom"
34
+ ]
35
+ },
36
+ "include": [
37
+ "src/**/*.ts",
38
+ "package.json"
39
+ ],
40
+ "exclude": [
41
+ "node_modules",
42
+ "dist"
43
+ ]
44
+ }
package/wiki/README.md ADDED
@@ -0,0 +1,75 @@
1
+ ## cloudbase sdk 更新内容
2
+
3
+ ### 自动模块化的SDK
4
+
5
+ 参考 Firebase v9, 所有的sdk 在同一个仓库, 维护全局App对象,其他对象根据
6
+
7
+ ```typescript
8
+ import {initializeApp} from '@clodbasesdk/js-sdk/app';
9
+ import {getFunction} from '@clodbasesdk/js-sdk/functions';
10
+ import {getAuth} from '@xbasesdk/js-sdk/auth';
11
+ export const config = {
12
+ env: 'env-4gh5dh6nf62145a9'
13
+ };
14
+ const app = initializeApp(config)
15
+ const auth = getAuth(app)
16
+ const functions = getFunction(app)
17
+ export {app, auth, functions}
18
+ // 调用API
19
+ const loginState = await client.auth.hasLoginState()
20
+ // 获取 accessToken
21
+ const accessToken = await client.oAuth2Client.getAccessToken();
22
+ // 用 OIDC Token 用自己的API
23
+ export interface ExampleData {
24
+ result?: string;
25
+ }
26
+ const data = await client.oAuth2Client.request<ExampleData>("https://example.com", {withCredentials:true})
27
+ console.log(data.result)
28
+ ```
29
+
30
+ ### 初始化SDK
31
+
32
+ 默认情况下,在Web端,你可以采用以下初始化方式。
33
+
34
+ ```typescript
35
+ import {initializeApp} from '@clodbasesdk/js-sdk/app';
36
+ import {getFunction} from '@clodbasesdk/js-sdk/functions';
37
+ import {getAuth} from '@xbasesdk/js-sdk/auth';
38
+ const config = {
39
+ env: 'env-4gh5dh6nf62145a9'
40
+ };
41
+ const app = initializeApp(config)
42
+ ```
43
+
44
+ 在微信小程序等其他端,则可以使用对应的插件或自己实现三个方法,比如:
45
+
46
+ ```typescript
47
+ import {initializeApp} from '@clodbasesdk/js-sdk/app';
48
+ import {initializeConfig} from '@clodbasesdk/plugins/wechat';
49
+ let config = {
50
+ env: 'env-4gh5dh6nf62145a9'
51
+ };
52
+ config = initializeConfig(config)
53
+ const app = initializeApp(config)
54
+ ```
55
+
56
+ ### 文档
57
+
58
+ 核心变更:
59
+
60
+ 利用OAuht
61
+
62
+ ### 关于SDK
63
+
64
+ ### 登录认证
65
+
66
+
67
+
68
+ ### 重置密码
69
+
70
+ ### 修改个人资料
71
+
72
+ ### 修改密码
73
+
74
+ ### Demo
75
+
package/app/index.d.ts DELETED
@@ -1,29 +0,0 @@
1
- import { RequestFn as requestFn, RequestOptions as requestOptions } from "./request";
2
- import { OpenURIWithCallback as openURIWithCallback } from "./openuri";
3
- import { Storage as storage } from "./storage";
4
- export interface Options {
5
- env: string;
6
- region?: string;
7
- apiOrigin?: string;
8
- clientId?: string;
9
- clientSecret?: string;
10
- custom?: any;
11
- request?: requestFn;
12
- storage?: storage;
13
- openURIWithCallback?: openURIWithCallback;
14
- }
15
- export declare function initializeApp(options: Options): App;
16
- export interface App {
17
- readonly options: Options;
18
- }
19
- export declare class AppImpl implements App {
20
- private readonly _options;
21
- private readonly _container;
22
- constructor(options: Options);
23
- get options(): Options;
24
- get container(): Map<string, any>;
25
- }
26
- export declare type RequestFn = requestFn;
27
- export declare type RequestOptions = requestOptions;
28
- export declare type OpenURIWithCallback = openURIWithCallback;
29
- export declare type Storage = storage;
package/app/index.js DELETED
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AppImpl = exports.initializeApp = void 0;
4
- const request_1 = require("./request");
5
- const openuri_1 = require("./openuri");
6
- const storage_1 = require("./storage");
7
- function initializeApp(options) {
8
- return new AppImpl(options);
9
- }
10
- exports.initializeApp = initializeApp;
11
- class AppImpl {
12
- constructor(options) {
13
- this._container = new Map();
14
- if (!options.region) {
15
- options.region = 'ap-shanghai';
16
- }
17
- if (!options.apiOrigin) {
18
- options.apiOrigin = `https://${options.env}.${options.region}.tcb-api.tencentcloudapi.com`;
19
- }
20
- if (!options.clientId) {
21
- options.clientId = '';
22
- }
23
- if (!options.storage) {
24
- options.storage = new storage_1.DefaultStorage({ env: options.clientId });
25
- }
26
- if (!options.openURIWithCallback) {
27
- options.openURIWithCallback = openuri_1.defaultOpenURIWithCallback;
28
- }
29
- let baseRequest = options.request;
30
- if (!baseRequest) {
31
- baseRequest = request_1.defaultRequest;
32
- }
33
- const apiOrigin = options.apiOrigin;
34
- options.request = async (url, options) => {
35
- if (url.startsWith('/')) {
36
- url = apiOrigin + url;
37
- }
38
- return baseRequest ? baseRequest(url, options) : request_1.defaultRequest(url, options);
39
- };
40
- this._options = options;
41
- }
42
- get options() {
43
- return this._options;
44
- }
45
- get container() {
46
- return this._container;
47
- }
48
- }
49
- exports.AppImpl = AppImpl;
50
- //# sourceMappingURL=index.js.map
package/app/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":";;;AAAA,uCAAmG;AACnG,uCAAiG;AACjG,uCAA6D;AAgB7D,SAAgB,aAAa,CACzB,OAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAJD,sCAIC;AAMD,MAAa,OAAO;IAIhB,YAAY,OAAgB;QAFX,eAAU,GAAG,IAAI,GAAG,EAAe,CAAC;QAGjD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACjB,OAAO,CAAC,MAAM,GAAG,aAAa,CAAA;SACjC;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACpB,OAAO,CAAC,SAAS,GAAG,WAAW,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,8BAA8B,CAAA;SAC7F;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACnB,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAA;SACxB;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAClB,OAAO,CAAC,OAAO,GAAG,IAAI,wBAAc,CAAC,EAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAC;SACjE;QACD,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;YAC9B,OAAO,CAAC,mBAAmB,GAAG,oCAA0B,CAAC;SAC5D;QACD,IAAI,WAAW,GAAG,OAAO,CAAC,OAAO,CAAA;QACjC,IAAI,CAAC,WAAW,EAAE;YACd,WAAW,GAAG,wBAAc,CAAA;SAC/B;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QACnC,OAAO,CAAC,OAAO,GAAG,KAAK,EACnB,GAAW,EACX,OAAwB,EACd,EAAE;YACZ,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACrB,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;aACzB;YACD,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAc,CAAI,GAAG,EAAE,OAAO,CAAC,CAAA;QACvF,CAAC,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ;AA5CD,0BA4CC"}
package/app/internal.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import { App } from "./index";
2
- /**
3
- *
4
- * @param app - App instance
5
- * @param name - service name
6
- * @param creator - new T
7
- *
8
- * @returns the provider for the service with the matching name
9
- *
10
- * @internal
11
- */
12
- export declare function _getComponent<T>(app: App, name: string, creator: () => T): T;
package/app/internal.js DELETED
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._getComponent = void 0;
4
- /**
5
- *
6
- * @param app - App instance
7
- * @param name - service name
8
- * @param creator - new T
9
- *
10
- * @returns the provider for the service with the matching name
11
- *
12
- * @internal
13
- */
14
- function _getComponent(app, name, creator) {
15
- const container = app.container;
16
- let component = container.get(name);
17
- if (component) {
18
- return component;
19
- }
20
- component = creator();
21
- container.set(name, component);
22
- return component;
23
- }
24
- exports._getComponent = _getComponent;
25
- //# sourceMappingURL=internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/app/internal.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AACH,SAAgB,aAAa,CACzB,GAAQ,EACR,IAAY,EACZ,OAAgB;IAEhB,MAAM,SAAS,GAAI,GAAe,CAAC,SAAS,CAAA;IAC5C,IAAI,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,SAAS,EAAE;QACX,OAAO,SAAc,CAAA;KACxB;IACD,SAAS,GAAG,OAAO,EAAE,CAAA;IACrB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC9B,OAAO,SAAS,CAAA;AACpB,CAAC;AAbD,sCAaC"}
package/app/openuri.d.ts DELETED
@@ -1,20 +0,0 @@
1
- export declare type OpenURIWithCallback = (url: string, opts?: OpenURIOptions) => Promise<{
2
- [key: string]: string;
3
- }>;
4
- export interface OpenURIOptions {
5
- width: string;
6
- height: string;
7
- }
8
- /**
9
- * default use iframe to open url can return callback
10
- * for example : open https://example.com/callback?rediret_uri=http://127.0.0.1:8080/
11
- * the it is done, it will callback http://127.0.0.1:8080/?data1=x&data2=3
12
- *
13
- * for example : open https://example.com/callback?rediret_uri=http://127.0.0.1:8080/?__iframe==on
14
- * window.addEventListener('message', function(e) {
15
- console.log(e)
16
- alert('data from domain2 ---> ' + e.data);
17
- }, false);
18
- *
19
- */
20
- export declare const defaultOpenURIWithCallback: OpenURIWithCallback;
package/app/openuri.js DELETED
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultOpenURIWithCallback = void 0;
4
- /**
5
- * default use iframe to open url can return callback
6
- * for example : open https://example.com/callback?rediret_uri=http://127.0.0.1:8080/
7
- * the it is done, it will callback http://127.0.0.1:8080/?data1=x&data2=3
8
- *
9
- * for example : open https://example.com/callback?rediret_uri=http://127.0.0.1:8080/?__iframe==on
10
- * window.addEventListener('message', function(e) {
11
- console.log(e)
12
- alert('data from domain2 ---> ' + e.data);
13
- }, false);
14
- *
15
- */
16
- const defaultOpenURIWithCallback = (url, opts) => {
17
- let iframeTag = '__iframe';
18
- if (window.location.search.indexOf(iframeTag) > 0) {
19
- document.body.style.display = 'none';
20
- }
21
- if (!opts) {
22
- opts = {
23
- width: '355px',
24
- height: '355px'
25
- };
26
- }
27
- if (document.getElementById('_iframe_panel_wrap') === null) {
28
- var elementDiv = document.createElement('div');
29
- elementDiv.style.cssText =
30
- 'background-color: rgba(0, 0, 0, 0.7);position: fixed;left: 0px;right: 0px;top: 0px;bottom: 0px;padding: 9vw 0 0 0;display: none;z-index:100;';
31
- elementDiv.setAttribute('id', '_iframe_panel_wrap');
32
- document.body.appendChild(elementDiv);
33
- }
34
- const target = document.getElementById('_iframe_panel_wrap'), iframe = document.createElement('iframe');
35
- target.innerHTML = '';
36
- const openURL = new URL(url);
37
- const redirectUri = openURL.searchParams.get('redirect_uri');
38
- if (redirectUri) {
39
- const redirectUrl = new URL(redirectUri);
40
- redirectUrl.searchParams.append(iframeTag, "on");
41
- openURL.searchParams.set('redirect_uri', redirectUrl.href);
42
- url = openURL.href;
43
- }
44
- iframe.setAttribute('src', url);
45
- iframe.setAttribute('id', '_iframe_panel_wrap_iframe');
46
- iframe.style.cssText = `min-width:${opts.width};display:block;height:${opts.height};margin:0 auto;background-color: rgb(255, 255, 255);border: none;`;
47
- target.appendChild(iframe);
48
- target.style.display = 'block';
49
- let callBack = new Callback();
50
- // handle callback from iframe post message
51
- window.addEventListener('message', e => {
52
- if (e.origin == openURL.origin && callBack.callFunc) {
53
- target.style.display = 'none';
54
- const data = JSON.parse(e.data);
55
- try {
56
- callBack.callFunc(data);
57
- }
58
- catch (e) {
59
- }
60
- }
61
- }, false);
62
- return new Promise((resolve, reject) => {
63
- callBack.callFunc = data => {
64
- const anyData = data;
65
- if (anyData.error) {
66
- return reject(data);
67
- }
68
- return resolve(anyData);
69
- };
70
- // handle callback from iframe redirect uri
71
- iframe.onload = () => {
72
- try {
73
- const windowLocation = window.location;
74
- const iframeLocation = iframe.contentWindow.location;
75
- if (iframeLocation.host +
76
- iframeLocation.pathname ===
77
- windowLocation.host +
78
- windowLocation.pathname) {
79
- target.style.display = 'none';
80
- const iframeUrlParams = new URLSearchParams(iframeLocation.search);
81
- const data = {};
82
- iframeUrlParams.forEach((v, k) => {
83
- data[k] = v;
84
- });
85
- if (data.error) {
86
- return reject({
87
- error: iframeUrlParams.get('error'),
88
- error_description: iframeUrlParams.get('error_description')
89
- });
90
- }
91
- return resolve(data);
92
- }
93
- else {
94
- target.style.display = 'block';
95
- }
96
- }
97
- catch (error) {
98
- target.style.display = 'block';
99
- }
100
- };
101
- });
102
- };
103
- exports.defaultOpenURIWithCallback = defaultOpenURIWithCallback;
104
- class Callback {
105
- }
106
- //# sourceMappingURL=openuri.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openuri.js","sourceRoot":"","sources":["../../src/app/openuri.ts"],"names":[],"mappings":"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"}
package/app/request.d.ts DELETED
@@ -1,19 +0,0 @@
1
- export interface RequestOptions {
2
- body?: any | null;
3
- headers?: any | null;
4
- method?: string;
5
- [key: string]: any;
6
- }
7
- export declare enum ErrorType {
8
- UNREACHABLE = "unreachable"
9
- }
10
- export declare type RequestFn = <T>(url: string, options?: RequestOptions) => Promise<T>;
11
- /** An Error For all concern **/
12
- export interface ResponseError {
13
- error: string;
14
- error_description?: string;
15
- error_uri?: string;
16
- details?: any;
17
- request_id?: string;
18
- }
19
- export declare const defaultRequest: RequestFn;
package/app/request.js DELETED
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultRequest = exports.ErrorType = void 0;
4
- var ErrorType;
5
- (function (ErrorType) {
6
- ErrorType["UNREACHABLE"] = "unreachable";
7
- })(ErrorType = exports.ErrorType || (exports.ErrorType = {}));
8
- const defaultRequest = async (url, options) => {
9
- let result;
10
- let responseError;
11
- // Objects must be copied to prevent modification of data such as body.
12
- const copyOptions = Object.assign({}, options);
13
- if (!copyOptions.method) {
14
- copyOptions.method = 'GET';
15
- }
16
- if (copyOptions.body && typeof copyOptions.body !== 'string') {
17
- copyOptions.body = JSON.stringify(copyOptions.body, (key, value) => {
18
- if (value && value !== '') {
19
- return value;
20
- }
21
- });
22
- }
23
- const requestId = copyOptions.headers['x-request-id'];
24
- try {
25
- const responseResult = await fetch(url, copyOptions);
26
- const jsonResponse = await responseResult.json();
27
- if (jsonResponse.error || responseResult.status >= 400) {
28
- responseError = jsonResponse;
29
- responseError.error_uri = new URL(url).pathname;
30
- responseError.request_id = requestId;
31
- }
32
- else {
33
- result = jsonResponse;
34
- }
35
- }
36
- catch (error) {
37
- responseError = {
38
- error: ErrorType.UNREACHABLE,
39
- error_description: error.message,
40
- error_uri: new URL(url).pathname,
41
- request_id: requestId,
42
- };
43
- }
44
- if (responseError) {
45
- throw responseError;
46
- }
47
- else {
48
- return result;
49
- }
50
- };
51
- exports.defaultRequest = defaultRequest;
52
- //# sourceMappingURL=request.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/app/request.ts"],"names":[],"mappings":";;;AAQA,IAAY,SAEX;AAFD,WAAY,SAAS;IACjB,wCAA2B,CAAA;AAC/B,CAAC,EAFW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAEpB;AAaM,MAAM,cAAc,GAAc,KAAK,EAC1C,GAAW,EACX,OAAwB,EACd,EAAE;IACZ,IAAI,MAAS,CAAC;IACd,IAAI,aAA4B,CAAC;IACjC,uEAAuE;IACvE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;QACrB,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC;KAC9B;IACD,IAAI,WAAW,CAAC,IAAI,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC1D,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC/D,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;gBACvB,OAAO,KAAK,CAAA;aACf;QACL,CAAC,CAAC,CAAA;KACL;IACD,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,cAAc,CAAW,CAAC;IAChE,IAAI;QACA,MAAM,cAAc,GAAa,MAAM,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,YAAY,CAAC,KAAK,IAAI,cAAc,CAAC,MAAM,IAAI,GAAG,EAAE;YACpD,aAAa,GAAG,YAA6B,CAAC;YAC9C,aAAa,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;YAChD,aAAa,CAAC,UAAU,GAAG,SAAS,CAAC;SACxC;aAAM;YACH,MAAM,GAAG,YAAiB,CAAC;SAC9B;KACJ;IAAC,OAAO,KAAK,EAAE;QACZ,aAAa,GAAG;YACZ,KAAK,EAAE,SAAS,CAAC,WAAW;YAC5B,iBAAiB,EAAE,KAAK,CAAC,OAAO;YAChC,SAAS,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ;YAChC,UAAU,EAAE,SAAS;SACxB,CAAC;KACL;IACD,IAAI,aAAa,EAAE;QACf,MAAM,aAAa,CAAC;KACvB;SAAM;QACH,OAAO,MAAW,CAAC;KACtB;AACL,CAAC,CAAC;AA1CW,QAAA,cAAc,kBA0CzB"}
package/app/storage.d.ts DELETED
@@ -1,41 +0,0 @@
1
- /** An interface of the Simple Web Storage API */
2
- export interface Storage {
3
- /**
4
- * value = storage[key]
5
- */
6
- getItem(key: string): Promise<string | null>;
7
- /**
8
- * delete storage[key]
9
- */
10
- removeItem(key: string): Promise<void>;
11
- /**
12
- * storage[key] = value
13
- */
14
- setItem(key: string, value: string): Promise<void>;
15
- }
16
- export interface StorageOptions {
17
- env: string;
18
- }
19
- /**
20
- * Default Storage.
21
- */
22
- export declare class DefaultStorage implements Storage {
23
- private readonly _env;
24
- constructor(opts: StorageOptions);
25
- /**
26
- * Get item.
27
- * @param {string} key
28
- */
29
- getItem(key: string): Promise<string | null>;
30
- /**
31
- * Remove item.
32
- * @param {string} key
33
- */
34
- removeItem(key: string): Promise<void>;
35
- /**
36
- * Set item.
37
- * @param {string} key
38
- * @param {string} value
39
- */
40
- setItem(key: string, value: string): Promise<void>;
41
- }
package/app/storage.js DELETED
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultStorage = void 0;
4
- /**
5
- * Default Storage.
6
- */
7
- class DefaultStorage {
8
- constructor(opts) {
9
- this._env = opts.env;
10
- }
11
- /**
12
- * Get item.
13
- * @param {string} key
14
- */
15
- async getItem(key) {
16
- return localStorage.getItem(key + this._env);
17
- }
18
- /**
19
- * Remove item.
20
- * @param {string} key
21
- */
22
- async removeItem(key) {
23
- return localStorage.removeItem(key + this._env);
24
- }
25
- /**
26
- * Set item.
27
- * @param {string} key
28
- * @param {string} value
29
- */
30
- async setItem(key, value) {
31
- return localStorage.setItem(key + this._env, value);
32
- }
33
- }
34
- exports.DefaultStorage = DefaultStorage;
35
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/app/storage.ts"],"names":[],"mappings":";;;AAuBA;;GAEG;AACH,MAAa,cAAc;IAGvB,YAAY,IAAoB;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAA;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,GAAW;QACrB,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,GAAW;QACxB,OAAO,YAAY,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa;QACpC,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;CACJ;AA/BD,wCA+BC"}
package/auth/consts.js DELETED
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DeviceAuthorizeState = exports.ErrorType = exports.VerificationUsages = exports.ApiUrls = void 0;
4
- var ApiUrls;
5
- (function (ApiUrls) {
6
- ApiUrls["AUTH_SIGN_IN_URL"] = "/auth/v1/signin";
7
- ApiUrls["AUTH_SIGN_IN_ANONYMOUSLY_URL"] = "/auth/v1/signin/anonymously";
8
- ApiUrls["AUTH_SIGN_IN_WITH_PROVIDER_URL"] = "/auth/v1/signin/with/provider";
9
- ApiUrls["AUTH_SIGN_UP_URL"] = "/auth/v1/signup";
10
- ApiUrls["AUTH_TOKEN_URL"] = "/auth/v1/token";
11
- ApiUrls["AUTH_REVOKE_URL"] = "/auth/v1/revoke";
12
- ApiUrls["PROVIDER_BIND_URL"] = "/auth/v1/user/provider/bind";
13
- ApiUrls["PROVIDER_TOKEN_URL"] = "/auth/v1/provider/token";
14
- ApiUrls["PROVIDER_URI_URL"] = "/auth/v1/provider/uri";
15
- ApiUrls["USER_ME_URL"] = "/auth/v1/user/me";
16
- ApiUrls["RESET_PASSWORD_URL"] = "/auth/v1/reset";
17
- ApiUrls["USER_QUERY_URL"] = "/auth/v1/user/query";
18
- ApiUrls["USER_PROFILE_URL"] = "/auth/v1/user/profile";
19
- ApiUrls["USER_TRANS_BY_PROVIDER_URL"] = "/auth/v1/user/trans/by/provider";
20
- ApiUrls["VERIFICATION_URL"] = "/auth/v1/verification";
21
- ApiUrls["VERIFY_URL"] = "/auth/v1/verification/verify";
22
- ApiUrls["PROVIDER_LIST_URL"] = "/auth/v1/user/provider";
23
- ApiUrls["PROVIDER_UNBIND_URL"] = "/auth/v1/user/provider";
24
- ApiUrls["SUDO_URL"] = "/auth/v1/user/sudo";
25
- ApiUrls["EDIT_CONTACT_URL"] = "/auth/v1/user/contact";
26
- ApiUrls["AUTH_SET_PASSWORD_URL"] = "/auth/v1/user/password";
27
- ApiUrls["CHECK_IF_USER_EXIST_URL"] = "/auth/v1/checkIfUserExist";
28
- ApiUrls["AUTHORIZE_URL"] = "/auth/v1/user/authorize";
29
- ApiUrls["AUTHORIZE_DEVICE_URL"] = "/auth/v1/user/device/authorize";
30
- ApiUrls["AUTHORIZE_DEVICE_CODE_URL"] = "/auth/v1/device/code";
31
- ApiUrls["AUTHORIZE_INFO_URL"] = "/auth/v1/user/authorize/info";
32
- ApiUrls["AUTHORIZED_URL"] = "/auth/v1/user/authorized";
33
- ApiUrls["AUTHORIZED_DELETE_URL"] = "/auth/v1/user/authorized/";
34
- ApiUrls["AUTHORIZED_DEVICES_URL"] = "/auth/v1/user/authorized/devices";
35
- ApiUrls["AUTHORIZED_DEVICES_DELETE_URL"] = "/auth/v1/user/authorized/devices/";
36
- ApiUrls["AUTH_REVOKE_ALL_URL"] = "/auth/v1/user/revoke/all";
37
- })(ApiUrls = exports.ApiUrls || (exports.ApiUrls = {}));
38
- var VerificationUsages;
39
- (function (VerificationUsages) {
40
- VerificationUsages["REGISTER"] = "REGISTER";
41
- VerificationUsages["SIGN_IN"] = "SIGN_IN";
42
- VerificationUsages["PASSWORD_RESET"] = "PASSWORD_RESET";
43
- VerificationUsages["EMAIL_ADDRESS_CHANGE"] = "EMAIL_ADDRESS_CHANGE";
44
- VerificationUsages["PHONE_NUMBER_CHANGE"] = "PHONE_NUMBER_CHANGE";
45
- })(VerificationUsages = exports.VerificationUsages || (exports.VerificationUsages = {}));
46
- var ErrorType;
47
- (function (ErrorType) {
48
- ErrorType["INVALID_ARGUMENT"] = "invalid_argument";
49
- ErrorType["DEADLINE_EXCEEDED"] = "deadline_exceeded";
50
- ErrorType["NOT_FOUND"] = "not_found";
51
- ErrorType["ALREADY_EXISTS"] = "already_exists";
52
- ErrorType["PERMISSION_DENIED"] = "permission_denied";
53
- ErrorType["ABORTED"] = "aborted";
54
- ErrorType["OUT_OF_RANGE"] = "out_of_range";
55
- ErrorType["UNIMPLEMENTED"] = "unimplemented";
56
- ErrorType["INTERNAL"] = "internal";
57
- ErrorType["UNAVAILABLE"] = "unavailable";
58
- ErrorType["DATA_LOSS"] = "data_loss";
59
- // CommonError
60
- ErrorType["CAPTCHA_REQUIRED"] = "captcha_required";
61
- ErrorType["CAPTCHA_INVALID"] = "captcha_invalid";
62
- ErrorType["INVALID_PASSWORD"] = "invalid_password";
63
- ErrorType["PASSWORD_NOT_SET"] = "password_not_set";
64
- ErrorType["INVALID_STATUS"] = "invalid_status";
65
- ErrorType["USER_PENDING"] = "user_pending";
66
- ErrorType["USER_BLOCKED"] = "user_blocked";
67
- })(ErrorType = exports.ErrorType || (exports.ErrorType = {}));
68
- var DeviceAuthorizeState;
69
- (function (DeviceAuthorizeState) {
70
- // 完成
71
- DeviceAuthorizeState["ACCOMPLISHED"] = "ACCOMPLISHED";
72
- // 等待连接
73
- DeviceAuthorizeState["WAITING_CONNECT"] = "WAITING_CONNECT";
74
- // 等待用户点击同意界面
75
- DeviceAuthorizeState["WAITING_CONSENT"] = "WAITING_CONSENT";
76
- // 用户拒绝授权
77
- DeviceAuthorizeState["ACCESS_DENIED"] = "ACCESS_DENIED";
78
- })(DeviceAuthorizeState = exports.DeviceAuthorizeState || (exports.DeviceAuthorizeState = {}));
79
- //# sourceMappingURL=consts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/auth/consts.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAgCX;AAhCD,WAAY,OAAO;IACf,+CAAoC,CAAA;IACpC,uEAA4D,CAAA;IAC5D,2EAAgE,CAAA;IAChE,+CAAoC,CAAA;IACpC,4CAAiC,CAAA;IACjC,8CAAmC,CAAA;IACnC,4DAAiD,CAAA;IACjD,yDAA8C,CAAA;IAC9C,qDAA0C,CAAA;IAC1C,2CAAgC,CAAA;IAChC,gDAAqC,CAAA;IACrC,iDAAsC,CAAA;IACtC,qDAA0C,CAAA;IAC1C,yEAA8D,CAAA;IAC9D,qDAA0C,CAAA;IAC1C,sDAA2C,CAAA;IAC3C,uDAA4C,CAAA;IAC5C,yDAA8C,CAAA;IAC9C,0CAA+B,CAAA;IAC/B,qDAA0C,CAAA;IAC1C,2DAAgD,CAAA;IAChD,gEAAqD,CAAA;IACrD,oDAAyC,CAAA;IACzC,kEAAuD,CAAA;IACvD,6DAAkD,CAAA;IAClD,8DAAmD,CAAA;IACnD,sDAA2C,CAAA;IAC3C,8DAAmD,CAAA;IACnD,sEAA2D,CAAA;IAC3D,8EAAmE,CAAA;IACnE,2DAAgD,CAAA;AACpD,CAAC,EAhCW,OAAO,GAAP,eAAO,KAAP,eAAO,QAgClB;AAED,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,2CAAqB,CAAA;IACrB,yCAAmB,CAAA;IACnB,uDAAiC,CAAA;IACjC,mEAA6C,CAAA;IAC7C,iEAA2C,CAAA;AAC/C,CAAC,EANW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAM7B;AAED,IAAY,SAoBX;AApBD,WAAY,SAAS;IACjB,kDAAqC,CAAA;IACrC,oDAAuC,CAAA;IACvC,oCAAuB,CAAA;IACvB,8CAAiC,CAAA;IACjC,oDAAuC,CAAA;IACvC,gCAAmB,CAAA;IACnB,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,kCAAqB,CAAA;IACrB,wCAA2B,CAAA;IAC3B,oCAAuB,CAAA;IACvB,cAAc;IACd,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,kDAAqC,CAAA;IACrC,kDAAqC,CAAA;IACrC,8CAAiC,CAAA;IACjC,0CAA6B,CAAA;IAC7B,0CAA6B,CAAA;AACjC,CAAC,EApBW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAoBpB;AAED,IAAY,oBASX;AATD,WAAY,oBAAoB;IAC5B,KAAK;IACL,qDAA6B,CAAA;IAC7B,OAAO;IACR,2DAAmC,CAAA;IACnC,aAAa;IACb,2DAAmC,CAAA;IACnC,SAAS;IACT,uDAA+B,CAAA;AAClC,CAAC,EATW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAS/B"}