UNPKG

@atproto/oauth-scopes

Version:

A library for manipulating and validating ATproto OAuth scopes in TypeScript.

38 lines • 1.77 kB
import { type AtprotoDidRefAbsolute, isAtprotoDidRefAbsolute } from '@atproto/did'; import { type Nsid, isNsid } from '../lib/nsid.js'; import { Parser } from '../lib/parser.js'; import type { ResourcePermission } from '../lib/resource-permission.js'; import { type NeRoArray, type ScopeSyntax } from '../lib/syntax.js'; export { type AtprotoDidRefAbsolute, type Nsid, isAtprotoDidRefAbsolute, isNsid, }; export type LxmParam = '*' | Nsid; export declare const isLxmParam: (value: unknown) => value is LxmParam; export type AudParam = '*' | AtprotoDidRefAbsolute; export declare const isAudParam: (value: unknown) => value is AudParam; export type RpcPermissionMatch = { lxm: string; aud: string; }; export declare class RpcPermission implements ResourcePermission<'rpc', RpcPermissionMatch> { readonly aud: AudParam; readonly lxm: NeRoArray<LxmParam>; constructor(aud: AudParam, lxm: NeRoArray<LxmParam>); matches(options: RpcPermissionMatch): boolean; toString(): import("../lib/syntax.js").ScopeStringFor<"rpc">; protected static readonly parser: Parser<"rpc", { lxm: { multiple: true; required: true; validate: typeof isLxmParam; normalize: (value: NeRoArray<import("../lib/syntax.js").ParamValue>) => [`${string}.${string}.${string}`, ...`${string}.${string}.${string}`[]] | readonly ["*"]; }; aud: { multiple: false; required: true; validate: typeof isAudParam; }; }>; static fromString(scope: string): RpcPermission | null; static fromSyntax(syntax: ScopeSyntax<'rpc'>): RpcPermission | null; static scopeNeededFor(options: RpcPermissionMatch): string; } //# sourceMappingURL=rpc-permission.d.ts.map