UNPKG

@lanaqi/rsr

Version:
216 lines (215 loc) 4.6 kB
import type { PathPattern } from '../bridge'; import type { AccessPermission, AccessPermissions } from './common'; /** * 资源模式 */ export type ResourcePattern = PathPattern<string> | string; /** * 资源模式集合 */ export type ResourcePatterns = ResourcePattern[]; /** * 资源标签 */ export type ResourceLabel = string; /** * 资源标签集合 */ export type ResourceLabels = ResourceLabel[]; /** * 访问资源 */ export interface AccessResource { /** * 获取模式集合 */ getPatterns(): Set<ResourcePattern>; /** * 获取权限集合 */ getPermissions(): Set<AccessPermission>; /** * 获取标签集合 */ getLabels(): Set<ResourceLabel>; /** * 是否包含模式 * @param pattern 模式 */ hasPattern(pattern: ResourcePattern): boolean; /** * 是否包含权限 * @param permission 权限 */ hasPermission(permission: AccessPermission): boolean; /** * 是否包含标签 * @param label 标签 */ hasLabel(label: ResourceLabel): boolean; /** * 是否匿名的 */ isAnonymous(): boolean; /** * 是否已认证 */ isAuthenticated(): boolean; /** * 是否已授权 */ isAuthorized(): boolean; /** * 是否已签名 */ isSignatured(): boolean; /** * 是否始终签名 */ isAlwaysSignature(): boolean; /** * 获取基础路径 */ getBasename(): string | undefined; /** * 设置基础路径 */ setBasename(basename: string | undefined): void; } /** * 访问资源集合 */ export type AccessResources = AccessResource[]; /** * 简单资源 */ export declare class SimpleResource implements AccessResource { /** * 权限:匿名的 */ static readonly PERMISSION_ANONYMOUS = "__aqi_rsr_anonymous"; /** * 权限:已认证 */ static readonly PERMISSION_AUTHENTICATED = "__aqi_rsr_authenticated"; /** * 权限:已授权 */ static readonly PERMISSION_AUTHORIZED = "__aqi_rsr_authorized"; /** * 标签:已签名 */ static readonly LABEL_SIGNATURED = "__aqi_rsr_signatured"; /** * 标签:始终签名 */ static readonly LABEL_ALWAYS_SIGNATURE = "__aqi_rsr_always_signature"; /** * 模式集合 * @private */ private readonly patterns; /** * 权限集合 * @private */ private readonly permissions; /** * 标签集合 * @private */ private readonly labels; /** * 匿名的 * @private */ private readonly anonymous; /** * 已认证 * @private */ private readonly authenticated; /** * 已授权 * @private */ private readonly authorized; /** * 已签名 * @private */ private readonly signatured; /** * 始终签名 * @private */ private readonly alwaysSignature; /** * 基础路径 * @private */ private basename?; /** * 构造函数 * @param patterns 模式集合 * @param permissions 权限集合 * @param labels 标签集合 * @param basename 基础路径 */ constructor(patterns: ResourcePatterns | Set<ResourcePattern>, permissions: AccessPermissions | Set<AccessPermission>, labels: ResourceLabels | Set<ResourceLabel>, basename?: string); /** * 获取模式集合 */ getPatterns(): Set<ResourcePattern>; /** * 获取权限集合 */ getPermissions(): Set<AccessPermission>; /** * 获取标签集合 */ getLabels(): Set<ResourceLabel>; /** * 是否包含模式 * @param pattern 模式 */ hasPattern(pattern: ResourcePattern): boolean; /** * 是否包含权限 * @param permission 权限 */ hasPermission(permission: AccessPermission): boolean; /** * 是否包含标签 * @param label 标签 */ hasLabel(label: ResourceLabel): boolean; /** * 是否匿名的 */ isAnonymous(): boolean; /** * 是否已认证 */ isAuthenticated(): boolean; /** * 是否已授权 */ isAuthorized(): boolean; /** * 是否已签名 */ isSignatured(): boolean; /** * 是否始终签名 */ isAlwaysSignature(): boolean; /** * 获取基础路径 */ getBasename(): string | undefined; /** * 设置基础路径 */ setBasename(basename: string | undefined): void; }