@openfga/syntax-transformer
Version:
Javascript implementation of ANTLR Grammar for the OpenFGA DSL and parser from and to the OpenFGA JSON Syntax
62 lines (61 loc) • 3.77 kB
TypeScript
import { ModelValidationSingleError, ModuleTransformationSingleError } from "../errors";
interface BaseProps {
errors: ModelValidationSingleError[];
symbol: string;
lines?: string[];
lineIndex?: number;
file?: string;
module?: string;
type?: string;
relation?: string;
}
export declare const createInvalidSchemaVersionError: (props: BaseProps) => void;
export declare const createSchemaVersionRequiredError: (props: BaseProps) => void;
export declare const createMaximumOneDirectRelationship: (props: BaseProps) => void;
interface Meta {
file?: string;
module?: string;
}
export declare class ExceptionCollector {
private errors;
private lines?;
constructor(errors: ModelValidationSingleError[], lines?: string[] | undefined);
raiseInvalidName(symbol: string, clause: string, typeName?: string, lineIndex?: number, metadata?: Meta): void;
raiseReservedTypeName(symbol: string, lineIndex?: number, metadata?: Meta): void;
raiseReservedRelationName(symbol: string, lineIndex?: number, metadata?: Meta): void;
raiseTupleUsersetRequiresDirect(symbol: string, type: string, relation: string, meta: Meta, lineIndex?: number): void;
raiseDuplicateTypeName(symbol: string, meta: Meta, lineIndex?: number): void;
raiseDuplicateTypeRestriction(symbol: string, relationName: string, typeName: string, meta: Meta, lineIndex?: number): void;
raiseDuplicateType(symbol: string, relationName: string, typeName: string, meta: Meta, lineIndex?: number): void;
raiseDuplicateRelationshipDefinition(symbol: string, meta: Meta, lineIndex?: number): void;
raiseNoEntryPointLoop(symbol: string, typeName: string, meta: Meta, lineIndex?: number): void;
raiseNoEntryPoint(symbol: string, typeName: string, meta: Meta, lineIndex?: number): void;
raiseInvalidRelationOnTupleset(symbol: string, typeName: string, typeDef: string, relationName: string, offendingRelation: string, parent: string, lineIndex?: number, meta?: Meta): void;
raiseInvalidTypeRelation(symbol: string, typeName: string, relationName: string, offendingRelation: string, offendingType: string, lineIndex?: number, meta?: Meta): void;
raiseInvalidType(symbol: string, typeName: string, relation: string, meta: Meta, lineIndex?: number): void;
raiseAssignableRelationMustHaveTypes(symbol: string, lineIndex?: number): void;
raiseAssignableTypeWildcardRelation(symbol: string, type: string, relation: string, meta: Meta, lineIndex?: number): void;
raiseInvalidRelationError(symbol: string, type: string, relation: string, validRelations: string[], lineIndex?: number, metadata?: Meta): void;
raiseInvalidSchemaVersion(symbol: string, lineIndex?: number): void;
raiseSchemaVersionRequired(symbol: string, lineIndex?: number): void;
raiseMaximumOneDirectRelationship(symbol: string, lineIndex?: number): void;
raiseInvalidConditionNameInParameter(symbol: string, typeName: string, relationName: string, conditionName: string, meta: Meta, lineIndex?: number): void;
raiseUnusedCondition(symbol: string, meta: Meta, lineIndex?: number): void;
raiseDifferentNestedConditionName(condition: string, nestedConditionName: string): void;
raiseMultipleModulesInSingleFile(file: string, modules: Set<string>): void;
}
interface TransformationErrorProps {
message: string;
metadata: {
symbol: string;
relation?: string;
typeName?: string;
conditionName?: string;
file?: string;
};
lines?: string[];
lineIndex?: number;
customResolver?: (wordIndex: number, rawLine: string, symbol: string) => number;
}
export declare function constructTransformationError(props: TransformationErrorProps): ModuleTransformationSingleError;
export {};