pond-ts 0.2.0 → 0.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 (97) hide show
  1. package/dist/LiveAggregation.d.ts +54 -0
  2. package/dist/LiveAggregation.d.ts.map +1 -0
  3. package/dist/LiveAggregation.js +240 -0
  4. package/dist/LiveAggregation.js.map +1 -0
  5. package/dist/LiveRollingAggregation.d.ts +43 -0
  6. package/dist/LiveRollingAggregation.d.ts.map +1 -0
  7. package/dist/LiveRollingAggregation.js +178 -0
  8. package/dist/LiveRollingAggregation.js.map +1 -0
  9. package/dist/LiveSeries.d.ts +63 -0
  10. package/dist/LiveSeries.d.ts.map +1 -0
  11. package/dist/LiveSeries.js +340 -0
  12. package/dist/LiveSeries.js.map +1 -0
  13. package/dist/LiveView.d.ts +59 -0
  14. package/dist/LiveView.d.ts.map +1 -0
  15. package/dist/LiveView.js +337 -0
  16. package/dist/LiveView.js.map +1 -0
  17. package/dist/Sequence.d.ts +2 -2
  18. package/dist/Sequence.d.ts.map +1 -1
  19. package/dist/Sequence.js +4 -57
  20. package/dist/Sequence.js.map +1 -1
  21. package/dist/TimeSeries.d.ts +133 -3
  22. package/dist/TimeSeries.d.ts.map +1 -1
  23. package/dist/TimeSeries.js +748 -444
  24. package/dist/TimeSeries.js.map +1 -1
  25. package/dist/index.d.ts +11 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +4 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/reducers/avg.d.ts +3 -0
  30. package/dist/reducers/avg.d.ts.map +1 -0
  31. package/dist/reducers/avg.js +45 -0
  32. package/dist/reducers/avg.js.map +1 -0
  33. package/dist/reducers/count.d.ts +3 -0
  34. package/dist/reducers/count.d.ts.map +1 -0
  35. package/dist/reducers/count.js +35 -0
  36. package/dist/reducers/count.js.map +1 -0
  37. package/dist/reducers/difference.d.ts +3 -0
  38. package/dist/reducers/difference.d.ts.map +1 -0
  39. package/dist/reducers/difference.js +48 -0
  40. package/dist/reducers/difference.js.map +1 -0
  41. package/dist/reducers/first.d.ts +3 -0
  42. package/dist/reducers/first.d.ts.map +1 -0
  43. package/dist/reducers/first.js +23 -0
  44. package/dist/reducers/first.js.map +1 -0
  45. package/dist/reducers/index.d.ts +4 -0
  46. package/dist/reducers/index.d.ts.map +1 -0
  47. package/dist/reducers/index.js +35 -0
  48. package/dist/reducers/index.js.map +1 -0
  49. package/dist/reducers/keep.d.ts +3 -0
  50. package/dist/reducers/keep.d.ts.map +1 -0
  51. package/dist/reducers/keep.js +56 -0
  52. package/dist/reducers/keep.js.map +1 -0
  53. package/dist/reducers/last.d.ts +3 -0
  54. package/dist/reducers/last.d.ts.map +1 -0
  55. package/dist/reducers/last.js +23 -0
  56. package/dist/reducers/last.js.map +1 -0
  57. package/dist/reducers/max.d.ts +3 -0
  58. package/dist/reducers/max.d.ts.map +1 -0
  59. package/dist/reducers/max.js +25 -0
  60. package/dist/reducers/max.js.map +1 -0
  61. package/dist/reducers/median.d.ts +3 -0
  62. package/dist/reducers/median.d.ts.map +1 -0
  63. package/dist/reducers/median.js +39 -0
  64. package/dist/reducers/median.js.map +1 -0
  65. package/dist/reducers/min.d.ts +3 -0
  66. package/dist/reducers/min.d.ts.map +1 -0
  67. package/dist/reducers/min.js +25 -0
  68. package/dist/reducers/min.js.map +1 -0
  69. package/dist/reducers/percentile.d.ts +5 -0
  70. package/dist/reducers/percentile.d.ts.map +1 -0
  71. package/dist/reducers/percentile.js +56 -0
  72. package/dist/reducers/percentile.js.map +1 -0
  73. package/dist/reducers/rolling.d.ts +15 -0
  74. package/dist/reducers/rolling.d.ts.map +1 -0
  75. package/dist/reducers/rolling.js +84 -0
  76. package/dist/reducers/rolling.js.map +1 -0
  77. package/dist/reducers/stdev.d.ts +3 -0
  78. package/dist/reducers/stdev.d.ts.map +1 -0
  79. package/dist/reducers/stdev.js +58 -0
  80. package/dist/reducers/stdev.js.map +1 -0
  81. package/dist/reducers/sum.d.ts +3 -0
  82. package/dist/reducers/sum.d.ts.map +1 -0
  83. package/dist/reducers/sum.js +35 -0
  84. package/dist/reducers/sum.js.map +1 -0
  85. package/dist/reducers/types.d.ts +58 -0
  86. package/dist/reducers/types.d.ts.map +1 -0
  87. package/dist/reducers/types.js +2 -0
  88. package/dist/reducers/types.js.map +1 -0
  89. package/dist/types.d.ts +35 -4
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/utils/duration.d.ts +3 -0
  92. package/dist/utils/duration.d.ts.map +1 -0
  93. package/dist/utils/duration.js +25 -0
  94. package/dist/utils/duration.js.map +1 -0
  95. package/package.json +5 -2
  96. package/LICENSE +0 -21
  97. package/README.md +0 -415
@@ -0,0 +1,337 @@
1
+ import { Event } from './Event.js';
2
+ import { LiveAggregation } from './LiveAggregation.js';
3
+ import { LiveRollingAggregation, } from './LiveRollingAggregation.js';
4
+ import { TimeSeries } from './TimeSeries.js';
5
+ import { parseDuration } from './utils/duration.js';
6
+ export class LiveView {
7
+ name;
8
+ schema;
9
+ #events;
10
+ #process;
11
+ #evict;
12
+ #onEvent;
13
+ #unsubscribe;
14
+ constructor(source, process, options) {
15
+ this.name = source.name;
16
+ this.schema = options?.schema ?? source.schema;
17
+ this.#events = [];
18
+ this.#process = process;
19
+ this.#evict = options?.evict;
20
+ this.#onEvent = new Set();
21
+ for (let i = 0; i < source.length; i++) {
22
+ const result = this.#process(source.at(i));
23
+ if (result !== undefined)
24
+ this.#events.push(result);
25
+ }
26
+ this.#applyEviction();
27
+ this.#unsubscribe = source.on('event', (event) => {
28
+ const result = this.#process(event);
29
+ if (result !== undefined) {
30
+ this.#events.push(result);
31
+ this.#applyEviction();
32
+ for (const fn of this.#onEvent)
33
+ fn(result);
34
+ }
35
+ });
36
+ }
37
+ get length() {
38
+ return this.#events.length;
39
+ }
40
+ at(index) {
41
+ if (index < 0)
42
+ index = this.#events.length + index;
43
+ return this.#events[index];
44
+ }
45
+ first() {
46
+ return this.#events[0];
47
+ }
48
+ last() {
49
+ return this.#events[this.#events.length - 1];
50
+ }
51
+ filter(predicate) {
52
+ return new LiveView(this, (event) => predicate(event) ? event : undefined);
53
+ }
54
+ map(fn) {
55
+ return new LiveView(this, fn);
56
+ }
57
+ select(...keys) {
58
+ const newSchema = Object.freeze([
59
+ this.schema[0],
60
+ ...this.schema.slice(1).filter((c) => keys.includes(c.name)),
61
+ ]);
62
+ return new LiveView(this, (event) => event.select(...keys), {
63
+ schema: newSchema,
64
+ });
65
+ }
66
+ window(size) {
67
+ if (typeof size === 'number' && Number.isInteger(size) && size > 0) {
68
+ const count = size;
69
+ return new LiveView(this, (event) => event, {
70
+ evict: (events) => Math.max(0, events.length - count),
71
+ });
72
+ }
73
+ if (typeof size === 'string') {
74
+ const ms = parseDuration(size);
75
+ return new LiveView(this, (event) => event, {
76
+ evict: (events) => {
77
+ if (events.length === 0)
78
+ return 0;
79
+ const cutoff = events[events.length - 1].begin() - ms;
80
+ let i = 0;
81
+ while (i < events.length && events[i].begin() < cutoff)
82
+ i++;
83
+ return i;
84
+ },
85
+ });
86
+ }
87
+ throw new TypeError('window must be a positive integer (event count) or duration string');
88
+ }
89
+ aggregate(sequence, mapping) {
90
+ return new LiveAggregation(this, sequence, mapping);
91
+ }
92
+ rolling(window, mapping) {
93
+ return new LiveRollingAggregation(this, window, mapping);
94
+ }
95
+ diff(columns, options) {
96
+ return makeDiffView(this, 'diff', columns, options);
97
+ }
98
+ rate(columns, options) {
99
+ return makeDiffView(this, 'rate', columns, options);
100
+ }
101
+ pctChange(columns, options) {
102
+ return makeDiffView(this, 'pctChange', columns, options);
103
+ }
104
+ fill(strategy, options) {
105
+ return makeFillView(this, strategy, options);
106
+ }
107
+ cumulative(spec) {
108
+ return makeCumulativeView(this, spec);
109
+ }
110
+ toTimeSeries(name) {
111
+ const rows = this.#events.map((event) => {
112
+ const row = [event.key()];
113
+ for (let col = 1; col < this.schema.length; col++) {
114
+ row.push(event.get(this.schema[col].name));
115
+ }
116
+ return row;
117
+ });
118
+ return new TimeSeries({
119
+ name: name ?? this.name,
120
+ schema: this.schema,
121
+ rows: rows,
122
+ });
123
+ }
124
+ on(type, fn) {
125
+ this.#onEvent.add(fn);
126
+ return () => {
127
+ this.#onEvent.delete(fn);
128
+ };
129
+ }
130
+ dispose() {
131
+ this.#unsubscribe();
132
+ }
133
+ #applyEviction() {
134
+ if (!this.#evict)
135
+ return;
136
+ const count = this.#evict(this.#events);
137
+ if (count > 0)
138
+ this.#events.splice(0, count);
139
+ }
140
+ }
141
+ // ── Factory functions for stateful live views ────────────────────
142
+ export function makeDiffView(source, mode, columns, options) {
143
+ const cols = (typeof columns === 'string' ? [columns] : [...columns]);
144
+ const drop = options?.drop === true;
145
+ if (cols.length === 0) {
146
+ throw new Error(`${mode}() requires at least one column name`);
147
+ }
148
+ const targetSet = new Set(cols);
149
+ const outSchema = Object.freeze(source.schema.map((col, i) => {
150
+ if (i === 0)
151
+ return col;
152
+ if (targetSet.has(col.name)) {
153
+ return { ...col, kind: 'number', required: false };
154
+ }
155
+ return col;
156
+ }));
157
+ let prevData;
158
+ let prevTime;
159
+ const process = (event) => {
160
+ const data = event.data();
161
+ if (prevData === undefined) {
162
+ prevData = data;
163
+ prevTime = event.begin();
164
+ if (drop)
165
+ return undefined;
166
+ const firstData = { ...data };
167
+ for (const col of cols) {
168
+ firstData[col] = undefined;
169
+ }
170
+ return new Event(event.key(), firstData);
171
+ }
172
+ const outData = { ...data };
173
+ const dt = mode === 'rate' ? (event.begin() - prevTime) / 1000 : undefined;
174
+ for (const col of cols) {
175
+ const prevVal = prevData[col];
176
+ const currVal = outData[col];
177
+ if (typeof currVal === 'number' && typeof prevVal === 'number') {
178
+ const delta = currVal - prevVal;
179
+ if (mode === 'pctChange') {
180
+ outData[col] = prevVal !== 0 ? delta / prevVal : undefined;
181
+ }
182
+ else if (mode === 'rate') {
183
+ outData[col] = dt !== 0 ? delta / dt : undefined;
184
+ }
185
+ else {
186
+ outData[col] = delta;
187
+ }
188
+ }
189
+ else {
190
+ outData[col] = undefined;
191
+ }
192
+ }
193
+ prevData = data;
194
+ prevTime = event.begin();
195
+ return new Event(event.key(), outData);
196
+ };
197
+ return new LiveView(source, process, {
198
+ schema: outSchema,
199
+ });
200
+ }
201
+ export function makeFillView(source, strategy, options) {
202
+ const colNames = source.schema.slice(1).map((c) => c.name);
203
+ const specs = new Map();
204
+ if (typeof strategy === 'string') {
205
+ if (strategy !== 'hold' && strategy !== 'zero') {
206
+ throw new Error(`live fill strategy '${strategy}' is not supported (bfill and linear require future values)`);
207
+ }
208
+ for (const name of colNames) {
209
+ specs.set(name, { mode: strategy });
210
+ }
211
+ }
212
+ else {
213
+ for (const [name, spec] of Object.entries(strategy)) {
214
+ if (spec === 'hold' || spec === 'zero') {
215
+ specs.set(name, { mode: spec });
216
+ }
217
+ else if (spec === 'bfill' || spec === 'linear') {
218
+ throw new Error(`live fill strategy '${spec}' is not supported (bfill and linear require future values)`);
219
+ }
220
+ else {
221
+ specs.set(name, { mode: 'literal', value: spec });
222
+ }
223
+ }
224
+ }
225
+ const limit = options?.limit;
226
+ const state = new Map();
227
+ for (const [name] of specs) {
228
+ state.set(name, { lastKnown: undefined, consecutive: 0 });
229
+ }
230
+ const process = (event) => {
231
+ const data = event.data();
232
+ let outData;
233
+ for (const [name, spec] of specs) {
234
+ const s = state.get(name);
235
+ const value = data[name];
236
+ if (value !== undefined) {
237
+ s.lastKnown = value;
238
+ s.consecutive = 0;
239
+ }
240
+ else {
241
+ s.consecutive++;
242
+ if (limit !== undefined && s.consecutive > limit)
243
+ continue;
244
+ let fillValue;
245
+ switch (spec.mode) {
246
+ case 'hold':
247
+ fillValue = s.lastKnown;
248
+ break;
249
+ case 'zero':
250
+ fillValue = 0;
251
+ break;
252
+ case 'literal':
253
+ fillValue = spec.value;
254
+ break;
255
+ }
256
+ if (fillValue !== undefined) {
257
+ if (!outData)
258
+ outData = { ...data };
259
+ outData[name] = fillValue;
260
+ }
261
+ }
262
+ }
263
+ return outData ? new Event(event.key(), outData) : event;
264
+ };
265
+ return new LiveView(source, process);
266
+ }
267
+ export function makeCumulativeView(source, spec) {
268
+ const entries = Object.entries(spec);
269
+ if (entries.length === 0) {
270
+ throw new Error('cumulative() requires at least one column');
271
+ }
272
+ const targetSet = new Set(entries.map(([name]) => name));
273
+ const outSchema = Object.freeze(source.schema.map((col, i) => {
274
+ if (i === 0)
275
+ return col;
276
+ if (targetSet.has(col.name)) {
277
+ return { ...col, kind: 'number', required: false };
278
+ }
279
+ return col;
280
+ }));
281
+ const accState = new Map();
282
+ for (const [name, reducer] of entries) {
283
+ if (typeof reducer === 'function') {
284
+ const fn = reducer;
285
+ accState.set(name, {
286
+ acc: undefined,
287
+ apply: (acc, v) => (acc === undefined ? v : fn(acc, v)),
288
+ });
289
+ }
290
+ else {
291
+ switch (reducer) {
292
+ case 'sum':
293
+ accState.set(name, {
294
+ acc: undefined,
295
+ apply: (acc, v) => (acc ?? 0) + v,
296
+ });
297
+ break;
298
+ case 'count':
299
+ accState.set(name, {
300
+ acc: undefined,
301
+ apply: (acc) => (acc ?? 0) + 1,
302
+ });
303
+ break;
304
+ case 'max':
305
+ accState.set(name, {
306
+ acc: undefined,
307
+ apply: (acc, v) => (acc === undefined || v > acc ? v : acc),
308
+ });
309
+ break;
310
+ case 'min':
311
+ accState.set(name, {
312
+ acc: undefined,
313
+ apply: (acc, v) => (acc === undefined || v < acc ? v : acc),
314
+ });
315
+ break;
316
+ }
317
+ }
318
+ }
319
+ const process = (event) => {
320
+ const data = { ...event.data() };
321
+ for (const [name, s] of accState) {
322
+ const raw = data[name];
323
+ if (typeof raw === 'number') {
324
+ s.acc = s.apply(s.acc, raw);
325
+ data[name] = s.acc;
326
+ }
327
+ else {
328
+ data[name] = s.acc;
329
+ }
330
+ }
331
+ return new Event(event.key(), data);
332
+ };
333
+ return new LiveView(source, process, {
334
+ schema: outSchema,
335
+ });
336
+ }
337
+ //# sourceMappingURL=LiveView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveView.js","sourceRoot":"","sources":["../src/LiveView.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { BoundedSequence } from './BoundedSequence.js';
2
2
  import { type CalendarOptions, type CalendarUnit, type WeekStartsOn } from './calendar.js';
3
+ import type { DurationInput } from './utils/duration.js';
3
4
  import type { TemporalLike, TimestampInput } from './temporal.js';
4
- export type DurationInput = number | `${number}${'ms' | 's' | 'm' | 'h' | 'd'}`;
5
+ export type { DurationInput };
5
6
  export type SequenceSample = 'begin' | 'center';
6
7
  type FixedSequenceInput = {
7
8
  every: DurationInput;
@@ -76,5 +77,4 @@ export declare class Sequence {
76
77
  sample?: SequenceSample;
77
78
  }): BoundedSequence;
78
79
  }
79
- export {};
80
80
  //# sourceMappingURL=Sequence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sequence.d.ts","sourceRoot":"","sources":["../src/Sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EAMlB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAGf,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AAChF,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAqEF;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ;;gBAQP,KAAK,EAAE,kBAAkB,GAAG,qBAAqB;IAc7D;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CACV,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,GACxC,QAAQ;IAMX,2EAA2E;IAC3E,MAAM,CAAC,MAAM,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,GAAG,QAAQ;IAIlE,wEAAwE;IACxE,MAAM,CAAC,KAAK,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,GAAG,QAAQ;IAIjE;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,eAAoB,GAAG,QAAQ;IAO5E,iGAAiG;IACjG,IAAI,IAAI,OAAO,GAAG,UAAU;IAI5B,iGAAiG;IACjG,MAAM,IAAI,MAAM;IAShB,qFAAqF;IACrF,MAAM,IAAI,MAAM;IAShB,uGAAuG;IACvG,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B;;;;;;;OAOG;IACH,OAAO,CACL,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,GACxC,eAAe;CA0DnB"}
1
+ {"version":3,"file":"Sequence.d.ts","sourceRoot":"","sources":["../src/Sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EAMlB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGlE,YAAY,EAAE,aAAa,EAAE,CAAC;AAC9B,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ;;gBAQP,KAAK,EAAE,kBAAkB,GAAG,qBAAqB;IAc7D;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CACV,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,GACxC,QAAQ;IAMX,2EAA2E;IAC3E,MAAM,CAAC,MAAM,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,GAAG,QAAQ;IAIlE,wEAAwE;IACxE,MAAM,CAAC,KAAK,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,GAAG,QAAQ;IAIjE;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,eAAoB,GAAG,QAAQ;IAO5E,iGAAiG;IACjG,IAAI,IAAI,OAAO,GAAG,UAAU;IAI5B,iGAAiG;IACjG,MAAM,IAAI,MAAM;IAShB,qFAAqF;IACrF,MAAM,IAAI,MAAM;IAShB,uGAAuG;IACvG,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B;;;;;;;OAOG;IACH,OAAO,CACL,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,GACxC,eAAe;CA0DnB"}
package/dist/Sequence.js CHANGED
@@ -1,62 +1,9 @@
1
1
  import { BoundedSequence } from './BoundedSequence.js';
2
2
  import { normalizeWeekStartsOn, nextCalendarStart, plainDateToStart, resolveTimeZone, toPlainDateStart, } from './calendar.js';
3
+ import { parseDuration } from './utils/duration.js';
3
4
  import { Interval } from './Interval.js';
4
- import { TimeRange } from './TimeRange.js';
5
- function normalizeTimestamp(value) {
6
- return value instanceof Date ? value.getTime() : value;
7
- }
8
- function toTimeRange(value) {
9
- if (typeof value === 'object' &&
10
- value !== null &&
11
- 'timeRange' in value &&
12
- typeof value.timeRange === 'function') {
13
- return value.timeRange();
14
- }
15
- if (typeof value === 'object' &&
16
- value !== null &&
17
- 'begin' in value &&
18
- 'end' in value) {
19
- return new TimeRange({ start: value.begin(), end: value.end() });
20
- }
21
- if (value instanceof Date || typeof value === 'number') {
22
- const timestamp = normalizeTimestamp(value);
23
- return new TimeRange({ start: timestamp, end: timestamp });
24
- }
25
- if (Array.isArray(value)) {
26
- if (value.length === 2) {
27
- return new TimeRange(value);
28
- }
29
- return new Interval(value).timeRange();
30
- }
31
- if ('value' in value) {
32
- return new Interval(value).timeRange();
33
- }
34
- return new TimeRange(value);
35
- }
36
- function parseDuration(value) {
37
- if (typeof value === 'number') {
38
- if (!Number.isFinite(value) || value <= 0) {
39
- throw new TypeError('sequence duration must be a positive finite number of milliseconds');
40
- }
41
- return value;
42
- }
43
- const match = /^(\d+)(ms|s|m|h|d)$/.exec(value);
44
- if (!match) {
45
- throw new TypeError(`unsupported duration '${value}'`);
46
- }
47
- const amount = Number(match[1]);
48
- const unit = match[2];
49
- const multiplier = unit === 'ms'
50
- ? 1
51
- : unit === 's'
52
- ? 1_000
53
- : unit === 'm'
54
- ? 60_000
55
- : unit === 'h'
56
- ? 3_600_000
57
- : 86_400_000;
58
- return amount * multiplier;
59
- }
5
+ import { toTimeRange } from './TimeRange.js';
6
+ import { normalizeTimestamp } from './temporal.js';
60
7
  /**
61
8
  * An unbounded fixed-step grid definition used for alignment or aggregation.
62
9
  *
@@ -80,7 +27,7 @@ export class Sequence {
80
27
  if ('every' in input) {
81
28
  this.#kind = 'fixed';
82
29
  this.#stepMs = parseDuration(input.every);
83
- this.#anchorMs = normalizeTimestamp(input.anchor ?? 0);
30
+ this.#anchorMs = normalizeTimestamp(input.anchor ?? 0, 'anchor');
84
31
  }
85
32
  else {
86
33
  this.#kind = 'calendar';
@@ -1 +1 @@
1
- {"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../src/Sequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../src/Sequence.ts"],"names":[],"mappings":"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"}