@jahed/firebase-rules
Version:
A type-safe Firebase Real-time Database Security Rules builder.
92 lines (91 loc) • 3.41 kB
TypeScript
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>;