@elaraai/east 0.0.1-beta.0

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 (251) hide show
  1. package/LICENSE.md +682 -0
  2. package/README.md +276 -0
  3. package/dist/src/analyze.d.ts +95 -0
  4. package/dist/src/analyze.d.ts.map +1 -0
  5. package/dist/src/analyze.js +1110 -0
  6. package/dist/src/analyze.js.map +1 -0
  7. package/dist/src/ast.d.ts +263 -0
  8. package/dist/src/ast.d.ts.map +1 -0
  9. package/dist/src/ast.js +151 -0
  10. package/dist/src/ast.js.map +1 -0
  11. package/dist/src/ast_to_ir.d.ts +24 -0
  12. package/dist/src/ast_to_ir.d.ts.map +1 -0
  13. package/dist/src/ast_to_ir.js +834 -0
  14. package/dist/src/ast_to_ir.js.map +1 -0
  15. package/dist/src/builtins.d.ts +18 -0
  16. package/dist/src/builtins.d.ts.map +1 -0
  17. package/dist/src/builtins.js +1105 -0
  18. package/dist/src/builtins.js.map +1 -0
  19. package/dist/src/comparison.d.ts +28 -0
  20. package/dist/src/comparison.d.ts.map +1 -0
  21. package/dist/src/comparison.js +1017 -0
  22. package/dist/src/comparison.js.map +1 -0
  23. package/dist/src/compile.d.ts +22 -0
  24. package/dist/src/compile.d.ts.map +1 -0
  25. package/dist/src/compile.js +3260 -0
  26. package/dist/src/compile.js.map +1 -0
  27. package/dist/src/containers/ref.d.ts +106 -0
  28. package/dist/src/containers/ref.d.ts.map +1 -0
  29. package/dist/src/containers/ref.js +100 -0
  30. package/dist/src/containers/ref.js.map +1 -0
  31. package/dist/src/containers/sortedmap.d.ts +165 -0
  32. package/dist/src/containers/sortedmap.d.ts.map +1 -0
  33. package/dist/src/containers/sortedmap.js +237 -0
  34. package/dist/src/containers/sortedmap.js.map +1 -0
  35. package/dist/src/containers/sortedset.d.ts +185 -0
  36. package/dist/src/containers/sortedset.d.ts.map +1 -0
  37. package/dist/src/containers/sortedset.js +312 -0
  38. package/dist/src/containers/sortedset.js.map +1 -0
  39. package/dist/src/containers/variant.d.ts +131 -0
  40. package/dist/src/containers/variant.d.ts.map +1 -0
  41. package/dist/src/containers/variant.js +68 -0
  42. package/dist/src/containers/variant.js.map +1 -0
  43. package/dist/src/datetime_format/parse.d.ts +50 -0
  44. package/dist/src/datetime_format/parse.d.ts.map +1 -0
  45. package/dist/src/datetime_format/parse.js +908 -0
  46. package/dist/src/datetime_format/parse.js.map +1 -0
  47. package/dist/src/datetime_format/print.d.ts +35 -0
  48. package/dist/src/datetime_format/print.d.ts.map +1 -0
  49. package/dist/src/datetime_format/print.js +157 -0
  50. package/dist/src/datetime_format/print.js.map +1 -0
  51. package/dist/src/datetime_format/tokenize.d.ts +76 -0
  52. package/dist/src/datetime_format/tokenize.d.ts.map +1 -0
  53. package/dist/src/datetime_format/tokenize.js +271 -0
  54. package/dist/src/datetime_format/tokenize.js.map +1 -0
  55. package/dist/src/datetime_format/types.d.ts +99 -0
  56. package/dist/src/datetime_format/types.d.ts.map +1 -0
  57. package/dist/src/datetime_format/types.js +103 -0
  58. package/dist/src/datetime_format/types.js.map +1 -0
  59. package/dist/src/datetime_format/validate.d.ts +51 -0
  60. package/dist/src/datetime_format/validate.d.ts.map +1 -0
  61. package/dist/src/datetime_format/validate.js +208 -0
  62. package/dist/src/datetime_format/validate.js.map +1 -0
  63. package/dist/src/default.d.ts +21 -0
  64. package/dist/src/default.d.ts.map +1 -0
  65. package/dist/src/default.js +82 -0
  66. package/dist/src/default.js.map +1 -0
  67. package/dist/src/eastir.d.ts +33 -0
  68. package/dist/src/eastir.d.ts.map +1 -0
  69. package/dist/src/eastir.js +92 -0
  70. package/dist/src/eastir.js.map +1 -0
  71. package/dist/src/error.d.ts +13 -0
  72. package/dist/src/error.d.ts.map +1 -0
  73. package/dist/src/error.js +8 -0
  74. package/dist/src/error.js.map +1 -0
  75. package/dist/src/expr/array.d.ts +1711 -0
  76. package/dist/src/expr/array.d.ts.map +1 -0
  77. package/dist/src/expr/array.js +1805 -0
  78. package/dist/src/expr/array.js.map +1 -0
  79. package/dist/src/expr/ast.d.ts +17 -0
  80. package/dist/src/expr/ast.d.ts.map +1 -0
  81. package/dist/src/expr/ast.js +302 -0
  82. package/dist/src/expr/ast.js.map +1 -0
  83. package/dist/src/expr/blob.d.ts +141 -0
  84. package/dist/src/expr/blob.d.ts.map +1 -0
  85. package/dist/src/expr/blob.js +198 -0
  86. package/dist/src/expr/blob.js.map +1 -0
  87. package/dist/src/expr/block.d.ts +201 -0
  88. package/dist/src/expr/block.d.ts.map +1 -0
  89. package/dist/src/expr/block.js +1505 -0
  90. package/dist/src/expr/block.js.map +1 -0
  91. package/dist/src/expr/boolean.d.ts +207 -0
  92. package/dist/src/expr/boolean.d.ts.map +1 -0
  93. package/dist/src/expr/boolean.js +261 -0
  94. package/dist/src/expr/boolean.js.map +1 -0
  95. package/dist/src/expr/datetime.d.ts +544 -0
  96. package/dist/src/expr/datetime.d.ts.map +1 -0
  97. package/dist/src/expr/datetime.js +980 -0
  98. package/dist/src/expr/datetime.js.map +1 -0
  99. package/dist/src/expr/dict.d.ts +1242 -0
  100. package/dist/src/expr/dict.d.ts.map +1 -0
  101. package/dist/src/expr/dict.js +1492 -0
  102. package/dist/src/expr/dict.js.map +1 -0
  103. package/dist/src/expr/expr.d.ts +95 -0
  104. package/dist/src/expr/expr.d.ts.map +1 -0
  105. package/dist/src/expr/expr.js +171 -0
  106. package/dist/src/expr/expr.js.map +1 -0
  107. package/dist/src/expr/float.d.ts +357 -0
  108. package/dist/src/expr/float.d.ts.map +1 -0
  109. package/dist/src/expr/float.js +637 -0
  110. package/dist/src/expr/float.js.map +1 -0
  111. package/dist/src/expr/function.d.ts +46 -0
  112. package/dist/src/expr/function.d.ts.map +1 -0
  113. package/dist/src/expr/function.js +58 -0
  114. package/dist/src/expr/function.js.map +1 -0
  115. package/dist/src/expr/index.d.ts +450 -0
  116. package/dist/src/expr/index.d.ts.map +1 -0
  117. package/dist/src/expr/index.js +423 -0
  118. package/dist/src/expr/index.js.map +1 -0
  119. package/dist/src/expr/integer.d.ts +256 -0
  120. package/dist/src/expr/integer.d.ts.map +1 -0
  121. package/dist/src/expr/integer.js +311 -0
  122. package/dist/src/expr/integer.js.map +1 -0
  123. package/dist/src/expr/libs/array.d.ts +106 -0
  124. package/dist/src/expr/libs/array.d.ts.map +1 -0
  125. package/dist/src/expr/libs/array.js +140 -0
  126. package/dist/src/expr/libs/array.js.map +1 -0
  127. package/dist/src/expr/libs/blob.d.ts +42 -0
  128. package/dist/src/expr/libs/blob.d.ts.map +1 -0
  129. package/dist/src/expr/libs/blob.js +70 -0
  130. package/dist/src/expr/libs/blob.js.map +1 -0
  131. package/dist/src/expr/libs/datetime.d.ts +479 -0
  132. package/dist/src/expr/libs/datetime.d.ts.map +1 -0
  133. package/dist/src/expr/libs/datetime.js +624 -0
  134. package/dist/src/expr/libs/datetime.js.map +1 -0
  135. package/dist/src/expr/libs/dict.d.ts +66 -0
  136. package/dist/src/expr/libs/dict.d.ts.map +1 -0
  137. package/dist/src/expr/libs/dict.js +77 -0
  138. package/dist/src/expr/libs/dict.js.map +1 -0
  139. package/dist/src/expr/libs/float.d.ts +299 -0
  140. package/dist/src/expr/libs/float.d.ts.map +1 -0
  141. package/dist/src/expr/libs/float.js +564 -0
  142. package/dist/src/expr/libs/float.js.map +1 -0
  143. package/dist/src/expr/libs/integer.d.ts +228 -0
  144. package/dist/src/expr/libs/integer.d.ts.map +1 -0
  145. package/dist/src/expr/libs/integer.js +398 -0
  146. package/dist/src/expr/libs/integer.js.map +1 -0
  147. package/dist/src/expr/libs/set.d.ts +59 -0
  148. package/dist/src/expr/libs/set.d.ts.map +1 -0
  149. package/dist/src/expr/libs/set.js +69 -0
  150. package/dist/src/expr/libs/set.js.map +1 -0
  151. package/dist/src/expr/libs/string.d.ts +71 -0
  152. package/dist/src/expr/libs/string.d.ts.map +1 -0
  153. package/dist/src/expr/libs/string.js +75 -0
  154. package/dist/src/expr/libs/string.js.map +1 -0
  155. package/dist/src/expr/never.d.ts +15 -0
  156. package/dist/src/expr/never.d.ts.map +1 -0
  157. package/dist/src/expr/never.js +12 -0
  158. package/dist/src/expr/never.js.map +1 -0
  159. package/dist/src/expr/null.d.ts +15 -0
  160. package/dist/src/expr/null.d.ts.map +1 -0
  161. package/dist/src/expr/null.js +12 -0
  162. package/dist/src/expr/null.js.map +1 -0
  163. package/dist/src/expr/ref.d.ts +103 -0
  164. package/dist/src/expr/ref.d.ts.map +1 -0
  165. package/dist/src/expr/ref.js +131 -0
  166. package/dist/src/expr/ref.js.map +1 -0
  167. package/dist/src/expr/regex_validation.d.ts +25 -0
  168. package/dist/src/expr/regex_validation.d.ts.map +1 -0
  169. package/dist/src/expr/regex_validation.js +130 -0
  170. package/dist/src/expr/regex_validation.js.map +1 -0
  171. package/dist/src/expr/set.d.ts +1071 -0
  172. package/dist/src/expr/set.d.ts.map +1 -0
  173. package/dist/src/expr/set.js +1137 -0
  174. package/dist/src/expr/set.js.map +1 -0
  175. package/dist/src/expr/string.d.ts +414 -0
  176. package/dist/src/expr/string.d.ts.map +1 -0
  177. package/dist/src/expr/string.js +683 -0
  178. package/dist/src/expr/string.js.map +1 -0
  179. package/dist/src/expr/struct.d.ts +48 -0
  180. package/dist/src/expr/struct.d.ts.map +1 -0
  181. package/dist/src/expr/struct.js +65 -0
  182. package/dist/src/expr/struct.js.map +1 -0
  183. package/dist/src/expr/types.d.ts +68 -0
  184. package/dist/src/expr/types.d.ts.map +1 -0
  185. package/dist/src/expr/types.js +6 -0
  186. package/dist/src/expr/types.js.map +1 -0
  187. package/dist/src/expr/variant.d.ts +137 -0
  188. package/dist/src/expr/variant.d.ts.map +1 -0
  189. package/dist/src/expr/variant.js +105 -0
  190. package/dist/src/expr/variant.js.map +1 -0
  191. package/dist/src/fuzz.d.ts +80 -0
  192. package/dist/src/fuzz.d.ts.map +1 -0
  193. package/dist/src/fuzz.js +300 -0
  194. package/dist/src/fuzz.js.map +1 -0
  195. package/dist/src/index.d.ts +21 -0
  196. package/dist/src/index.d.ts.map +1 -0
  197. package/dist/src/index.js +21 -0
  198. package/dist/src/index.js.map +1 -0
  199. package/dist/src/internal.d.ts +36 -0
  200. package/dist/src/internal.d.ts.map +1 -0
  201. package/dist/src/internal.js +11 -0
  202. package/dist/src/internal.js.map +1 -0
  203. package/dist/src/ir.d.ts +1571 -0
  204. package/dist/src/ir.d.ts.map +1 -0
  205. package/dist/src/ir.js +56 -0
  206. package/dist/src/ir.js.map +1 -0
  207. package/dist/src/location.d.ts +48 -0
  208. package/dist/src/location.d.ts.map +1 -0
  209. package/dist/src/location.js +62 -0
  210. package/dist/src/location.js.map +1 -0
  211. package/dist/src/platform.d.ts +21 -0
  212. package/dist/src/platform.d.ts.map +1 -0
  213. package/dist/src/platform.js +8 -0
  214. package/dist/src/platform.js.map +1 -0
  215. package/dist/src/serialization/beast.d.ts +39 -0
  216. package/dist/src/serialization/beast.d.ts.map +1 -0
  217. package/dist/src/serialization/beast.js +555 -0
  218. package/dist/src/serialization/beast.js.map +1 -0
  219. package/dist/src/serialization/beast2-stream.d.ts +38 -0
  220. package/dist/src/serialization/beast2-stream.d.ts.map +1 -0
  221. package/dist/src/serialization/beast2-stream.js +665 -0
  222. package/dist/src/serialization/beast2-stream.js.map +1 -0
  223. package/dist/src/serialization/beast2.d.ts +41 -0
  224. package/dist/src/serialization/beast2.d.ts.map +1 -0
  225. package/dist/src/serialization/beast2.js +489 -0
  226. package/dist/src/serialization/beast2.js.map +1 -0
  227. package/dist/src/serialization/binary-utils.d.ts +151 -0
  228. package/dist/src/serialization/binary-utils.d.ts.map +1 -0
  229. package/dist/src/serialization/binary-utils.js +929 -0
  230. package/dist/src/serialization/binary-utils.js.map +1 -0
  231. package/dist/src/serialization/east.d.ts +84 -0
  232. package/dist/src/serialization/east.d.ts.map +1 -0
  233. package/dist/src/serialization/east.js +1802 -0
  234. package/dist/src/serialization/east.js.map +1 -0
  235. package/dist/src/serialization/index.d.ts +11 -0
  236. package/dist/src/serialization/index.d.ts.map +1 -0
  237. package/dist/src/serialization/index.js +12 -0
  238. package/dist/src/serialization/index.js.map +1 -0
  239. package/dist/src/serialization/json.d.ts +36 -0
  240. package/dist/src/serialization/json.d.ts.map +1 -0
  241. package/dist/src/serialization/json.js +849 -0
  242. package/dist/src/serialization/json.js.map +1 -0
  243. package/dist/src/type_of_type.d.ts +115 -0
  244. package/dist/src/type_of_type.d.ts.map +1 -0
  245. package/dist/src/type_of_type.js +362 -0
  246. package/dist/src/type_of_type.js.map +1 -0
  247. package/dist/src/types.d.ts +648 -0
  248. package/dist/src/types.d.ts.map +1 -0
  249. package/dist/src/types.js +1631 -0
  250. package/dist/src/types.js.map +1 -0
  251. package/package.json +87 -0
@@ -0,0 +1,544 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import type { AST } from "../ast.js";
6
+ import { DateTimeType, FloatType, IntegerType } from "../types.js";
7
+ import type { FloatExpr } from "./float.js";
8
+ import type { IntegerExpr } from "./integer.js";
9
+ import type { StringExpr } from "./string.js";
10
+ import { Expr, type ToExpr } from "./expr.js";
11
+ import type { SubtypeExprOrValue } from "./types.js";
12
+ /**
13
+ * Expression representing date and time values and operations.
14
+ *
15
+ * DateTimeExpr provides methods for extracting components (year, month, day, hour, etc.),
16
+ * adding/subtracting durations, calculating differences, formatting, and parsing.
17
+ * DateTime values are immutable and represent UTC timestamps with millisecond precision.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * // Creating and manipulating dates
22
+ * const addTime = East.function([DateTimeType], DateTimeType, ($, date) => {
23
+ * const tomorrow = date.addDays(1n);
24
+ * const nextWeek = date.addWeeks(1n);
25
+ * $.return(nextWeek);
26
+ * });
27
+ *
28
+ * // Extracting components
29
+ * const getComponents = East.function([DateTimeType], StructType({year: IntegerType, month: IntegerType}), ($, date) => {
30
+ * $.return({year: date.getYear(), month: date.getMonth()});
31
+ * });
32
+ *
33
+ * // Formatting dates
34
+ * const formatDate = East.function([DateTimeType], StringType, ($, date) => {
35
+ * $.return(date.printFormatted("YYYY-MM-DD HH:mm:ss"));
36
+ * });
37
+ * ```
38
+ */
39
+ export declare class DateTimeExpr extends Expr<DateTimeType> {
40
+ constructor(ast: AST, createExpr: ToExpr);
41
+ /**
42
+ * Extracts the year component from the DateTime.
43
+ *
44
+ * @returns An IntegerExpr representing the year (e.g., 2025n)
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const extractYear = East.function([DateTimeType], IntegerType, ($, date) => {
49
+ * $.return(date.getYear());
50
+ * });
51
+ * const compiled = East.compile(extractYear.toIR(), []);
52
+ * compiled(new Date("2025-01-15T10:30:00.000Z")); // 2025n
53
+ * compiled(new Date("1999-12-31T23:59:59.999Z")); // 1999n
54
+ * ```
55
+ */
56
+ getYear(): IntegerExpr;
57
+ /**
58
+ * Extracts the month component from the DateTime.
59
+ *
60
+ * @returns An IntegerExpr representing the month (1-12, where 1 = January, 12 = December)
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * const extractMonth = East.function([DateTimeType], IntegerType, ($, date) => {
65
+ * $.return(date.getMonth());
66
+ * });
67
+ * const compiled = East.compile(extractMonth.toIR(), []);
68
+ * compiled(new Date("2025-01-15T10:30:00.000Z")); // 1n
69
+ * compiled(new Date("2025-12-31T23:59:59.999Z")); // 12n
70
+ * ```
71
+ */
72
+ getMonth(): IntegerExpr;
73
+ /**
74
+ * Extracts the day of the month from the DateTime.
75
+ *
76
+ * @returns An IntegerExpr representing the day (1-31)
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * const extractDay = East.function([DateTimeType], IntegerType, ($, date) => {
81
+ * $.return(date.getDayOfMonth());
82
+ * });
83
+ * const compiled = East.compile(extractDay.toIR(), []);
84
+ * compiled(new Date("2025-01-15T10:30:00.000Z")); // 15n
85
+ * compiled(new Date("2025-02-28T12:00:00.000Z")); // 28n
86
+ * ```
87
+ */
88
+ getDayOfMonth(): IntegerExpr;
89
+ /**
90
+ * Extracts the hour component from the DateTime.
91
+ *
92
+ * @returns An IntegerExpr representing the hour (0-23 in 24-hour format)
93
+ *
94
+ * @example
95
+ * ```ts
96
+ * const extractHour = East.function([DateTimeType], IntegerType, ($, date) => {
97
+ * $.return(date.getHour());
98
+ * });
99
+ * const compiled = East.compile(extractHour.toIR(), []);
100
+ * compiled(new Date("2025-01-15T14:30:00.000Z")); // 14n
101
+ * compiled(new Date("2025-01-15T00:00:00.000Z")); // 0n
102
+ * ```
103
+ */
104
+ getHour(): IntegerExpr;
105
+ /**
106
+ * Extracts the minute component from the DateTime.
107
+ *
108
+ * @returns An IntegerExpr representing the minute (0-59)
109
+ *
110
+ * @example
111
+ * ```ts
112
+ * const extractMinute = East.function([DateTimeType], IntegerType, ($, date) => {
113
+ * $.return(date.getMinute());
114
+ * });
115
+ * const compiled = East.compile(extractMinute.toIR(), []);
116
+ * compiled(new Date("2025-01-15T14:30:45.000Z")); // 30n
117
+ * compiled(new Date("2025-01-15T14:00:00.000Z")); // 0n
118
+ * ```
119
+ */
120
+ getMinute(): IntegerExpr;
121
+ /**
122
+ * Extracts the second component from the DateTime.
123
+ *
124
+ * @returns An IntegerExpr representing the second (0-59)
125
+ *
126
+ * @example
127
+ * ```ts
128
+ * const extractSecond = East.function([DateTimeType], IntegerType, ($, date) => {
129
+ * $.return(date.getSecond());
130
+ * });
131
+ * const compiled = East.compile(extractSecond.toIR(), []);
132
+ * compiled(new Date("2025-01-15T14:30:45.000Z")); // 45n
133
+ * compiled(new Date("2025-01-15T14:30:00.000Z")); // 0n
134
+ * ```
135
+ */
136
+ getSecond(): IntegerExpr;
137
+ /**
138
+ * Extracts the day of the week from the DateTime.
139
+ *
140
+ * @returns An IntegerExpr representing the day (0-6, where 0 = Sunday, 6 = Saturday)
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * const extractDayOfWeek = East.function([DateTimeType], IntegerType, ($, date) => {
145
+ * $.return(date.getDayOfWeek());
146
+ * });
147
+ * const compiled = East.compile(extractDayOfWeek.toIR(), []);
148
+ * compiled(new Date("2025-01-15T00:00:00.000Z")); // 3n (Wednesday)
149
+ * compiled(new Date("2025-01-12T00:00:00.000Z")); // 0n (Sunday)
150
+ * ```
151
+ */
152
+ getDayOfWeek(): IntegerExpr;
153
+ /**
154
+ * Extracts the millisecond component from the DateTime.
155
+ *
156
+ * @returns An IntegerExpr representing the millisecond (0-999)
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * const extractMillisecond = East.function([DateTimeType], IntegerType, ($, date) => {
161
+ * $.return(date.getMillisecond());
162
+ * });
163
+ * const compiled = East.compile(extractMillisecond.toIR(), []);
164
+ * compiled(new Date("2025-01-15T14:30:45.123Z")); // 123n
165
+ * compiled(new Date("2025-01-15T14:30:45.000Z")); // 0n
166
+ * ```
167
+ */
168
+ getMillisecond(): IntegerExpr;
169
+ /**
170
+ * Adds milliseconds to the DateTime, returning a new DateTime.
171
+ *
172
+ * @param milliseconds - The number of milliseconds to add (integer or float)
173
+ * @returns A DateTimeExpr representing the new DateTime
174
+ *
175
+ * @remarks Floats are rounded to the nearest millisecond. Accepts negative values.
176
+ *
177
+ * @example
178
+ * ```ts
179
+ * const addMs = East.function([DateTimeType, IntegerType], DateTimeType, ($, date, ms) => {
180
+ * $.return(date.addMilliseconds(ms));
181
+ * });
182
+ * const compiled = East.compile(addMs.toIR(), []);
183
+ * const date = new Date("2025-01-15T14:30:45.000Z");
184
+ * compiled(date, 500n); // Date("2025-01-15T14:30:45.500Z")
185
+ * compiled(date, 1000n); // Date("2025-01-15T14:30:46.000Z")
186
+ * ```
187
+ */
188
+ addMilliseconds(milliseconds: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
189
+ /**
190
+ * Subtracts milliseconds from the DateTime, returning a new DateTime.
191
+ *
192
+ * @param milliseconds - The number of milliseconds to subtract (integer or float)
193
+ * @returns A DateTimeExpr representing the new DateTime
194
+ *
195
+ * @remarks Floats are rounded to the nearest millisecond.
196
+ *
197
+ * @example
198
+ * ```ts
199
+ * const subMs = East.function([DateTimeType, IntegerType], DateTimeType, ($, date, ms) => {
200
+ * $.return(date.subtractMilliseconds(ms));
201
+ * });
202
+ * const compiled = East.compile(subMs.toIR(), []);
203
+ * const date = new Date("2025-01-15T14:30:45.500Z");
204
+ * compiled(date, 500n); // Date("2025-01-15T14:30:45.000Z")
205
+ * compiled(date, 1000n); // Date("2025-01-15T14:30:44.500Z")
206
+ * ```
207
+ */
208
+ subtractMilliseconds(milliseconds: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
209
+ /**
210
+ * Adds seconds to the DateTime, returning a new DateTime.
211
+ *
212
+ * @param seconds - The number of seconds to add (integer or float)
213
+ * @returns A DateTimeExpr representing the new DateTime
214
+ *
215
+ * @example
216
+ * ```ts
217
+ * const addSec = East.function([DateTimeType, IntegerType], DateTimeType, ($, date, secs) => {
218
+ * $.return(date.addSeconds(secs));
219
+ * });
220
+ * const compiled = East.compile(addSec.toIR(), []);
221
+ * compiled(new Date("2025-01-15T14:30:00.000Z"), 30n); // Date("2025-01-15T14:30:30.000Z")
222
+ * ```
223
+ */
224
+ addSeconds(seconds: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
225
+ /**
226
+ * Adds minutes to the DateTime, returning a new DateTime.
227
+ *
228
+ * @param minutes - The number of minutes to add (integer or float)
229
+ * @returns A DateTimeExpr representing the new DateTime
230
+ *
231
+ * @example
232
+ * ```ts
233
+ * const addMin = East.function([DateTimeType, IntegerType], DateTimeType, ($, date, mins) => {
234
+ * $.return(date.addMinutes(mins));
235
+ * });
236
+ * const compiled = East.compile(addMin.toIR(), []);
237
+ * compiled(new Date("2025-01-15T14:00:00.000Z"), 30n); // Date("2025-01-15T14:30:00.000Z")
238
+ * ```
239
+ */
240
+ addMinutes(minutes: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
241
+ /**
242
+ * Adds hours to the DateTime, returning a new DateTime.
243
+ *
244
+ * @param hours - The number of hours to add (integer or float)
245
+ * @returns A DateTimeExpr representing the new DateTime
246
+ *
247
+ * @example
248
+ * ```ts
249
+ * const addHr = East.function([DateTimeType, IntegerType], DateTimeType, ($, date, hrs) => {
250
+ * $.return(date.addHours(hrs));
251
+ * });
252
+ * const compiled = East.compile(addHr.toIR(), []);
253
+ * compiled(new Date("2025-01-15T14:00:00.000Z"), 2n); // Date("2025-01-15T16:00:00.000Z")
254
+ * ```
255
+ */
256
+ addHours(hours: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
257
+ /**
258
+ * Adds days to the DateTime, returning a new DateTime.
259
+ *
260
+ * @param days - The number of days to add (integer or float)
261
+ * @returns A DateTimeExpr representing the new DateTime
262
+ *
263
+ * @example
264
+ * ```ts
265
+ * const addDay = East.function([DateTimeType, IntegerType], DateTimeType, ($, date, days) => {
266
+ * $.return(date.addDays(days));
267
+ * });
268
+ * const compiled = East.compile(addDay.toIR(), []);
269
+ * compiled(new Date("2025-01-15T00:00:00.000Z"), 1n); // Date("2025-01-16T00:00:00.000Z")
270
+ * compiled(new Date("2025-01-31T00:00:00.000Z"), 1n); // Date("2025-02-01T00:00:00.000Z")
271
+ * ```
272
+ */
273
+ addDays(days: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
274
+ /**
275
+ * Adds weeks to the DateTime, returning a new DateTime.
276
+ *
277
+ * @param weeks - The number of weeks to add (integer or float)
278
+ * @returns A DateTimeExpr representing the new DateTime
279
+ *
280
+ * @example
281
+ * ```ts
282
+ * const addWk = East.function([DateTimeType, IntegerType], DateTimeType, ($, date, weeks) => {
283
+ * $.return(date.addWeeks(weeks));
284
+ * });
285
+ * const compiled = East.compile(addWk.toIR(), []);
286
+ * compiled(new Date("2025-01-15T00:00:00.000Z"), 1n); // Date("2025-01-22T00:00:00.000Z")
287
+ * compiled(new Date("2025-01-15T00:00:00.000Z"), 2n); // Date("2025-01-29T00:00:00.000Z")
288
+ * ```
289
+ */
290
+ addWeeks(weeks: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
291
+ /**
292
+ * Subtracts seconds from the DateTime, returning a new DateTime.
293
+ *
294
+ * @param seconds - The number of seconds to subtract
295
+ * @returns A DateTimeExpr representing the new DateTime
296
+ */
297
+ subtractSeconds(seconds: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
298
+ /**
299
+ * Subtracts minutes from the DateTime, returning a new DateTime.
300
+ *
301
+ * @param minutes - The number of minutes to subtract
302
+ * @returns A DateTimeExpr representing the new DateTime
303
+ */
304
+ subtractMinutes(minutes: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
305
+ /**
306
+ * Subtracts hours from the DateTime, returning a new DateTime.
307
+ *
308
+ * @param hours - The number of hours to subtract
309
+ * @returns A DateTimeExpr representing the new DateTime
310
+ */
311
+ subtractHours(hours: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
312
+ /**
313
+ * Subtracts days from the DateTime, returning a new DateTime.
314
+ *
315
+ * @param days - The number of days to subtract
316
+ * @returns A DateTimeExpr representing the new DateTime
317
+ */
318
+ subtractDays(days: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
319
+ /**
320
+ * Subtracts weeks from the DateTime, returning a new DateTime.
321
+ *
322
+ * @param weeks - The number of weeks to subtract
323
+ * @returns A DateTimeExpr representing the new DateTime
324
+ */
325
+ subtractWeeks(weeks: bigint | number | Expr<IntegerType> | Expr<FloatType>): DateTimeExpr;
326
+ /**
327
+ * Helper method to add duration with conversion factor
328
+ */
329
+ private _addDuration;
330
+ /**
331
+ * Helper method to subtract duration with conversion factor
332
+ */
333
+ private _subtractDuration;
334
+ /**
335
+ * Calculates the duration in milliseconds between this DateTime and another.
336
+ *
337
+ * @param other - The DateTime to compare with
338
+ * @returns An IntegerExpr representing the duration (positive if other is after this, negative if before)
339
+ *
340
+ * @example
341
+ * ```ts
342
+ * const getDuration = East.function([DateTimeType, DateTimeType], IntegerType, ($, date1, date2) => {
343
+ * $.return(date1.durationMilliseconds(date2));
344
+ * });
345
+ * const compiled = East.compile(getDuration.toIR(), []);
346
+ * const d1 = new Date("2025-01-15T14:30:00.000Z");
347
+ * const d2 = new Date("2025-01-15T14:30:01.500Z");
348
+ * compiled(d1, d2); // 1500n (1.5 seconds later)
349
+ * compiled(d2, d1); // -1500n (1.5 seconds earlier)
350
+ * ```
351
+ */
352
+ durationMilliseconds(other: SubtypeExprOrValue<DateTimeType>): IntegerExpr;
353
+ /**
354
+ * Calculates the duration in seconds between this DateTime and another.
355
+ *
356
+ * @param other - The DateTime to compare with
357
+ * @returns A FloatExpr representing the duration in seconds
358
+ *
359
+ * @example
360
+ * ```ts
361
+ * const getDurationSec = East.function([DateTimeType, DateTimeType], FloatType, ($, date1, date2) => {
362
+ * $.return(date1.durationSeconds(date2));
363
+ * });
364
+ * const compiled = East.compile(getDurationSec.toIR(), []);
365
+ * const d1 = new Date("2025-01-15T14:30:00.000Z");
366
+ * const d2 = new Date("2025-01-15T14:30:30.000Z");
367
+ * compiled(d1, d2); // 30.0 (30 seconds later)
368
+ * ```
369
+ */
370
+ durationSeconds(other: SubtypeExprOrValue<DateTimeType>): FloatExpr;
371
+ /**
372
+ * Calculates the duration in minutes between this DateTime and another.
373
+ *
374
+ * @param other - The DateTime to compare with
375
+ * @returns A FloatExpr representing the duration in minutes
376
+ *
377
+ * @example
378
+ * ```ts
379
+ * const getDurationMin = East.function([DateTimeType, DateTimeType], FloatType, ($, date1, date2) => {
380
+ * $.return(date1.durationMinutes(date2));
381
+ * });
382
+ * const compiled = East.compile(getDurationMin.toIR(), []);
383
+ * const d1 = new Date("2025-01-15T14:00:00.000Z");
384
+ * const d2 = new Date("2025-01-15T14:30:00.000Z");
385
+ * compiled(d1, d2); // 30.0 (30 minutes later)
386
+ * ```
387
+ */
388
+ durationMinutes(other: SubtypeExprOrValue<DateTimeType>): FloatExpr;
389
+ /**
390
+ * Calculates the duration in hours between this DateTime and another.
391
+ *
392
+ * @param other - The DateTime to compare with
393
+ * @returns A FloatExpr representing the duration in hours
394
+ *
395
+ * @example
396
+ * ```ts
397
+ * const getDurationHr = East.function([DateTimeType, DateTimeType], FloatType, ($, date1, date2) => {
398
+ * $.return(date1.durationHours(date2));
399
+ * });
400
+ * const compiled = East.compile(getDurationHr.toIR(), []);
401
+ * const d1 = new Date("2025-01-15T10:00:00.000Z");
402
+ * const d2 = new Date("2025-01-15T14:30:00.000Z");
403
+ * compiled(d1, d2); // 4.5 (4.5 hours later)
404
+ * ```
405
+ */
406
+ durationHours(other: SubtypeExprOrValue<DateTimeType>): FloatExpr;
407
+ /**
408
+ * Calculates the duration in days between this DateTime and another.
409
+ *
410
+ * @param other - The DateTime to compare with
411
+ * @returns A FloatExpr representing the duration in days
412
+ *
413
+ * @example
414
+ * ```ts
415
+ * const getDurationDay = East.function([DateTimeType, DateTimeType], FloatType, ($, date1, date2) => {
416
+ * $.return(date1.durationDays(date2));
417
+ * });
418
+ * const compiled = East.compile(getDurationDay.toIR(), []);
419
+ * const d1 = new Date("2025-01-15T00:00:00.000Z");
420
+ * const d2 = new Date("2025-01-17T12:00:00.000Z");
421
+ * compiled(d1, d2); // 2.5 (2.5 days later)
422
+ * ```
423
+ */
424
+ durationDays(other: SubtypeExprOrValue<DateTimeType>): FloatExpr;
425
+ /**
426
+ * Calculates the duration in weeks between this DateTime and another.
427
+ *
428
+ * @param other - The DateTime to compare with
429
+ * @returns A FloatExpr representing the duration in weeks
430
+ *
431
+ * @example
432
+ * ```ts
433
+ * const getDurationWk = East.function([DateTimeType, DateTimeType], FloatType, ($, date1, date2) => {
434
+ * $.return(date1.durationWeeks(date2));
435
+ * });
436
+ * const compiled = East.compile(getDurationWk.toIR(), []);
437
+ * const d1 = new Date("2025-01-01T00:00:00.000Z");
438
+ * const d2 = new Date("2025-01-15T00:00:00.000Z");
439
+ * compiled(d1, d2); // 2.0 (2 weeks later)
440
+ * ```
441
+ */
442
+ durationWeeks(other: SubtypeExprOrValue<DateTimeType>): FloatExpr;
443
+ /**
444
+ * Converts the DateTime to milliseconds since the Unix epoch (like Date.valueOf()).
445
+ *
446
+ * @returns An IntegerExpr representing milliseconds since January 1, 1970 00:00:00 UTC
447
+ *
448
+ * @example
449
+ * ```ts
450
+ * const toEpoch = East.function([DateTimeType], IntegerType, ($, date) => {
451
+ * $.return(date.toEpochMilliseconds());
452
+ * });
453
+ * const compiled = East.compile(toEpoch.toIR(), []);
454
+ * compiled(new Date("1970-01-01T00:00:00.000Z")); // 0n
455
+ * compiled(new Date("2025-01-15T14:30:45.123Z")); // 1736950245123n
456
+ * ```
457
+ */
458
+ toEpochMilliseconds(): IntegerExpr;
459
+ /**
460
+ * Format DateTime as a string using Day.js-style format tokens.
461
+ *
462
+ * @param formatString - Format string using Day.js syntax (e.g., "YYYY-MM-DD HH:mm:ss")
463
+ * @returns A StringExpr containing the formatted datetime
464
+ *
465
+ * @remarks
466
+ * The format string is parsed at compile time into structured tokens.
467
+ * Use backslash to escape characters: `\Y` produces literal "Y".
468
+ *
469
+ * Supported tokens:
470
+ * - Year: YYYY (4-digit), YY (2-digit)
471
+ * - Month: M (1-12), MM (01-12), MMM (Jan), MMMM (January)
472
+ * - Day: D (1-31), DD (01-31)
473
+ * - Weekday: dd (Su), ddd (Sun), dddd (Sunday)
474
+ * - Hour 24h: H (0-23), HH (00-23)
475
+ * - Hour 12h: h (1-12), hh (01-12)
476
+ * - Minute: m (0-59), mm (00-59)
477
+ * - Second: s (0-59), ss (00-59)
478
+ * - Millisecond: SSS (000-999)
479
+ * - AM/PM: A (AM/PM), a (am/pm)
480
+ *
481
+ * @example
482
+ * ```ts
483
+ * const date = fromComponents(2025n, 1n, 15n, 14n, 30n, 45n);
484
+ * date.printFormatted("YYYY-MM-DD HH:mm:ss");
485
+ * // Returns: "2025-01-15 14:30:45"
486
+ * ```
487
+ *
488
+ * @example
489
+ * ```ts
490
+ * const date = fromComponents(2025n, 1n, 15n, 14n, 30n);
491
+ * date.printFormatted("MMMM D, YYYY \\a\\t h:mm A");
492
+ * // Returns: "January 15, 2025 at 2:30 PM"
493
+ * ```
494
+ */
495
+ printFormatted(formatString: string): StringExpr;
496
+ }
497
+ export declare function fromEpochMilliseconds(milliseconds: IntegerExpr | bigint): DateTimeExpr;
498
+ 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;
499
+ /**
500
+ * Parse a string into a DateTime using Day.js-style format tokens.
501
+ *
502
+ * @param input - The string to parse (literal string or StringExpr)
503
+ * @param formatString - Format string using Day.js syntax (e.g., "YYYY-MM-DD HH:mm:ss")
504
+ * @returns A DateTimeExpr containing the parsed datetime
505
+ * @throws {EastError} At runtime if the string doesn't match the format or contains invalid values
506
+ *
507
+ * @remarks
508
+ * The format string is parsed at compile time into structured tokens.
509
+ * Use backslash to escape characters: `\Y` produces literal "Y".
510
+ * All parsing is done in UTC (naive datetime).
511
+ *
512
+ * Supported tokens:
513
+ * - Year: YYYY (4-digit), YY (2-digit, 00-99 → 2000-2099)
514
+ * - Month: M (1-12), MM (01-12), MMM (Jan), MMMM (January) - case insensitive
515
+ * - Day: D (1-31), DD (01-31)
516
+ * - Weekday: dd (Su), ddd (Sun), dddd (Sunday) - consumed but not validated
517
+ * - Hour 24h: H (0-23), HH (00-23)
518
+ * - Hour 12h: h (1-12), hh (01-12) - requires A/a token
519
+ * - Minute: m (0-59), mm (00-59)
520
+ * - Second: s (0-59), ss (00-59)
521
+ * - Millisecond: SSS (000-999)
522
+ * - AM/PM: A (AM/PM), a (am/pm) - case insensitive
523
+ *
524
+ * @example
525
+ * ```ts
526
+ * // Parse ISO 8601 datetime
527
+ * const date = parseFormatted("2025-01-15 14:30:45", "YYYY-MM-DD HH:mm:ss");
528
+ * ```
529
+ *
530
+ * @example
531
+ * ```ts
532
+ * // Parse with month names and 12-hour time
533
+ * const date = parseFormatted("January 15, 2025 at 2:30 PM", "MMMM D, YYYY \\a\\t h:mm A");
534
+ * ```
535
+ *
536
+ * @example
537
+ * ```ts
538
+ * // Parse runtime string expression
539
+ * const userInput = Expr.from(getUserInput(), StringType);
540
+ * const date = parseFormatted(userInput, "MM/DD/YYYY");
541
+ * ```
542
+ */
543
+ export declare function parseFormatted(input: string | StringExpr, formatString: string): DateTimeExpr;
544
+ //# sourceMappingURL=datetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../src/expr/datetime.ts"],"names":[],"mappings":"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"}