df-script 1.4.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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +269 -0
  3. package/dist/api.d.ts +39 -0
  4. package/dist/api.js +18 -0
  5. package/dist/bundle.min.js +1 -0
  6. package/dist/columnExpressions/ColumnExpr.d.ts +368 -0
  7. package/dist/columnExpressions/ColumnExpr.js +23 -0
  8. package/dist/columnExpressions/ExprBase.d.ts +24 -0
  9. package/dist/columnExpressions/ExprBase.js +133 -0
  10. package/dist/columnExpressions/constants.d.ts +2 -0
  11. package/dist/columnExpressions/constants.js +5 -0
  12. package/dist/columnExpressions/functions/all.d.ts +5 -0
  13. package/dist/columnExpressions/functions/all.js +11 -0
  14. package/dist/columnExpressions/functions/coalesce.d.ts +3 -0
  15. package/dist/columnExpressions/functions/coalesce.js +40 -0
  16. package/dist/columnExpressions/functions/exclude.d.ts +5 -0
  17. package/dist/columnExpressions/functions/exclude.js +13 -0
  18. package/dist/columnExpressions/functions/lit.d.ts +5 -0
  19. package/dist/columnExpressions/functions/lit.js +22 -0
  20. package/dist/columnExpressions/functions/when.d.ts +24 -0
  21. package/dist/columnExpressions/functions/when.js +81 -0
  22. package/dist/columnExpressions/index.d.ts +19 -0
  23. package/dist/columnExpressions/index.js +81 -0
  24. package/dist/columnExpressions/mixins/AggregationExpr.d.ts +50 -0
  25. package/dist/columnExpressions/mixins/AggregationExpr.js +172 -0
  26. package/dist/columnExpressions/mixins/ArithmeticExpr.d.ts +67 -0
  27. package/dist/columnExpressions/mixins/ArithmeticExpr.js +143 -0
  28. package/dist/columnExpressions/mixins/ComparisonExpr.d.ts +60 -0
  29. package/dist/columnExpressions/mixins/ComparisonExpr.js +389 -0
  30. package/dist/columnExpressions/mixins/ListExpr.d.ts +63 -0
  31. package/dist/columnExpressions/mixins/ListExpr.js +248 -0
  32. package/dist/columnExpressions/mixins/LogicalExpr.d.ts +33 -0
  33. package/dist/columnExpressions/mixins/LogicalExpr.js +54 -0
  34. package/dist/columnExpressions/mixins/ManipulationExpr.d.ts +31 -0
  35. package/dist/columnExpressions/mixins/ManipulationExpr.js +35 -0
  36. package/dist/columnExpressions/mixins/StringExpr.d.ts +79 -0
  37. package/dist/columnExpressions/mixins/StringExpr.js +249 -0
  38. package/dist/columnExpressions/mixins/TemporalExpr.d.ts +69 -0
  39. package/dist/columnExpressions/mixins/TemporalExpr.js +127 -0
  40. package/dist/columnExpressions/mixins/WindowExpr.d.ts +50 -0
  41. package/dist/columnExpressions/mixins/WindowExpr.js +281 -0
  42. package/dist/columnExpressions/types.d.ts +7 -0
  43. package/dist/columnExpressions/types.js +2 -0
  44. package/dist/dataframe/constants.d.ts +1 -0
  45. package/dist/dataframe/constants.js +4 -0
  46. package/dist/dataframe/dataframe.d.ts +42 -0
  47. package/dist/dataframe/dataframe.js +749 -0
  48. package/dist/dataframe/grouped/grouped.d.ts +15 -0
  49. package/dist/dataframe/grouped/grouped.js +113 -0
  50. package/dist/dataframe/index.d.ts +4 -0
  51. package/dist/dataframe/index.js +20 -0
  52. package/dist/dataframe/types.d.ts +33 -0
  53. package/dist/dataframe/types.js +2 -0
  54. package/dist/dataframe/utils.d.ts +11 -0
  55. package/dist/dataframe/utils.js +215 -0
  56. package/dist/datatypes/DataType.d.ts +40 -0
  57. package/dist/datatypes/DataType.js +47 -0
  58. package/dist/datatypes/index.d.ts +29 -0
  59. package/dist/datatypes/index.js +46 -0
  60. package/dist/datatypes/types/Binary.d.ts +9 -0
  61. package/dist/datatypes/types/Binary.js +18 -0
  62. package/dist/datatypes/types/Boolean.d.ts +9 -0
  63. package/dist/datatypes/types/Boolean.js +19 -0
  64. package/dist/datatypes/types/Date.d.ts +8 -0
  65. package/dist/datatypes/types/Date.js +21 -0
  66. package/dist/datatypes/types/Datetime.d.ts +8 -0
  67. package/dist/datatypes/types/Datetime.js +17 -0
  68. package/dist/datatypes/types/Decimal.d.ts +10 -0
  69. package/dist/datatypes/types/Decimal.js +28 -0
  70. package/dist/datatypes/types/Duration.d.ts +8 -0
  71. package/dist/datatypes/types/Duration.js +17 -0
  72. package/dist/datatypes/types/Float32.d.ts +8 -0
  73. package/dist/datatypes/types/Float32.js +17 -0
  74. package/dist/datatypes/types/Float64.d.ts +8 -0
  75. package/dist/datatypes/types/Float64.js +17 -0
  76. package/dist/datatypes/types/Int16.d.ts +8 -0
  77. package/dist/datatypes/types/Int16.js +17 -0
  78. package/dist/datatypes/types/Int32.d.ts +8 -0
  79. package/dist/datatypes/types/Int32.js +17 -0
  80. package/dist/datatypes/types/Int64.d.ts +8 -0
  81. package/dist/datatypes/types/Int64.js +17 -0
  82. package/dist/datatypes/types/Int8.d.ts +8 -0
  83. package/dist/datatypes/types/Int8.js +17 -0
  84. package/dist/datatypes/types/List.d.ts +10 -0
  85. package/dist/datatypes/types/List.js +31 -0
  86. package/dist/datatypes/types/Null.d.ts +9 -0
  87. package/dist/datatypes/types/Null.js +17 -0
  88. package/dist/datatypes/types/Object.d.ts +9 -0
  89. package/dist/datatypes/types/Object.js +17 -0
  90. package/dist/datatypes/types/Struct.d.ts +14 -0
  91. package/dist/datatypes/types/Struct.js +39 -0
  92. package/dist/datatypes/types/Time.d.ts +8 -0
  93. package/dist/datatypes/types/Time.js +29 -0
  94. package/dist/datatypes/types/UInt16.d.ts +8 -0
  95. package/dist/datatypes/types/UInt16.js +17 -0
  96. package/dist/datatypes/types/UInt32.d.ts +8 -0
  97. package/dist/datatypes/types/UInt32.js +17 -0
  98. package/dist/datatypes/types/UInt64.d.ts +8 -0
  99. package/dist/datatypes/types/UInt64.js +17 -0
  100. package/dist/datatypes/types/UInt8.d.ts +8 -0
  101. package/dist/datatypes/types/UInt8.js +17 -0
  102. package/dist/datatypes/types/Utf8.d.ts +10 -0
  103. package/dist/datatypes/types/Utf8.js +20 -0
  104. package/dist/datatypes/types.d.ts +172 -0
  105. package/dist/datatypes/types.js +286 -0
  106. package/dist/exceptions/index.d.ts +13 -0
  107. package/dist/exceptions/index.js +43 -0
  108. package/dist/exceptions/utils.d.ts +2 -0
  109. package/dist/exceptions/utils.js +9 -0
  110. package/dist/functions/concat.d.ts +4 -0
  111. package/dist/functions/concat.js +248 -0
  112. package/dist/functions/index.d.ts +1 -0
  113. package/dist/functions/index.js +17 -0
  114. package/dist/index.d.ts +7 -0
  115. package/dist/index.js +1 -0
  116. package/dist/types.d.ts +47 -0
  117. package/dist/types.js +2 -0
  118. package/dist/utils/boolean.d.ts +1 -0
  119. package/dist/utils/boolean.js +18 -0
  120. package/dist/utils/date.d.ts +57 -0
  121. package/dist/utils/date.js +349 -0
  122. package/dist/utils/guards.d.ts +14 -0
  123. package/dist/utils/guards.js +143 -0
  124. package/dist/utils/index.d.ts +5 -0
  125. package/dist/utils/index.js +21 -0
  126. package/dist/utils/json.d.ts +2 -0
  127. package/dist/utils/json.js +33 -0
  128. package/dist/utils/list.d.ts +23 -0
  129. package/dist/utils/list.js +128 -0
  130. package/dist/utils/number.d.ts +86 -0
  131. package/dist/utils/number.js +223 -0
  132. package/dist/utils/string.d.ts +52 -0
  133. package/dist/utils/string.js +120 -0
  134. package/package.json +34 -0
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringExpr = exports.StringExprNamespace = void 0;
4
+ const ExprBase_1 = require("../ExprBase");
5
+ const utils_1 = require("../../utils");
6
+ class StringExprNamespace {
7
+ expr;
8
+ constructor(expr) {
9
+ this.expr = expr;
10
+ }
11
+ _deriveString(fn) {
12
+ return (0, ExprBase_1.derive)(this.expr, (0, ExprBase_1.kleeneUnary)((v) => fn(String(v))));
13
+ }
14
+ concat(other) {
15
+ return (0, ExprBase_1.derive)(this.expr, (0, ExprBase_1.kleeneBinary)(this.expr, other, (v, o) => String(v) + String(o)));
16
+ }
17
+ contains(pattern) {
18
+ if (pattern == null) {
19
+ return (0, ExprBase_1.derive)(this.expr, (vArray) => new Array(vArray.length).fill(null));
20
+ }
21
+ return this._deriveString((str) => {
22
+ return pattern instanceof RegExp ? pattern.test(str) : str.includes(pattern);
23
+ });
24
+ }
25
+ count_matches(pattern) {
26
+ if (pattern == null) {
27
+ return (0, ExprBase_1.derive)(this.expr, (vArray) => new Array(vArray.length).fill(null));
28
+ }
29
+ return this._deriveString((str) => {
30
+ if (pattern instanceof RegExp) {
31
+ const regex = pattern.global
32
+ ? pattern
33
+ : new RegExp(pattern.source, pattern.flags + "g");
34
+ const matches = str.match(regex);
35
+ return matches ? matches.length : 0;
36
+ }
37
+ else {
38
+ let count = 0;
39
+ let pos = str.indexOf(pattern);
40
+ while (pos !== -1) {
41
+ count++;
42
+ pos = str.indexOf(pattern, pos + pattern.length);
43
+ }
44
+ return count;
45
+ }
46
+ });
47
+ }
48
+ decode_uri_component() {
49
+ return this._deriveString((str) => {
50
+ try {
51
+ return decodeURIComponent(str);
52
+ }
53
+ catch {
54
+ return str;
55
+ }
56
+ });
57
+ }
58
+ encode_uri_component() {
59
+ return this._deriveString((str) => {
60
+ try {
61
+ return encodeURIComponent(str);
62
+ }
63
+ catch {
64
+ return str;
65
+ }
66
+ });
67
+ }
68
+ ends_with(suffix) {
69
+ return this._deriveString((str) => str.endsWith(suffix));
70
+ }
71
+ explode() {
72
+ return this._deriveString((str) => str.split(""));
73
+ }
74
+ extract(pattern, group = 0) {
75
+ if (pattern == null) {
76
+ return (0, ExprBase_1.derive)(this.expr, (vArray) => new Array(vArray.length).fill(null));
77
+ }
78
+ return this._deriveString((str) => {
79
+ const match = str.match(pattern);
80
+ if (!match)
81
+ return null;
82
+ return match[group] !== undefined ? match[group] : null;
83
+ });
84
+ }
85
+ len() {
86
+ return this.len_chars();
87
+ }
88
+ len_bytes() {
89
+ return this._deriveString((str) => new TextEncoder().encode(str).length);
90
+ }
91
+ len_chars() {
92
+ return this._deriveString((str) => str.length);
93
+ }
94
+ lower() {
95
+ return this._deriveString((str) => str.toLowerCase());
96
+ }
97
+ lpad(width, fill = " ") {
98
+ return this._deriveString((str) => str.padStart(width, fill));
99
+ }
100
+ pad_end(width, fill = " ") {
101
+ return this.rpad(width, fill);
102
+ }
103
+ pad_start(width, fill = " ") {
104
+ return this.lpad(width, fill);
105
+ }
106
+ replace(pattern, replacement) {
107
+ if (pattern == null) {
108
+ return (0, ExprBase_1.derive)(this.expr, (vArray) => new Array(vArray.length).fill(null));
109
+ }
110
+ return this._deriveString((str) => str.replace(pattern, replacement));
111
+ }
112
+ replace_all(pattern, replacement) {
113
+ if (pattern == null) {
114
+ return (0, ExprBase_1.derive)(this.expr, (vArray) => new Array(vArray.length).fill(null));
115
+ }
116
+ return this._deriveString((str) => {
117
+ if (pattern instanceof RegExp) {
118
+ const regex = pattern.global
119
+ ? pattern
120
+ : new RegExp(pattern.source, pattern.flags + "g");
121
+ return str.replace(regex, replacement);
122
+ }
123
+ return str.replaceAll(pattern, replacement);
124
+ });
125
+ }
126
+ reverse() {
127
+ return this._deriveString((str) => str.split("").reverse().join(""));
128
+ }
129
+ rpad(width, fill = " ") {
130
+ return this._deriveString((str) => str.padEnd(width, fill));
131
+ }
132
+ slice(offset, length) {
133
+ return this._deriveString((str) => {
134
+ const start = offset < 0 ? str.length + offset : offset;
135
+ const end = length !== undefined ? start + length : undefined;
136
+ return str.slice(start, end);
137
+ });
138
+ }
139
+ slice_str(offset, length) {
140
+ return this.slice(offset, length);
141
+ }
142
+ split(delimiter) {
143
+ return this._deriveString((str) => str.split(delimiter));
144
+ }
145
+ starts_with(prefix) {
146
+ return this._deriveString((str) => str.startsWith(prefix));
147
+ }
148
+ strip_chars(characters, options) {
149
+ return this._deriveString((str) => (0, utils_1.stripChars)(str, characters, { mode: "both", ...options }));
150
+ }
151
+ strip_chars_end(characters, options) {
152
+ return this._deriveString((str) => (0, utils_1.stripChars)(str, characters, { mode: "end", ...options }));
153
+ }
154
+ strip_chars_start(characters, options) {
155
+ return this._deriveString((str) => (0, utils_1.stripChars)(str, characters, { mode: "start", ...options }));
156
+ }
157
+ strip_prefix(prefix) {
158
+ return this._deriveString((str) => {
159
+ return (0, utils_1.stripChars)(str, prefix, {
160
+ mode: "start",
161
+ maxScanStart: 1,
162
+ maxMatchesStart: 1,
163
+ returnStringOnNull: true,
164
+ stringOptions: { literal: true }
165
+ });
166
+ });
167
+ }
168
+ strip_suffix(suffix) {
169
+ return this._deriveString((str) => {
170
+ return (0, utils_1.stripChars)(str, suffix, {
171
+ mode: "end",
172
+ maxScanEnd: 1,
173
+ maxMatchesEnd: 1,
174
+ returnStringOnNull: true,
175
+ stringOptions: { literal: true }
176
+ });
177
+ });
178
+ }
179
+ strptime(format, strict = true) {
180
+ return this._deriveString((str) => (0, utils_1.strptime)(str, format, strict));
181
+ }
182
+ to_date() {
183
+ return this._deriveString((str) => {
184
+ const d = (0, utils_1.toValidDate)(str);
185
+ if (!d)
186
+ return null;
187
+ const copy = new Date(d);
188
+ copy.setUTCHours(0, 0, 0, 0);
189
+ return copy;
190
+ });
191
+ }
192
+ to_datetime() {
193
+ return this._deriveString(utils_1.toValidDate);
194
+ }
195
+ to_decimal(precision, scale) {
196
+ return this._deriveString((str) => (0, utils_1.toValidDecimal)(str, { precision, scale }));
197
+ }
198
+ to_integer() {
199
+ return this._deriveString((str) => (0, utils_1.toValidInt)(str));
200
+ }
201
+ to_lowercase() {
202
+ return this.lower();
203
+ }
204
+ to_time() {
205
+ return this._deriveString((str) => {
206
+ const d = (0, utils_1.toValidDate)(str);
207
+ if (d)
208
+ return d.toISOString().split("T")[1].slice(0, 12);
209
+ const trimmed = str.trim();
210
+ if (utils_1.TIME_PREFIX_REGEX.test(trimmed)) {
211
+ const td = new Date(`1970-01-01T${trimmed}${utils_1.ZONE_OFFSET_REGEX.test(trimmed) ? "" : "Z"}`);
212
+ if ((0, utils_1.isValidDateObj)(td)) {
213
+ return td.toISOString().split("T")[1].slice(0, 12);
214
+ }
215
+ }
216
+ return null;
217
+ });
218
+ }
219
+ to_titlecase() {
220
+ return this._deriveString((str) => str.replace(/\b\w/g, c => c.toUpperCase()));
221
+ }
222
+ to_uppercase() {
223
+ return this.upper();
224
+ }
225
+ trim() {
226
+ return this.strip_chars();
227
+ }
228
+ trim_end() {
229
+ return this.strip_chars_end();
230
+ }
231
+ trim_start() {
232
+ return this.strip_chars_start();
233
+ }
234
+ upper() {
235
+ return this._deriveString((str) => str.toUpperCase());
236
+ }
237
+ zfill(width) {
238
+ return this._deriveString((str) => str.padStart(width, "0"));
239
+ }
240
+ }
241
+ exports.StringExprNamespace = StringExprNamespace;
242
+ const StringExpr = (Base) => {
243
+ return class extends Base {
244
+ get str() {
245
+ return new StringExprNamespace(this);
246
+ }
247
+ };
248
+ };
249
+ exports.StringExpr = StringExpr;
@@ -0,0 +1,69 @@
1
+ import type { TimeUnit } from "../../types";
2
+ import type { ExprConstructor } from "../types";
3
+ export declare class DateTimeExprNamespace {
4
+ expr: any;
5
+ constructor(expr: any);
6
+ _deriveDate(fn: (d: Date) => any): any;
7
+ _deriveDuration(fn: (v: number) => number): any;
8
+ century(): any;
9
+ date(): any;
10
+ datetime(): any;
11
+ day(): any;
12
+ epoch(unit?: TimeUnit): any;
13
+ hour(): any;
14
+ is_leap_year(): any;
15
+ microsecond(): any;
16
+ millennium(): any;
17
+ millisecond(): any;
18
+ minute(): any;
19
+ month(): any;
20
+ month_end(): any;
21
+ month_start(): any;
22
+ nanosecond(): any;
23
+ ordinal_day(): any;
24
+ quarter(): any;
25
+ second(): any;
26
+ strftime(format: string, locale?: string): any;
27
+ time(): any;
28
+ timestamp(unit?: TimeUnit): any;
29
+ to_string(format: string, locale?: string): any;
30
+ total_days(): any;
31
+ total_hours(): any;
32
+ total_microseconds(): any;
33
+ total_milliseconds(): any;
34
+ total_minutes(): any;
35
+ total_nanoseconds(): any;
36
+ total_seconds(): any;
37
+ week(): any;
38
+ weekday(): any;
39
+ year(): any;
40
+ }
41
+ export declare const TemporalExpr: <TBase extends ExprConstructor>(Base: TBase) => {
42
+ new (...args: any[]): {
43
+ get dt(): DateTimeExprNamespace;
44
+ ops: import("../../types").OpFn[];
45
+ colName?: string;
46
+ outputName?: string;
47
+ isLiteral?: boolean;
48
+ literalValue?: any;
49
+ aggFn?: import("../../types").AggFn<any> | null;
50
+ groupingOpsIndex?: number;
51
+ partitionOpsIndex?: number;
52
+ partitionBy?: (string | import("../../types").IExpr)[] | null;
53
+ windowOp?: {
54
+ type: string;
55
+ [key: string]: any;
56
+ } | null;
57
+ isWindow?: boolean;
58
+ alias(name: string): /*elided*/ any;
59
+ cast(dataType: any): /*elided*/ any;
60
+ _resolve(val: any, columns: import("../../types").ColumnDict, height: number): import("../../types").ColumnData | any;
61
+ evaluate(columns: import("../../types").ColumnDict, height: number): import("../../types").ColumnData;
62
+ evaluatePreGrouping(columns: import("../../types").ColumnDict, height: number): import("../../types").ColumnData;
63
+ evaluatePostGrouping(aggregatedArray: any[], columns: import("../../types").ColumnDict): import("../../types").ColumnData;
64
+ evaluatePrePartition(columns: import("../../types").ColumnDict, height: number): import("../../types").ColumnData;
65
+ evaluatePostPartition(aggregatedArray: any[], columns: import("../../types").ColumnDict): import("../../types").ColumnData;
66
+ evaluateWindow?(groupPreValues: any[], partitionIndices: number[], currentIndex: number): any;
67
+ debug(label?: string): /*elided*/ any;
68
+ };
69
+ } & TBase;
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemporalExpr = exports.DateTimeExprNamespace = void 0;
4
+ const ExprBase_1 = require("../ExprBase");
5
+ const utils_1 = require("../../utils");
6
+ class DateTimeExprNamespace {
7
+ expr;
8
+ constructor(expr) {
9
+ this.expr = expr;
10
+ }
11
+ _deriveDate(fn) {
12
+ return (0, ExprBase_1.derive)(this.expr, (0, ExprBase_1.kleeneUnary)((v) => {
13
+ const d = (0, utils_1.toValidDate)(v);
14
+ return d ? fn(d) : null;
15
+ }));
16
+ }
17
+ _deriveDuration(fn) {
18
+ return (0, ExprBase_1.derive)(this.expr, (0, ExprBase_1.kleeneUnary)((v) => {
19
+ return typeof v === "number" ? fn(v) : null;
20
+ }));
21
+ }
22
+ century() {
23
+ return this._deriveDate(utils_1.getCentury);
24
+ }
25
+ date() {
26
+ return this._deriveDate((d) => new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate())));
27
+ }
28
+ datetime() {
29
+ return this._deriveDate((d) => d);
30
+ }
31
+ day() {
32
+ return this._deriveDate((d) => d.getUTCDate());
33
+ }
34
+ epoch(unit = "ms") {
35
+ return this._deriveDate((d) => (0, utils_1.toEpoch)(d, unit));
36
+ }
37
+ hour() {
38
+ return this._deriveDate((d) => d.getUTCHours());
39
+ }
40
+ is_leap_year() {
41
+ return this._deriveDate(utils_1.isLeapYear);
42
+ }
43
+ microsecond() {
44
+ return this._deriveDate((d) => d.getUTCMilliseconds() * utils_1.US_PER_MS);
45
+ }
46
+ millennium() {
47
+ return this._deriveDate(utils_1.getMillennium);
48
+ }
49
+ millisecond() {
50
+ return this._deriveDate((d) => d.getUTCMilliseconds());
51
+ }
52
+ minute() {
53
+ return this._deriveDate((d) => d.getUTCMinutes());
54
+ }
55
+ month() {
56
+ return this._deriveDate((d) => d.getUTCMonth() + 1);
57
+ }
58
+ month_end() {
59
+ return this._deriveDate((d) => (0, utils_1.getMonthOffset)(d, 1, 0));
60
+ }
61
+ month_start() {
62
+ return this._deriveDate((d) => (0, utils_1.getMonthOffset)(d, 0, 1));
63
+ }
64
+ nanosecond() {
65
+ return this._deriveDate((d) => d.getUTCMilliseconds() * utils_1.NS_PER_MS);
66
+ }
67
+ ordinal_day() {
68
+ return this._deriveDate(utils_1.getOrdinalDay);
69
+ }
70
+ quarter() {
71
+ return this._deriveDate(utils_1.getQuarter);
72
+ }
73
+ second() {
74
+ return this._deriveDate((d) => d.getUTCSeconds());
75
+ }
76
+ strftime(format, locale) {
77
+ return this._deriveDate((d) => (0, utils_1.strftime)(d, format, locale));
78
+ }
79
+ time() {
80
+ return this._deriveDate((d) => d.toISOString().split("T")[1].slice(0, 12));
81
+ }
82
+ timestamp(unit = "ms") {
83
+ return this.epoch(unit);
84
+ }
85
+ to_string(format, locale) {
86
+ return this.strftime(format, locale);
87
+ }
88
+ total_days() {
89
+ return this._deriveDuration((v) => v / utils_1.MS_PER_DAY);
90
+ }
91
+ total_hours() {
92
+ return this._deriveDuration((v) => v / utils_1.MS_PER_HOUR);
93
+ }
94
+ total_microseconds() {
95
+ return this._deriveDuration((v) => v * utils_1.US_PER_MS);
96
+ }
97
+ total_milliseconds() {
98
+ return this._deriveDuration((v) => v);
99
+ }
100
+ total_minutes() {
101
+ return this._deriveDuration((v) => v / utils_1.MS_PER_MINUTE);
102
+ }
103
+ total_nanoseconds() {
104
+ return this._deriveDuration((v) => v * utils_1.NS_PER_MS);
105
+ }
106
+ total_seconds() {
107
+ return this._deriveDuration((v) => v / utils_1.MS_PER_SECOND);
108
+ }
109
+ week() {
110
+ return this._deriveDate(utils_1.getISOWeek);
111
+ }
112
+ weekday() {
113
+ return this._deriveDate((d) => d.getUTCDay() || 7);
114
+ }
115
+ year() {
116
+ return this._deriveDate((d) => d.getUTCFullYear());
117
+ }
118
+ }
119
+ exports.DateTimeExprNamespace = DateTimeExprNamespace;
120
+ const TemporalExpr = (Base) => {
121
+ return class extends Base {
122
+ get dt() {
123
+ return new DateTimeExprNamespace(this);
124
+ }
125
+ };
126
+ };
127
+ exports.TemporalExpr = TemporalExpr;
@@ -0,0 +1,50 @@
1
+ import type { IExpr } from "../../types";
2
+ import type { ExprConstructor } from "../types";
3
+ export declare const WindowExpr: <TBase extends ExprConstructor>(Base: TBase) => {
4
+ new (...args: any[]): {
5
+ partitionBy: (string | IExpr)[] | null;
6
+ _rolling(windowSize: number, aggFn: (vals: any[]) => any): /*elided*/ any;
7
+ get isWindow(): boolean;
8
+ cum_count(reverse?: boolean): /*elided*/ any;
9
+ cum_max(reverse?: boolean): /*elided*/ any;
10
+ cum_min(reverse?: boolean): /*elided*/ any;
11
+ cum_prod(reverse?: boolean): /*elided*/ any;
12
+ cum_sum(reverse?: boolean): /*elided*/ any;
13
+ dense_rank(): /*elided*/ any;
14
+ lag(offset?: number, defaultVal?: any): /*elided*/ any;
15
+ lead(offset?: number, defaultVal?: any): /*elided*/ any;
16
+ over(columns: string | IExpr | (string | IExpr)[]): /*elided*/ any;
17
+ rank(): /*elided*/ any;
18
+ rolling_max(windowSize: number): /*elided*/ any;
19
+ rolling_mean(windowSize: number): /*elided*/ any;
20
+ rolling_median(windowSize: number): /*elided*/ any;
21
+ rolling_min(windowSize: number): /*elided*/ any;
22
+ rolling_quantile(quantile: number, windowSize: number): /*elided*/ any;
23
+ rolling_rank(windowSize: number): /*elided*/ any;
24
+ rolling_std(windowSize: number): /*elided*/ any;
25
+ rolling_sum(windowSize: number): /*elided*/ any;
26
+ row_number(): /*elided*/ any;
27
+ ops: import("../../types").OpFn[];
28
+ colName?: string;
29
+ outputName?: string;
30
+ isLiteral?: boolean;
31
+ literalValue?: any;
32
+ aggFn?: import("../../types").AggFn<any> | null;
33
+ groupingOpsIndex?: number;
34
+ partitionOpsIndex?: number;
35
+ windowOp?: {
36
+ type: string;
37
+ [key: string]: any;
38
+ } | null;
39
+ alias(name: string): /*elided*/ any;
40
+ cast(dataType: any): /*elided*/ any;
41
+ _resolve(val: any, columns: import("../../types").ColumnDict, height: number): import("../../types").ColumnData | any;
42
+ evaluate(columns: import("../../types").ColumnDict, height: number): import("../../types").ColumnData;
43
+ evaluatePreGrouping(columns: import("../../types").ColumnDict, height: number): import("../../types").ColumnData;
44
+ evaluatePostGrouping(aggregatedArray: any[], columns: import("../../types").ColumnDict): import("../../types").ColumnData;
45
+ evaluatePrePartition(columns: import("../../types").ColumnDict, height: number): import("../../types").ColumnData;
46
+ evaluatePostPartition(aggregatedArray: any[], columns: import("../../types").ColumnDict): import("../../types").ColumnData;
47
+ evaluateWindow?(groupPreValues: any[], partitionIndices: number[], currentIndex: number): any;
48
+ debug(label?: string): /*elided*/ any;
49
+ };
50
+ } & TBase;