@lanaqi/rsr 0.0.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -0
- package/dist/access/aaa.d.ts +177 -0
- package/dist/access/addon.d.ts +92 -0
- package/dist/access/blocker.d.ts +94 -0
- package/dist/access/common.d.ts +63 -0
- package/dist/access/context.d.ts +162 -0
- package/dist/access/guarder.d.ts +173 -0
- package/dist/access/handler.d.ts +183 -0
- package/dist/access/index.d.ts +56 -0
- package/dist/access/manager.d.ts +109 -0
- package/dist/access/matcher.d.ts +70 -0
- package/dist/access/navigator.d.ts +33 -0
- package/dist/access/recorder.d.ts +291 -0
- package/dist/access/resource.d.ts +215 -0
- package/dist/access/storer.d.ts +197 -0
- package/dist/access/voter.d.ts +156 -0
- package/dist/addons/index.d.ts +4 -0
- package/dist/addons/micro.d.ts +53 -0
- package/dist/bridge.d.ts +8 -0
- package/dist/builder/blocker.d.ts +24 -0
- package/dist/builder/builder.d.ts +9 -0
- package/dist/builder/context.d.ts +112 -0
- package/dist/builder/guarder.d.ts +54 -0
- package/dist/builder/handler.d.ts +21 -0
- package/dist/builder/index.d.ts +48 -0
- package/dist/builder/manager.d.ts +55 -0
- package/dist/builder/matcher.d.ts +37 -0
- package/dist/builder/navigator.d.ts +22 -0
- package/dist/builder/recorder.d.ts +11 -0
- package/dist/builder/resource.d.ts +101 -0
- package/dist/builder/storer.d.ts +83 -0
- package/dist/builder/voter.d.ts +41 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.js +1778 -0
- package/dist/security/blocker.d.ts +14 -0
- package/dist/security/index.d.ts +8 -0
- package/dist/security/provider.d.ts +31 -0
- package/dist/support/aaa.d.ts +29 -0
- package/dist/support/blocker.d.ts +28 -0
- package/dist/support/index.d.ts +20 -0
- package/dist/support/permission.d.ts +5 -0
- package/dist/support/signature.d.ts +21 -0
- package/dist/support/user.d.ts +14 -0
- package/dist/warpper/index.d.ts +4 -0
- package/dist/warpper/permission.d.ts +24 -0
- package/package.json +74 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import type { AccessPermission } from './common';
|
|
2
|
+
/**
|
|
3
|
+
* 访问投票器
|
|
4
|
+
*/
|
|
5
|
+
export interface AccessVoter {
|
|
6
|
+
/**
|
|
7
|
+
* 进行投票
|
|
8
|
+
* @param term 条件
|
|
9
|
+
* @param have 拥有
|
|
10
|
+
*/
|
|
11
|
+
vote(term: Set<AccessPermission>, have: Set<AccessPermission>): boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 缓存投票器(抽象类)
|
|
15
|
+
*/
|
|
16
|
+
export declare abstract class CacheVoter implements AccessVoter {
|
|
17
|
+
/**
|
|
18
|
+
* 缓存映射
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
21
|
+
private readonly cache;
|
|
22
|
+
/**
|
|
23
|
+
* 构造函数
|
|
24
|
+
*/
|
|
25
|
+
protected constructor();
|
|
26
|
+
/**
|
|
27
|
+
* 缓存键
|
|
28
|
+
* @param term 条件
|
|
29
|
+
* @param have 拥有
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
private cacheKey;
|
|
33
|
+
/**
|
|
34
|
+
* 执行投票
|
|
35
|
+
* @param term 条件
|
|
36
|
+
* @param have 拥有
|
|
37
|
+
* @protected
|
|
38
|
+
*/
|
|
39
|
+
protected abstract execVote(term: Set<AccessPermission>, have: Set<AccessPermission>): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* 清理缓存
|
|
42
|
+
*/
|
|
43
|
+
clearCache(): void;
|
|
44
|
+
/**
|
|
45
|
+
* 进行投票
|
|
46
|
+
* @param term 条件
|
|
47
|
+
* @param have 拥有
|
|
48
|
+
*/
|
|
49
|
+
vote(term: Set<AccessPermission>, have: Set<AccessPermission>): boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 简单投票器
|
|
53
|
+
*/
|
|
54
|
+
export declare class SimpleVoter extends CacheVoter {
|
|
55
|
+
/**
|
|
56
|
+
* 包含全部
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
private all;
|
|
60
|
+
/**
|
|
61
|
+
* 构造函数
|
|
62
|
+
* @param all 包含全部
|
|
63
|
+
*/
|
|
64
|
+
constructor(all?: boolean);
|
|
65
|
+
/**
|
|
66
|
+
* 设置包含全部
|
|
67
|
+
* @param all 包含全部
|
|
68
|
+
*/
|
|
69
|
+
setAll(all: boolean): void;
|
|
70
|
+
/**
|
|
71
|
+
* 执行投票
|
|
72
|
+
* @param term 条件
|
|
73
|
+
* @param have 拥有
|
|
74
|
+
* @protected
|
|
75
|
+
*/
|
|
76
|
+
protected execVote(term: Set<AccessPermission>, have: Set<AccessPermission>): boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 关系解析器
|
|
80
|
+
*/
|
|
81
|
+
export type RelationResolver = (relation: string) => string;
|
|
82
|
+
/**
|
|
83
|
+
* 原始关系解析器
|
|
84
|
+
* @param relation 层级关系
|
|
85
|
+
*/
|
|
86
|
+
export declare const OriginRelationResolver: (relation: string) => string;
|
|
87
|
+
/**
|
|
88
|
+
* 层级投票器
|
|
89
|
+
*/
|
|
90
|
+
export declare class HierarchyVoter extends CacheVoter {
|
|
91
|
+
/**
|
|
92
|
+
* 层级映射
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
private readonly mapping;
|
|
96
|
+
/**
|
|
97
|
+
* 层级关系:a>b;b>c;c>d;e>f;f>g
|
|
98
|
+
* @private
|
|
99
|
+
*/
|
|
100
|
+
private relation;
|
|
101
|
+
/**
|
|
102
|
+
* 包含全部
|
|
103
|
+
* @private
|
|
104
|
+
*/
|
|
105
|
+
private all;
|
|
106
|
+
/**
|
|
107
|
+
* 关系解析器
|
|
108
|
+
* @private
|
|
109
|
+
*/
|
|
110
|
+
private resolver;
|
|
111
|
+
/**
|
|
112
|
+
* 构造函数
|
|
113
|
+
* @param resolver 关系解析器
|
|
114
|
+
* @param relation 层级关系:a>b;b>c;c>d;e>f;f>g
|
|
115
|
+
* @param all 包含全部
|
|
116
|
+
*/
|
|
117
|
+
constructor(resolver: RelationResolver, relation: string, all?: boolean);
|
|
118
|
+
/**
|
|
119
|
+
* 设置包含全部
|
|
120
|
+
* @param all 包含全部
|
|
121
|
+
*/
|
|
122
|
+
setAll(all: boolean): void;
|
|
123
|
+
/**
|
|
124
|
+
* 重置层级关系
|
|
125
|
+
* @param relation 层级关系
|
|
126
|
+
*/
|
|
127
|
+
resetRelation(relation: string): void;
|
|
128
|
+
/**
|
|
129
|
+
* 重置关系解析器
|
|
130
|
+
* @param resolver 关系解析器
|
|
131
|
+
*/
|
|
132
|
+
resetResolver(resolver: RelationResolver): void;
|
|
133
|
+
/**
|
|
134
|
+
* 初始化层级
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
private initHierarchy;
|
|
138
|
+
/**
|
|
139
|
+
* p1 包含 p2
|
|
140
|
+
* @param p1 权限1
|
|
141
|
+
* @param p2 权限2
|
|
142
|
+
* @private
|
|
143
|
+
*/
|
|
144
|
+
private includePermission;
|
|
145
|
+
/**
|
|
146
|
+
* 执行投票
|
|
147
|
+
* @param term 条件
|
|
148
|
+
* @param have 拥有
|
|
149
|
+
* @protected
|
|
150
|
+
*/
|
|
151
|
+
protected execVote(term: Set<AccessPermission>, have: Set<AccessPermission>): boolean;
|
|
152
|
+
/**
|
|
153
|
+
* 获取层级关系
|
|
154
|
+
*/
|
|
155
|
+
getRelation(): string;
|
|
156
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { AbstractAddon, type AccessContext, type AccessManager, type AccessPath, type AccessResource } from '../access';
|
|
2
|
+
/**
|
|
3
|
+
* MicroApp 插件实现
|
|
4
|
+
*/
|
|
5
|
+
export declare class MicroAppAddon extends AbstractAddon {
|
|
6
|
+
/**
|
|
7
|
+
* 层级连接忽略
|
|
8
|
+
*/
|
|
9
|
+
static readonly HIERARCHY_JOIN_IGNORE: string;
|
|
10
|
+
/**
|
|
11
|
+
* 层级连接合并
|
|
12
|
+
*/
|
|
13
|
+
static readonly HIERARCHY_JOIN_MERGE: string;
|
|
14
|
+
/**
|
|
15
|
+
* 层级连接父级
|
|
16
|
+
*/
|
|
17
|
+
static readonly HIERARCHY_JOIN_PARENT: string;
|
|
18
|
+
/**
|
|
19
|
+
* 微连接
|
|
20
|
+
*/
|
|
21
|
+
private microJoin;
|
|
22
|
+
/**
|
|
23
|
+
* 基础路径连接
|
|
24
|
+
* @private
|
|
25
|
+
*/
|
|
26
|
+
private readonly basenameJoin;
|
|
27
|
+
/**
|
|
28
|
+
* 层级连接
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
private readonly hierarchyJoin;
|
|
32
|
+
/**
|
|
33
|
+
* 构造函数
|
|
34
|
+
* @param basenameJoin 基础路径连接
|
|
35
|
+
* @param hierarchyJoin 层级连接
|
|
36
|
+
*/
|
|
37
|
+
constructor(basenameJoin: boolean, hierarchyJoin: string);
|
|
38
|
+
/**
|
|
39
|
+
* 守护之前
|
|
40
|
+
* @param context 上下文
|
|
41
|
+
* @param manager 管理器
|
|
42
|
+
* @param currentPath 当前路径
|
|
43
|
+
* @param currentResource 当前资源
|
|
44
|
+
* @override
|
|
45
|
+
*/
|
|
46
|
+
guardBefore(context: AccessContext, manager: AccessManager, currentPath: AccessPath, currentResource: AccessResource | null): void;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* MicroApp 插件函数
|
|
50
|
+
* @param basenameJoin 基础路径连接
|
|
51
|
+
* @param hierarchyJoin 层级连接
|
|
52
|
+
*/
|
|
53
|
+
export declare const microAppAddon: (basenameJoin?: boolean, hierarchyJoin?: string) => MicroAppAddon;
|
package/dist/bridge.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type AccessBlocker } from '../access';
|
|
2
|
+
import type { AccessBuilder } from './builder';
|
|
3
|
+
/**
|
|
4
|
+
* 访问阻断器构建器
|
|
5
|
+
*/
|
|
6
|
+
export declare class AccessBlockerBuilder implements AccessBuilder<AccessBlocker> {
|
|
7
|
+
/**
|
|
8
|
+
* 是否多阻断器
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
private _multi?;
|
|
12
|
+
/**
|
|
13
|
+
* 标记多阻断器
|
|
14
|
+
*/
|
|
15
|
+
multi(): AccessBlockerBuilder;
|
|
16
|
+
/**
|
|
17
|
+
* 标记单阻断器
|
|
18
|
+
*/
|
|
19
|
+
single(): AccessBlockerBuilder;
|
|
20
|
+
/**
|
|
21
|
+
* 构建
|
|
22
|
+
*/
|
|
23
|
+
build(): AccessBlocker;
|
|
24
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { type AccessContext, type AccessMatcher, type AccessNavigator, type AccessRecorder, type AccessResource, type AccessStorer, type AccessValidator, type AccessVoter } from '../access';
|
|
2
|
+
import type { NavigateFunction } from '../bridge';
|
|
3
|
+
import type { AccessBuilder } from './builder';
|
|
4
|
+
import { AccessMatcherBuilder } from './matcher';
|
|
5
|
+
import { AccessNavigatorBuilder } from './navigator';
|
|
6
|
+
import { AccessRecorderBuilder } from './recorder';
|
|
7
|
+
import { AccessResourceBuilder } from './resource';
|
|
8
|
+
import { AccessStorerBuilder } from './storer';
|
|
9
|
+
import { AccessVoterBuilder } from './voter';
|
|
10
|
+
/**
|
|
11
|
+
* 访问上下文构建器
|
|
12
|
+
*/
|
|
13
|
+
export declare class AccessContextBuilder implements AccessBuilder<AccessContext> {
|
|
14
|
+
/**
|
|
15
|
+
* 记录器
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
private _recorder?;
|
|
19
|
+
/**
|
|
20
|
+
* 投票器
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
private _voter?;
|
|
24
|
+
/**
|
|
25
|
+
* 存储器
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
private _storer?;
|
|
29
|
+
/**
|
|
30
|
+
* 匹配器
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
private _matcher?;
|
|
34
|
+
/**
|
|
35
|
+
* 导航器
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
private _navigator?;
|
|
39
|
+
/**
|
|
40
|
+
* 层级
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
private _hierarchy?;
|
|
44
|
+
/**
|
|
45
|
+
* 认证验证器
|
|
46
|
+
* @private
|
|
47
|
+
*/
|
|
48
|
+
private _validator?;
|
|
49
|
+
/**
|
|
50
|
+
* 资源集合
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
private readonly _resources;
|
|
54
|
+
/**
|
|
55
|
+
* 导航函数
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
private _navigate?;
|
|
59
|
+
/**
|
|
60
|
+
* 设置记录器
|
|
61
|
+
* @param recorder 记录器
|
|
62
|
+
*/
|
|
63
|
+
recorder(recorder: AccessRecorder | ((builder: AccessRecorderBuilder) => AccessRecorder)): AccessContextBuilder;
|
|
64
|
+
/**
|
|
65
|
+
* 设置投票器
|
|
66
|
+
* @param voter 投票器或投票构建器
|
|
67
|
+
*/
|
|
68
|
+
voter(voter: AccessVoter | ((builder: AccessVoterBuilder) => AccessVoter)): AccessContextBuilder;
|
|
69
|
+
/**
|
|
70
|
+
* 设置存储器
|
|
71
|
+
* @param storer 存储器或存储构建器
|
|
72
|
+
*/
|
|
73
|
+
storer(storer: AccessStorer | ((builder: AccessStorerBuilder) => AccessStorer)): AccessContextBuilder;
|
|
74
|
+
/**
|
|
75
|
+
* 设置匹配器
|
|
76
|
+
* @param matcher 匹配器或匹配构建器
|
|
77
|
+
*/
|
|
78
|
+
matcher(matcher: AccessMatcher | ((builder: AccessMatcherBuilder) => AccessMatcher)): AccessContextBuilder;
|
|
79
|
+
/**
|
|
80
|
+
* 设置导航器
|
|
81
|
+
* @param navigator 导航器或导航构建器
|
|
82
|
+
*/
|
|
83
|
+
navigator(navigator: AccessNavigator | ((builder: AccessNavigatorBuilder) => AccessNavigator)): AccessContextBuilder;
|
|
84
|
+
/**
|
|
85
|
+
* 设置层级
|
|
86
|
+
* @param hierarchy 层级:a>b;b>c;c>d;e>f;f>g
|
|
87
|
+
*/
|
|
88
|
+
hierarchy(hierarchy: string): AccessContextBuilder;
|
|
89
|
+
/**
|
|
90
|
+
* 设置认证验证器
|
|
91
|
+
* @param validator 认证验证器
|
|
92
|
+
*/
|
|
93
|
+
validator(validator: AccessValidator): AccessContextBuilder;
|
|
94
|
+
/**
|
|
95
|
+
* 添加资源
|
|
96
|
+
* @param builder 资源构建器
|
|
97
|
+
*/
|
|
98
|
+
resource(builder: (builder: AccessResourceBuilder) => AccessResource): AccessContextBuilder;
|
|
99
|
+
/**
|
|
100
|
+
* 设置导航函数
|
|
101
|
+
* @param navigate 导航函数
|
|
102
|
+
*/
|
|
103
|
+
navigate(navigate: NavigateFunction): AccessContextBuilder;
|
|
104
|
+
/**
|
|
105
|
+
* 默认资源集合
|
|
106
|
+
*/
|
|
107
|
+
drs(): AccessContextBuilder;
|
|
108
|
+
/**
|
|
109
|
+
* 构建
|
|
110
|
+
*/
|
|
111
|
+
build(): AccessContext;
|
|
112
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type AccessAddons, type AccessContext, type AccessManager, type AccessProvider } from '../access';
|
|
2
|
+
import type { NavigateFunction } from '../bridge';
|
|
3
|
+
import type { AccessBuilder } from './builder';
|
|
4
|
+
import { AccessContextBuilder } from './context';
|
|
5
|
+
import { AccessManagerBuilder } from './manager';
|
|
6
|
+
/**
|
|
7
|
+
* 访问守护器构建器
|
|
8
|
+
*/
|
|
9
|
+
export declare class AccessGuarderBuilder implements AccessBuilder<AccessProvider> {
|
|
10
|
+
/**
|
|
11
|
+
* 上下文
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
private _context?;
|
|
15
|
+
/**
|
|
16
|
+
* 管理器
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
19
|
+
private _manager?;
|
|
20
|
+
/**
|
|
21
|
+
* 插件集合
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
24
|
+
private readonly _addons;
|
|
25
|
+
/**
|
|
26
|
+
* 导航函数
|
|
27
|
+
* @private
|
|
28
|
+
*/
|
|
29
|
+
private _navigate?;
|
|
30
|
+
/**
|
|
31
|
+
* 设置上下文
|
|
32
|
+
* @param context 上下文
|
|
33
|
+
*/
|
|
34
|
+
context(context: AccessContext | ((builder: AccessContextBuilder) => AccessContext)): AccessGuarderBuilder;
|
|
35
|
+
/**
|
|
36
|
+
* 设置管理器
|
|
37
|
+
* @param manager 管理器
|
|
38
|
+
*/
|
|
39
|
+
manager(manager: AccessManager | ((builder: AccessManagerBuilder) => AccessManager)): AccessGuarderBuilder;
|
|
40
|
+
/**
|
|
41
|
+
* 设置插件集合
|
|
42
|
+
* @param addons 插件集合
|
|
43
|
+
*/
|
|
44
|
+
addons(...addons: AccessAddons): AccessGuarderBuilder;
|
|
45
|
+
/**
|
|
46
|
+
* 设置导航函数
|
|
47
|
+
* @param navigate 导航函数
|
|
48
|
+
*/
|
|
49
|
+
navigate(navigate: NavigateFunction): AccessGuarderBuilder;
|
|
50
|
+
/**
|
|
51
|
+
* 构建
|
|
52
|
+
*/
|
|
53
|
+
build(): AccessProvider;
|
|
54
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type AccessHandler, type BehaveConfig } from '../access';
|
|
2
|
+
import type { AccessBuilder } from './builder';
|
|
3
|
+
/**
|
|
4
|
+
* 访问处理器构建器
|
|
5
|
+
*/
|
|
6
|
+
export declare class AccessHandlerBuilder implements AccessBuilder<AccessHandler> {
|
|
7
|
+
/**
|
|
8
|
+
* 行为配置
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
private _config?;
|
|
12
|
+
/**
|
|
13
|
+
* 设置行为配置
|
|
14
|
+
* @param config 行为配置
|
|
15
|
+
*/
|
|
16
|
+
config(config: BehaveConfig): AccessHandlerBuilder;
|
|
17
|
+
/**
|
|
18
|
+
* 构建
|
|
19
|
+
*/
|
|
20
|
+
build(): AccessHandler;
|
|
21
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 访问构建器
|
|
3
|
+
*/
|
|
4
|
+
export * from './builder';
|
|
5
|
+
/**
|
|
6
|
+
* 访问记录器构建器
|
|
7
|
+
*/
|
|
8
|
+
export * from './recorder';
|
|
9
|
+
/**
|
|
10
|
+
* 访问投票器构建器
|
|
11
|
+
*/
|
|
12
|
+
export * from './voter';
|
|
13
|
+
/**
|
|
14
|
+
* 访问存储器构建器
|
|
15
|
+
*/
|
|
16
|
+
export * from './storer';
|
|
17
|
+
/**
|
|
18
|
+
* 访问资源构建器
|
|
19
|
+
*/
|
|
20
|
+
export * from './resource';
|
|
21
|
+
/**
|
|
22
|
+
* 访问匹配器构建器
|
|
23
|
+
*/
|
|
24
|
+
export * from './matcher';
|
|
25
|
+
/**
|
|
26
|
+
* 访问导航器构建器
|
|
27
|
+
*/
|
|
28
|
+
export * from './navigator';
|
|
29
|
+
/**
|
|
30
|
+
* 访问上下文构建器
|
|
31
|
+
*/
|
|
32
|
+
export * from './context';
|
|
33
|
+
/**
|
|
34
|
+
* 访问处理器构建器
|
|
35
|
+
*/
|
|
36
|
+
export * from './handler';
|
|
37
|
+
/**
|
|
38
|
+
* 访问阻断器构建器
|
|
39
|
+
*/
|
|
40
|
+
export * from './blocker';
|
|
41
|
+
/**
|
|
42
|
+
* 访问管理器构建器
|
|
43
|
+
*/
|
|
44
|
+
export * from './manager';
|
|
45
|
+
/**
|
|
46
|
+
* 访问守护器构建器
|
|
47
|
+
*/
|
|
48
|
+
export * from './guarder';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type AccessBlocker, type AccessHandler, type AccessManager, type BehaveConfig } from '../access';
|
|
2
|
+
import { AccessBlockerBuilder } from './blocker';
|
|
3
|
+
import type { AccessBuilder } from './builder';
|
|
4
|
+
import { AccessHandlerBuilder } from './handler';
|
|
5
|
+
/**
|
|
6
|
+
* 访问管理器构建器
|
|
7
|
+
*/
|
|
8
|
+
export declare class AccessManagerBuilder implements AccessBuilder<AccessManager> {
|
|
9
|
+
/**
|
|
10
|
+
* 是否禁用
|
|
11
|
+
*/
|
|
12
|
+
private _disabled;
|
|
13
|
+
/**
|
|
14
|
+
* 处理器
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
private _handler?;
|
|
18
|
+
/**
|
|
19
|
+
* 阻断器
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
private _blocker?;
|
|
23
|
+
/**
|
|
24
|
+
* 行为配置
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
private _behave?;
|
|
28
|
+
/**
|
|
29
|
+
* 设置已禁用
|
|
30
|
+
*/
|
|
31
|
+
disabled(): AccessManagerBuilder;
|
|
32
|
+
/**
|
|
33
|
+
* 设置处理器
|
|
34
|
+
* @param handler 处理器或处理构建器
|
|
35
|
+
*/
|
|
36
|
+
handler(handler: AccessHandler | ((builder: AccessHandlerBuilder) => AccessHandler)): AccessManagerBuilder;
|
|
37
|
+
/**
|
|
38
|
+
* 设置阻断器
|
|
39
|
+
* @param blocker 阻断器或阻断构建器
|
|
40
|
+
*/
|
|
41
|
+
blocker(blocker: AccessBlocker | ((builder: AccessBlockerBuilder) => AccessBlocker)): AccessManagerBuilder;
|
|
42
|
+
/**
|
|
43
|
+
* 设置行为配置
|
|
44
|
+
* @param behave 行为配置
|
|
45
|
+
*/
|
|
46
|
+
behave(behave: BehaveConfig): AccessManagerBuilder;
|
|
47
|
+
/**
|
|
48
|
+
* 默认行为配置
|
|
49
|
+
*/
|
|
50
|
+
dbc(): AccessManagerBuilder;
|
|
51
|
+
/**
|
|
52
|
+
* 构建
|
|
53
|
+
*/
|
|
54
|
+
build(): AccessManager;
|
|
55
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type AccessMatcher, type AccessResource, type AccessResources } from '../access';
|
|
2
|
+
import type { AccessBuilder } from './builder';
|
|
3
|
+
import { AccessResourceBuilder, type AccessResourceConfig, type AccessResourceConfigs } from './resource';
|
|
4
|
+
/**
|
|
5
|
+
* 访问匹配器构建器
|
|
6
|
+
*/
|
|
7
|
+
export declare class AccessMatcherBuilder implements AccessBuilder<AccessMatcher> {
|
|
8
|
+
/**
|
|
9
|
+
* 资源集合
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
12
|
+
private readonly _resources;
|
|
13
|
+
/**
|
|
14
|
+
* 添加资源配置
|
|
15
|
+
* @param config 资源配置
|
|
16
|
+
*/
|
|
17
|
+
config(config: AccessResourceConfig): AccessMatcherBuilder;
|
|
18
|
+
/**
|
|
19
|
+
* 添加资源配置集合
|
|
20
|
+
* @param configs 资源配置集合
|
|
21
|
+
*/
|
|
22
|
+
configs(...configs: AccessResourceConfigs): AccessMatcherBuilder;
|
|
23
|
+
/**
|
|
24
|
+
* 添加资源
|
|
25
|
+
* @param builder 资源构建器
|
|
26
|
+
*/
|
|
27
|
+
resource(builder: (builder: AccessResourceBuilder) => AccessResource): AccessMatcherBuilder;
|
|
28
|
+
/**
|
|
29
|
+
* 添加资源集合
|
|
30
|
+
* @param resources 资源集合
|
|
31
|
+
*/
|
|
32
|
+
resources(resources: AccessResources): AccessMatcherBuilder;
|
|
33
|
+
/**
|
|
34
|
+
* 构建
|
|
35
|
+
*/
|
|
36
|
+
build(): AccessMatcher;
|
|
37
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type AccessNavigator } from '../access';
|
|
2
|
+
import type { NavigateFunction } from '../bridge';
|
|
3
|
+
import type { AccessBuilder } from './builder';
|
|
4
|
+
/**
|
|
5
|
+
* 访问导航器构建器
|
|
6
|
+
*/
|
|
7
|
+
export declare class AccessNavigatorBuilder implements AccessBuilder<AccessNavigator> {
|
|
8
|
+
/**
|
|
9
|
+
* 导航函数
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
12
|
+
private _navigate?;
|
|
13
|
+
/**
|
|
14
|
+
* 设置导航函数
|
|
15
|
+
* @param navigate 导航函数
|
|
16
|
+
*/
|
|
17
|
+
navigate(navigate: NavigateFunction): AccessNavigatorBuilder;
|
|
18
|
+
/**
|
|
19
|
+
* 构建
|
|
20
|
+
*/
|
|
21
|
+
build(): AccessNavigator;
|
|
22
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type AccessRecorder } from '../access';
|
|
2
|
+
import type { AccessBuilder } from './builder';
|
|
3
|
+
/**
|
|
4
|
+
* 访问记录器构建器
|
|
5
|
+
*/
|
|
6
|
+
export declare class AccessRecorderBuilder implements AccessBuilder<AccessRecorder> {
|
|
7
|
+
/**
|
|
8
|
+
* 构建
|
|
9
|
+
*/
|
|
10
|
+
build(): AccessRecorder;
|
|
11
|
+
}
|