@etsoo/appscript 1.1.53 → 1.1.57

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.
@@ -12,6 +12,29 @@ import { UserRole } from './UserRole';
12
12
  export interface IDetectIPCallback {
13
13
  (): void;
14
14
  }
15
+ /**
16
+ * Refresh token result type
17
+ * true means success, false means failed but no any message
18
+ * other cases means failed with differnet message
19
+ */
20
+ export declare type RefreshTokenResult = boolean | string | ApiDataError | IActionResult;
21
+ /**
22
+ * Refresh token props
23
+ */
24
+ export interface RefreshTokenProps<D extends {}> {
25
+ /**
26
+ * Callback
27
+ */
28
+ callback?: (result: RefreshTokenResult) => void;
29
+ /**
30
+ * Data to pass
31
+ */
32
+ data?: D;
33
+ /**
34
+ * Show loading bar or not
35
+ */
36
+ showLoading?: boolean;
37
+ }
15
38
  /**
16
39
  * Core application interface
17
40
  */
@@ -171,8 +194,9 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
171
194
  pageExit(): void;
172
195
  /**
173
196
  * Refresh token
197
+ * @param props Props
174
198
  */
175
- refreshToken(): Promise<boolean>;
199
+ refreshToken<D extends {} = {}>(props?: RefreshTokenProps<D>): Promise<boolean>;
176
200
  /**
177
201
  * Signout
178
202
  * @param apiUrl Signout API URL
@@ -195,8 +219,10 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
195
219
  transformUrl(url: string): string;
196
220
  /**
197
221
  * Try login, returning false means is loading
222
+ * UI get involved while refreshToken not intended
223
+ * @param data Additional request data
198
224
  */
199
- tryLogin(): Promise<boolean>;
225
+ tryLogin<D extends {} = {}>(data?: D): Promise<boolean>;
200
226
  /**
201
227
  * User login
202
228
  * @param user User data
@@ -420,8 +446,9 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
420
446
  abstract freshCountdownUI(callback?: () => PromiseLike<unknown>): void;
421
447
  /**
422
448
  * Refresh token
449
+ * @param props Props
423
450
  */
424
- refreshToken(): Promise<boolean>;
451
+ refreshToken<D extends {} = {}>(props?: RefreshTokenProps<D>): Promise<boolean>;
425
452
  /**
426
453
  * Setup callback
427
454
  */
@@ -448,8 +475,10 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
448
475
  transformUrl(url: string): string;
449
476
  /**
450
477
  * Try login, returning false means is loading
478
+ * UI get involved while refreshToken not intended
479
+ * @param data Additional request data
451
480
  */
452
- tryLogin(): Promise<boolean>;
481
+ tryLogin<D extends {} = {}>(_data?: D): Promise<boolean>;
453
482
  /**
454
483
  * User login
455
484
  * @param user User data
@@ -399,8 +399,11 @@ class CoreApp {
399
399
  }
400
400
  /**
401
401
  * Refresh token
402
+ * @param props Props
402
403
  */
403
- async refreshToken() {
404
+ async refreshToken(props) {
405
+ if (props && props.callback)
406
+ props.callback(true);
404
407
  return true;
405
408
  }
406
409
  /**
@@ -467,8 +470,10 @@ class CoreApp {
467
470
  }
468
471
  /**
469
472
  * Try login, returning false means is loading
473
+ * UI get involved while refreshToken not intended
474
+ * @param data Additional request data
470
475
  */
471
- async tryLogin() {
476
+ async tryLogin(_data) {
472
477
  if (this._isTryingLogin)
473
478
  return false;
474
479
  this._isTryingLogin = true;
@@ -22,6 +22,7 @@
22
22
  "failed": "Operation failed",
23
23
  "id": "Number#",
24
24
  "loading": "Loading...",
25
+ "login": "Login",
25
26
  "menuHome": "Home",
26
27
  "message": "Message",
27
28
  "mobile": "Mobile number",
@@ -42,6 +43,7 @@
42
43
  "refresh": "Refresh",
43
44
  "refreshing": "Refreshing",
44
45
  "releaseToRefresh": "Release to refresh",
46
+ "reloginTip": "Please enter your password, resubmit the data after successful login",
45
47
  "remove": "Remove",
46
48
  "renew": "Renew",
47
49
  "resending": "Resending",
@@ -22,6 +22,7 @@
22
22
  "failed": "操作失败",
23
23
  "id": "编号",
24
24
  "loading": "正在加载...",
25
+ "login": "登录",
25
26
  "menuHome": "首页",
26
27
  "message": "留言",
27
28
  "mobile": "手机号码",
@@ -42,6 +43,7 @@
42
43
  "refresh": "刷新",
43
44
  "refreshing": "正在刷新",
44
45
  "releaseToRefresh": "释放刷新",
46
+ "reloginTip": "请输入您的登录密码,登录成功后请重新提交数据",
45
47
  "remove": "移除",
46
48
  "renew": "续费",
47
49
  "resending": "重新发送",
@@ -22,6 +22,7 @@
22
22
  "failed": "操作失敗",
23
23
  "id": "編號",
24
24
  "loading": "正在加載...",
25
+ "login": "登錄",
25
26
  "menuHome": "首頁",
26
27
  "message": "留言",
27
28
  "mobilePhone": "手機號碼",
@@ -42,6 +43,7 @@
42
43
  "refresh": "刷新",
43
44
  "refreshing": "正在刷新",
44
45
  "releaseToRefresh": "釋放刷新",
46
+ "reloginTip": "請輸入您的登錄密碼,登錄成功後請重新提交數據",
45
47
  "remove": "移除",
46
48
  "renew": "續費",
47
49
  "resending": "重新發送",
@@ -12,6 +12,29 @@ import { UserRole } from './UserRole';
12
12
  export interface IDetectIPCallback {
13
13
  (): void;
14
14
  }
15
+ /**
16
+ * Refresh token result type
17
+ * true means success, false means failed but no any message
18
+ * other cases means failed with differnet message
19
+ */
20
+ export declare type RefreshTokenResult = boolean | string | ApiDataError | IActionResult;
21
+ /**
22
+ * Refresh token props
23
+ */
24
+ export interface RefreshTokenProps<D extends {}> {
25
+ /**
26
+ * Callback
27
+ */
28
+ callback?: (result: RefreshTokenResult) => void;
29
+ /**
30
+ * Data to pass
31
+ */
32
+ data?: D;
33
+ /**
34
+ * Show loading bar or not
35
+ */
36
+ showLoading?: boolean;
37
+ }
15
38
  /**
16
39
  * Core application interface
17
40
  */
@@ -171,8 +194,9 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
171
194
  pageExit(): void;
172
195
  /**
173
196
  * Refresh token
197
+ * @param props Props
174
198
  */
175
- refreshToken(): Promise<boolean>;
199
+ refreshToken<D extends {} = {}>(props?: RefreshTokenProps<D>): Promise<boolean>;
176
200
  /**
177
201
  * Signout
178
202
  * @param apiUrl Signout API URL
@@ -195,8 +219,10 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
195
219
  transformUrl(url: string): string;
196
220
  /**
197
221
  * Try login, returning false means is loading
222
+ * UI get involved while refreshToken not intended
223
+ * @param data Additional request data
198
224
  */
199
- tryLogin(): Promise<boolean>;
225
+ tryLogin<D extends {} = {}>(data?: D): Promise<boolean>;
200
226
  /**
201
227
  * User login
202
228
  * @param user User data
@@ -420,8 +446,9 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
420
446
  abstract freshCountdownUI(callback?: () => PromiseLike<unknown>): void;
421
447
  /**
422
448
  * Refresh token
449
+ * @param props Props
423
450
  */
424
- refreshToken(): Promise<boolean>;
451
+ refreshToken<D extends {} = {}>(props?: RefreshTokenProps<D>): Promise<boolean>;
425
452
  /**
426
453
  * Setup callback
427
454
  */
@@ -448,8 +475,10 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
448
475
  transformUrl(url: string): string;
449
476
  /**
450
477
  * Try login, returning false means is loading
478
+ * UI get involved while refreshToken not intended
479
+ * @param data Additional request data
451
480
  */
452
- tryLogin(): Promise<boolean>;
481
+ tryLogin<D extends {} = {}>(_data?: D): Promise<boolean>;
453
482
  /**
454
483
  * User login
455
484
  * @param user User data
@@ -396,8 +396,11 @@ export class CoreApp {
396
396
  }
397
397
  /**
398
398
  * Refresh token
399
+ * @param props Props
399
400
  */
400
- async refreshToken() {
401
+ async refreshToken(props) {
402
+ if (props && props.callback)
403
+ props.callback(true);
401
404
  return true;
402
405
  }
403
406
  /**
@@ -464,8 +467,10 @@ export class CoreApp {
464
467
  }
465
468
  /**
466
469
  * Try login, returning false means is loading
470
+ * UI get involved while refreshToken not intended
471
+ * @param data Additional request data
467
472
  */
468
- async tryLogin() {
473
+ async tryLogin(_data) {
469
474
  if (this._isTryingLogin)
470
475
  return false;
471
476
  this._isTryingLogin = true;
@@ -22,6 +22,7 @@
22
22
  "failed": "Operation failed",
23
23
  "id": "Number#",
24
24
  "loading": "Loading...",
25
+ "login": "Login",
25
26
  "menuHome": "Home",
26
27
  "message": "Message",
27
28
  "mobile": "Mobile number",
@@ -42,6 +43,7 @@
42
43
  "refresh": "Refresh",
43
44
  "refreshing": "Refreshing",
44
45
  "releaseToRefresh": "Release to refresh",
46
+ "reloginTip": "Please enter your password, resubmit the data after successful login",
45
47
  "remove": "Remove",
46
48
  "renew": "Renew",
47
49
  "resending": "Resending",
@@ -22,6 +22,7 @@
22
22
  "failed": "操作失败",
23
23
  "id": "编号",
24
24
  "loading": "正在加载...",
25
+ "login": "登录",
25
26
  "menuHome": "首页",
26
27
  "message": "留言",
27
28
  "mobile": "手机号码",
@@ -42,6 +43,7 @@
42
43
  "refresh": "刷新",
43
44
  "refreshing": "正在刷新",
44
45
  "releaseToRefresh": "释放刷新",
46
+ "reloginTip": "请输入您的登录密码,登录成功后请重新提交数据",
45
47
  "remove": "移除",
46
48
  "renew": "续费",
47
49
  "resending": "重新发送",
@@ -22,6 +22,7 @@
22
22
  "failed": "操作失敗",
23
23
  "id": "編號",
24
24
  "loading": "正在加載...",
25
+ "login": "登錄",
25
26
  "menuHome": "首頁",
26
27
  "message": "留言",
27
28
  "mobilePhone": "手機號碼",
@@ -42,6 +43,7 @@
42
43
  "refresh": "刷新",
43
44
  "refreshing": "正在刷新",
44
45
  "releaseToRefresh": "釋放刷新",
46
+ "reloginTip": "請輸入您的登錄密碼,登錄成功後請重新提交數據",
45
47
  "remove": "移除",
46
48
  "renew": "續費",
47
49
  "resending": "重新發送",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/appscript",
3
- "version": "1.1.53",
3
+ "version": "1.1.57",
4
4
  "description": "Applications shared TypeScript framework",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -65,7 +65,7 @@
65
65
  "@types/jest": "^27.0.3",
66
66
  "@typescript-eslint/eslint-plugin": "^5.5.0",
67
67
  "@typescript-eslint/parser": "^5.5.0",
68
- "eslint": "^8.3.0",
68
+ "eslint": "^8.4.0",
69
69
  "eslint-config-airbnb-base": "^15.0.0",
70
70
  "eslint-plugin-import": "^2.25.3",
71
71
  "jest": "^27.4.3",
@@ -29,6 +29,37 @@ export interface IDetectIPCallback {
29
29
  (): void;
30
30
  }
31
31
 
32
+ /**
33
+ * Refresh token result type
34
+ * true means success, false means failed but no any message
35
+ * other cases means failed with differnet message
36
+ */
37
+ export type RefreshTokenResult =
38
+ | boolean
39
+ | string
40
+ | ApiDataError
41
+ | IActionResult;
42
+
43
+ /**
44
+ * Refresh token props
45
+ */
46
+ export interface RefreshTokenProps<D extends {}> {
47
+ /**
48
+ * Callback
49
+ */
50
+ callback?: (result: RefreshTokenResult) => void;
51
+
52
+ /**
53
+ * Data to pass
54
+ */
55
+ data?: D;
56
+
57
+ /**
58
+ * Show loading bar or not
59
+ */
60
+ showLoading?: boolean;
61
+ }
62
+
32
63
  /**
33
64
  * Core application interface
34
65
  */
@@ -231,8 +262,11 @@ export interface ICoreApp<
231
262
 
232
263
  /**
233
264
  * Refresh token
265
+ * @param props Props
234
266
  */
235
- refreshToken(): Promise<boolean>;
267
+ refreshToken<D extends {} = {}>(
268
+ props?: RefreshTokenProps<D>
269
+ ): Promise<boolean>;
236
270
 
237
271
  /**
238
272
  * Signout
@@ -260,8 +294,10 @@ export interface ICoreApp<
260
294
 
261
295
  /**
262
296
  * Try login, returning false means is loading
297
+ * UI get involved while refreshToken not intended
298
+ * @param data Additional request data
263
299
  */
264
- tryLogin(): Promise<boolean>;
300
+ tryLogin<D extends {} = {}>(data?: D): Promise<boolean>;
265
301
 
266
302
  /**
267
303
  * User login
@@ -823,8 +859,10 @@ export abstract class CoreApp<
823
859
 
824
860
  /**
825
861
  * Refresh token
862
+ * @param props Props
826
863
  */
827
- async refreshToken(): Promise<boolean> {
864
+ async refreshToken<D extends {} = {}>(props?: RefreshTokenProps<D>) {
865
+ if (props && props.callback) props.callback(true);
828
866
  return true;
829
867
  }
830
868
 
@@ -901,8 +939,10 @@ export abstract class CoreApp<
901
939
 
902
940
  /**
903
941
  * Try login, returning false means is loading
942
+ * UI get involved while refreshToken not intended
943
+ * @param data Additional request data
904
944
  */
905
- async tryLogin() {
945
+ async tryLogin<D extends {} = {}>(_data?: D) {
906
946
  if (this._isTryingLogin) return false;
907
947
  this._isTryingLogin = true;
908
948
  return true;
@@ -22,6 +22,7 @@
22
22
  "failed": "Operation failed",
23
23
  "id": "Number#",
24
24
  "loading": "Loading...",
25
+ "login": "Login",
25
26
  "menuHome": "Home",
26
27
  "message": "Message",
27
28
  "mobile": "Mobile number",
@@ -42,6 +43,7 @@
42
43
  "refresh": "Refresh",
43
44
  "refreshing": "Refreshing",
44
45
  "releaseToRefresh": "Release to refresh",
46
+ "reloginTip": "Please enter your password, resubmit the data after successful login",
45
47
  "remove": "Remove",
46
48
  "renew": "Renew",
47
49
  "resending": "Resending",
@@ -22,6 +22,7 @@
22
22
  "failed": "操作失败",
23
23
  "id": "编号",
24
24
  "loading": "正在加载...",
25
+ "login": "登录",
25
26
  "menuHome": "首页",
26
27
  "message": "留言",
27
28
  "mobile": "手机号码",
@@ -42,6 +43,7 @@
42
43
  "refresh": "刷新",
43
44
  "refreshing": "正在刷新",
44
45
  "releaseToRefresh": "释放刷新",
46
+ "reloginTip": "请输入您的登录密码,登录成功后请重新提交数据",
45
47
  "remove": "移除",
46
48
  "renew": "续费",
47
49
  "resending": "重新发送",
@@ -22,6 +22,7 @@
22
22
  "failed": "操作失敗",
23
23
  "id": "編號",
24
24
  "loading": "正在加載...",
25
+ "login": "登錄",
25
26
  "menuHome": "首頁",
26
27
  "message": "留言",
27
28
  "mobilePhone": "手機號碼",
@@ -42,6 +43,7 @@
42
43
  "refresh": "刷新",
43
44
  "refreshing": "正在刷新",
44
45
  "releaseToRefresh": "釋放刷新",
46
+ "reloginTip": "請輸入您的登錄密碼,登錄成功後請重新提交數據",
45
47
  "remove": "移除",
46
48
  "renew": "續費",
47
49
  "resending": "重新發送",