@elaraai/east 0.0.1-beta.3 → 0.0.1-beta.31
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.
- package/LICENSE.md +15 -666
- package/README.md +30 -8
- package/dist/src/analyze.d.ts +3 -0
- package/dist/src/analyze.d.ts.map +1 -1
- package/dist/src/analyze.js +76 -15
- package/dist/src/analyze.js.map +1 -1
- package/dist/src/ast.d.ts +37 -33
- package/dist/src/ast.d.ts.map +1 -1
- package/dist/src/ast_to_ir.d.ts +6 -0
- package/dist/src/ast_to_ir.d.ts.map +1 -1
- package/dist/src/ast_to_ir.js +135 -101
- package/dist/src/ast_to_ir.js.map +1 -1
- package/dist/src/builtins.d.ts +1 -1
- package/dist/src/builtins.d.ts.map +1 -1
- package/dist/src/builtins.js +32 -0
- package/dist/src/builtins.js.map +1 -1
- package/dist/src/comparison.d.ts.map +1 -1
- package/dist/src/comparison.js +12 -4
- package/dist/src/comparison.js.map +1 -1
- package/dist/src/compile.d.ts +26 -1
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +388 -257
- package/dist/src/compile.js.map +1 -1
- package/dist/src/datetime_format/types.d.ts +23 -23
- package/dist/src/eastir.d.ts +4 -0
- package/dist/src/eastir.d.ts.map +1 -1
- package/dist/src/eastir.js +27 -7
- package/dist/src/eastir.js.map +1 -1
- package/dist/src/error.d.ts +12 -1
- package/dist/src/error.d.ts.map +1 -1
- package/dist/src/error.js +31 -1
- package/dist/src/error.js.map +1 -1
- package/dist/src/expr/array.d.ts +109 -1
- package/dist/src/expr/array.d.ts.map +1 -1
- package/dist/src/expr/array.js +204 -44
- package/dist/src/expr/array.js.map +1 -1
- package/dist/src/expr/ast.d.ts +1 -1
- package/dist/src/expr/ast.d.ts.map +1 -1
- package/dist/src/expr/ast.js +16 -28
- package/dist/src/expr/ast.js.map +1 -1
- package/dist/src/expr/asyncfunction.js +1 -1
- package/dist/src/expr/asyncfunction.js.map +1 -1
- package/dist/src/expr/blob.d.ts +73 -1
- package/dist/src/expr/blob.d.ts.map +1 -1
- package/dist/src/expr/blob.js +97 -7
- package/dist/src/expr/blob.js.map +1 -1
- package/dist/src/expr/block.d.ts +232 -12
- package/dist/src/expr/block.d.ts.map +1 -1
- package/dist/src/expr/block.js +646 -140
- package/dist/src/expr/block.js.map +1 -1
- package/dist/src/expr/boolean.d.ts +44 -0
- package/dist/src/expr/boolean.d.ts.map +1 -1
- package/dist/src/expr/boolean.js +57 -5
- package/dist/src/expr/boolean.js.map +1 -1
- package/dist/src/expr/datetime.d.ts +135 -0
- package/dist/src/expr/datetime.d.ts.map +1 -1
- package/dist/src/expr/datetime.js +183 -33
- package/dist/src/expr/datetime.js.map +1 -1
- package/dist/src/expr/dict.d.ts +42 -0
- package/dist/src/expr/dict.d.ts.map +1 -1
- package/dist/src/expr/dict.js +105 -55
- package/dist/src/expr/dict.js.map +1 -1
- package/dist/src/expr/expr.d.ts +1 -1
- package/dist/src/expr/expr.d.ts.map +1 -1
- package/dist/src/expr/expr.js.map +1 -1
- package/dist/src/expr/float.d.ts +153 -0
- package/dist/src/expr/float.d.ts.map +1 -1
- package/dist/src/expr/float.js +190 -16
- package/dist/src/expr/float.js.map +1 -1
- package/dist/src/expr/function.d.ts +7 -2
- package/dist/src/expr/function.d.ts.map +1 -1
- package/dist/src/expr/function.js +1 -1
- package/dist/src/expr/function.js.map +1 -1
- package/dist/src/expr/index.d.ts +202 -2
- package/dist/src/expr/index.d.ts.map +1 -1
- package/dist/src/expr/index.js +207 -2
- package/dist/src/expr/index.js.map +1 -1
- package/dist/src/expr/integer.d.ts +180 -0
- package/dist/src/expr/integer.d.ts.map +1 -1
- package/dist/src/expr/integer.js +188 -17
- package/dist/src/expr/integer.js.map +1 -1
- package/dist/src/expr/libs/blob.js +2 -2
- package/dist/src/expr/libs/blob.js.map +1 -1
- package/dist/src/expr/libs/integer.d.ts +19 -0
- package/dist/src/expr/libs/integer.d.ts.map +1 -1
- package/dist/src/expr/libs/integer.js +47 -0
- package/dist/src/expr/libs/integer.js.map +1 -1
- package/dist/src/expr/libs/string.js +1 -1
- package/dist/src/expr/libs/string.js.map +1 -1
- package/dist/src/expr/recursive.d.ts +83 -0
- package/dist/src/expr/recursive.d.ts.map +1 -0
- package/dist/src/expr/recursive.js +99 -0
- package/dist/src/expr/recursive.js.map +1 -0
- package/dist/src/expr/ref.js +3 -3
- package/dist/src/expr/ref.js.map +1 -1
- package/dist/src/expr/set.d.ts +44 -2
- package/dist/src/expr/set.d.ts.map +1 -1
- package/dist/src/expr/set.js +97 -47
- package/dist/src/expr/set.js.map +1 -1
- package/dist/src/expr/string.d.ts +134 -0
- package/dist/src/expr/string.d.ts.map +1 -1
- package/dist/src/expr/string.js +172 -22
- package/dist/src/expr/string.js.map +1 -1
- package/dist/src/expr/struct.d.ts +1 -1
- package/dist/src/expr/struct.d.ts.map +1 -1
- package/dist/src/expr/struct.js +1 -1
- package/dist/src/expr/struct.js.map +1 -1
- package/dist/src/expr/types.d.ts +7 -6
- package/dist/src/expr/types.d.ts.map +1 -1
- package/dist/src/expr/variant.d.ts +123 -1
- package/dist/src/expr/variant.d.ts.map +1 -1
- package/dist/src/expr/variant.js +66 -2
- package/dist/src/expr/variant.js.map +1 -1
- package/dist/src/fuzz.d.ts +36 -2
- package/dist/src/fuzz.d.ts.map +1 -1
- package/dist/src/fuzz.js +344 -77
- package/dist/src/fuzz.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +12 -0
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +13 -0
- package/dist/src/internal.js.map +1 -1
- package/dist/src/ir.d.ts +1551 -1505
- package/dist/src/ir.d.ts.map +1 -1
- package/dist/src/ir.js +49 -34
- package/dist/src/ir.js.map +1 -1
- package/dist/src/location.d.ts +30 -10
- package/dist/src/location.d.ts.map +1 -1
- package/dist/src/location.js +70 -28
- package/dist/src/location.js.map +1 -1
- package/dist/src/patch/apply.d.ts +15 -0
- package/dist/src/patch/apply.d.ts.map +1 -0
- package/dist/src/patch/apply.js +380 -0
- package/dist/src/patch/apply.js.map +1 -0
- package/dist/src/patch/compose.d.ts +15 -0
- package/dist/src/patch/compose.d.ts.map +1 -0
- package/dist/src/patch/compose.js +480 -0
- package/dist/src/patch/compose.js.map +1 -0
- package/dist/src/patch/diff.d.ts +15 -0
- package/dist/src/patch/diff.d.ts.map +1 -0
- package/dist/src/patch/diff.js +328 -0
- package/dist/src/patch/diff.js.map +1 -0
- package/dist/src/patch/fuzz.d.ts +73 -0
- package/dist/src/patch/fuzz.d.ts.map +1 -0
- package/dist/src/patch/fuzz.js +159 -0
- package/dist/src/patch/fuzz.js.map +1 -0
- package/dist/src/patch/index.d.ts +18 -0
- package/dist/src/patch/index.d.ts.map +1 -0
- package/dist/src/patch/index.js +20 -0
- package/dist/src/patch/index.js.map +1 -0
- package/dist/src/patch/invert.d.ts +15 -0
- package/dist/src/patch/invert.d.ts.map +1 -0
- package/dist/src/patch/invert.js +302 -0
- package/dist/src/patch/invert.js.map +1 -0
- package/dist/src/patch/type_of_patch.d.ts +17 -0
- package/dist/src/patch/type_of_patch.d.ts.map +1 -0
- package/dist/src/patch/type_of_patch.js +143 -0
- package/dist/src/patch/type_of_patch.js.map +1 -0
- package/dist/src/patch/types.d.ts +166 -0
- package/dist/src/patch/types.d.ts.map +1 -0
- package/dist/src/patch/types.js +69 -0
- package/dist/src/patch/types.js.map +1 -0
- package/dist/src/platform.d.ts +6 -0
- package/dist/src/platform.d.ts.map +1 -1
- package/dist/src/serialization/beast.d.ts.map +1 -1
- package/dist/src/serialization/beast.js +53 -18
- package/dist/src/serialization/beast.js.map +1 -1
- package/dist/src/serialization/beast2.d.ts +39 -3
- package/dist/src/serialization/beast2.d.ts.map +1 -1
- package/dist/src/serialization/beast2.js +241 -18
- package/dist/src/serialization/beast2.js.map +1 -1
- package/dist/src/serialization/csv.d.ts +139 -0
- package/dist/src/serialization/csv.d.ts.map +1 -0
- package/dist/src/serialization/csv.js +615 -0
- package/dist/src/serialization/csv.js.map +1 -0
- package/dist/src/serialization/index.d.ts +2 -1
- package/dist/src/serialization/index.d.ts.map +1 -1
- package/dist/src/serialization/index.js +2 -1
- package/dist/src/serialization/index.js.map +1 -1
- package/dist/src/type_of_type.d.ts +45 -34
- package/dist/src/type_of_type.d.ts.map +1 -1
- package/dist/src/type_of_type.js +62 -1
- package/dist/src/type_of_type.js.map +1 -1
- package/dist/src/types.d.ts +8 -8
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +4 -4
- package/dist/src/types.js.map +1 -1
- package/package.json +4 -5
|
@@ -9,6 +9,7 @@ import type { IntegerExpr } from "./integer.js";
|
|
|
9
9
|
import type { StringExpr } from "./string.js";
|
|
10
10
|
import { Expr, type ToExpr } from "./expr.js";
|
|
11
11
|
import type { SubtypeExprOrValue } from "./types.js";
|
|
12
|
+
import type { BooleanExpr } from "./boolean.js";
|
|
12
13
|
/**
|
|
13
14
|
* Expression representing date and time values and operations.
|
|
14
15
|
*
|
|
@@ -493,6 +494,140 @@ export declare class DateTimeExpr extends Expr<DateTimeType> {
|
|
|
493
494
|
* ```
|
|
494
495
|
*/
|
|
495
496
|
printFormatted(formatString: string): StringExpr;
|
|
497
|
+
/**
|
|
498
|
+
* Checks if this DateTime equals another value.
|
|
499
|
+
*
|
|
500
|
+
* @param other - The value to compare against
|
|
501
|
+
* @returns A BooleanExpr that is true if the values are equal
|
|
502
|
+
*
|
|
503
|
+
* @example
|
|
504
|
+
* ```ts
|
|
505
|
+
* const isEqual = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
506
|
+
* $.return(a.equals(b));
|
|
507
|
+
* });
|
|
508
|
+
* const compiled = East.compile(isEqual.toIR(), []);
|
|
509
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
510
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // false
|
|
511
|
+
* ```
|
|
512
|
+
*/
|
|
513
|
+
equals(other: DateTimeExpr | Date): BooleanExpr;
|
|
514
|
+
/**
|
|
515
|
+
* Checks if this DateTime does not equal another value.
|
|
516
|
+
*
|
|
517
|
+
* @param other - The value to compare against
|
|
518
|
+
* @returns A BooleanExpr that is true if the values are not equal
|
|
519
|
+
*
|
|
520
|
+
* @example
|
|
521
|
+
* ```ts
|
|
522
|
+
* const isNotEqual = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
523
|
+
* $.return(a.notEquals(b));
|
|
524
|
+
* });
|
|
525
|
+
* const compiled = East.compile(isNotEqual.toIR(), []);
|
|
526
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // true
|
|
527
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
528
|
+
* ```
|
|
529
|
+
*/
|
|
530
|
+
notEquals(other: DateTimeExpr | Date): BooleanExpr;
|
|
531
|
+
/**
|
|
532
|
+
* Checks if this DateTime is after another value.
|
|
533
|
+
*
|
|
534
|
+
* @param other - The value to compare against
|
|
535
|
+
* @returns A BooleanExpr that is true if this DateTime is after the other
|
|
536
|
+
*
|
|
537
|
+
* @example
|
|
538
|
+
* ```ts
|
|
539
|
+
* const isAfter = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
540
|
+
* $.return(a.greaterThan(b));
|
|
541
|
+
* });
|
|
542
|
+
* const compiled = East.compile(isAfter.toIR(), []);
|
|
543
|
+
* compiled(new Date("2025-01-16T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
544
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // false
|
|
545
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
546
|
+
* ```
|
|
547
|
+
*/
|
|
548
|
+
greaterThan(other: DateTimeExpr | Date): BooleanExpr;
|
|
549
|
+
/**
|
|
550
|
+
* Checks if this DateTime is before another value.
|
|
551
|
+
*
|
|
552
|
+
* @param other - The value to compare against
|
|
553
|
+
* @returns A BooleanExpr that is true if this DateTime is before the other
|
|
554
|
+
*
|
|
555
|
+
* @example
|
|
556
|
+
* ```ts
|
|
557
|
+
* const isBefore = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
558
|
+
* $.return(a.lessThan(b));
|
|
559
|
+
* });
|
|
560
|
+
* const compiled = East.compile(isBefore.toIR(), []);
|
|
561
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // true
|
|
562
|
+
* compiled(new Date("2025-01-16T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
563
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
564
|
+
* ```
|
|
565
|
+
*/
|
|
566
|
+
lessThan(other: DateTimeExpr | Date): BooleanExpr;
|
|
567
|
+
/**
|
|
568
|
+
* Checks if this DateTime is after or equal to another value.
|
|
569
|
+
*
|
|
570
|
+
* @param other - The value to compare against
|
|
571
|
+
* @returns A BooleanExpr that is true if this DateTime is after or equal to the other
|
|
572
|
+
*
|
|
573
|
+
* @example
|
|
574
|
+
* ```ts
|
|
575
|
+
* const isAfterOrEqual = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
576
|
+
* $.return(a.greaterThanOrEqual(b));
|
|
577
|
+
* });
|
|
578
|
+
* const compiled = East.compile(isAfterOrEqual.toIR(), []);
|
|
579
|
+
* compiled(new Date("2025-01-16T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
580
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
581
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // false
|
|
582
|
+
* ```
|
|
583
|
+
*/
|
|
584
|
+
greaterThanOrEqual(other: DateTimeExpr | Date): BooleanExpr;
|
|
585
|
+
/**
|
|
586
|
+
* Checks if this DateTime is before or equal to another value.
|
|
587
|
+
*
|
|
588
|
+
* @param other - The value to compare against
|
|
589
|
+
* @returns A BooleanExpr that is true if this DateTime is before or equal to the other
|
|
590
|
+
*
|
|
591
|
+
* @example
|
|
592
|
+
* ```ts
|
|
593
|
+
* const isBeforeOrEqual = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
594
|
+
* $.return(a.lessThanOrEqual(b));
|
|
595
|
+
* });
|
|
596
|
+
* const compiled = East.compile(isBeforeOrEqual.toIR(), []);
|
|
597
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // true
|
|
598
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
599
|
+
* compiled(new Date("2025-01-16T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
600
|
+
* ```
|
|
601
|
+
*/
|
|
602
|
+
lessThanOrEqual(other: DateTimeExpr | Date): BooleanExpr;
|
|
603
|
+
/** Alias for {@link equals} */
|
|
604
|
+
eq: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
605
|
+
/** Alias for {@link equals} */
|
|
606
|
+
equal: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
607
|
+
/** Alias for {@link notEquals} */
|
|
608
|
+
ne: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
609
|
+
/** Alias for {@link notEquals} */
|
|
610
|
+
notEqual: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
611
|
+
/** Alias for {@link greaterThan} */
|
|
612
|
+
gt: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
613
|
+
/** Alias for {@link greaterThan} */
|
|
614
|
+
greater: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
615
|
+
/** Alias for {@link lessThan} */
|
|
616
|
+
lt: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
617
|
+
/** Alias for {@link lessThan} */
|
|
618
|
+
less: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
619
|
+
/** Alias for {@link greaterThanOrEqual} */
|
|
620
|
+
gte: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
621
|
+
/** Alias for {@link greaterThanOrEqual} */
|
|
622
|
+
ge: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
623
|
+
/** Alias for {@link greaterThanOrEqual} */
|
|
624
|
+
greaterEqual: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
625
|
+
/** Alias for {@link lessThanOrEqual} */
|
|
626
|
+
lte: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
627
|
+
/** Alias for {@link lessThanOrEqual} */
|
|
628
|
+
le: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
629
|
+
/** Alias for {@link lessThanOrEqual} */
|
|
630
|
+
lessEqual: (other: DateTimeExpr | Date) => BooleanExpr;
|
|
496
631
|
}
|
|
497
632
|
export declare function fromEpochMilliseconds(milliseconds: IntegerExpr | bigint): DateTimeExpr;
|
|
498
633
|
export declare function fromComponents(year: IntegerExpr | bigint, month?: IntegerExpr | bigint, day?: IntegerExpr | bigint, hour?: IntegerExpr | bigint, minute?: IntegerExpr | bigint, second?: IntegerExpr | bigint, millisecond?: IntegerExpr | bigint): DateTimeExpr;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../src/expr/datetime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAa,YAAY,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAa,IAAI,EAA6B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAKpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../src/expr/datetime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAa,YAAY,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAa,IAAI,EAA6B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAKpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,YAAa,SAAQ,IAAI,CAAC,YAAY,CAAC;gBACtC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM;IAIxC;;;;;;;;;;;;;;OAcG;IACH,OAAO,IAAI,WAAW;IAWtB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,IAAI,WAAW;IAWvB;;;;;;;;;;;;;;OAcG;IACH,aAAa,IAAI,WAAW;IAW5B;;;;;;;;;;;;;;OAcG;IACH,OAAO,IAAI,WAAW;IAWtB;;;;;;;;;;;;;;OAcG;IACH,SAAS,IAAI,WAAW;IAWxB;;;;;;;;;;;;;;OAcG;IACH,SAAS,IAAI,WAAW;IAWxB;;;;;;;;;;;;;;OAcG;IACH,YAAY,IAAI,WAAW;IAW3B;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,WAAW;IAW7B;;;;;;;;;;;;;;;;;;OAkBG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAkClG;;;;;;;;;;;;;;;;;;OAkBG;IACH,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAiCvG;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAIxF;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAIxF;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAIpF;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAIlF;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAIpF;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAI7F;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAI7F;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAIzF;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAIvF;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY;IAIzF;;OAEG;IACH,OAAO,CAAC,YAAY;IAkDpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;;;;;;;;;;;;;;;;OAiBG;IACH,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,WAAW;IAY1E;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,SAAS;IAyBnE;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,SAAS;IAyBnE;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,SAAS;IAyBjE;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,SAAS;IAyBhE;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,SAAS;IAyBjE;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,IAAI,WAAW;IAWlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU;IAiBhD;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,WAAW;IAI/C;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,WAAW;IAIlD;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,WAAW;IAIpD;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,WAAW;IAIjD;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,WAAW;IAI3D;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,WAAW;IAQxD,+BAA+B;IAC/B,EAAE,UAjHY,YAAY,GAAG,IAAI,KAAG,WAAW,CAiH9B;IACjB,+BAA+B;IAC/B,KAAK,UAnHS,YAAY,GAAG,IAAI,KAAG,WAAW,CAmH3B;IAEpB,kCAAkC;IAClC,EAAE,UAlGe,YAAY,GAAG,IAAI,KAAG,WAAW,CAkG9B;IACpB,kCAAkC;IAClC,QAAQ,UApGS,YAAY,GAAG,IAAI,KAAG,WAAW,CAoGxB;IAE1B,oCAAoC;IACpC,EAAE,UAlFiB,YAAY,GAAG,IAAI,KAAG,WAAW,CAkF9B;IACtB,oCAAoC;IACpC,OAAO,UApFY,YAAY,GAAG,IAAI,KAAG,WAAW,CAoFzB;IAE3B,iCAAiC;IACjC,EAAE,UAlEc,YAAY,GAAG,IAAI,KAAG,WAAW,CAkE9B;IACnB,iCAAiC;IACjC,IAAI,UApEY,YAAY,GAAG,IAAI,KAAG,WAAW,CAoE5B;IAErB,2CAA2C;IAC3C,GAAG,UAlDuB,YAAY,GAAG,IAAI,KAAG,WAAW,CAkD7B;IAC9B,2CAA2C;IAC3C,EAAE,UApDwB,YAAY,GAAG,IAAI,KAAG,WAAW,CAoD9B;IAC7B,2CAA2C;IAC3C,YAAY,UAtDc,YAAY,GAAG,IAAI,KAAG,WAAW,CAsDpB;IAEvC,wCAAwC;IACxC,GAAG,UApCoB,YAAY,GAAG,IAAI,KAAG,WAAW,CAoC7B;IAC3B,wCAAwC;IACxC,EAAE,UAtCqB,YAAY,GAAG,IAAI,KAAG,WAAW,CAsC9B;IAC1B,wCAAwC;IACxC,SAAS,UAxCc,YAAY,GAAG,IAAI,KAAG,WAAW,CAwCvB;CAClC;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,WAAW,GAAG,MAAM,GAAG,YAAY,CActF;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,GAAG,MAAM,EAC1B,KAAK,GAAE,WAAW,GAAG,MAAW,EAChC,GAAG,GAAE,WAAW,GAAG,MAAW,EAC9B,IAAI,GAAE,WAAW,GAAG,MAAW,EAC/B,MAAM,GAAE,WAAW,GAAG,MAAW,EACjC,MAAM,GAAE,WAAW,GAAG,MAAW,EACjC,WAAW,GAAE,WAAW,GAAG,MAAW,GACrC,YAAY,CAuBd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,CA2B7F"}
|
|
@@ -5,6 +5,7 @@ import { valueOrExprToAst } from "./ast.js";
|
|
|
5
5
|
import { tokenizeDateTimeFormat } from "../datetime_format/tokenize.js";
|
|
6
6
|
import { DateTimeFormatTokenType } from "../datetime_format/types.js";
|
|
7
7
|
import { validateDateTimeFormatTokens } from "../datetime_format/validate.js";
|
|
8
|
+
import { equal, notEqual, less, lessEqual, greater, greaterEqual } from "./block.js";
|
|
8
9
|
/**
|
|
9
10
|
* Expression representing date and time values and operations.
|
|
10
11
|
*
|
|
@@ -55,7 +56,7 @@ export class DateTimeExpr extends Expr {
|
|
|
55
56
|
return this[FactorySymbol]({
|
|
56
57
|
ast_type: "Builtin",
|
|
57
58
|
type: IntegerType,
|
|
58
|
-
location: get_location(
|
|
59
|
+
location: get_location(),
|
|
59
60
|
builtin: "DateTimeGetYear",
|
|
60
61
|
type_parameters: [],
|
|
61
62
|
arguments: [this[AstSymbol]],
|
|
@@ -80,7 +81,7 @@ export class DateTimeExpr extends Expr {
|
|
|
80
81
|
return this[FactorySymbol]({
|
|
81
82
|
ast_type: "Builtin",
|
|
82
83
|
type: IntegerType,
|
|
83
|
-
location: get_location(
|
|
84
|
+
location: get_location(),
|
|
84
85
|
builtin: "DateTimeGetMonth",
|
|
85
86
|
type_parameters: [],
|
|
86
87
|
arguments: [this[AstSymbol]],
|
|
@@ -105,7 +106,7 @@ export class DateTimeExpr extends Expr {
|
|
|
105
106
|
return this[FactorySymbol]({
|
|
106
107
|
ast_type: "Builtin",
|
|
107
108
|
type: IntegerType,
|
|
108
|
-
location: get_location(
|
|
109
|
+
location: get_location(),
|
|
109
110
|
builtin: "DateTimeGetDayOfMonth",
|
|
110
111
|
type_parameters: [],
|
|
111
112
|
arguments: [this[AstSymbol]],
|
|
@@ -130,7 +131,7 @@ export class DateTimeExpr extends Expr {
|
|
|
130
131
|
return this[FactorySymbol]({
|
|
131
132
|
ast_type: "Builtin",
|
|
132
133
|
type: IntegerType,
|
|
133
|
-
location: get_location(
|
|
134
|
+
location: get_location(),
|
|
134
135
|
builtin: "DateTimeGetHour",
|
|
135
136
|
type_parameters: [],
|
|
136
137
|
arguments: [this[AstSymbol]],
|
|
@@ -155,7 +156,7 @@ export class DateTimeExpr extends Expr {
|
|
|
155
156
|
return this[FactorySymbol]({
|
|
156
157
|
ast_type: "Builtin",
|
|
157
158
|
type: IntegerType,
|
|
158
|
-
location: get_location(
|
|
159
|
+
location: get_location(),
|
|
159
160
|
builtin: "DateTimeGetMinute",
|
|
160
161
|
type_parameters: [],
|
|
161
162
|
arguments: [this[AstSymbol]],
|
|
@@ -180,7 +181,7 @@ export class DateTimeExpr extends Expr {
|
|
|
180
181
|
return this[FactorySymbol]({
|
|
181
182
|
ast_type: "Builtin",
|
|
182
183
|
type: IntegerType,
|
|
183
|
-
location: get_location(
|
|
184
|
+
location: get_location(),
|
|
184
185
|
builtin: "DateTimeGetSecond",
|
|
185
186
|
type_parameters: [],
|
|
186
187
|
arguments: [this[AstSymbol]],
|
|
@@ -205,7 +206,7 @@ export class DateTimeExpr extends Expr {
|
|
|
205
206
|
return this[FactorySymbol]({
|
|
206
207
|
ast_type: "Builtin",
|
|
207
208
|
type: IntegerType,
|
|
208
|
-
location: get_location(
|
|
209
|
+
location: get_location(),
|
|
209
210
|
builtin: "DateTimeGetDayOfWeek",
|
|
210
211
|
type_parameters: [],
|
|
211
212
|
arguments: [this[AstSymbol]],
|
|
@@ -230,7 +231,7 @@ export class DateTimeExpr extends Expr {
|
|
|
230
231
|
return this[FactorySymbol]({
|
|
231
232
|
ast_type: "Builtin",
|
|
232
233
|
type: IntegerType,
|
|
233
|
-
location: get_location(
|
|
234
|
+
location: get_location(),
|
|
234
235
|
builtin: "DateTimeGetMillisecond",
|
|
235
236
|
type_parameters: [],
|
|
236
237
|
arguments: [this[AstSymbol]],
|
|
@@ -273,7 +274,7 @@ export class DateTimeExpr extends Expr {
|
|
|
273
274
|
ms = this[FactorySymbol]({
|
|
274
275
|
ast_type: "Builtin",
|
|
275
276
|
type: IntegerType,
|
|
276
|
-
location: get_location(
|
|
277
|
+
location: get_location(),
|
|
277
278
|
builtin: "FloatToInteger",
|
|
278
279
|
type_parameters: [],
|
|
279
280
|
arguments: [milliseconds[AstSymbol]],
|
|
@@ -285,7 +286,7 @@ export class DateTimeExpr extends Expr {
|
|
|
285
286
|
return this[FactorySymbol]({
|
|
286
287
|
ast_type: "Builtin",
|
|
287
288
|
type: DateTimeType,
|
|
288
|
-
location: get_location(
|
|
289
|
+
location: get_location(),
|
|
289
290
|
builtin: "DateTimeAddMilliseconds",
|
|
290
291
|
type_parameters: [],
|
|
291
292
|
arguments: [this[AstSymbol], ms[AstSymbol]],
|
|
@@ -323,7 +324,7 @@ export class DateTimeExpr extends Expr {
|
|
|
323
324
|
const negated = this[FactorySymbol]({
|
|
324
325
|
ast_type: "Builtin",
|
|
325
326
|
type: IntegerType,
|
|
326
|
-
location: get_location(
|
|
327
|
+
location: get_location(),
|
|
327
328
|
builtin: "IntegerNegate",
|
|
328
329
|
type_parameters: [],
|
|
329
330
|
arguments: [milliseconds[AstSymbol]],
|
|
@@ -335,7 +336,7 @@ export class DateTimeExpr extends Expr {
|
|
|
335
336
|
const negated = this[FactorySymbol]({
|
|
336
337
|
ast_type: "Builtin",
|
|
337
338
|
type: FloatType,
|
|
338
|
-
location: get_location(
|
|
339
|
+
location: get_location(),
|
|
339
340
|
builtin: "FloatNegate",
|
|
340
341
|
type_parameters: [],
|
|
341
342
|
arguments: [milliseconds[AstSymbol]],
|
|
@@ -501,7 +502,7 @@ export class DateTimeExpr extends Expr {
|
|
|
501
502
|
ms = this[FactorySymbol]({
|
|
502
503
|
ast_type: "Builtin",
|
|
503
504
|
type: IntegerType,
|
|
504
|
-
location: get_location(
|
|
505
|
+
location: get_location(),
|
|
505
506
|
builtin: "IntegerMultiply",
|
|
506
507
|
type_parameters: [],
|
|
507
508
|
arguments: [value[AstSymbol], factorExpr[AstSymbol]],
|
|
@@ -512,7 +513,7 @@ export class DateTimeExpr extends Expr {
|
|
|
512
513
|
const intValue = this[FactorySymbol]({
|
|
513
514
|
ast_type: "Builtin",
|
|
514
515
|
type: IntegerType,
|
|
515
|
-
location: get_location(
|
|
516
|
+
location: get_location(),
|
|
516
517
|
builtin: "FloatToInteger",
|
|
517
518
|
type_parameters: [],
|
|
518
519
|
arguments: [value[AstSymbol]],
|
|
@@ -521,7 +522,7 @@ export class DateTimeExpr extends Expr {
|
|
|
521
522
|
ms = this[FactorySymbol]({
|
|
522
523
|
ast_type: "Builtin",
|
|
523
524
|
type: IntegerType,
|
|
524
|
-
location: get_location(
|
|
525
|
+
location: get_location(),
|
|
525
526
|
builtin: "IntegerMultiply",
|
|
526
527
|
type_parameters: [],
|
|
527
528
|
arguments: [intValue[AstSymbol], factorExpr[AstSymbol]],
|
|
@@ -548,7 +549,7 @@ export class DateTimeExpr extends Expr {
|
|
|
548
549
|
negatedValue = this[FactorySymbol]({
|
|
549
550
|
ast_type: "Builtin",
|
|
550
551
|
type: IntegerType,
|
|
551
|
-
location: get_location(
|
|
552
|
+
location: get_location(),
|
|
552
553
|
builtin: "IntegerNegate",
|
|
553
554
|
type_parameters: [],
|
|
554
555
|
arguments: [value[AstSymbol]],
|
|
@@ -559,7 +560,7 @@ export class DateTimeExpr extends Expr {
|
|
|
559
560
|
negatedValue = this[FactorySymbol]({
|
|
560
561
|
ast_type: "Builtin",
|
|
561
562
|
type: FloatType,
|
|
562
|
-
location: get_location(
|
|
563
|
+
location: get_location(),
|
|
563
564
|
builtin: "FloatNegate",
|
|
564
565
|
type_parameters: [],
|
|
565
566
|
arguments: [value[AstSymbol]],
|
|
@@ -593,7 +594,7 @@ export class DateTimeExpr extends Expr {
|
|
|
593
594
|
return this[FactorySymbol]({
|
|
594
595
|
ast_type: "Builtin",
|
|
595
596
|
type: IntegerType,
|
|
596
|
-
location: get_location(
|
|
597
|
+
location: get_location(),
|
|
597
598
|
builtin: "DateTimeDurationMilliseconds",
|
|
598
599
|
type_parameters: [],
|
|
599
600
|
arguments: [otherAst, this[AstSymbol]],
|
|
@@ -622,7 +623,7 @@ export class DateTimeExpr extends Expr {
|
|
|
622
623
|
const millisecondsFloat = this[FactorySymbol]({
|
|
623
624
|
ast_type: "Builtin",
|
|
624
625
|
type: FloatType,
|
|
625
|
-
location: get_location(
|
|
626
|
+
location: get_location(),
|
|
626
627
|
builtin: "IntegerToFloat",
|
|
627
628
|
type_parameters: [],
|
|
628
629
|
arguments: [milliseconds[AstSymbol]],
|
|
@@ -632,7 +633,7 @@ export class DateTimeExpr extends Expr {
|
|
|
632
633
|
return this[FactorySymbol]({
|
|
633
634
|
ast_type: "Builtin",
|
|
634
635
|
type: FloatType,
|
|
635
|
-
location: get_location(
|
|
636
|
+
location: get_location(),
|
|
636
637
|
builtin: "FloatDivide",
|
|
637
638
|
type_parameters: [],
|
|
638
639
|
arguments: [millisecondsFloat[AstSymbol], divisor[AstSymbol]],
|
|
@@ -661,7 +662,7 @@ export class DateTimeExpr extends Expr {
|
|
|
661
662
|
const millisecondsFloat = this[FactorySymbol]({
|
|
662
663
|
ast_type: "Builtin",
|
|
663
664
|
type: FloatType,
|
|
664
|
-
location: get_location(
|
|
665
|
+
location: get_location(),
|
|
665
666
|
builtin: "IntegerToFloat",
|
|
666
667
|
type_parameters: [],
|
|
667
668
|
arguments: [milliseconds[AstSymbol]],
|
|
@@ -671,7 +672,7 @@ export class DateTimeExpr extends Expr {
|
|
|
671
672
|
return this[FactorySymbol]({
|
|
672
673
|
ast_type: "Builtin",
|
|
673
674
|
type: FloatType,
|
|
674
|
-
location: get_location(
|
|
675
|
+
location: get_location(),
|
|
675
676
|
builtin: "FloatDivide",
|
|
676
677
|
type_parameters: [],
|
|
677
678
|
arguments: [millisecondsFloat[AstSymbol], divisor[AstSymbol]],
|
|
@@ -700,7 +701,7 @@ export class DateTimeExpr extends Expr {
|
|
|
700
701
|
const millisecondsFloat = this[FactorySymbol]({
|
|
701
702
|
ast_type: "Builtin",
|
|
702
703
|
type: FloatType,
|
|
703
|
-
location: get_location(
|
|
704
|
+
location: get_location(),
|
|
704
705
|
builtin: "IntegerToFloat",
|
|
705
706
|
type_parameters: [],
|
|
706
707
|
arguments: [milliseconds[AstSymbol]],
|
|
@@ -710,7 +711,7 @@ export class DateTimeExpr extends Expr {
|
|
|
710
711
|
return this[FactorySymbol]({
|
|
711
712
|
ast_type: "Builtin",
|
|
712
713
|
type: FloatType,
|
|
713
|
-
location: get_location(
|
|
714
|
+
location: get_location(),
|
|
714
715
|
builtin: "FloatDivide",
|
|
715
716
|
type_parameters: [],
|
|
716
717
|
arguments: [millisecondsFloat[AstSymbol], divisor[AstSymbol]],
|
|
@@ -739,7 +740,7 @@ export class DateTimeExpr extends Expr {
|
|
|
739
740
|
const millisecondsFloat = this[FactorySymbol]({
|
|
740
741
|
ast_type: "Builtin",
|
|
741
742
|
type: FloatType,
|
|
742
|
-
location: get_location(
|
|
743
|
+
location: get_location(),
|
|
743
744
|
builtin: "IntegerToFloat",
|
|
744
745
|
type_parameters: [],
|
|
745
746
|
arguments: [milliseconds[AstSymbol]],
|
|
@@ -749,7 +750,7 @@ export class DateTimeExpr extends Expr {
|
|
|
749
750
|
return this[FactorySymbol]({
|
|
750
751
|
ast_type: "Builtin",
|
|
751
752
|
type: FloatType,
|
|
752
|
-
location: get_location(
|
|
753
|
+
location: get_location(),
|
|
753
754
|
builtin: "FloatDivide",
|
|
754
755
|
type_parameters: [],
|
|
755
756
|
arguments: [millisecondsFloat[AstSymbol], divisor[AstSymbol]],
|
|
@@ -778,7 +779,7 @@ export class DateTimeExpr extends Expr {
|
|
|
778
779
|
const millisecondsFloat = this[FactorySymbol]({
|
|
779
780
|
ast_type: "Builtin",
|
|
780
781
|
type: FloatType,
|
|
781
|
-
location: get_location(
|
|
782
|
+
location: get_location(),
|
|
782
783
|
builtin: "IntegerToFloat",
|
|
783
784
|
type_parameters: [],
|
|
784
785
|
arguments: [milliseconds[AstSymbol]],
|
|
@@ -788,7 +789,7 @@ export class DateTimeExpr extends Expr {
|
|
|
788
789
|
return this[FactorySymbol]({
|
|
789
790
|
ast_type: "Builtin",
|
|
790
791
|
type: FloatType,
|
|
791
|
-
location: get_location(
|
|
792
|
+
location: get_location(),
|
|
792
793
|
builtin: "FloatDivide",
|
|
793
794
|
type_parameters: [],
|
|
794
795
|
arguments: [millisecondsFloat[AstSymbol], divisor[AstSymbol]],
|
|
@@ -813,7 +814,7 @@ export class DateTimeExpr extends Expr {
|
|
|
813
814
|
return this[FactorySymbol]({
|
|
814
815
|
ast_type: "Builtin",
|
|
815
816
|
type: IntegerType,
|
|
816
|
-
location: get_location(
|
|
817
|
+
location: get_location(),
|
|
817
818
|
builtin: "DateTimeToEpochMilliseconds",
|
|
818
819
|
type_parameters: [],
|
|
819
820
|
arguments: [this[AstSymbol]],
|
|
@@ -863,12 +864,161 @@ export class DateTimeExpr extends Expr {
|
|
|
863
864
|
return this[FactorySymbol]({
|
|
864
865
|
ast_type: "Builtin",
|
|
865
866
|
type: StringType,
|
|
866
|
-
location: get_location(
|
|
867
|
+
location: get_location(),
|
|
867
868
|
builtin: "DateTimePrintFormat",
|
|
868
869
|
type_parameters: [],
|
|
869
870
|
arguments: [this[AstSymbol], tokensArray[AstSymbol]],
|
|
870
871
|
});
|
|
871
872
|
}
|
|
873
|
+
/**
|
|
874
|
+
* Checks if this DateTime equals another value.
|
|
875
|
+
*
|
|
876
|
+
* @param other - The value to compare against
|
|
877
|
+
* @returns A BooleanExpr that is true if the values are equal
|
|
878
|
+
*
|
|
879
|
+
* @example
|
|
880
|
+
* ```ts
|
|
881
|
+
* const isEqual = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
882
|
+
* $.return(a.equals(b));
|
|
883
|
+
* });
|
|
884
|
+
* const compiled = East.compile(isEqual.toIR(), []);
|
|
885
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
886
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // false
|
|
887
|
+
* ```
|
|
888
|
+
*/
|
|
889
|
+
equals(other) {
|
|
890
|
+
return equal(this, other);
|
|
891
|
+
}
|
|
892
|
+
/**
|
|
893
|
+
* Checks if this DateTime does not equal another value.
|
|
894
|
+
*
|
|
895
|
+
* @param other - The value to compare against
|
|
896
|
+
* @returns A BooleanExpr that is true if the values are not equal
|
|
897
|
+
*
|
|
898
|
+
* @example
|
|
899
|
+
* ```ts
|
|
900
|
+
* const isNotEqual = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
901
|
+
* $.return(a.notEquals(b));
|
|
902
|
+
* });
|
|
903
|
+
* const compiled = East.compile(isNotEqual.toIR(), []);
|
|
904
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // true
|
|
905
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
906
|
+
* ```
|
|
907
|
+
*/
|
|
908
|
+
notEquals(other) {
|
|
909
|
+
return notEqual(this, other);
|
|
910
|
+
}
|
|
911
|
+
/**
|
|
912
|
+
* Checks if this DateTime is after another value.
|
|
913
|
+
*
|
|
914
|
+
* @param other - The value to compare against
|
|
915
|
+
* @returns A BooleanExpr that is true if this DateTime is after the other
|
|
916
|
+
*
|
|
917
|
+
* @example
|
|
918
|
+
* ```ts
|
|
919
|
+
* const isAfter = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
920
|
+
* $.return(a.greaterThan(b));
|
|
921
|
+
* });
|
|
922
|
+
* const compiled = East.compile(isAfter.toIR(), []);
|
|
923
|
+
* compiled(new Date("2025-01-16T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
924
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // false
|
|
925
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
926
|
+
* ```
|
|
927
|
+
*/
|
|
928
|
+
greaterThan(other) {
|
|
929
|
+
return greater(this, other);
|
|
930
|
+
}
|
|
931
|
+
/**
|
|
932
|
+
* Checks if this DateTime is before another value.
|
|
933
|
+
*
|
|
934
|
+
* @param other - The value to compare against
|
|
935
|
+
* @returns A BooleanExpr that is true if this DateTime is before the other
|
|
936
|
+
*
|
|
937
|
+
* @example
|
|
938
|
+
* ```ts
|
|
939
|
+
* const isBefore = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
940
|
+
* $.return(a.lessThan(b));
|
|
941
|
+
* });
|
|
942
|
+
* const compiled = East.compile(isBefore.toIR(), []);
|
|
943
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // true
|
|
944
|
+
* compiled(new Date("2025-01-16T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
945
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
946
|
+
* ```
|
|
947
|
+
*/
|
|
948
|
+
lessThan(other) {
|
|
949
|
+
return less(this, other);
|
|
950
|
+
}
|
|
951
|
+
/**
|
|
952
|
+
* Checks if this DateTime is after or equal to another value.
|
|
953
|
+
*
|
|
954
|
+
* @param other - The value to compare against
|
|
955
|
+
* @returns A BooleanExpr that is true if this DateTime is after or equal to the other
|
|
956
|
+
*
|
|
957
|
+
* @example
|
|
958
|
+
* ```ts
|
|
959
|
+
* const isAfterOrEqual = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
960
|
+
* $.return(a.greaterThanOrEqual(b));
|
|
961
|
+
* });
|
|
962
|
+
* const compiled = East.compile(isAfterOrEqual.toIR(), []);
|
|
963
|
+
* compiled(new Date("2025-01-16T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
964
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
965
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // false
|
|
966
|
+
* ```
|
|
967
|
+
*/
|
|
968
|
+
greaterThanOrEqual(other) {
|
|
969
|
+
return greaterEqual(this, other);
|
|
970
|
+
}
|
|
971
|
+
/**
|
|
972
|
+
* Checks if this DateTime is before or equal to another value.
|
|
973
|
+
*
|
|
974
|
+
* @param other - The value to compare against
|
|
975
|
+
* @returns A BooleanExpr that is true if this DateTime is before or equal to the other
|
|
976
|
+
*
|
|
977
|
+
* @example
|
|
978
|
+
* ```ts
|
|
979
|
+
* const isBeforeOrEqual = East.function([DateTimeType, DateTimeType], BooleanType, ($, a, b) => {
|
|
980
|
+
* $.return(a.lessThanOrEqual(b));
|
|
981
|
+
* });
|
|
982
|
+
* const compiled = East.compile(isBeforeOrEqual.toIR(), []);
|
|
983
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-16T00:00:00.000Z")); // true
|
|
984
|
+
* compiled(new Date("2025-01-15T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // true
|
|
985
|
+
* compiled(new Date("2025-01-16T00:00:00.000Z"), new Date("2025-01-15T00:00:00.000Z")); // false
|
|
986
|
+
* ```
|
|
987
|
+
*/
|
|
988
|
+
lessThanOrEqual(other) {
|
|
989
|
+
return lessEqual(this, other);
|
|
990
|
+
}
|
|
991
|
+
// ============================================================================
|
|
992
|
+
// Aliases for comparison operations
|
|
993
|
+
// ============================================================================
|
|
994
|
+
/** Alias for {@link equals} */
|
|
995
|
+
eq = this.equals;
|
|
996
|
+
/** Alias for {@link equals} */
|
|
997
|
+
equal = this.equals;
|
|
998
|
+
/** Alias for {@link notEquals} */
|
|
999
|
+
ne = this.notEquals;
|
|
1000
|
+
/** Alias for {@link notEquals} */
|
|
1001
|
+
notEqual = this.notEquals;
|
|
1002
|
+
/** Alias for {@link greaterThan} */
|
|
1003
|
+
gt = this.greaterThan;
|
|
1004
|
+
/** Alias for {@link greaterThan} */
|
|
1005
|
+
greater = this.greaterThan;
|
|
1006
|
+
/** Alias for {@link lessThan} */
|
|
1007
|
+
lt = this.lessThan;
|
|
1008
|
+
/** Alias for {@link lessThan} */
|
|
1009
|
+
less = this.lessThan;
|
|
1010
|
+
/** Alias for {@link greaterThanOrEqual} */
|
|
1011
|
+
gte = this.greaterThanOrEqual;
|
|
1012
|
+
/** Alias for {@link greaterThanOrEqual} */
|
|
1013
|
+
ge = this.greaterThanOrEqual;
|
|
1014
|
+
/** Alias for {@link greaterThanOrEqual} */
|
|
1015
|
+
greaterEqual = this.greaterThanOrEqual;
|
|
1016
|
+
/** Alias for {@link lessThanOrEqual} */
|
|
1017
|
+
lte = this.lessThanOrEqual;
|
|
1018
|
+
/** Alias for {@link lessThanOrEqual} */
|
|
1019
|
+
le = this.lessThanOrEqual;
|
|
1020
|
+
/** Alias for {@link lessThanOrEqual} */
|
|
1021
|
+
lessEqual = this.lessThanOrEqual;
|
|
872
1022
|
}
|
|
873
1023
|
export function fromEpochMilliseconds(milliseconds) {
|
|
874
1024
|
const millis = typeof milliseconds === 'bigint' ? Expr.from(milliseconds, IntegerType) : milliseconds;
|
|
@@ -878,7 +1028,7 @@ export function fromEpochMilliseconds(milliseconds) {
|
|
|
878
1028
|
return Expr.fromAst({
|
|
879
1029
|
ast_type: "Builtin",
|
|
880
1030
|
type: DateTimeType,
|
|
881
|
-
location: get_location(
|
|
1031
|
+
location: get_location(),
|
|
882
1032
|
builtin: "DateTimeFromEpochMilliseconds",
|
|
883
1033
|
type_parameters: [],
|
|
884
1034
|
arguments: [millis[AstSymbol]],
|
|
@@ -901,7 +1051,7 @@ export function fromComponents(year, month = 1n, day = 1n, hour = 0n, minute = 0
|
|
|
901
1051
|
return Expr.fromAst({
|
|
902
1052
|
ast_type: "Builtin",
|
|
903
1053
|
type: DateTimeType,
|
|
904
|
-
location: get_location(
|
|
1054
|
+
location: get_location(),
|
|
905
1055
|
builtin: "DateTimeFromComponents",
|
|
906
1056
|
type_parameters: [],
|
|
907
1057
|
arguments: [y[AstSymbol], mo[AstSymbol], d[AstSymbol], h[AstSymbol], mi[AstSymbol], s[AstSymbol], ms[AstSymbol]],
|
|
@@ -970,7 +1120,7 @@ export function parseFormatted(input, formatString) {
|
|
|
970
1120
|
return Expr.fromAst({
|
|
971
1121
|
ast_type: "Builtin",
|
|
972
1122
|
type: DateTimeType,
|
|
973
|
-
location: get_location(
|
|
1123
|
+
location: get_location(),
|
|
974
1124
|
builtin: "DateTimeParseFormat",
|
|
975
1125
|
type_parameters: [],
|
|
976
1126
|
arguments: [inputExpr[AstSymbol], tokensArray[AstSymbol]],
|