axios-annotations 1.0.2 → 1.1.3
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/README.md +132 -23
- package/decorator/request-with.js +1 -0
- package/lib/core/common.js +1 -1
- package/lib/core/config.d.ts +9 -3
- package/lib/core/config.js +1 -1
- package/lib/core/service.d.ts +4 -2
- package/lib/core/service.js +1 -1
- package/lib/decorator/delete-mapping.d.ts +1 -1
- package/lib/decorator/delete-mapping.js +1 -1
- package/lib/decorator/get-mapping.d.ts +1 -1
- package/lib/decorator/get-mapping.js +1 -1
- package/lib/decorator/patch-mapping.d.ts +1 -1
- package/lib/decorator/patch-mapping.js +1 -1
- package/lib/decorator/post-mapping.d.ts +1 -1
- package/lib/decorator/post-mapping.js +1 -1
- package/lib/decorator/put-mapping.d.ts +1 -1
- package/lib/decorator/put-mapping.js +1 -1
- package/lib/decorator/request-mapping.js +1 -1
- package/lib/decorator/request-with.d.ts +3 -0
- package/lib/decorator/request-with.js +1 -0
- package/lib/plugins/auth/authorizer.d.ts +4 -4
- package/lib/plugins/auth/authorizer.js +1 -1
- package/lib/plugins/auth/history.js +1 -1
- package/lib/plugins/auth/index.js +1 -1
- package/lib/plugins/cache/index.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -48,6 +48,13 @@ export default class TestService extends Service {
|
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
path(id) {
|
|
52
|
+
return this.requestWith("GET", "/path3/{id}")
|
|
53
|
+
.send({
|
|
54
|
+
id
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
51
58
|
basic() {
|
|
52
59
|
return this.request("POST", "/path3?p1=a&p2=b", {field1: 'c', field: 'd'},
|
|
53
60
|
{
|
|
@@ -91,7 +98,7 @@ export default class TestService extends Service {
|
|
|
91
98
|
}
|
|
92
99
|
```
|
|
93
100
|
|
|
94
|
-
`vue-cli`等脚手架已默认支持装饰器。
|
|
101
|
+
`vue-cli`等脚手架已默认支持装饰器。
|
|
95
102
|
<br>
|
|
96
103
|
方法只需要返回参数,并注解参数类型。
|
|
97
104
|
|
|
@@ -108,7 +115,7 @@ export default class TestService extends Service {
|
|
|
108
115
|
@RequestMapping("/path", "GET")
|
|
109
116
|
@RequestParam("p1", true)
|
|
110
117
|
@RequestParam("p2", true)
|
|
111
|
-
@RequestParam("p3", false)
|
|
118
|
+
@RequestParam("p3", false)
|
|
112
119
|
get(p1, p2, p3) {
|
|
113
120
|
return {p1, p2, p3};
|
|
114
121
|
}
|
|
@@ -118,17 +125,20 @@ export default class TestService extends Service {
|
|
|
118
125
|
@RequestBody("p2")
|
|
119
126
|
@RequestHeader("Content-Type", "text/plain")
|
|
120
127
|
post(p1, str2) {
|
|
121
|
-
|
|
128
|
+
const defaultValue = {p1: "0x123456"};
|
|
129
|
+
return Object.assign(defaultValue, {p1, p2: str2});
|
|
122
130
|
}
|
|
123
131
|
}
|
|
124
132
|
```
|
|
125
|
-
如果不爽部分IDE的`non-promise inspection info`下划线,也可以给方法加上`async`。
|
|
126
133
|
|
|
134
|
+
如果不爽部分IDE的`non-promise inspection info`下划线,也可以给方法加上`async`。
|
|
127
135
|
|
|
128
136
|
### QueryString Encoding
|
|
137
|
+
|
|
129
138
|
`key-values pair`转查询串算法,运行环境不支持`URLSearchParams`时使用默认算法,也可以自定义。
|
|
130
139
|
<br>
|
|
131
140
|
使用第三方库,`qs`,`querystring`,`url-search-params-polyfill`等,不同运行环境下可能有差异。
|
|
141
|
+
|
|
132
142
|
```javascript
|
|
133
143
|
import qs from "qs";
|
|
134
144
|
import URLSearchParamsParser from "axios-annotations/core/parser";
|
|
@@ -158,7 +168,52 @@ config.prefix = "/api";
|
|
|
158
168
|
@RequestConfig(config)
|
|
159
169
|
@RequestMapping("/test")
|
|
160
170
|
export default class TestService extends Service {
|
|
171
|
+
@RequestMapping("/{id}", "GET")
|
|
172
|
+
foo(id) {
|
|
173
|
+
return {id};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Default Config
|
|
179
|
+
|
|
180
|
+
All Services inject this by default.
|
|
181
|
+
|
|
182
|
+
```javascript
|
|
183
|
+
import {config} from "axios-annotations/core/config";
|
|
184
|
+
|
|
185
|
+
config.host = "192.168.137.1";
|
|
186
|
+
config.port = 8080;
|
|
187
|
+
// ...
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Register Config
|
|
191
|
+
|
|
192
|
+
注册配置,用途:<br>
|
|
161
193
|
|
|
194
|
+
+ 不需要 `export` 导出,使用 `Config.forName(name:string)` 获取。
|
|
195
|
+
+ 部分特殊请求可能需要绕开自身配置,使用`@RequestWith(config)`注解方法,请求将使用指定配置进行构建。
|
|
196
|
+
|
|
197
|
+
```javascript
|
|
198
|
+
new Config("http", "localhost", 9999, "/auth").register("withoutPlugins");
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
```javascript
|
|
202
|
+
@RequestConfig(new Config("http", "localhost", 8888, "/prefix"))
|
|
203
|
+
@RequestMapping("/oauth")
|
|
204
|
+
class AuthService extends Service {
|
|
205
|
+
@PostMapping("/login")
|
|
206
|
+
@RequestWith("withoutPlugins")
|
|
207
|
+
login() {
|
|
208
|
+
// http://localhost:9999/auth/oauth/login
|
|
209
|
+
return {usename: "0x123456", password: "123456"};
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
@GetMapping("/foo")
|
|
213
|
+
bar() {
|
|
214
|
+
// http://localhost:8888/prefix/oauth/foo
|
|
215
|
+
return {};
|
|
216
|
+
}
|
|
162
217
|
}
|
|
163
218
|
```
|
|
164
219
|
|
|
@@ -199,11 +254,13 @@ config.plugins = [
|
|
|
199
254
|
```
|
|
200
255
|
|
|
201
256
|
### <text style="color:red;">Auth Plugin</text>
|
|
257
|
+
|
|
202
258
|
可选的内置插件。
|
|
203
259
|
<br>
|
|
204
260
|
Basic Usage for Auth Plugin.
|
|
205
261
|
<br>
|
|
206
|
-
Take case of `Spring Security OAtuh2.0`。
|
|
262
|
+
Take the case of `Spring Security OAtuh2.0`。
|
|
263
|
+
|
|
207
264
|
```javascript
|
|
208
265
|
// DevServer Proxy Config
|
|
209
266
|
const authCfg = new Config();
|
|
@@ -222,7 +279,7 @@ export default class OAuth2Service extends Service {
|
|
|
222
279
|
@RequestParam("client_secret", false)
|
|
223
280
|
@RequestParam("username", false)
|
|
224
281
|
@RequestParam("password", false)
|
|
225
|
-
@RequestBody()
|
|
282
|
+
@RequestBody()
|
|
226
283
|
token() {
|
|
227
284
|
return {
|
|
228
285
|
grant_type: "password",
|
|
@@ -239,7 +296,7 @@ export default class OAuth2Service extends Service {
|
|
|
239
296
|
@RequestParam("refresh_token", true)
|
|
240
297
|
@RequestParam("scope", false)
|
|
241
298
|
@RequestParam("client_id", true)
|
|
242
|
-
@RequestParam("client_secret", true)
|
|
299
|
+
@RequestParam("client_secret", true)
|
|
243
300
|
refreshToken(session) {
|
|
244
301
|
return {
|
|
245
302
|
grant_type: "refresh_token",
|
|
@@ -251,9 +308,11 @@ export default class OAuth2Service extends Service {
|
|
|
251
308
|
}
|
|
252
309
|
}
|
|
253
310
|
```
|
|
311
|
+
|
|
254
312
|
Implement Authorizer.
|
|
255
313
|
<br/>
|
|
256
|
-
实现`Authorizer
|
|
314
|
+
实现`Authorizer`类。至少需要实现方法`refreshSession`、`onAuthorizedDenied`。如果需要调用`invalidateSession`,还需要重载`onSessionInvalidated`。
|
|
315
|
+
|
|
257
316
|
```javascript
|
|
258
317
|
import Authorizer from "axios-annotations/plugins/auth/authorizer";
|
|
259
318
|
|
|
@@ -268,7 +327,7 @@ export default class OAuth2Authorizer extends Authorizer {
|
|
|
268
327
|
} catch (e) {
|
|
269
328
|
throw e;
|
|
270
329
|
}
|
|
271
|
-
if(!res || !res.data){
|
|
330
|
+
if (!res || !res.data) {
|
|
272
331
|
throw new Error("Seession Unknow Error");
|
|
273
332
|
}
|
|
274
333
|
const nextSession = res.data;
|
|
@@ -282,11 +341,11 @@ export default class OAuth2Authorizer extends Authorizer {
|
|
|
282
341
|
// try logout, clean session.
|
|
283
342
|
// await this.invalidateSession();
|
|
284
343
|
// return;
|
|
285
|
-
|
|
344
|
+
|
|
286
345
|
const res = await new OAuth2Service().token();
|
|
287
346
|
if (res && res.data) {
|
|
288
347
|
const nextSession = res.data;
|
|
289
|
-
|
|
348
|
+
|
|
290
349
|
// save session manually if try re-login
|
|
291
350
|
await this.storageSession(nextSession);
|
|
292
351
|
return nextSession;
|
|
@@ -301,9 +360,11 @@ export default class OAuth2Authorizer extends Authorizer {
|
|
|
301
360
|
}
|
|
302
361
|
}
|
|
303
362
|
```
|
|
363
|
+
|
|
304
364
|
认证信息默认存储在`sessionStorage`。
|
|
305
365
|
<br>
|
|
306
366
|
Implement SessionStorage if store mode changed.
|
|
367
|
+
|
|
307
368
|
```javascript
|
|
308
369
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
309
370
|
import SessionStorage from "axios-annotations/plugins/auth/storage";
|
|
@@ -323,7 +384,10 @@ export default class RNSessionStorage extends SessionStorage {
|
|
|
323
384
|
}
|
|
324
385
|
}
|
|
325
386
|
```
|
|
326
|
-
|
|
387
|
+
|
|
388
|
+
替换掉`Authorizer`存储器,如果通过重载`getSession`和`storageSession`实现验证信息存储,可以忽略掉`sessionStorage`和`sessionKey`,此时`sessionStorage`
|
|
389
|
+
和`sessionKey`不会被调用。
|
|
390
|
+
|
|
327
391
|
```javascript
|
|
328
392
|
export default class OAuth2Authorizer extends Authorizer {
|
|
329
393
|
constructor() {
|
|
@@ -332,7 +396,9 @@ export default class OAuth2Authorizer extends Authorizer {
|
|
|
332
396
|
}
|
|
333
397
|
}
|
|
334
398
|
```
|
|
399
|
+
|
|
335
400
|
在默认配置上设置插件。
|
|
401
|
+
|
|
336
402
|
```javascript
|
|
337
403
|
// config.js
|
|
338
404
|
import AuthorizationPlugin from "axios-annotations/plugins/auth/index";
|
|
@@ -344,7 +410,7 @@ config.port = 8080;
|
|
|
344
410
|
config.protocol = "http";
|
|
345
411
|
config.prefix = "/api";
|
|
346
412
|
|
|
347
|
-
const _authorizer =
|
|
413
|
+
const _authorizer = new OAuth2Authorizer();
|
|
348
414
|
|
|
349
415
|
config.plugins = [
|
|
350
416
|
AuthorizationPlugin(_authorizer)
|
|
@@ -361,9 +427,11 @@ export default class TestService extends Service {
|
|
|
361
427
|
// ...
|
|
362
428
|
}
|
|
363
429
|
```
|
|
430
|
+
|
|
364
431
|
首次登录,需要手动保存认证信息。
|
|
365
432
|
<br>
|
|
366
433
|
but you may store grant information yourself when the first time login succeed.
|
|
434
|
+
|
|
367
435
|
```javascript
|
|
368
436
|
import {authorizer} from "/path/config.js";
|
|
369
437
|
|
|
@@ -379,38 +447,54 @@ import {authorizer} from "/path/config.js";
|
|
|
379
447
|
```
|
|
380
448
|
|
|
381
449
|
## API
|
|
450
|
+
|
|
382
451
|
### Service
|
|
452
|
+
|
|
383
453
|
#### request(method, path, data?, config?): AxiosPromise
|
|
454
|
+
|
|
384
455
|
+ method : string `GET / POST / DELETE...`
|
|
385
456
|
+ path : string `相对路径`
|
|
386
457
|
+ data : Object `请求体`
|
|
387
458
|
+ config : Object `AxiosRequestConfig`
|
|
388
459
|
|
|
389
460
|
#### requestWith(method, path): RequestController
|
|
461
|
+
|
|
390
462
|
+ method : string `GET /POST / DELETE...`
|
|
391
463
|
+ path : string `相对路径`
|
|
392
464
|
|
|
393
465
|
> #### RequestController
|
|
394
466
|
> + param: (key, required?) : RequestController
|
|
395
|
-
>
|
|
467
|
+
>
|
|
468
|
+
+ key : string `标记查询串参数`
|
|
396
469
|
> + required : boolean `默认false,空字符串,null,undefined 将忽略`
|
|
397
470
|
> + header: (header, header) : RequestController
|
|
398
|
-
>
|
|
471
|
+
>
|
|
472
|
+
+ header : string `url 附加参数键值`
|
|
399
473
|
> + header : string | function `字符串,或者接收 send 方法参数的函数,该函数应返回合法值。`
|
|
400
474
|
>
|
|
401
475
|
> + body: (key) : RequestController
|
|
402
|
-
>
|
|
476
|
+
>
|
|
477
|
+
+ key : string `标记参数中请求体`
|
|
403
478
|
>
|
|
404
479
|
> + config: (cfg) : RequestController
|
|
405
|
-
>
|
|
480
|
+
>
|
|
481
|
+
+ cfg : `AxiosRequestConfig`
|
|
406
482
|
>
|
|
407
483
|
> + send: (data) : AxiosPromise<any>
|
|
408
|
-
>
|
|
484
|
+
>
|
|
485
|
+
+ data : object `参数键值对`
|
|
486
|
+
>
|
|
487
|
+
> + with: (name) : RequestController
|
|
488
|
+
>
|
|
489
|
+
+ name : string `config name : 已注册配置名称`
|
|
409
490
|
|
|
410
491
|
### Decorators
|
|
492
|
+
|
|
411
493
|
#### RequestMapping(path, method?)
|
|
494
|
+
|
|
412
495
|
+ path : string `相对路径`
|
|
413
496
|
+ method : string `默认GET,注解服务类时忽略该参数`
|
|
497
|
+
|
|
414
498
|
> 注解方法时,可以使用简化形式:
|
|
415
499
|
> <br>
|
|
416
500
|
> GetMapping(path)
|
|
@@ -424,12 +508,15 @@ import {authorizer} from "/path/config.js";
|
|
|
424
508
|
> DeleteMapping(path)
|
|
425
509
|
|
|
426
510
|
#### RequestParam(name, required?)
|
|
511
|
+
|
|
427
512
|
+ name : string `方法返回值属性`
|
|
428
513
|
+ required : boolean `是否必要参数`
|
|
429
514
|
|
|
430
515
|
#### RequestHeader(header, value)
|
|
516
|
+
|
|
431
517
|
+ header : string `请求头`
|
|
432
|
-
+ value : string `字符串或函数`
|
|
518
|
+
+ value : string `字符串或函数`
|
|
519
|
+
|
|
433
520
|
> 使用函数。
|
|
434
521
|
> ```javascript
|
|
435
522
|
> class TestService extends Service {
|
|
@@ -444,10 +531,11 @@ import {authorizer} from "/path/config.js";
|
|
|
444
531
|
> ```
|
|
445
532
|
|
|
446
533
|
#### RequestBody(name)
|
|
447
|
-
+ name : string `方法返回值属性,默认为 body`
|
|
448
534
|
|
|
535
|
+
+ name : string `方法返回值属性,默认为 body`
|
|
449
536
|
|
|
450
537
|
### Authorizer (Optional Plugin)
|
|
538
|
+
|
|
451
539
|
+ sessionKey : string `键值名称`
|
|
452
540
|
```javascript
|
|
453
541
|
authorizer.sessionKey = "$_SESSION"; // default value
|
|
@@ -461,6 +549,7 @@ import {authorizer} from "/path/config.js";
|
|
|
461
549
|
});
|
|
462
550
|
}
|
|
463
551
|
```
|
|
552
|
+
+ storageSession(session: Session): Promise<void> `存储授权信息`
|
|
464
553
|
+ checkResponse(response:AxiosResponse) : boolean `检查授权是否过期`
|
|
465
554
|
```javascript
|
|
466
555
|
class OAuth2Authorizer extends Authorizer {
|
|
@@ -478,11 +567,31 @@ import {authorizer} from "/path/config.js";
|
|
|
478
567
|
}
|
|
479
568
|
}
|
|
480
569
|
```
|
|
570
|
+
|
|
481
571
|
## 运行环境
|
|
482
|
-
|
|
483
|
-
|
|
572
|
+
|
|
573
|
+
### 微信小程序
|
|
574
|
+
|
|
575
|
+
+ `axios`需要降级:
|
|
576
|
+
|
|
484
577
|
```shell
|
|
485
578
|
npm install axios@0.21.0
|
|
486
579
|
npm install axios-miniprogram-adapter
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
+ 编译报错 `module is not defined`, 在`app.js`头部补充声明:
|
|
583
|
+
|
|
584
|
+
```javascript
|
|
585
|
+
import RequestMapping from "axios-annotations/decorator/request-mapping";
|
|
586
|
+
import GetMapping from "axios-annotations/decorator/get-mapping";
|
|
587
|
+
import PostMapping from "axios-annotations/decorator/post-mapping";
|
|
588
|
+
import PutMapping from "axios-annotations/decorator/put-mapping";
|
|
589
|
+
import DeleteMapping from "axios-annotations/decorator/delete-mapping";
|
|
590
|
+
import PatchMapping from "axios-annotations/decorator/patch-mapping";
|
|
591
|
+
import RequestParam from "axios-annotations/decorator/request-param";
|
|
592
|
+
import RequestBody from "axios-annotations/decorator/request-body";
|
|
593
|
+
import RequestHeader from "axios-annotations/decorator/request-header";
|
|
594
|
+
import RequestConfig from "axios-annotations/decorator/request-config";
|
|
487
595
|
```
|
|
488
|
-
|
|
596
|
+
|
|
597
|
+
+ 更新开发工具以支持装饰器语法。
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("../lib/decorator/request-with");
|
package/lib/core/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function normalizePath(
|
|
1
|
+
"use strict";function normalizePath(r){return r.replace(/\/+/g,"/").replace(/\/$/,"")}function isNullOrEmpty(r){return null==r||""===r}function forward(r,t,e,a,n,o,l,c,u){t="".concat(t)+normalizePath("/".concat(e,"/").concat(a,"/").concat(n));return l&&(t=0<=t.lastIndexOf("?")?"&"+l:"?"+l),r.request(Object.assign({method:o,url:t,data:c},u))}Object.defineProperty(exports,"__esModule",{value:!0}),exports.forward=forward,exports.isNullOrEmpty=isNullOrEmpty,exports.normalizePath=normalizePath;
|
package/lib/core/config.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import {AxiosInstance} from "axios";
|
|
2
2
|
|
|
3
|
-
export type ConfigPluginHandler = (...args: any[]) => ((config: Config) => void);
|
|
4
|
-
|
|
5
3
|
export default class Config {
|
|
4
|
+
constructor(protocol?: string, host?: string, port?: number, prefix?: string, plugins?: ((config: Config) => void)[]);
|
|
5
|
+
|
|
6
|
+
static forName(name: string): Config;
|
|
7
|
+
|
|
6
8
|
host: string;
|
|
7
9
|
|
|
8
10
|
port: number | null | string;
|
|
@@ -17,7 +19,11 @@ export default class Config {
|
|
|
17
19
|
|
|
18
20
|
axios: AxiosInstance;
|
|
19
21
|
|
|
20
|
-
plugins:
|
|
22
|
+
plugins: ((config: Config) => void)[];
|
|
23
|
+
|
|
24
|
+
register(name: string): Config;
|
|
25
|
+
|
|
26
|
+
unregister(): Config;
|
|
21
27
|
}
|
|
22
28
|
|
|
23
29
|
export const config: Config;
|
package/lib/core/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.config=void 0;var _axios=_interopRequireDefault(require("axios"));function _interopRequireDefault(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.config=void 0;var _axios=_interopRequireDefault(require("axios"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function _defineProperty(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var _global_configs=[],Config=function(){function r(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null,i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:null;_classCallCheck(this,r),_defineProperty(this,"_host","localhost"),_defineProperty(this,"_port",8080),_defineProperty(this,"_protocol","http"),_defineProperty(this,"_prefix",""),_defineProperty(this,"_axios",_axios.default.create()),_defineProperty(this,"_plugins",[]),this.init(t,e,n,i,o)}return _createClass(r,[{key:"init",value:function(t,e,n,i,o){this.port=n,t&&(this.protocol=t),e&&(this.host=e),i&&(this.prefix=i),Array.isArray(o)&&(this.plugins=o)}},{key:"host",get:function(){return this._host},set:function(t){this._host=t}},{key:"port",get:function(){return this._port},set:function(t){this._port=t}},{key:"protocol",get:function(){return this._protocol},set:function(t){this._protocol=t}},{key:"prefix",get:function(){return this._prefix},set:function(t){this._prefix=t}},{key:"origin",get:function(){return"".concat(this.protocol,"://").concat(this.host).concat(this.port?":"+this.port:"")}},{key:"baseURL",get:function(){return"".concat(this.origin).concat(this.prefix)}},{key:"axios",get:function(){return this._axios},set:function(t){this._axios=t}},{key:"plugins",get:function(){return this._plugins},set:function(t){this._plugins=t}},{key:"register",value:function(t){var e=this,n=_global_configs.find(function(t){return t.config===e});return n?n.name=t:_global_configs.push({name:t,config:this}),this}},{key:"unregister",value:function(){var e=this,t=_global_configs.findIndex(function(t){return t.config===e});return 0<=t&&_global_configs.splice(t,1),this}}],[{key:"forName",value:function(e){var t=_global_configs.find(function(t){return t.name===e});return t?t.config:null}}]),r}(),config=new(exports.default=Config);exports.config=config;
|
package/lib/core/service.d.ts
CHANGED
|
@@ -10,7 +10,9 @@ export interface RequestController {
|
|
|
10
10
|
|
|
11
11
|
config: (config: Partial<AxiosRequestConfig>) => RequestController;
|
|
12
12
|
|
|
13
|
-
send: (data
|
|
13
|
+
send: (data?: Record<string, any>) => AxiosPromise<any>;
|
|
14
|
+
|
|
15
|
+
with: (registration: string) => RequestController;
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
export default class Service {
|
|
@@ -22,5 +24,5 @@ export default class Service {
|
|
|
22
24
|
|
|
23
25
|
request(method: string, path: string, data?: any, config?: Partial<AxiosRequestConfig>): AxiosPromise<any>;
|
|
24
26
|
|
|
25
|
-
requestWith(method: string, path
|
|
27
|
+
requestWith(method: string, path?: string): RequestController;
|
|
26
28
|
}
|
package/lib/core/service.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ConfigMapping=void 0;var _common=require("./common"),_parser=_interopRequireDefault(require("./parser")),_config=require("./config");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _createForOfIteratorHelper(e,t){var r,n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray(e))||t&&e&&"number"==typeof e.length)return n&&(e=n),r=0,{s:t=function(){},n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(a)throw i}}}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(r="Object"===r&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ConfigMapping={requestHeaders:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[],r={};if(e)for(var n in e){var i=e[n];r[n]="function"==typeof i?i.apply(void 0,t):i}return r},axiosConfig:function(e,t){var r={};return(e||[]).forEach(function(e){"function"==typeof e?Object.assign(r,e.apply(void 0,t)):Object.assign(r,e)}),r},querystring:function(e,t){if(e){var r,n=_parser.default.decode(t);for(r in t){var i=t[r],o=e[r];!o||o.body?_parser.default.delete(n,r):o.required?(0,_common.isNullOrEmpty)(i)&&!_parser.default.has(n,r)&&_parser.default.append(n,r,""):(0,_common.isNullOrEmpty)(i)&&_parser.default.has(n,r)&&_parser.default.delete(n,r)}return _parser.default.encode(n)}return""},body:function(e,t){if(e)for(var r in e)if(!0===e[r].body)return(0,_common.isNullOrEmpty)(t)?void 0:t[r];return null}},Service=(exports.ConfigMapping=ConfigMapping,function(){function n(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null;if(_classCallCheck(this,n),_defineProperty(this,"_path",""),_defineProperty(this,"_config",_config.config),_defineProperty(this,"_headers",{}),_defineProperty(this,"_params",{}),_defineProperty(this,"_configs",{}),_defineProperty(this,"
|
|
1
|
+
"use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ConfigMapping=void 0;var _common=require("./common"),_parser=_interopRequireDefault(require("./parser")),_config=_interopRequireWildcard(require("./config"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};t=_getRequireWildcardCache(t);if(t&&t.has(e))return t.get(e);var r,n,i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&((n=o?Object.getOwnPropertyDescriptor(e,r):null)&&(n.get||n.set)?Object.defineProperty(i,r,n):i[r]=e[r]);return i.default=e,t&&t.set(e,i),i}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _createForOfIteratorHelper(e,t){var r,n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray(e))||t&&e&&"number"==typeof e.length)return n&&(e=n),r=0,{s:t=function(){},n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(a)throw i}}}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(r="Object"===r&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ConfigMapping={requestHeaders:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[],r={};if(e)for(var n in e){var i=e[n];r[n]="function"==typeof i?i.apply(void 0,t):i}return r},axiosConfig:function(e,t){var r={};return(e||[]).forEach(function(e){"function"==typeof e?Object.assign(r,e.apply(void 0,t)):Object.assign(r,e)}),r},querystring:function(e,t){if(!t)return"";if(e){var r,n=_parser.default.decode(t);for(r in t){var i=t[r],o=e[r];!o||o.body?_parser.default.delete(n,r):o.required?(0,_common.isNullOrEmpty)(i)&&!_parser.default.has(n,r)&&_parser.default.append(n,r,""):(0,_common.isNullOrEmpty)(i)&&_parser.default.has(n,r)&&_parser.default.delete(n,r)}return _parser.default.encode(n)}return""},body:function(e,t){if(e)for(var r in e)if(!0===e[r].body)return(0,_common.isNullOrEmpty)(t)?void 0:t[r];return null}},Service=(exports.ConfigMapping=ConfigMapping,function(){function n(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null;if(_classCallCheck(this,n),_defineProperty(this,"_path",""),_defineProperty(this,"_config",_config.config),_defineProperty(this,"_headers",{}),_defineProperty(this,"_params",{}),_defineProperty(this,"_configs",{}),_defineProperty(this,"_for",{}),!this._path&&e&&(this._path=e),"function"==typeof Object.getPrototypeOf?(Object.getPrototypeOf(this)._path&&(this._path=Object.getPrototypeOf(this)._path),Object.getPrototypeOf(this)._config&&(this._config=Object.getPrototypeOf(this)._config)):(this.__proto__._path&&(this._path=this.__proto__._path),this.__proto__._config&&(this._config=this.__proto__._config)),this.config&&this.config.plugins&&this.config.plugins.length){var t,r=_createForOfIteratorHelper(this.config.plugins);try{for(r.s();!(t=r.n()).done;)(0,t.value)(this.config)}catch(e){r.e(e)}finally{r.f()}}}return _createClass(n,[{key:"config",get:function(){return this._config},set:function(e){this._config=e}},{key:"path",get:function(){return this._path},set:function(e){this._path=e}},{key:"params",value:function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{required:!1};if(!this._params||!this._params[e]||!Object.hasOwnProperty.call(this._params[e],t)){var r=Object.assign({required:!1,body:!1},r),n=this._params||{},i=this._params&&this._params[e]||{},o=i[t]||{};if(!0===r.body)for(var a in i)i[a].body=!1;this._params=Object.assign(n,_defineProperty({},e,Object.assign(i,_defineProperty({},t,Object.assign(o,r)))))}}},{key:"headers",value:function(e,t,r){var n=this._headers||{};Object.assign(n,_defineProperty({},e,Object.assign(n[e]||{},_defineProperty({},t,r))))}},{key:"for",value:function(e,t){if(void 0===t)return this._for[e];Object.assign(this._for,_defineProperty({},e,t))}},{key:"configs",value:function(e,t){var r=this._configs||{};Object.assign(r,_defineProperty({},e,(r[e]||[]).concat(t)))}},{key:"pathVariable",value:function(e,t){var r=e||"",e=r.match(/{\w+}/g);return Array.isArray(e)&&e.forEach(function(e){e=e.substring(1,e.length-1);r=r.replaceAll("{".concat(e,"}"),t[e])}),r}},{key:"createRequestConfig",value:function(e,t,r){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:[],i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:[],o=ConfigMapping.querystring(this._params[e],r),r=ConfigMapping.body(this._params[e],r),n=ConfigMapping.requestHeaders(this._headers[e],n),e=ConfigMapping.axiosConfig(this._configs[e],i),i="".concat(t).concat(o?(0<=t.lastIndexOf("?")?"&":"?")+o:"");return Object.assign(e,{headers:Object.assign(n,e.headers||null)}),{path:i,body:r,config:e,query:o}}},{key:"request",value:function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{},t=0<=t.indexOf("http")?t:this.config.baseURL+(0,_common.normalizePath)("/".concat(this.path||"","/").concat(t));return this.config.axios.request(Object.assign({method:e,url:t,data:r},n))}},{key:"requestWith",value:function(o){var a=this,f=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"",s={},c=[],u={},p=this,n={with:function(e){e=_config.default.forName(e);return e&&(p=e),n},param:function(e){return Object.assign(s,_defineProperty({},e,Object.assign(s[e]||{},{required:1<arguments.length&&void 0!==arguments[1]&&arguments[1],body:!1}))),n},header:function(e,t){return Object.assign(u,_defineProperty({},e,t)),n},body:function(e){var t,r=s[e]||{};for(t in s)s[t].body=!1;return Object.assign(s,_defineProperty({},e,Object.assign(r,{required:!1,body:!0}))),n},config:function(e){return c.push(e),n},send:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=ConfigMapping.querystring(s,e),r=ConfigMapping.body(s,e),n=ConfigMapping.requestHeaders(u,[e]),i=ConfigMapping.axiosConfig(c,[e]);return Object.assign(i,{headers:Object.assign(n,i.headers||null)}),p?(0,_common.forward)(p.axios,p.origin,p.prefix,a.path,f,o,t,r,i):(n="".concat(a.pathVariable(f||"",e)).concat(t?(0<=f.lastIndexOf("?")?"&":"?")+t:""),a.request(o,n,r,i))}};return n}}]),n}());exports.default=Service;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=DeleteMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function DeleteMapping(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=DeleteMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function DeleteMapping(){return(0,_requestMapping.default)(0<arguments.length&&void 0!==arguments[0]?arguments[0]:"","DELETE")}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=GetMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function GetMapping(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=GetMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function GetMapping(){return(0,_requestMapping.default)(0<arguments.length&&void 0!==arguments[0]?arguments[0]:"","GET")}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=PatchMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function PatchMapping(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=PatchMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function PatchMapping(){return(0,_requestMapping.default)(0<arguments.length&&void 0!==arguments[0]?arguments[0]:"","PATCH")}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=PostMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function PostMapping(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=PostMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function PostMapping(){return(0,_requestMapping.default)(0<arguments.length&&void 0!==arguments[0]?arguments[0]:"","POST")}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=PutMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function PutMapping(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=PutMapping;var _requestMapping=_interopRequireDefault(require("./request-mapping"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function PutMapping(){return(0,_requestMapping.default)(0<arguments.length&&void 0!==arguments[0]?arguments[0]:"","PUT")}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function RequestMapping(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=RequestMapping;var _config=_interopRequireDefault(require("../core/config")),_common=require("../core/common");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function RequestMapping(h){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;return function(e,p,t){var s;t?(l=l||"GET",s=t.value,t.value=function(){for(var a=this,e=arguments.length,u=new Array(e),t=0;t<e;t++)u[t]=arguments[t];var r,o,n,f=s.apply(this,u)||{},i=this.for(p),c=i?_config.default.forName(i):null;return f&&Object.hasOwnProperty.call(f,"then")&&"function"==typeof f.then?new Promise(function(n,i){f.then(function(e){var e=a.createRequestConfig(p,a.pathVariable(h||"",e),e,u,u),t=e.path,r=e.body,o=e.config,e=e.query;(c?(0,_common.forward)(c.axios,c.origin,c.prefix,a.path,h,l,e,r,o):a.request(l,t,r,o)).then(n).catch(i)})}):(r=(i=this.createRequestConfig(p,this.pathVariable(h||"",f),f,u,u)).path,o=i.body,n=i.config,i=i.query,c?(0,_common.forward)(c.axios,c.origin,c.prefix,this.path,h,l,i,o,n):this.request(l,r,o,n))}):e.prototype._path=h}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function RequestWith(i){return function(e,t,u){var r;u&&(r=u.value,u.value=function(){return this.for(t,i),r.apply(this,arguments)})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=RequestWith;
|
|
@@ -29,15 +29,15 @@ export default class Authorizer {
|
|
|
29
29
|
|
|
30
30
|
sessionHistory: SessionHistory;
|
|
31
31
|
|
|
32
|
-
getSession(): Promise<Session
|
|
32
|
+
getSession(): Promise<Partial<Session>>;
|
|
33
33
|
|
|
34
34
|
storageSession(session: Session): Promise<void>;
|
|
35
35
|
|
|
36
|
-
refreshSession(session: Session):
|
|
36
|
+
refreshSession(session: Session): Promise<Partial<Session>> | Promise<Record<string, any>> | Promise<any>;
|
|
37
37
|
|
|
38
|
-
withAuthentication(request: AxiosRequestConfig, session: Session): void;
|
|
38
|
+
withAuthentication(request: AxiosRequestConfig, session: Partial<Session>): void;
|
|
39
39
|
|
|
40
|
-
checkSession(request: AxiosRequestConfig, session: Session): boolean;
|
|
40
|
+
checkSession(request: AxiosRequestConfig, session: Partial<Session>): boolean;
|
|
41
41
|
|
|
42
42
|
checkResponse(response: Response): boolean;
|
|
43
43
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _storage=_interopRequireDefault(require("./storage")),_history=_interopRequireDefault(require("./history"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function asyncGeneratorStep(e,t,r,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _storage=_interopRequireDefault(require("./storage")),_history=_interopRequireDefault(require("./history"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function asyncGeneratorStep(e,t,n,r,s,o,i){try{var a=e[o](i),u=a.value}catch(e){return void n(e)}a.done?t(u):Promise.resolve(u).then(r,s)}function _asyncToGenerator(a){return function(){var e=this,i=arguments;return new Promise(function(t,n){var r=a.apply(e,i);function s(e){asyncGeneratorStep(r,t,n,s,o,"next",e)}function o(e){asyncGeneratorStep(r,t,n,s,o,"throw",e)}s(void 0)})}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Authorizer=function(){function e(){_classCallCheck(this,e),_defineProperty(this,"_sessionKey","$_SESSION"),_defineProperty(this,"_sessionStorage",new _storage.default),_defineProperty(this,"_sessionHistory",new _history.default)}var t,n,r,s,o;return _createClass(e,[{key:"sessionKey",get:function(){return this._sessionKey},set:function(e){this._sessionKey=e}},{key:"sessionStorage",get:function(){return this._sessionStorage},set:function(e){this._sessionStorage=e}},{key:"sessionHistory",get:function(){return this._sessionHistory},set:function(e){this._sessionHistory=e}},{key:"getSession",value:(o=_asyncToGenerator(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sessionStorage.get(this.sessionKey);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e,this)})),function(){return o.apply(this,arguments)})},{key:"storageSession",value:(s=_asyncToGenerator(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sessionStorage.set(this.sessionKey,t);case 2:case"end":return e.stop()}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"refreshSession",value:(r=_asyncToGenerator(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",null);case 1:case"end":return e.stop()}},e)})),function(e){return r.apply(this,arguments)})},{key:"withAuthentication",value:function(e,t){var n,r;t&&(n=t.access_token,r=t.accessToken,t=t.token,(n||r||t)&&(e.headers.Authorization="Bearer "+(n||r||t)))}},{key:"checkSession",value:function(e,t){e=e.headers.Authorization||e.headers.authorization,e=e&&e.split(" ")[1]||"";return(t.access_token||t.accessToken||t.token)!==e&&(!this.sessionHistory.size||!this.sessionHistory.check(e))}},{key:"checkResponse",value:function(e){return 401!==(e||{status:0}).status}},{key:"onAuthorizedDenied",value:(n=_asyncToGenerator(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:throw t;case 1:case"end":return e.stop()}},e)})),function(e){return n.apply(this,arguments)})},{key:"onSessionInvalidated",value:function(){}},{key:"invalidateSession",value:(t=_asyncToGenerator(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sessionStorage.remove(this.sessionKey);case 2:this.onSessionInvalidated();case 3:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})}]),e}();exports.default=Authorizer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _common=require("../../core/common");function _classCallCheck(e,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _common=require("../../core/common");function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var SessionHistory=function(){function e(){_classCallCheck(this,e),_defineProperty(this,"_history",new Array(10)),_defineProperty(this,"_position",0),_defineProperty(this,"_size",0)}return _createClass(e,[{key:"size",get:function(){return this._size}},{key:"add",value:function(t){var e,r,i,n,s;Object.keys(t).every(function(e){return(0,_common.isNullOrEmpty)(t[e])})||(e=t.access_token,r=t.accessToken,i=t.token,n=t.refresh_token,s=t.refreshToken,this._history[this._position]=Object.assign({},t,{access_token:e||r||i,refresh_token:n||s,invalid:!1}),this._position++,this._position%=this._history.length,this._size=this._history.reduce(function(e,t){return t?e+1:e},0))}},{key:"check",value:function(i){return this._history.some(function(e){var t,r;return!!e&&(t=e.access_token,r=e.accessToken,e=e.token,(t||r||e)===i)})}},{key:"deprecate",value:function(e){var r=0,i=e.refresh_token,n=e.refreshToken,e=this._history.find(function(e,t){return r=t,!!e&&(e.refresh_token||e.refreshToken)===(i||n)});e&&(e.invalid=!0,e=this._history[0],this._history[0]=this._history[r],this._history[r]=e)}},{key:"clean",value:function(){for(var e=0;e<this._history.length;++e){var t=this._history[e];t&&t.invalid&&(this._history[e]=null)}this._size=this._history.reduce(function(e,t){return t?e+1:e},0)}},{key:"isDeprecated",value:function(i){return this._history.some(function(e){if(e){var t=i.refresh_token,r=i.refreshToken;if(t||r)return(e.refresh_token||e.refreshToken)===(t||r)&&e.invalid}return!1})}}]),e}();exports.default=SessionHistory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=AuthorizationPlugin;var _queue=_interopRequireDefault(require("./queue"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function asyncGeneratorStep(e,r,t,n,s,a,o){try{var u=e[a](o),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=AuthorizationPlugin;var _queue=_interopRequireDefault(require("./queue"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function asyncGeneratorStep(e,r,t,n,s,a,o){try{var u=e[a](o),i=u.value}catch(e){return void t(e)}u.done?r(i):Promise.resolve(i).then(n,s)}function _asyncToGenerator(u){return function(){var e=this,o=arguments;return new Promise(function(r,t){var n=u.apply(e,o);function s(e){asyncGeneratorStep(n,r,t,s,a,"next",e)}function a(e){asyncGeneratorStep(n,r,t,s,a,"throw",e)}s(void 0)})}}function AuthorizationPlugin(u){return function(e){var r,t,s=!1,a=null,o=new _queue.default(u);e.axios.interceptors.response.use(function(e){return a&&(u.sessionHistory.add(a),a=null),e},(r=_asyncToGenerator(regeneratorRuntime.mark(function e(r){var t,n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=r.response,u.checkResponse(t)){e.next=66;break}if(s){e.next=61;break}return s=!0,e.next=6,u.getSession();case 6:if(n=e.sent,u.sessionHistory.isDeprecated(n))return e.prev=8,e.next=11,u.onAuthorizedDenied(r);e.next=21;break;case 11:u.sessionHistory.clean(),e.next=17;break;case 14:throw e.prev=14,e.t0=e.catch(8),r;case 17:return e.prev=17,s=!1,o.clear(),e.finish(17);case 21:if(a=n,u.checkSession(r.config,n)){e.next=48;break}return e.prev=23,e.t1=u,e.next=27,u.refreshSession(n);case 27:return e.t2=e.sent,e.next=30,e.t1.storageSession.call(e.t1,e.t2);case 30:e.next=48;break;case 32:return e.prev=32,e.t3=e.catch(23),u.sessionHistory.deprecate(n),e.prev=35,e.next=38,u.onAuthorizedDenied(e.t3);case 38:u.sessionHistory.clean(),e.next=44;break;case 41:throw e.prev=41,e.t4=e.catch(35),r;case 44:return e.prev=44,s=!1,o.clear(),e.finish(44);case 48:for(s=!1;o.size;)o.pop();return e.prev=50,e.next=53,o.resend(r);case 53:return e.abrupt("return",e.sent);case 56:throw e.prev=56,e.t5=e.catch(50),e.t5;case 59:e.next=64;break;case 61:return e.next=63,o.push(r);case 63:return e.abrupt("return",e.sent);case 64:e.next=67;break;case 66:throw r;case 67:case"end":return e.stop()}},e,null,[[8,14,17,21],[23,32],[35,41,44,48],[50,56]])})),function(e){return r.apply(this,arguments)})),e.axios.interceptors.request.use((t=_asyncToGenerator(regeneratorRuntime.mark(function e(r){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.getSession();case 2:return t=e.sent,u.withAuthentication(r,t),e.abrupt("return",r);case 5:case"end":return e.stop()}},e)})),function(e){return t.apply(this,arguments)}))}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function CachePlugin(){return function(e){var t=e.axios.defaults.adapter;e.axios.defaults.adapter=function(e){return t(e)}}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=CachePlugin;
|