UNPKG

@jahed/firebase-rules

Version:

A type-safe Firebase Real-time Database Security Rules builder.

92 lines (91 loc) 3.41 kB
import type { ExpressionReturnType, PrimitiveOrExpression, RuleExpression, RuleString } from "./types.ts"; /** * Does an equality check between `a` and `b`. * * `equal(a, b)` is equivalent to `a === b` */ export declare const equal: <T extends ExpressionReturnType>(a: PrimitiveOrExpression<T>, b: PrimitiveOrExpression<T>) => RuleExpression<boolean>; /** * Does an inequality check between `a` and `b`. * * `notEqual(a, b)` is equivalent to `a !== b` */ export declare const notEqual: <T extends ExpressionReturnType>(a: PrimitiveOrExpression<T>, b: PrimitiveOrExpression<T>) => RuleExpression<boolean>; /** * Requires all of its expressions to be `true`. * * `allOf(a, b, c)` is equivalent to `a && b && c`. */ export declare const allOf: (...expressions: RuleExpression<boolean>[]) => RuleExpression<boolean>; /** * Requires at least one of its expressions to be `true`. * * `oneOf(a, b, c)` is equivalent to `a || b || c`. */ export declare const oneOf: (...expressions: RuleExpression<boolean>[]) => RuleExpression<boolean>; /** * Negates an expression. * * `not(a)` is equivalent to `!a`. */ export declare const not: (expression: RuleExpression<boolean>) => RuleExpression<boolean>; /** * Checks if `a` is greater than `b`. * * `greaterThan(a, b)` is equivalent to `a > b`. */ export declare const greaterThan: (a: PrimitiveOrExpression<number>, b: PrimitiveOrExpression<number>) => RuleExpression<boolean>; /** * Checks if `a` is less than `b`. * * `lessThan(a, b)` is equivalent to `a < b`. */ export declare const lessThan: (a: PrimitiveOrExpression<number>, b: PrimitiveOrExpression<number>) => RuleExpression<boolean>; /** * Calculates `b` added to `a` and so on. * * `add(a, b, c, ...)` is equivalent to `a + b + c ...`. */ export declare const add: (...args: PrimitiveOrExpression<number>[]) => RuleExpression<number>; /** * Calculates `b` subtracted from `a` and so on. * * `subtract(a, b, c, ...)` is equivalent to `a - b - c ...`. */ export declare const subtract: (...args: PrimitiveOrExpression<number>[]) => RuleExpression<number>; /** * Negates `a`. * * `negate(a)` is equivalent to `-a`. */ export declare const negate: (a: PrimitiveOrExpression<number>) => RuleExpression<number>; /** * Calculates `b` multiplied by `a` and so on. * * `multiply(a, b, c, ...)` is equivalent to `a * b * c ...`. */ export declare const multiply: (...args: PrimitiveOrExpression<number>[]) => RuleExpression<number>; /** * Calculates `b` divided by `a` and so on. * * `divide(a, b, c, ...)` is equivalent to `a / b / c ...`. */ export declare const divide: (...args: PrimitiveOrExpression<number>[]) => RuleExpression<number>; /** * Calculates `a` modulus `b` and so on. * * `modulus(a, b, c, ...)` is equivalent to `a % b % c ...`. */ export declare const modulus: (...args: PrimitiveOrExpression<number>[]) => RuleExpression<number>; /** * Checks if `a` is between `lower` and `upper`, exclusive. * * `between(a, b, c)` is equivalent to `a > b && a < c`. */ export declare const between: (value: PrimitiveOrExpression<number>, lower: PrimitiveOrExpression<number>, upper: PrimitiveOrExpression<number>) => RuleExpression<boolean>; /** * Calculates `b` concatenated to `a` and so on. * * `concat(a, b, ...)` is equivalent to `a + b + c + ...`. */ export declare const concat: (...args: PrimitiveOrExpression<string>[]) => RuleString<string>;