@endo/compartment-mapper
Version:
The compartment mapper assembles Node applications in a sandbox
22 lines • 1.07 kB
TypeScript
/**
* Types required for policy enforcement.
*
* @module
*/
import type { SomeObject } from './typescript.js';
export type PackageNamingKit = {
/** true if location is the entry compartment */
isEntry?: boolean | undefined;
name: string;
path: Array<string>;
};
export type Attenuator<GlobalParams extends [any, ...any[]] = [any, ...any[]], ModuleParams extends [any, ...any[]] = [any, ...any[]]> = {
attenuateGlobals?: GlobalAttenuatorFn<GlobalParams> | undefined;
attenuateModule?: ModuleAttenuatorFn<ModuleParams, SomeObject, SomeObject> | undefined;
};
export type GlobalAttenuatorFn<Params extends [any, ...any[]] = [any, ...any[]]> = (params: Params, originalObject: Record<PropertyKey, any>, globalThis: Record<PropertyKey, any>) => void;
export type ModuleAttenuatorFn<Params extends [any, ...any[]] = [any, ...any[]], T = SomeObject, U = T> = (params: Params, ns: T) => U;
export type DeferredAttenuatorsProvider = {
import: (attenuatorSpecifier: string | null) => Promise<Attenuator>;
};
//# sourceMappingURL=policy.d.ts.map