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
text/typescript
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 };