@etsoo/appscript 1.2.66 → 1.2.69

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.
@@ -212,6 +212,13 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
212
212
  * @returns Result
213
213
  */
214
214
  formatNumber(input?: number | bigint, options?: Intl.NumberFormatOptions): string | undefined;
215
+ /**
216
+ * Do refresh token result
217
+ * @param result Result
218
+ * @param initCallCallback InitCall callback
219
+ * @param silent Silent without any popups
220
+ */
221
+ doRefreshTokenResult(result: RefreshTokenResult, initCallCallback?: (result: boolean) => void, silent?: boolean): void;
215
222
  /**
216
223
  * Format refresh token result
217
224
  * @param result Refresh token result
@@ -648,6 +655,17 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
648
655
  * @returns Error message
649
656
  */
650
657
  formatError(error: ApiDataError): string;
658
+ /**
659
+ * Refresh token failed
660
+ */
661
+ protected refreshTokenFailed(): void;
662
+ /**
663
+ * Do refresh token result
664
+ * @param result Result
665
+ * @param initCallCallback InitCall callback
666
+ * @param silent Silent without any popups
667
+ */
668
+ doRefreshTokenResult(result: RefreshTokenResult, initCallCallback?: (result: boolean) => void, silent?: boolean): void;
651
669
  /**
652
670
  * Format refresh token result
653
671
  * @param result Refresh token result
@@ -275,7 +275,7 @@ class CoreApp {
275
275
  * @returns true means device is invalid
276
276
  */
277
277
  checkDeviceResult(result) {
278
- if (result.type == 'NoValidData' && result.field == 'Device')
278
+ if (result.type === 'NoValidData' && result.field === 'Device')
279
279
  return true;
280
280
  return false;
281
281
  }
@@ -711,6 +711,46 @@ class CoreApp {
711
711
  formatError(error) {
712
712
  return error.toString();
713
713
  }
714
+ /**
715
+ * Refresh token failed
716
+ */
717
+ refreshTokenFailed() {
718
+ this.userUnauthorized();
719
+ this.toLoginPage();
720
+ }
721
+ /**
722
+ * Do refresh token result
723
+ * @param result Result
724
+ * @param initCallCallback InitCall callback
725
+ * @param silent Silent without any popups
726
+ */
727
+ doRefreshTokenResult(result, initCallCallback, silent = false) {
728
+ if (result === true)
729
+ return;
730
+ if (typeof result === 'object' &&
731
+ !(result instanceof restclient_1.ApiDataError) &&
732
+ this.checkDeviceResult(result)) {
733
+ initCallCallback !== null && initCallCallback !== void 0 ? initCallCallback : (initCallCallback = (result) => {
734
+ var _a;
735
+ if (!result)
736
+ return;
737
+ this.notifier.alert((_a = this.get('environmentChanged')) !== null && _a !== void 0 ? _a : 'Environment changed', () => {
738
+ // Reload the page
739
+ history.go(0);
740
+ });
741
+ });
742
+ this.initCall(initCallCallback, true);
743
+ return;
744
+ }
745
+ const message = this.formatRefreshTokenResult(result);
746
+ if (message == null || silent) {
747
+ this.refreshTokenFailed();
748
+ return;
749
+ }
750
+ this.notifier.alert(message, () => {
751
+ this.refreshTokenFailed();
752
+ });
753
+ }
714
754
  /**
715
755
  * Format refresh token result
716
756
  * @param result Refresh token result
@@ -41,6 +41,7 @@
41
41
  "emailAddresses": "Email addresses",
42
42
  "enabled": "Enabled",
43
43
  "entityStatus": "Status",
44
+ "environmentChanged": "The operating environment has changed, please log in again",
44
45
  "etsoo": "ETSOO",
45
46
  "expiry": "Expiry",
46
47
  "failed": "Operation failed",
@@ -41,6 +41,7 @@
41
41
  "emailAddresses": "电子邮箱",
42
42
  "enabled": "已启用",
43
43
  "entityStatus": "状态",
44
+ "environmentChanged": "运行环境已改变,请重新登录",
44
45
  "etsoo": "亿速思维",
45
46
  "expiry": "到期时间",
46
47
  "failed": "操作失败",
@@ -41,6 +41,7 @@
41
41
  "emailAddresses": "電子郵箱",
42
42
  "enabled": "已啟用",
43
43
  "entityStatus": "狀態",
44
+ "environmentChanged": "運行環境已改變,請重新登錄",
44
45
  "etsoo": "億速思維",
45
46
  "expiry": "到期時間",
46
47
  "failed": "操作失敗",
@@ -212,6 +212,13 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
212
212
  * @returns Result
213
213
  */
214
214
  formatNumber(input?: number | bigint, options?: Intl.NumberFormatOptions): string | undefined;
215
+ /**
216
+ * Do refresh token result
217
+ * @param result Result
218
+ * @param initCallCallback InitCall callback
219
+ * @param silent Silent without any popups
220
+ */
221
+ doRefreshTokenResult(result: RefreshTokenResult, initCallCallback?: (result: boolean) => void, silent?: boolean): void;
215
222
  /**
216
223
  * Format refresh token result
217
224
  * @param result Refresh token result
@@ -648,6 +655,17 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
648
655
  * @returns Error message
649
656
  */
650
657
  formatError(error: ApiDataError): string;
658
+ /**
659
+ * Refresh token failed
660
+ */
661
+ protected refreshTokenFailed(): void;
662
+ /**
663
+ * Do refresh token result
664
+ * @param result Result
665
+ * @param initCallCallback InitCall callback
666
+ * @param silent Silent without any popups
667
+ */
668
+ doRefreshTokenResult(result: RefreshTokenResult, initCallCallback?: (result: boolean) => void, silent?: boolean): void;
651
669
  /**
652
670
  * Format refresh token result
653
671
  * @param result Refresh token result
@@ -272,7 +272,7 @@ export class CoreApp {
272
272
  * @returns true means device is invalid
273
273
  */
274
274
  checkDeviceResult(result) {
275
- if (result.type == 'NoValidData' && result.field == 'Device')
275
+ if (result.type === 'NoValidData' && result.field === 'Device')
276
276
  return true;
277
277
  return false;
278
278
  }
@@ -708,6 +708,46 @@ export class CoreApp {
708
708
  formatError(error) {
709
709
  return error.toString();
710
710
  }
711
+ /**
712
+ * Refresh token failed
713
+ */
714
+ refreshTokenFailed() {
715
+ this.userUnauthorized();
716
+ this.toLoginPage();
717
+ }
718
+ /**
719
+ * Do refresh token result
720
+ * @param result Result
721
+ * @param initCallCallback InitCall callback
722
+ * @param silent Silent without any popups
723
+ */
724
+ doRefreshTokenResult(result, initCallCallback, silent = false) {
725
+ if (result === true)
726
+ return;
727
+ if (typeof result === 'object' &&
728
+ !(result instanceof ApiDataError) &&
729
+ this.checkDeviceResult(result)) {
730
+ initCallCallback !== null && initCallCallback !== void 0 ? initCallCallback : (initCallCallback = (result) => {
731
+ var _a;
732
+ if (!result)
733
+ return;
734
+ this.notifier.alert((_a = this.get('environmentChanged')) !== null && _a !== void 0 ? _a : 'Environment changed', () => {
735
+ // Reload the page
736
+ history.go(0);
737
+ });
738
+ });
739
+ this.initCall(initCallCallback, true);
740
+ return;
741
+ }
742
+ const message = this.formatRefreshTokenResult(result);
743
+ if (message == null || silent) {
744
+ this.refreshTokenFailed();
745
+ return;
746
+ }
747
+ this.notifier.alert(message, () => {
748
+ this.refreshTokenFailed();
749
+ });
750
+ }
711
751
  /**
712
752
  * Format refresh token result
713
753
  * @param result Refresh token result
@@ -41,6 +41,7 @@
41
41
  "emailAddresses": "Email addresses",
42
42
  "enabled": "Enabled",
43
43
  "entityStatus": "Status",
44
+ "environmentChanged": "The operating environment has changed, please log in again",
44
45
  "etsoo": "ETSOO",
45
46
  "expiry": "Expiry",
46
47
  "failed": "Operation failed",
@@ -41,6 +41,7 @@
41
41
  "emailAddresses": "电子邮箱",
42
42
  "enabled": "已启用",
43
43
  "entityStatus": "状态",
44
+ "environmentChanged": "运行环境已改变,请重新登录",
44
45
  "etsoo": "亿速思维",
45
46
  "expiry": "到期时间",
46
47
  "failed": "操作失败",
@@ -41,6 +41,7 @@
41
41
  "emailAddresses": "電子郵箱",
42
42
  "enabled": "已啟用",
43
43
  "entityStatus": "狀態",
44
+ "environmentChanged": "運行環境已改變,請重新登錄",
44
45
  "etsoo": "億速思維",
45
46
  "expiry": "到期時間",
46
47
  "failed": "操作失敗",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/appscript",
3
- "version": "1.2.66",
3
+ "version": "1.2.69",
4
4
  "description": "Applications shared TypeScript framework",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -315,6 +315,18 @@ export interface ICoreApp<
315
315
  options?: Intl.NumberFormatOptions
316
316
  ): string | undefined;
317
317
 
318
+ /**
319
+ * Do refresh token result
320
+ * @param result Result
321
+ * @param initCallCallback InitCall callback
322
+ * @param silent Silent without any popups
323
+ */
324
+ doRefreshTokenResult(
325
+ result: RefreshTokenResult,
326
+ initCallCallback?: (result: boolean) => void,
327
+ silent?: boolean
328
+ ): void;
329
+
318
330
  /**
319
331
  * Format refresh token result
320
332
  * @param result Refresh token result
@@ -890,7 +902,7 @@ export abstract class CoreApp<
890
902
  * @returns true means device is invalid
891
903
  */
892
904
  protected checkDeviceResult(result: IActionResult): boolean {
893
- if (result.type == 'NoValidData' && result.field == 'Device')
905
+ if (result.type === 'NoValidData' && result.field === 'Device')
894
906
  return true;
895
907
  return false;
896
908
  }
@@ -1436,6 +1448,59 @@ export abstract class CoreApp<
1436
1448
  return error.toString();
1437
1449
  }
1438
1450
 
1451
+ /**
1452
+ * Refresh token failed
1453
+ */
1454
+ protected refreshTokenFailed() {
1455
+ this.userUnauthorized();
1456
+ this.toLoginPage();
1457
+ }
1458
+
1459
+ /**
1460
+ * Do refresh token result
1461
+ * @param result Result
1462
+ * @param initCallCallback InitCall callback
1463
+ * @param silent Silent without any popups
1464
+ */
1465
+ doRefreshTokenResult(
1466
+ result: RefreshTokenResult,
1467
+ initCallCallback?: (result: boolean) => void,
1468
+ silent: boolean = false
1469
+ ) {
1470
+ if (result === true) return;
1471
+
1472
+ if (
1473
+ typeof result === 'object' &&
1474
+ !(result instanceof ApiDataError) &&
1475
+ this.checkDeviceResult(result)
1476
+ ) {
1477
+ initCallCallback ??= (result) => {
1478
+ if (!result) return;
1479
+ this.notifier.alert(
1480
+ this.get<string>('environmentChanged') ??
1481
+ 'Environment changed',
1482
+ () => {
1483
+ // Reload the page
1484
+ history.go(0);
1485
+ }
1486
+ );
1487
+ };
1488
+
1489
+ this.initCall(initCallCallback, true);
1490
+ return;
1491
+ }
1492
+
1493
+ const message = this.formatRefreshTokenResult(result);
1494
+ if (message == null || silent) {
1495
+ this.refreshTokenFailed();
1496
+ return;
1497
+ }
1498
+
1499
+ this.notifier.alert(message, () => {
1500
+ this.refreshTokenFailed();
1501
+ });
1502
+ }
1503
+
1439
1504
  /**
1440
1505
  * Format refresh token result
1441
1506
  * @param result Refresh token result
@@ -41,6 +41,7 @@
41
41
  "emailAddresses": "Email addresses",
42
42
  "enabled": "Enabled",
43
43
  "entityStatus": "Status",
44
+ "environmentChanged": "The operating environment has changed, please log in again",
44
45
  "etsoo": "ETSOO",
45
46
  "expiry": "Expiry",
46
47
  "failed": "Operation failed",
@@ -41,6 +41,7 @@
41
41
  "emailAddresses": "电子邮箱",
42
42
  "enabled": "已启用",
43
43
  "entityStatus": "状态",
44
+ "environmentChanged": "运行环境已改变,请重新登录",
44
45
  "etsoo": "亿速思维",
45
46
  "expiry": "到期时间",
46
47
  "failed": "操作失败",
@@ -41,6 +41,7 @@
41
41
  "emailAddresses": "電子郵箱",
42
42
  "enabled": "已啟用",
43
43
  "entityStatus": "狀態",
44
+ "environmentChanged": "運行環境已改變,請重新登錄",
44
45
  "etsoo": "億速思維",
45
46
  "expiry": "到期時間",
46
47
  "failed": "操作失敗",