UNPKG

permix

Version:

Permix is a lightweight, framework-agnostic, type-safe permissions management library for JavaScript applications on the client and server sides.

73 lines (72 loc) 2.87 kB
import { A as Definition, C as Rules, S as DehydratedState, g as Permix, l as CheckArgs } from "../index-BYcbfVQ7.mjs"; import { PropType, SetupContext, SlotsType, VNode } from "vue"; //#region src/vue/components.d.ts /** * Provides Permix context to the Vue component tree. * * @link https://permix.letstri.dev/docs/integrations/vue */ declare const PermixProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ permix: { type: PropType<Permix<any>>; required: true; }; }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ permix: { type: PropType<Permix<any>>; required: true; }; }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; interface CheckProps<D extends Definition> { path: CheckArgs<D>[0]; data?: CheckArgs<D>[1]; reverse?: boolean; } type CheckContext = SetupContext<any, SlotsType<{ default: void; otherwise?: void; }>>; interface PermixComponents<D extends Definition> { Check: (props: CheckProps<D>, context: CheckContext) => VNode | VNode[] | undefined; } /** * Restores dehydrated server permissions on the client. * * @link https://permix.letstri.dev/docs/integrations/vue */ declare const PermixHydrate: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ state: { type: PropType<DehydratedState<any>>; required: true; }; }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ state: { type: PropType<DehydratedState<any>>; required: true; }; }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; declare function createComponents<D extends Definition>(permix: Pick<Permix<D>, 'getRules' | 'check'>): PermixComponents<D>; //#endregion //#region src/vue/composables.d.ts /** * Access Permix check and readiness state inside a Vue component. * * @link https://permix.letstri.dev/docs/integrations/vue */ declare function usePermix<T extends Definition>(permix: Pick<Permix<T>, 'getRules' | 'check'>): { check: (...args: CheckArgs<T>) => boolean; isReady: import("vue").ComputedRef<boolean>; }; //#endregion //#region src/vue/context.d.ts interface PermixContext<T extends Definition> { permix: Permix<T>; isReady: boolean; rules: Rules<T> | null; } //#endregion export { type CheckProps, type PermixComponents, type PermixContext, PermixHydrate, PermixProvider, createComponents, usePermix };