@briza/illogical 1.4.3 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/changelog.md +13 -0
  2. package/lib/illogical.esm.js +82 -176
  3. package/lib/illogical.js +82 -175
  4. package/package.json +23 -23
  5. package/readme.md +21 -7
  6. package/types/common/evaluable.d.ts +57 -57
  7. package/types/common/type-check.d.ts +28 -32
  8. package/types/common/util.d.ts +11 -11
  9. package/types/expression/comparison/eq.d.ts +18 -22
  10. package/types/expression/comparison/ge.d.ts +18 -22
  11. package/types/expression/comparison/gt.d.ts +18 -22
  12. package/types/expression/comparison/in.d.ts +23 -27
  13. package/types/expression/comparison/index.d.ts +45 -49
  14. package/types/expression/comparison/le.d.ts +18 -22
  15. package/types/expression/comparison/lt.d.ts +18 -22
  16. package/types/expression/comparison/ne.d.ts +18 -22
  17. package/types/expression/comparison/not-in.d.ts +23 -27
  18. package/types/expression/comparison/overlap.d.ts +23 -27
  19. package/types/expression/comparison/prefix.d.ts +23 -27
  20. package/types/expression/comparison/present.d.ts +25 -29
  21. package/types/expression/comparison/suffix.d.ts +23 -27
  22. package/types/expression/comparison/undefined.d.ts +28 -32
  23. package/types/expression/logical/and.d.ts +23 -27
  24. package/types/expression/logical/index.d.ts +32 -36
  25. package/types/expression/logical/nor.d.ts +23 -27
  26. package/types/expression/logical/not.d.ts +23 -27
  27. package/types/expression/logical/or.d.ts +23 -27
  28. package/types/expression/logical/xor.d.ts +23 -27
  29. package/types/index.d.ts +73 -71
  30. package/types/operand/collection.d.ts +36 -40
  31. package/types/operand/index.d.ts +25 -29
  32. package/types/operand/reference.d.ts +44 -48
  33. package/types/operand/value.d.ts +31 -35
  34. package/types/parser/index.d.ts +39 -43
  35. package/types/parser/options.d.ts +61 -65
@@ -1,22 +1,18 @@
1
- /**
2
- * Comparison expression module.
3
- * @module illogical/expression/comparison
4
- */
5
- import { Evaluable, Result } from '../../common/evaluable';
6
- import { Comparison } from '../comparison';
7
- export declare const OPERATOR: unique symbol;
8
- /**
9
- * Not equal comparison expression
10
- */
11
- export declare class NotEqual extends Comparison {
12
- /**
13
- * @constructor
14
- * @param {Evaluable} left Left operand.
15
- * @param {Evaluable} right Right operand.
16
- */
17
- constructor(...args: Evaluable[]);
18
- /**
19
- * {@link Comparison.comparison}
20
- */
21
- comparison(left: Result, right: Result): boolean;
22
- }
1
+ import { Evaluable, Result } from '../../common/evaluable';
2
+ import { Comparison } from '../comparison';
3
+ export declare const OPERATOR: unique symbol;
4
+ /**
5
+ * Not equal comparison expression
6
+ */
7
+ export declare class NotEqual extends Comparison {
8
+ /**
9
+ * @constructor
10
+ * @param {Evaluable} left Left operand.
11
+ * @param {Evaluable} right Right operand.
12
+ */
13
+ constructor(...args: Evaluable[]);
14
+ /**
15
+ * {@link Comparison.comparison}
16
+ */
17
+ comparison(left: Result, right: Result): boolean;
18
+ }
@@ -1,27 +1,23 @@
1
- /**
2
- * Comparison expression module.
3
- * @module illogical/expression/comparison
4
- */
5
- import { Evaluable, Result } from '../../common/evaluable';
6
- import { Comparison } from '../comparison';
7
- export declare const OPERATOR: unique symbol;
8
- /**
9
- * Not in comparison expression
10
- */
11
- export declare class NotIn extends Comparison {
12
- /**
13
- * @constructor
14
- * @param {Evaluable} left Left operand.
15
- * @param {Evaluable} right Right operand.
16
- */
17
- constructor(...args: Evaluable[]);
18
- /**
19
- * {@link Comparison.comparison}
20
- */
21
- comparison(left: Result, right: Result): boolean;
22
- /**
23
- * Get the strict representation of the expression
24
- * @return {string}
25
- */
26
- toString(): string;
27
- }
1
+ import { Evaluable, Result } from '../../common/evaluable';
2
+ import { Comparison } from '../comparison';
3
+ export declare const OPERATOR: unique symbol;
4
+ /**
5
+ * Not in comparison expression
6
+ */
7
+ export declare class NotIn extends Comparison {
8
+ /**
9
+ * @constructor
10
+ * @param {Evaluable} left Left operand.
11
+ * @param {Evaluable} right Right operand.
12
+ */
13
+ constructor(...args: Evaluable[]);
14
+ /**
15
+ * {@link Comparison.comparison}
16
+ */
17
+ comparison(left: Result, right: Result): boolean;
18
+ /**
19
+ * Get the strict representation of the expression
20
+ * @return {string}
21
+ */
22
+ toString(): string;
23
+ }
@@ -1,27 +1,23 @@
1
- /**
2
- * Comparison expression module.
3
- * @module illogical/expression/comparison
4
- */
5
- import { Evaluable, Result } from '../../common/evaluable';
6
- import { Comparison } from '../comparison';
7
- export declare const OPERATOR: unique symbol;
8
- /**
9
- * Overlap comparison expression
10
- */
11
- export declare class Overlap extends Comparison {
12
- /**
13
- * @constructor
14
- * @param {Evaluable} left Left operand.
15
- * @param {Evaluable} right Right operand.
16
- */
17
- constructor(...args: Evaluable[]);
18
- /**
19
- * {@link Comparison.comparison}
20
- */
21
- comparison(left: Result, right: Result): boolean;
22
- /**
23
- * Get the strict representation of the expression.
24
- * @return {string}
25
- */
26
- toString(): string;
27
- }
1
+ import { Evaluable, Result } from '../../common/evaluable';
2
+ import { Comparison } from '../comparison';
3
+ export declare const OPERATOR: unique symbol;
4
+ /**
5
+ * Overlap comparison expression
6
+ */
7
+ export declare class Overlap extends Comparison {
8
+ /**
9
+ * @constructor
10
+ * @param {Evaluable} left Left operand.
11
+ * @param {Evaluable} right Right operand.
12
+ */
13
+ constructor(...args: Evaluable[]);
14
+ /**
15
+ * {@link Comparison.comparison}
16
+ */
17
+ comparison(left: Result, right: Result): boolean;
18
+ /**
19
+ * Get the strict representation of the expression.
20
+ * @return {string}
21
+ */
22
+ toString(): string;
23
+ }
@@ -1,27 +1,23 @@
1
- /**
2
- * Prefix expression module.
3
- * @module illogical/expression/prefix
4
- */
5
- import { Evaluable, Result } from '../../common/evaluable';
6
- import { Comparison } from '../comparison';
7
- export declare const OPERATOR: unique symbol;
8
- /**
9
- * Prefix comparison expression
10
- */
11
- export declare class Prefix extends Comparison {
12
- /**
13
- * @constructor
14
- * @param {Evaluable} left Left operand.
15
- * @param {Evaluable} right Right operand.
16
- */
17
- constructor(...args: Evaluable[]);
18
- /**
19
- * {@link Comparison.comparison}
20
- */
21
- comparison(left: Result, right: Result): boolean;
22
- /**
23
- * Get the strict representation of the expression.
24
- * @return {string}
25
- */
26
- toString(): string;
27
- }
1
+ import { Evaluable, Result } from '../../common/evaluable';
2
+ import { Comparison } from '../comparison';
3
+ export declare const OPERATOR: unique symbol;
4
+ /**
5
+ * Prefix comparison expression
6
+ */
7
+ export declare class Prefix extends Comparison {
8
+ /**
9
+ * @constructor
10
+ * @param {Evaluable} left Left operand.
11
+ * @param {Evaluable} right Right operand.
12
+ */
13
+ constructor(...args: Evaluable[]);
14
+ /**
15
+ * {@link Comparison.comparison}
16
+ */
17
+ comparison(left: Result, right: Result): boolean;
18
+ /**
19
+ * Get the strict representation of the expression.
20
+ * @return {string}
21
+ */
22
+ toString(): string;
23
+ }
@@ -1,29 +1,25 @@
1
- /**
2
- * Present expression module.
3
- * @module illogical/expression/comparison
4
- */
5
- import { Evaluable, Result } from '../../common/evaluable';
6
- import { ExpressionInput } from '../../parser';
7
- import { Options } from '../../parser/options';
8
- import { Comparison } from './index';
9
- export declare const OPERATOR: unique symbol;
10
- /**
11
- * Present comparison expression
12
- */
13
- export declare class Present extends Comparison {
14
- /**
15
- * @constructor
16
- * @param {Evaluable} operand
17
- */
18
- constructor(...args: Evaluable[]);
19
- /**
20
- * {@link Comparison.comparison}
21
- */
22
- comparison(left: Result): boolean;
23
- /**
24
- * Get the strict representation of the expression.
25
- * @return {string}
26
- */
27
- toString(): string;
28
- serialize(options: Options): ExpressionInput;
29
- }
1
+ import { Evaluable, Result } from '../../common/evaluable';
2
+ import { ExpressionInput } from '../../parser';
3
+ import { Options } from '../../parser/options';
4
+ import { Comparison } from './index';
5
+ export declare const OPERATOR: unique symbol;
6
+ /**
7
+ * Present comparison expression
8
+ */
9
+ export declare class Present extends Comparison {
10
+ /**
11
+ * @constructor
12
+ * @param {Evaluable} operand
13
+ */
14
+ constructor(...args: Evaluable[]);
15
+ /**
16
+ * {@link Comparison.comparison}
17
+ */
18
+ comparison(left: Result): boolean;
19
+ /**
20
+ * Get the strict representation of the expression.
21
+ * @return {string}
22
+ */
23
+ toString(): string;
24
+ serialize(options: Options): ExpressionInput;
25
+ }
@@ -1,27 +1,23 @@
1
- /**
2
- * Suffix expression module.
3
- * @module illogical/expression/suffix
4
- */
5
- import { Evaluable, Result } from '../../common/evaluable';
6
- import { Comparison } from '../comparison';
7
- export declare const OPERATOR: unique symbol;
8
- /**
9
- * Suffix comparison expression
10
- */
11
- export declare class Suffix extends Comparison {
12
- /**
13
- * @constructor
14
- * @param {Evaluable} left Left operand.
15
- * @param {Evaluable} right Right operand.
16
- */
17
- constructor(...args: Evaluable[]);
18
- /**
19
- * {@link Comparison.comparison}
20
- */
21
- comparison(left: Result, right: Result): boolean;
22
- /**
23
- * Get the strict representation of the expression.
24
- * @return {string}
25
- */
26
- toString(): string;
27
- }
1
+ import { Evaluable, Result } from '../../common/evaluable';
2
+ import { Comparison } from '../comparison';
3
+ export declare const OPERATOR: unique symbol;
4
+ /**
5
+ * Suffix comparison expression
6
+ */
7
+ export declare class Suffix extends Comparison {
8
+ /**
9
+ * @constructor
10
+ * @param {Evaluable} left Left operand.
11
+ * @param {Evaluable} right Right operand.
12
+ */
13
+ constructor(...args: Evaluable[]);
14
+ /**
15
+ * {@link Comparison.comparison}
16
+ */
17
+ comparison(left: Result, right: Result): boolean;
18
+ /**
19
+ * Get the strict representation of the expression.
20
+ * @return {string}
21
+ */
22
+ toString(): string;
23
+ }
@@ -1,32 +1,28 @@
1
- /**
2
- * Undefined expression module.
3
- * @module illogical/expression/comparison
4
- */
5
- import { Evaluable, Result } from '../../common/evaluable';
6
- import { ExpressionInput } from '../../parser';
7
- import { Options } from '../../parser/options';
8
- import { Comparison } from '../comparison';
9
- export declare const OPERATOR: unique symbol;
10
- /**
11
- * Undefined comparison expression
12
- */
13
- export declare class Undefined extends Comparison {
14
- /**
15
- * @constructor
16
- * @param {Evaluable} operand
17
- */
18
- constructor(...args: Evaluable[]);
19
- /**
20
- * {@link Comparison.comparison}
21
- */
22
- comparison(left: Result): boolean;
23
- /**
24
- * Get the strict representation of the expression.
25
- * @return {string}
26
- */
27
- toString(): string;
28
- /**
29
- * {@link Evaluable.serialize}
30
- */
31
- serialize(options: Options): ExpressionInput;
32
- }
1
+ import { Evaluable, Result } from '../../common/evaluable';
2
+ import { ExpressionInput } from '../../parser';
3
+ import { Options } from '../../parser/options';
4
+ import { Comparison } from '../comparison';
5
+ export declare const OPERATOR: unique symbol;
6
+ /**
7
+ * Undefined comparison expression
8
+ */
9
+ export declare class Undefined extends Comparison {
10
+ /**
11
+ * @constructor
12
+ * @param {Evaluable} operand
13
+ */
14
+ constructor(...args: Evaluable[]);
15
+ /**
16
+ * {@link Comparison.comparison}
17
+ */
18
+ comparison(left: Result): boolean;
19
+ /**
20
+ * Get the strict representation of the expression.
21
+ * @return {string}
22
+ */
23
+ toString(): string;
24
+ /**
25
+ * {@link Evaluable.serialize}
26
+ */
27
+ serialize(options: Options): ExpressionInput;
28
+ }
@@ -1,27 +1,23 @@
1
- /**
2
- * Logical expression module.
3
- * @module illogical/expression/logical
4
- */
5
- import { Context, Evaluable, Result } from '../../common/evaluable';
6
- import { Logical } from '../logical';
7
- export declare const OPERATOR: unique symbol;
8
- /**
9
- * And logical expression
10
- */
11
- export declare class And extends Logical {
12
- /**
13
- * @constructor
14
- * @param {Evaluable[]} operands Collection of operands.
15
- */
16
- constructor(operands: Evaluable[]);
17
- /**
18
- * Evaluate in the given context.
19
- * @param {Context} ctx
20
- * @return {Result}
21
- */
22
- evaluate(ctx: Context): Result;
23
- /**
24
- * {@link Evaluable.simplify}
25
- */
26
- simplify(...args: [Context, string[]]): boolean | Evaluable;
27
- }
1
+ import { Context, Evaluable, Result, SimplifyArgs } from '../../common/evaluable';
2
+ import { Logical } from '../logical';
3
+ export declare const OPERATOR: unique symbol;
4
+ /**
5
+ * And logical expression
6
+ */
7
+ export declare class And extends Logical {
8
+ /**
9
+ * @constructor
10
+ * @param {Evaluable[]} operands Collection of operands.
11
+ */
12
+ constructor(operands: Evaluable[]);
13
+ /**
14
+ * Evaluate in the given context.
15
+ * @param {Context} ctx
16
+ * @return {Result}
17
+ */
18
+ evaluate(ctx: Context): Result;
19
+ /**
20
+ * {@link Evaluable.simplify}
21
+ */
22
+ simplify(...args: SimplifyArgs): boolean | Evaluable;
23
+ }
@@ -1,36 +1,32 @@
1
- /**
2
- * Logical expression module.
3
- * @module illogical/expression/logical
4
- */
5
- import { Context, Evaluable, EvaluableType, Result } from '../../common/evaluable';
6
- import { ExpressionInput } from '../../parser';
7
- import { Options } from '../../parser/options';
8
- /**
9
- * Abstract logical expression
10
- */
11
- export declare abstract class Logical implements Evaluable {
12
- protected readonly operator: string;
13
- protected readonly operatorSymbol: symbol;
14
- protected readonly operands: Evaluable[];
15
- type: EvaluableType;
16
- /**
17
- * @constructor
18
- * @param {string} operator String representation of the operator.
19
- * @param {Evaluable[]} operands Collection of operands.
20
- */
21
- constructor(operator: string, operatorSymbol: symbol, operands: Evaluable[]);
22
- /**
23
- * {@link Evaluable.evaluate}
24
- */
25
- abstract evaluate(ctx: Context): Result;
26
- /**
27
- * {@link Evaluable.simplify}
28
- */
29
- abstract simplify(ctx: Context, ignoreKeys: string[]): Result | Evaluable;
30
- /**
31
- * Get the strict representation of the expression.
32
- * @return {string}
33
- */
34
- toString(): string;
35
- serialize(options: Options): ExpressionInput;
36
- }
1
+ import { Context, Evaluable, EvaluableType, Result } from '../../common/evaluable';
2
+ import { ExpressionInput } from '../../parser';
3
+ import { Options } from '../../parser/options';
4
+ /**
5
+ * Abstract logical expression
6
+ */
7
+ export declare abstract class Logical implements Evaluable {
8
+ protected readonly operator: string;
9
+ protected readonly operatorSymbol: symbol;
10
+ protected readonly operands: Evaluable[];
11
+ type: EvaluableType;
12
+ /**
13
+ * @constructor
14
+ * @param {string} operator String representation of the operator.
15
+ * @param {Evaluable[]} operands Collection of operands.
16
+ */
17
+ constructor(operator: string, operatorSymbol: symbol, operands: Evaluable[]);
18
+ /**
19
+ * {@link Evaluable.evaluate}
20
+ */
21
+ abstract evaluate(ctx: Context): Result;
22
+ /**
23
+ * {@link Evaluable.simplify}
24
+ */
25
+ abstract simplify(ctx: Context, strictKeys?: string[], optionalKeys?: string[]): Result | Evaluable;
26
+ /**
27
+ * Get the strict representation of the expression.
28
+ * @return {string}
29
+ */
30
+ toString(): string;
31
+ serialize(options: Options): ExpressionInput;
32
+ }
@@ -1,27 +1,23 @@
1
- /**
2
- * Logical expression module.
3
- * @module illogical/expression/logical
4
- */
5
- import { Context, Evaluable, Result } from '../../common/evaluable';
6
- import { Logical } from '../logical';
7
- export declare const OPERATOR: unique symbol;
8
- /**
9
- * Nor logical expression
10
- */
11
- export declare class Nor extends Logical {
12
- /**
13
- * @constructor
14
- * @param {Evaluable[]} operands Collection of operands.
15
- */
16
- constructor(operands: Evaluable[]);
17
- /**
18
- * Evaluate in the given context.
19
- * @param {Context} ctx
20
- * @return {Result}
21
- */
22
- evaluate(ctx: Context): Result;
23
- /**
24
- * {@link Evaluable.simplify}
25
- */
26
- simplify(...args: [Context, string[]]): boolean | Evaluable;
27
- }
1
+ import { Context, Evaluable, Result, SimplifyArgs } from '../../common/evaluable';
2
+ import { Logical } from '../logical';
3
+ export declare const OPERATOR: unique symbol;
4
+ /**
5
+ * Nor logical expression
6
+ */
7
+ export declare class Nor extends Logical {
8
+ /**
9
+ * @constructor
10
+ * @param {Evaluable[]} operands Collection of operands.
11
+ */
12
+ constructor(operands: Evaluable[]);
13
+ /**
14
+ * Evaluate in the given context.
15
+ * @param {Context} ctx
16
+ * @return {Result}
17
+ */
18
+ evaluate(ctx: Context): Result;
19
+ /**
20
+ * {@link Evaluable.simplify}
21
+ */
22
+ simplify(...args: SimplifyArgs): boolean | Evaluable;
23
+ }
@@ -1,27 +1,23 @@
1
- /**
2
- * Logical expression module.
3
- * @module illogical/expression/logical
4
- */
5
- import { Context, Evaluable, Result } from '../../common/evaluable';
6
- import { Logical } from '.';
7
- export declare const OPERATOR: unique symbol;
8
- /**
9
- * Not logical expression
10
- */
11
- export declare class Not extends Logical {
12
- /**
13
- * @constructor
14
- * @param {Evaluable} operand
15
- */
16
- constructor(...args: Evaluable[]);
17
- /**
18
- * Evaluate in the given context.
19
- * @param {Context} ctx
20
- * @return {Result}
21
- */
22
- evaluate(ctx: Context): Result;
23
- /**
24
- * {@link Evaluable.simplify}
25
- */
26
- simplify(...args: [Context, string[]]): boolean | Evaluable;
27
- }
1
+ import { Context, Evaluable, Result, SimplifyArgs } from '../../common/evaluable';
2
+ import { Logical } from '.';
3
+ export declare const OPERATOR: unique symbol;
4
+ /**
5
+ * Not logical expression
6
+ */
7
+ export declare class Not extends Logical {
8
+ /**
9
+ * @constructor
10
+ * @param {Evaluable} operand
11
+ */
12
+ constructor(...args: Evaluable[]);
13
+ /**
14
+ * Evaluate in the given context.
15
+ * @param {Context} ctx
16
+ * @return {Result}
17
+ */
18
+ evaluate(ctx: Context): Result;
19
+ /**
20
+ * {@link Evaluable.simplify}
21
+ */
22
+ simplify(...args: SimplifyArgs): boolean | Evaluable;
23
+ }
@@ -1,27 +1,23 @@
1
- /**
2
- * Logical expression module.
3
- * @module illogical/expression/logical
4
- */
5
- import { Context, Evaluable, Result } from '../../common/evaluable';
6
- import { Logical } from '../logical';
7
- export declare const OPERATOR: unique symbol;
8
- /**
9
- * Or logical expression
10
- */
11
- export declare class Or extends Logical {
12
- /**
13
- * @constructor
14
- * @param {Evaluable[]} operands Collection of operands.
15
- */
16
- constructor(operands: Evaluable[]);
17
- /**
18
- * Evaluate in the given context.
19
- * @param {Context} ctx
20
- * @return {Result}
21
- */
22
- evaluate(ctx: Context): Result;
23
- /**
24
- * {@link Evaluable.simplify}
25
- */
26
- simplify(...args: [Context, string[]]): boolean | Evaluable;
27
- }
1
+ import { Context, Evaluable, Result, SimplifyArgs } from '../../common/evaluable';
2
+ import { Logical } from '../logical';
3
+ export declare const OPERATOR: unique symbol;
4
+ /**
5
+ * Or logical expression
6
+ */
7
+ export declare class Or extends Logical {
8
+ /**
9
+ * @constructor
10
+ * @param {Evaluable[]} operands Collection of operands.
11
+ */
12
+ constructor(operands: Evaluable[]);
13
+ /**
14
+ * Evaluate in the given context.
15
+ * @param {Context} ctx
16
+ * @return {Result}
17
+ */
18
+ evaluate(ctx: Context): Result;
19
+ /**
20
+ * {@link Evaluable.simplify}
21
+ */
22
+ simplify(...args: SimplifyArgs): boolean | Evaluable;
23
+ }