@etsoo/appscript 1.5.57 → 1.5.58

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.
@@ -11,7 +11,8 @@ import { AppLoginParams, AppTryLoginParams, FormatResultCustomCallback, IApp, IA
11
11
  import { UserRole } from './UserRole';
12
12
  import { ExternalEndpoint } from './ExternalSettings';
13
13
  import { ApiRefreshTokenDto } from '../erp/dto/ApiRefreshTokenDto';
14
- type ApiRefreshTokenFunction = (api: IApi, token: string) => Promise<[string, number] | undefined>;
14
+ import { ApiRefreshTokenRQ } from '../erp/rq/ApiRefreshTokenRQ';
15
+ type ApiRefreshTokenFunction = (api: IApi, rq: ApiRefreshTokenRQ) => Promise<[string, number] | undefined>;
15
16
  type ApiTaskData = [IApi, number, number, ApiRefreshTokenFunction, string?];
16
17
  /**
17
18
  * Core application interface
@@ -217,7 +218,7 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
217
218
  * @param item External endpoint item
218
219
  * @returns Result
219
220
  */
220
- createApi(name: string, item: ExternalEndpoint, refresh?: (api: IApi, token: string) => Promise<[string, number] | undefined>): IApi<any>;
221
+ createApi(name: string, item: ExternalEndpoint, refresh?: (api: IApi, rq: ApiRefreshTokenRQ) => Promise<[string, number] | undefined>): IApi<any>;
221
222
  /**
222
223
  * Update API token and expires
223
224
  * @param name Api name
@@ -613,17 +614,17 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
613
614
  /**
614
615
  * API refresh token data
615
616
  * @param api Current API
616
- * @param token Refresh token
617
+ * @param rq Request data
617
618
  * @returns Result
618
619
  */
619
- protected apiRefreshTokenData(api: IApi, token: string): Promise<ApiRefreshTokenDto | undefined>;
620
+ protected apiRefreshTokenData(api: IApi, rq: ApiRefreshTokenRQ): Promise<ApiRefreshTokenDto | undefined>;
620
621
  /**
621
622
  * API refresh token
622
623
  * @param api Current API
623
- * @param token Refresh token
624
+ * @param rq Request data
624
625
  * @returns Result
625
626
  */
626
- protected apiRefreshToken(api: IApi, token: string): Promise<[string, number] | undefined>;
627
+ protected apiRefreshToken(api: IApi, rq: ApiRefreshTokenRQ): Promise<[string, number] | undefined>;
627
628
  /**
628
629
  * Setup tasks
629
630
  */
@@ -183,10 +183,10 @@ class CoreApp {
183
183
  }
184
184
  this.defaultRegion = region;
185
185
  // Current system refresh token
186
- const refresh = async (api, token) => {
186
+ const refresh = async (api, rq) => {
187
187
  if (this.lastCalled) {
188
188
  // Call refreshToken to update access token
189
- await this.refreshToken({ token, showLoading: false }, (result) => {
189
+ await this.refreshToken({ token: rq.token, showLoading: false }, (result) => {
190
190
  if (result === true)
191
191
  return;
192
192
  console.log(`CoreApp.${this.name}.RefreshToken`, result);
@@ -1522,12 +1522,14 @@ class CoreApp {
1522
1522
  /**
1523
1523
  * API refresh token data
1524
1524
  * @param api Current API
1525
- * @param token Refresh token
1525
+ * @param rq Request data
1526
1526
  * @returns Result
1527
1527
  */
1528
- async apiRefreshTokenData(api, token) {
1528
+ async apiRefreshTokenData(api, rq) {
1529
+ // Default appId
1530
+ rq.appId ?? (rq.appId = this.settings.appId);
1529
1531
  // Call the API quietly, no loading bar and no error popup
1530
- return new AuthApi_1.AuthApi(this, api).apiRefreshToken({ token }, {
1532
+ return new AuthApi_1.AuthApi(this, api).apiRefreshToken(rq, {
1531
1533
  showLoading: false,
1532
1534
  onError: (error) => {
1533
1535
  console.error(`CoreApp.${api.name}.apiRefreshToken error`, error);
@@ -1539,12 +1541,12 @@ class CoreApp {
1539
1541
  /**
1540
1542
  * API refresh token
1541
1543
  * @param api Current API
1542
- * @param token Refresh token
1544
+ * @param rq Request data
1543
1545
  * @returns Result
1544
1546
  */
1545
- async apiRefreshToken(api, token) {
1547
+ async apiRefreshToken(api, rq) {
1546
1548
  // Call the API quietly, no loading bar and no error popup
1547
- const data = await this.apiRefreshTokenData(api, token);
1549
+ const data = await this.apiRefreshTokenData(api, rq);
1548
1550
  if (data == null)
1549
1551
  return undefined;
1550
1552
  // Update the access token
@@ -1572,7 +1574,7 @@ class CoreApp {
1572
1574
  // Ready to trigger
1573
1575
  if (api[2] === 0) {
1574
1576
  // Refresh token
1575
- api[3](api[0], api[4]).then((data) => {
1577
+ api[3](api[0], { token: api[4] }).then((data) => {
1576
1578
  if (data == null) {
1577
1579
  // Failed, try it again in 2 seconds
1578
1580
  api[2] = 2;
@@ -23,6 +23,11 @@ export interface IExternalSettings extends ExternalEndpoint {
23
23
  * App root url
24
24
  */
25
25
  readonly homepage: string;
26
+ /**
27
+ * Application id
28
+ * 程序编号
29
+ */
30
+ readonly appId: number;
26
31
  /**
27
32
  * Endpoints to other services
28
33
  */
@@ -9,6 +9,7 @@ import { EntityStatus } from '../business/EntityStatus';
9
9
  import { Currency } from '../business/Currency';
10
10
  import { ExternalEndpoint } from './ExternalSettings';
11
11
  import { ApiRefreshTokenDto } from '../erp/dto/ApiRefreshTokenDto';
12
+ import { ApiRefreshTokenRQ } from '../erp/rq/ApiRefreshTokenRQ';
12
13
  /**
13
14
  * Detect IP callback interface
14
15
  */
@@ -282,7 +283,7 @@ export interface IApp {
282
283
  * @param item External endpoint item
283
284
  * @returns Result
284
285
  */
285
- createApi(name: string, item: ExternalEndpoint, refresh?: (api: IApi, token: string) => Promise<[string, number] | undefined>): IApi;
286
+ createApi(name: string, item: ExternalEndpoint, refresh?: (api: IApi, rq: ApiRefreshTokenRQ) => Promise<[string, number] | undefined>): IApi;
286
287
  /**
287
288
  * Decrypt message
288
289
  * @param messageEncrypted Encrypted message
@@ -0,0 +1,13 @@
1
+ /**
2
+ * API Refresh Token Request data
3
+ */
4
+ export type ApiRefreshTokenRQ = {
5
+ /**
6
+ * Refresh token
7
+ */
8
+ token: string;
9
+ /**
10
+ * Application ID, 0 for core system
11
+ */
12
+ appId?: number;
13
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -43,6 +43,7 @@ export * from './erp/dto/PinDto';
43
43
  export * from './erp/dto/PlaceParsedDto';
44
44
  export * from './erp/dto/ResponseActionMessageDto';
45
45
  export * from './erp/dto/ResultPayload';
46
+ export * from './erp/rq/ApiRefreshTokenRQ';
46
47
  export * from './erp/rq/AuthRequest';
47
48
  export * from './erp/rq/GetLogInUrlRQ';
48
49
  export * from './erp/rq/LoginIdRQ';
package/lib/cjs/index.js CHANGED
@@ -68,6 +68,7 @@ __exportStar(require("./erp/dto/PlaceParsedDto"), exports);
68
68
  __exportStar(require("./erp/dto/ResponseActionMessageDto"), exports);
69
69
  __exportStar(require("./erp/dto/ResultPayload"), exports);
70
70
  // erp rq
71
+ __exportStar(require("./erp/rq/ApiRefreshTokenRQ"), exports);
71
72
  __exportStar(require("./erp/rq/AuthRequest"), exports);
72
73
  __exportStar(require("./erp/rq/GetLogInUrlRQ"), exports);
73
74
  __exportStar(require("./erp/rq/LoginIdRQ"), exports);
@@ -11,7 +11,8 @@ import { AppLoginParams, AppTryLoginParams, FormatResultCustomCallback, IApp, IA
11
11
  import { UserRole } from './UserRole';
12
12
  import { ExternalEndpoint } from './ExternalSettings';
13
13
  import { ApiRefreshTokenDto } from '../erp/dto/ApiRefreshTokenDto';
14
- type ApiRefreshTokenFunction = (api: IApi, token: string) => Promise<[string, number] | undefined>;
14
+ import { ApiRefreshTokenRQ } from '../erp/rq/ApiRefreshTokenRQ';
15
+ type ApiRefreshTokenFunction = (api: IApi, rq: ApiRefreshTokenRQ) => Promise<[string, number] | undefined>;
15
16
  type ApiTaskData = [IApi, number, number, ApiRefreshTokenFunction, string?];
16
17
  /**
17
18
  * Core application interface
@@ -217,7 +218,7 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
217
218
  * @param item External endpoint item
218
219
  * @returns Result
219
220
  */
220
- createApi(name: string, item: ExternalEndpoint, refresh?: (api: IApi, token: string) => Promise<[string, number] | undefined>): IApi<any>;
221
+ createApi(name: string, item: ExternalEndpoint, refresh?: (api: IApi, rq: ApiRefreshTokenRQ) => Promise<[string, number] | undefined>): IApi<any>;
221
222
  /**
222
223
  * Update API token and expires
223
224
  * @param name Api name
@@ -613,17 +614,17 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
613
614
  /**
614
615
  * API refresh token data
615
616
  * @param api Current API
616
- * @param token Refresh token
617
+ * @param rq Request data
617
618
  * @returns Result
618
619
  */
619
- protected apiRefreshTokenData(api: IApi, token: string): Promise<ApiRefreshTokenDto | undefined>;
620
+ protected apiRefreshTokenData(api: IApi, rq: ApiRefreshTokenRQ): Promise<ApiRefreshTokenDto | undefined>;
620
621
  /**
621
622
  * API refresh token
622
623
  * @param api Current API
623
- * @param token Refresh token
624
+ * @param rq Request data
624
625
  * @returns Result
625
626
  */
626
- protected apiRefreshToken(api: IApi, token: string): Promise<[string, number] | undefined>;
627
+ protected apiRefreshToken(api: IApi, rq: ApiRefreshTokenRQ): Promise<[string, number] | undefined>;
627
628
  /**
628
629
  * Setup tasks
629
630
  */
@@ -180,10 +180,10 @@ export class CoreApp {
180
180
  }
181
181
  this.defaultRegion = region;
182
182
  // Current system refresh token
183
- const refresh = async (api, token) => {
183
+ const refresh = async (api, rq) => {
184
184
  if (this.lastCalled) {
185
185
  // Call refreshToken to update access token
186
- await this.refreshToken({ token, showLoading: false }, (result) => {
186
+ await this.refreshToken({ token: rq.token, showLoading: false }, (result) => {
187
187
  if (result === true)
188
188
  return;
189
189
  console.log(`CoreApp.${this.name}.RefreshToken`, result);
@@ -1519,12 +1519,14 @@ export class CoreApp {
1519
1519
  /**
1520
1520
  * API refresh token data
1521
1521
  * @param api Current API
1522
- * @param token Refresh token
1522
+ * @param rq Request data
1523
1523
  * @returns Result
1524
1524
  */
1525
- async apiRefreshTokenData(api, token) {
1525
+ async apiRefreshTokenData(api, rq) {
1526
+ // Default appId
1527
+ rq.appId ?? (rq.appId = this.settings.appId);
1526
1528
  // Call the API quietly, no loading bar and no error popup
1527
- return new AuthApi(this, api).apiRefreshToken({ token }, {
1529
+ return new AuthApi(this, api).apiRefreshToken(rq, {
1528
1530
  showLoading: false,
1529
1531
  onError: (error) => {
1530
1532
  console.error(`CoreApp.${api.name}.apiRefreshToken error`, error);
@@ -1536,12 +1538,12 @@ export class CoreApp {
1536
1538
  /**
1537
1539
  * API refresh token
1538
1540
  * @param api Current API
1539
- * @param token Refresh token
1541
+ * @param rq Request data
1540
1542
  * @returns Result
1541
1543
  */
1542
- async apiRefreshToken(api, token) {
1544
+ async apiRefreshToken(api, rq) {
1543
1545
  // Call the API quietly, no loading bar and no error popup
1544
- const data = await this.apiRefreshTokenData(api, token);
1546
+ const data = await this.apiRefreshTokenData(api, rq);
1545
1547
  if (data == null)
1546
1548
  return undefined;
1547
1549
  // Update the access token
@@ -1569,7 +1571,7 @@ export class CoreApp {
1569
1571
  // Ready to trigger
1570
1572
  if (api[2] === 0) {
1571
1573
  // Refresh token
1572
- api[3](api[0], api[4]).then((data) => {
1574
+ api[3](api[0], { token: api[4] }).then((data) => {
1573
1575
  if (data == null) {
1574
1576
  // Failed, try it again in 2 seconds
1575
1577
  api[2] = 2;
@@ -23,6 +23,11 @@ export interface IExternalSettings extends ExternalEndpoint {
23
23
  * App root url
24
24
  */
25
25
  readonly homepage: string;
26
+ /**
27
+ * Application id
28
+ * 程序编号
29
+ */
30
+ readonly appId: number;
26
31
  /**
27
32
  * Endpoints to other services
28
33
  */
@@ -9,6 +9,7 @@ import { EntityStatus } from '../business/EntityStatus';
9
9
  import { Currency } from '../business/Currency';
10
10
  import { ExternalEndpoint } from './ExternalSettings';
11
11
  import { ApiRefreshTokenDto } from '../erp/dto/ApiRefreshTokenDto';
12
+ import { ApiRefreshTokenRQ } from '../erp/rq/ApiRefreshTokenRQ';
12
13
  /**
13
14
  * Detect IP callback interface
14
15
  */
@@ -282,7 +283,7 @@ export interface IApp {
282
283
  * @param item External endpoint item
283
284
  * @returns Result
284
285
  */
285
- createApi(name: string, item: ExternalEndpoint, refresh?: (api: IApi, token: string) => Promise<[string, number] | undefined>): IApi;
286
+ createApi(name: string, item: ExternalEndpoint, refresh?: (api: IApi, rq: ApiRefreshTokenRQ) => Promise<[string, number] | undefined>): IApi;
286
287
  /**
287
288
  * Decrypt message
288
289
  * @param messageEncrypted Encrypted message
@@ -0,0 +1,13 @@
1
+ /**
2
+ * API Refresh Token Request data
3
+ */
4
+ export type ApiRefreshTokenRQ = {
5
+ /**
6
+ * Refresh token
7
+ */
8
+ token: string;
9
+ /**
10
+ * Application ID, 0 for core system
11
+ */
12
+ appId?: number;
13
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -43,6 +43,7 @@ export * from './erp/dto/PinDto';
43
43
  export * from './erp/dto/PlaceParsedDto';
44
44
  export * from './erp/dto/ResponseActionMessageDto';
45
45
  export * from './erp/dto/ResultPayload';
46
+ export * from './erp/rq/ApiRefreshTokenRQ';
46
47
  export * from './erp/rq/AuthRequest';
47
48
  export * from './erp/rq/GetLogInUrlRQ';
48
49
  export * from './erp/rq/LoginIdRQ';
package/lib/mjs/index.js CHANGED
@@ -51,6 +51,7 @@ export * from './erp/dto/PlaceParsedDto';
51
51
  export * from './erp/dto/ResponseActionMessageDto';
52
52
  export * from './erp/dto/ResultPayload';
53
53
  // erp rq
54
+ export * from './erp/rq/ApiRefreshTokenRQ';
54
55
  export * from './erp/rq/AuthRequest';
55
56
  export * from './erp/rq/GetLogInUrlRQ';
56
57
  export * from './erp/rq/LoginIdRQ';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/appscript",
3
- "version": "1.5.57",
3
+ "version": "1.5.58",
4
4
  "description": "Applications shared TypeScript framework",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -48,6 +48,7 @@ import { Currency } from '../business/Currency';
48
48
  import { ExternalEndpoint } from './ExternalSettings';
49
49
  import { ApiRefreshTokenDto } from '../erp/dto/ApiRefreshTokenDto';
50
50
  import { AuthApi } from '../erp/AuthApi';
51
+ import { ApiRefreshTokenRQ } from '../erp/rq/ApiRefreshTokenRQ';
51
52
 
52
53
  type CJType = typeof CryptoJS;
53
54
  let CJ: CJType;
@@ -57,7 +58,7 @@ const loadCrypto = () => import('crypto-js');
57
58
  // API refresh token function interface
58
59
  type ApiRefreshTokenFunction = (
59
60
  api: IApi,
60
- token: string
61
+ rq: ApiRefreshTokenRQ
61
62
  ) => Promise<[string, number] | undefined>;
62
63
 
63
64
  // API task data
@@ -351,11 +352,11 @@ export abstract class CoreApp<
351
352
  this.defaultRegion = region;
352
353
 
353
354
  // Current system refresh token
354
- const refresh: ApiRefreshTokenFunction = async (api, token) => {
355
+ const refresh: ApiRefreshTokenFunction = async (api, rq) => {
355
356
  if (this.lastCalled) {
356
357
  // Call refreshToken to update access token
357
358
  await this.refreshToken(
358
- { token, showLoading: false },
359
+ { token: rq.token, showLoading: false },
359
360
  (result) => {
360
361
  if (result === true) return;
361
362
  console.log(
@@ -602,7 +603,7 @@ export abstract class CoreApp<
602
603
  item: ExternalEndpoint,
603
604
  refresh?: (
604
605
  api: IApi,
605
- token: string
606
+ rq: ApiRefreshTokenRQ
606
607
  ) => Promise<[string, number] | undefined>
607
608
  ) {
608
609
  if (this.apis[name] != null) {
@@ -2085,43 +2086,43 @@ export abstract class CoreApp<
2085
2086
  /**
2086
2087
  * API refresh token data
2087
2088
  * @param api Current API
2088
- * @param token Refresh token
2089
+ * @param rq Request data
2089
2090
  * @returns Result
2090
2091
  */
2091
2092
  protected async apiRefreshTokenData(
2092
2093
  api: IApi,
2093
- token: string
2094
+ rq: ApiRefreshTokenRQ
2094
2095
  ): Promise<ApiRefreshTokenDto | undefined> {
2096
+ // Default appId
2097
+ rq.appId ??= this.settings.appId;
2098
+
2095
2099
  // Call the API quietly, no loading bar and no error popup
2096
- return new AuthApi(this, api).apiRefreshToken(
2097
- { token },
2098
- {
2099
- showLoading: false,
2100
- onError: (error) => {
2101
- console.error(
2102
- `CoreApp.${api.name}.apiRefreshToken error`,
2103
- error
2104
- );
2100
+ return new AuthApi(this, api).apiRefreshToken(rq, {
2101
+ showLoading: false,
2102
+ onError: (error) => {
2103
+ console.error(
2104
+ `CoreApp.${api.name}.apiRefreshToken error`,
2105
+ error
2106
+ );
2105
2107
 
2106
- // Prevent further processing
2107
- return false;
2108
- }
2108
+ // Prevent further processing
2109
+ return false;
2109
2110
  }
2110
- );
2111
+ });
2111
2112
  }
2112
2113
 
2113
2114
  /**
2114
2115
  * API refresh token
2115
2116
  * @param api Current API
2116
- * @param token Refresh token
2117
+ * @param rq Request data
2117
2118
  * @returns Result
2118
2119
  */
2119
2120
  protected async apiRefreshToken(
2120
2121
  api: IApi,
2121
- token: string
2122
+ rq: ApiRefreshTokenRQ
2122
2123
  ): Promise<[string, number] | undefined> {
2123
2124
  // Call the API quietly, no loading bar and no error popup
2124
- const data = await this.apiRefreshTokenData(api, token);
2125
+ const data = await this.apiRefreshTokenData(api, rq);
2125
2126
  if (data == null) return undefined;
2126
2127
 
2127
2128
  // Update the access token
@@ -2153,7 +2154,7 @@ export abstract class CoreApp<
2153
2154
  // Ready to trigger
2154
2155
  if (api[2] === 0) {
2155
2156
  // Refresh token
2156
- api[3](api[0], api[4]).then((data) => {
2157
+ api[3](api[0], { token: api[4] }).then((data) => {
2157
2158
  if (data == null) {
2158
2159
  // Failed, try it again in 2 seconds
2159
2160
  api[2] = 2;
@@ -27,6 +27,12 @@ export interface IExternalSettings extends ExternalEndpoint {
27
27
  */
28
28
  readonly homepage: string;
29
29
 
30
+ /**
31
+ * Application id
32
+ * 程序编号
33
+ */
34
+ readonly appId: number;
35
+
30
36
  /**
31
37
  * Endpoints to other services
32
38
  */
package/src/app/IApp.ts CHANGED
@@ -24,6 +24,7 @@ import { EntityStatus } from '../business/EntityStatus';
24
24
  import { Currency } from '../business/Currency';
25
25
  import { ExternalEndpoint } from './ExternalSettings';
26
26
  import { ApiRefreshTokenDto } from '../erp/dto/ApiRefreshTokenDto';
27
+ import { ApiRefreshTokenRQ } from '../erp/rq/ApiRefreshTokenRQ';
27
28
 
28
29
  /**
29
30
  * Detect IP callback interface
@@ -371,7 +372,7 @@ export interface IApp {
371
372
  item: ExternalEndpoint,
372
373
  refresh?: (
373
374
  api: IApi,
374
- token: string
375
+ rq: ApiRefreshTokenRQ
375
376
  ) => Promise<[string, number] | undefined>
376
377
  ): IApi;
377
378
 
@@ -0,0 +1,14 @@
1
+ /**
2
+ * API Refresh Token Request data
3
+ */
4
+ export type ApiRefreshTokenRQ = {
5
+ /**
6
+ * Refresh token
7
+ */
8
+ token: string;
9
+
10
+ /**
11
+ * Application ID, 0 for core system
12
+ */
13
+ appId?: number;
14
+ };
package/src/index.ts CHANGED
@@ -58,6 +58,7 @@ export * from './erp/dto/ResponseActionMessageDto';
58
58
  export * from './erp/dto/ResultPayload';
59
59
 
60
60
  // erp rq
61
+ export * from './erp/rq/ApiRefreshTokenRQ';
61
62
  export * from './erp/rq/AuthRequest';
62
63
  export * from './erp/rq/GetLogInUrlRQ';
63
64
  export * from './erp/rq/LoginIdRQ';