@atproto/oauth-scopes
Version:
A library for manipulating and validating ATproto OAuth scopes in TypeScript.
38 lines • 1.77 kB
TypeScript
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