pond-ts 0.1.0 → 0.2.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.
package/README.md CHANGED
@@ -1,9 +1,7 @@
1
- # pond-ts
1
+ # pond-ts - A modern typescript timeseries library
2
2
 
3
3
  TypeScript-first time series primitives built around typed events, typed schemas, and explicit temporal keys.
4
4
 
5
- The package is intended to work in modern Node and frontend projects. The repo toolchain should work on Node 18, and we can use `nvm` to verify against newer stable Node releases when needed.
6
-
7
5
  The library is currently focused on non-streaming analytics:
8
6
 
9
7
  - typed `TimeSeries` construction
@@ -12,6 +10,8 @@ The library is currently focused on non-streaming analytics:
12
10
  - alignment, aggregation, joins, rolling windows, and smoothing
13
11
  - timezone-aware calendar sequences and ingest helpers
14
12
 
13
+ The package is intended to work in modern Node and frontend projects.
14
+
15
15
  ## Install
16
16
 
17
17
  ```sh
@@ -20,6 +20,8 @@ npm install pond-ts
20
20
 
21
21
  ## Build
22
22
 
23
+ The repo toolchain should work on Node 18, but use `nvm` to verify against newer stable Node releases when needed.
24
+
23
25
  ```sh
24
26
  npm run build
25
27
  ```
@@ -42,6 +44,10 @@ npm test
42
44
  npm run verify
43
45
  ```
44
46
 
47
+ ## Docs site
48
+
49
+ The documentation website lives in [`website/`](./website) and is built with Docusaurus.
50
+
45
51
  ## License
46
52
 
47
53
  MIT
@@ -90,6 +96,67 @@ event.get('cpu');
90
96
  event.data().host;
91
97
  ```
92
98
 
99
+ ## Worked example
100
+
101
+ This is the kind of flow `pond-ts` is built for: start with typed events, then derive aligned, aggregated, and smoothed analytical views without mutating the original series.
102
+
103
+ ```ts
104
+ import { Sequence, TimeSeries } from 'pond-ts';
105
+
106
+ const schema = [
107
+ { name: 'time', kind: 'time' },
108
+ { name: 'cpu', kind: 'number' },
109
+ { name: 'requests', kind: 'number' },
110
+ { name: 'host', kind: 'string' },
111
+ ] as const;
112
+
113
+ const cpu = TimeSeries.fromJSON({
114
+ name: 'cpu',
115
+ schema,
116
+ rows: [
117
+ ['2025-01-01T00:00:00Z', 0.31, 120, 'api-1'],
118
+ ['2025-01-01T00:01:00Z', 0.44, 135, 'api-1'],
119
+ ['2025-01-01T00:02:00Z', 0.52, 141, 'api-1'],
120
+ ['2025-01-01T00:03:00Z', 0.48, 128, 'api-1'],
121
+ ['2025-01-01T00:04:00Z', 0.63, 166, 'api-1'],
122
+ ],
123
+ });
124
+
125
+ const perMinute = cpu.align(Sequence.every('1m'), {
126
+ method: 'hold',
127
+ });
128
+
129
+ const fiveMinute = cpu.aggregate(Sequence.every('5m'), {
130
+ cpu: 'avg',
131
+ requests: 'sum',
132
+ host: 'last',
133
+ });
134
+
135
+ const rolling = cpu.rolling('3m', {
136
+ cpu: 'avg',
137
+ requests: 'sum',
138
+ });
139
+
140
+ const smoothed = cpu.smooth('cpu', 'ema', {
141
+ alpha: 0.35,
142
+ output: 'cpuTrend',
143
+ });
144
+
145
+ console.log(perMinute.first()?.key().asString());
146
+ console.log(fiveMinute.first()?.data());
147
+ console.log(rolling.last()?.data());
148
+ console.log(smoothed.last()?.get('cpuTrend'));
149
+ ```
150
+
151
+ From one typed source series, you can derive:
152
+
153
+ - aligned interval views for dashboards and joins
154
+ - bucketed aggregates for reporting
155
+ - rolling metrics for short-term behavior
156
+ - smoothed trends for visualization or alerting
157
+
158
+ All of those remain fully typed and immutable.
159
+
93
160
  ## JSON ingest
94
161
 
95
162
  Use `TimeSeries.fromJSON(...)` for external data and ambiguous local timestamps.
@@ -1 +1 @@
1
- {"version":3,"file":"TimeSeries.d.ts","sourceRoot":"","sources":["../src/TimeSeries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimeSeries.d.ts","sourceRoot":"","sources":["../src/TimeSeries.ts"],"names":[],"mappings":"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"}
@@ -180,26 +180,38 @@ function eventAnchorTime(key) {
180
180
  return key instanceof Time ? key.begin() : key.timeRange().midpoint();
181
181
  }
182
182
  function loessAt(x, anchors, values, span) {
183
- const points = anchors.flatMap((anchor, index) => {
184
- const value = values[index];
185
- return value === undefined ? [] : [{ x: anchor, y: value }];
186
- });
187
- if (points.length === 0) {
183
+ if (anchors.length === 0) {
188
184
  return undefined;
189
185
  }
190
- if (points.length === 1) {
191
- return points[0].y;
186
+ if (anchors.length === 1) {
187
+ return values[0];
188
+ }
189
+ const neighborCount = Math.max(2, Math.min(anchors.length, Math.ceil(span * anchors.length)));
190
+ let start = 0;
191
+ if (neighborCount < anchors.length) {
192
+ let low = 0;
193
+ let high = anchors.length - neighborCount;
194
+ while (low < high) {
195
+ const mid = Math.floor((low + high) / 2);
196
+ if (x - anchors[mid] > anchors[mid + neighborCount] - x) {
197
+ low = mid + 1;
198
+ }
199
+ else {
200
+ high = mid;
201
+ }
202
+ }
203
+ start = low;
192
204
  }
193
- const neighborCount = Math.max(2, Math.min(points.length, Math.ceil(span * points.length)));
194
- const sortedDistances = points
195
- .map((point) => ({ point, distance: Math.abs(point.x - x) }))
196
- .sort((left, right) => left.distance - right.distance);
197
- const bandwidth = sortedDistances[neighborCount - 1].distance;
205
+ const end = start + neighborCount;
206
+ const bandwidth = Math.max(Math.abs(x - anchors[start]), Math.abs(anchors[end - 1] - x));
198
207
  if (bandwidth === 0) {
199
- const coincident = sortedDistances
200
- .filter((entry) => entry.distance === 0)
201
- .map((entry) => entry.point.y);
202
- return (coincident.reduce((sum, value) => sum + value, 0) / coincident.length);
208
+ const coincidentStart = lowerBound(anchors, x);
209
+ const coincidentEnd = upperBound(anchors, x);
210
+ let coincidentSum = 0;
211
+ for (let index = coincidentStart; index < coincidentEnd; index++) {
212
+ coincidentSum += values[index];
213
+ }
214
+ return coincidentSum / (coincidentEnd - coincidentStart);
203
215
  }
204
216
  let weightedCount = 0;
205
217
  let sumW = 0;
@@ -207,7 +219,10 @@ function loessAt(x, anchors, values, span) {
207
219
  let sumWY = 0;
208
220
  let sumWXX = 0;
209
221
  let sumWXY = 0;
210
- for (const { point, distance } of sortedDistances.slice(0, neighborCount)) {
222
+ for (let index = start; index < end; index++) {
223
+ const pointX = anchors[index];
224
+ const pointY = values[index];
225
+ const distance = Math.abs(pointX - x);
211
226
  const ratio = distance / bandwidth;
212
227
  const weight = ratio >= 1 ? 0 : (1 - ratio ** 3) ** 3;
213
228
  if (weight === 0) {
@@ -215,10 +230,10 @@ function loessAt(x, anchors, values, span) {
215
230
  }
216
231
  weightedCount += 1;
217
232
  sumW += weight;
218
- sumWX += weight * point.x;
219
- sumWY += weight * point.y;
220
- sumWXX += weight * point.x * point.x;
221
- sumWXY += weight * point.x * point.y;
233
+ sumWX += weight * pointX;
234
+ sumWY += weight * pointY;
235
+ sumWXX += weight * pointX * pointX;
236
+ sumWXY += weight * pointX * pointY;
222
237
  }
223
238
  if (weightedCount === 0 || sumW === 0) {
224
239
  return undefined;
@@ -231,6 +246,34 @@ function loessAt(x, anchors, values, span) {
231
246
  const slope = (sumW * sumWXY - sumWX * sumWY) / denominator;
232
247
  return intercept + slope * x;
233
248
  }
249
+ function lowerBound(values, target) {
250
+ let low = 0;
251
+ let high = values.length;
252
+ while (low < high) {
253
+ const mid = Math.floor((low + high) / 2);
254
+ if (values[mid] < target) {
255
+ low = mid + 1;
256
+ }
257
+ else {
258
+ high = mid;
259
+ }
260
+ }
261
+ return low;
262
+ }
263
+ function upperBound(values, target) {
264
+ let low = 0;
265
+ let high = values.length;
266
+ while (low < high) {
267
+ const mid = Math.floor((low + high) / 2);
268
+ if (values[mid] <= target) {
269
+ low = mid + 1;
270
+ }
271
+ else {
272
+ high = mid;
273
+ }
274
+ }
275
+ return low;
276
+ }
234
277
  function makeSmoothSchema(schema, target, output) {
235
278
  if (output === undefined || output === target) {
236
279
  return Object.freeze([
@@ -296,6 +339,232 @@ function aggregateValues(operation, values) {
296
339
  return defined[defined.length - 1];
297
340
  }
298
341
  }
342
+ function createAggregateBucketState(operation) {
343
+ if (operation === 'count') {
344
+ let definedCount = 0;
345
+ return {
346
+ add(value) {
347
+ if (value !== undefined) {
348
+ definedCount += 1;
349
+ }
350
+ },
351
+ snapshot() {
352
+ return definedCount;
353
+ },
354
+ };
355
+ }
356
+ if (operation === 'sum') {
357
+ let numericSum = 0;
358
+ return {
359
+ add(value) {
360
+ if (typeof value === 'number') {
361
+ numericSum += value;
362
+ }
363
+ },
364
+ snapshot() {
365
+ return numericSum;
366
+ },
367
+ };
368
+ }
369
+ if (operation === 'avg') {
370
+ let numericSum = 0;
371
+ let numericCount = 0;
372
+ return {
373
+ add(value) {
374
+ if (typeof value === 'number') {
375
+ numericSum += value;
376
+ numericCount += 1;
377
+ }
378
+ },
379
+ snapshot() {
380
+ return numericCount === 0 ? undefined : numericSum / numericCount;
381
+ },
382
+ };
383
+ }
384
+ if (operation === 'min') {
385
+ let numericValue;
386
+ return {
387
+ add(value) {
388
+ if (typeof value !== 'number') {
389
+ return;
390
+ }
391
+ numericValue =
392
+ numericValue === undefined || value < numericValue
393
+ ? value
394
+ : numericValue;
395
+ },
396
+ snapshot() {
397
+ return numericValue;
398
+ },
399
+ };
400
+ }
401
+ if (operation === 'max') {
402
+ let numericValue;
403
+ return {
404
+ add(value) {
405
+ if (typeof value !== 'number') {
406
+ return;
407
+ }
408
+ numericValue =
409
+ numericValue === undefined || value > numericValue
410
+ ? value
411
+ : numericValue;
412
+ },
413
+ snapshot() {
414
+ return numericValue;
415
+ },
416
+ };
417
+ }
418
+ if (operation === 'first') {
419
+ let firstValue;
420
+ return {
421
+ add(value) {
422
+ if (firstValue === undefined && value !== undefined) {
423
+ firstValue = value;
424
+ }
425
+ },
426
+ snapshot() {
427
+ return firstValue;
428
+ },
429
+ };
430
+ }
431
+ if (operation === 'last') {
432
+ let lastValue;
433
+ return {
434
+ add(value) {
435
+ if (value !== undefined) {
436
+ lastValue = value;
437
+ }
438
+ },
439
+ snapshot() {
440
+ return lastValue;
441
+ },
442
+ };
443
+ }
444
+ throw new TypeError(`unsupported aggregate reducer: ${operation}`);
445
+ }
446
+ function createRollingReducerState(operation) {
447
+ const compact = (entries, head) => {
448
+ if (head > 0 && head * 2 >= entries.length) {
449
+ return [entries.slice(head), 0];
450
+ }
451
+ return [entries, head];
452
+ };
453
+ if (operation === 'count') {
454
+ let definedCount = 0;
455
+ return {
456
+ add(_index, value) {
457
+ if (value !== undefined) {
458
+ definedCount += 1;
459
+ }
460
+ },
461
+ remove(_index, value) {
462
+ if (value !== undefined) {
463
+ definedCount -= 1;
464
+ }
465
+ },
466
+ snapshot() {
467
+ return definedCount;
468
+ },
469
+ };
470
+ }
471
+ if (operation === 'sum') {
472
+ let numericSum = 0;
473
+ return {
474
+ add(_index, value) {
475
+ if (typeof value === 'number') {
476
+ numericSum += value;
477
+ }
478
+ },
479
+ remove(_index, value) {
480
+ if (typeof value === 'number') {
481
+ numericSum -= value;
482
+ }
483
+ },
484
+ snapshot() {
485
+ return numericSum;
486
+ },
487
+ };
488
+ }
489
+ if (operation === 'avg') {
490
+ let numericSum = 0;
491
+ let numericCount = 0;
492
+ return {
493
+ add(_index, value) {
494
+ if (typeof value === 'number') {
495
+ numericSum += value;
496
+ numericCount += 1;
497
+ }
498
+ },
499
+ remove(_index, value) {
500
+ if (typeof value === 'number') {
501
+ numericSum -= value;
502
+ numericCount -= 1;
503
+ }
504
+ },
505
+ snapshot() {
506
+ return numericCount === 0 ? undefined : numericSum / numericCount;
507
+ },
508
+ };
509
+ }
510
+ if (operation === 'min' || operation === 'max') {
511
+ let entries = [];
512
+ let head = 0;
513
+ return {
514
+ add(index, value) {
515
+ if (typeof value !== 'number') {
516
+ return;
517
+ }
518
+ while (entries.length > head) {
519
+ const last = entries[entries.length - 1];
520
+ if (operation === 'min' ? last.value <= value : last.value >= value) {
521
+ break;
522
+ }
523
+ entries.pop();
524
+ }
525
+ entries.push({ index, value });
526
+ },
527
+ remove(index, value) {
528
+ if (typeof value !== 'number') {
529
+ return;
530
+ }
531
+ if (entries[head]?.index === index) {
532
+ head += 1;
533
+ [entries, head] = compact(entries, head);
534
+ }
535
+ },
536
+ snapshot() {
537
+ return entries[head]?.value;
538
+ },
539
+ };
540
+ }
541
+ if (operation === 'first' || operation === 'last') {
542
+ let entries = [];
543
+ let head = 0;
544
+ return {
545
+ add(index, value) {
546
+ if (value !== undefined) {
547
+ entries.push({ index, value });
548
+ }
549
+ },
550
+ remove(index, value) {
551
+ if (value === undefined) {
552
+ return;
553
+ }
554
+ if (entries[head]?.index === index) {
555
+ head += 1;
556
+ [entries, head] = compact(entries, head);
557
+ }
558
+ },
559
+ snapshot() {
560
+ return operation === 'first'
561
+ ? entries[head]?.value
562
+ : entries[entries.length - 1]?.value;
563
+ },
564
+ };
565
+ }
566
+ throw new TypeError(`unsupported rolling reducer: ${operation}`);
567
+ }
299
568
  function parseDurationInput(value) {
300
569
  if (typeof value === 'number') {
301
570
  if (!Number.isFinite(value) || value <= 0) {
@@ -441,6 +710,19 @@ export class TimeSeries {
441
710
  this.events = validateAndNormalize(input);
442
711
  Object.freeze(this);
443
712
  }
713
+ /**
714
+ * Builds a series from event data that has already been validated and ordered by the caller.
715
+ *
716
+ * This is intentionally private and only used by transforms that preserve the existing event
717
+ * order and normalized key invariants.
718
+ */
719
+ static #fromTrustedEvents(name, schema, events) {
720
+ const series = Object.create(TimeSeries.prototype);
721
+ series.name = name;
722
+ series.schema = Object.freeze(schema.slice());
723
+ series.events = Object.freeze(events.slice());
724
+ return Object.freeze(series);
725
+ }
444
726
  /** Example: `series.firstColumnKind`. Returns the first-column kind from the series schema. */
445
727
  get firstColumnKind() {
446
728
  return this.schema[0].kind;
@@ -478,10 +760,14 @@ export class TimeSeries {
478
760
  { name: 'time', kind: 'time' },
479
761
  ...this.schema.slice(1),
480
762
  ]);
763
+ const resultEvents = this.events.map((event) => event.asTime(options));
764
+ if ((options.at ?? 'begin') === 'begin') {
765
+ return TimeSeries.#fromTrustedEvents(this.name, schema, resultEvents);
766
+ }
481
767
  return new TimeSeries({
482
768
  name: this.name,
483
769
  schema,
484
- rows: toRows(schema, this.events.map((event) => event.asTime(options))),
770
+ rows: toRows(schema, resultEvents),
485
771
  });
486
772
  }
487
773
  /** Example: `series.asTimeRange()`. Converts the series key type to `"timeRange"` while preserving each event extent. */
@@ -490,11 +776,8 @@ export class TimeSeries {
490
776
  { name: 'timeRange', kind: 'timeRange' },
491
777
  ...this.schema.slice(1),
492
778
  ]);
493
- return new TimeSeries({
494
- name: this.name,
495
- schema,
496
- rows: toRows(schema, this.events.map((event) => event.asTimeRange())),
497
- });
779
+ const resultEvents = this.events.map((event) => event.asTimeRange());
780
+ return TimeSeries.#fromTrustedEvents(this.name, schema, resultEvents);
498
781
  }
499
782
  asInterval(value) {
500
783
  const schema = Object.freeze([
@@ -506,11 +789,7 @@ export class TimeSeries {
506
789
  ? event.asInterval(() => value(event, index))
507
790
  : event.asInterval(value);
508
791
  });
509
- return new TimeSeries({
510
- name: this.name,
511
- schema,
512
- rows: toRows(schema, nextEvents),
513
- });
792
+ return TimeSeries.#fromTrustedEvents(this.name, schema, nextEvents);
514
793
  }
515
794
  join(other, options = {}) {
516
795
  const [left, right] = prepareSeriesForJoin([this, other], options);
@@ -566,11 +845,7 @@ export class TimeSeries {
566
845
  rightIndex += 1;
567
846
  }
568
847
  }
569
- return new TimeSeries({
570
- name: left.name,
571
- schema: resultSchema,
572
- rows: toRows(resultSchema, joinedEvents),
573
- });
848
+ return TimeSeries.#fromTrustedEvents(left.name, resultSchema, joinedEvents);
574
849
  }
575
850
  /**
576
851
  * Example: `series.align(Sequence.every("1m"))`.
@@ -613,18 +888,35 @@ export class TimeSeries {
613
888
  }
614
889
  const intervals = toBoundedSequence(sequence, range, sample).intervals();
615
890
  const valueColumns = this.schema.slice(1);
616
- const alignedRows = intervals.map((interval) => {
617
- const t = sampleTime(interval, sample);
618
- const data = method === 'linear'
619
- ? this.#alignLinearAt(t, valueColumns)
620
- : this.#alignHoldAt(t);
621
- return Object.freeze([
622
- interval,
623
- ...resultSchema
624
- .slice(1)
625
- .map((column) => data[column.name]),
626
- ]);
627
- });
891
+ const resultColumns = resultSchema.slice(1);
892
+ const alignedRows = method === 'linear'
893
+ ? (() => {
894
+ const cursor = { index: 0 };
895
+ const rows = new Array(intervals.length);
896
+ for (let i = 0; i < intervals.length; i += 1) {
897
+ const interval = intervals[i];
898
+ const t = sampleTime(interval, sample);
899
+ const data = this.#alignLinearAt(t, valueColumns, cursor);
900
+ const row = new Array(resultColumns.length + 1);
901
+ row[0] = interval;
902
+ for (let j = 0; j < resultColumns.length; j += 1) {
903
+ const column = resultColumns[j];
904
+ row[j + 1] = data[column.name];
905
+ }
906
+ rows[i] = Object.freeze(row);
907
+ }
908
+ return rows;
909
+ })()
910
+ : intervals.map((interval) => {
911
+ const t = sampleTime(interval, sample);
912
+ const data = this.#alignHoldAt(t);
913
+ return Object.freeze([
914
+ interval,
915
+ ...resultSchema
916
+ .slice(1)
917
+ .map((column) => data[column.name]),
918
+ ]);
919
+ });
628
920
  return new TimeSeries({
629
921
  name: this.name,
630
922
  schema: resultSchema,
@@ -693,9 +985,44 @@ export class TimeSeries {
693
985
  });
694
986
  }
695
987
  const buckets = toBoundedSequence(sequence, range, 'begin').intervals();
988
+ const resultColumns = resultSchema.slice(1);
989
+ if (isTimeKeyed(this)) {
990
+ const columns = resultColumns.map((column) => ({
991
+ name: column.name,
992
+ operation: mapping[column.name],
993
+ }));
994
+ let eventIndex = 0;
995
+ const resultRows = buckets.map((bucket) => {
996
+ const states = columns.map((column) => createAggregateBucketState(column.operation));
997
+ while (eventIndex < this.events.length &&
998
+ this.events[eventIndex].begin() < bucket.begin()) {
999
+ eventIndex += 1;
1000
+ }
1001
+ let scanIndex = eventIndex;
1002
+ while (scanIndex < this.events.length &&
1003
+ this.events[scanIndex].begin() < bucket.end()) {
1004
+ const data = this.events[scanIndex].data();
1005
+ for (let index = 0; index < columns.length; index += 1) {
1006
+ const column = columns[index];
1007
+ states[index].add(data[column.name]);
1008
+ }
1009
+ scanIndex += 1;
1010
+ }
1011
+ eventIndex = scanIndex;
1012
+ return Object.freeze([
1013
+ bucket,
1014
+ ...states.map((state) => state.snapshot()),
1015
+ ]);
1016
+ });
1017
+ return new TimeSeries({
1018
+ name: this.name,
1019
+ schema: resultSchema,
1020
+ rows: resultRows,
1021
+ });
1022
+ }
696
1023
  const resultRows = buckets.map((bucket) => {
697
1024
  const contributors = this.events.filter((event) => bucketOverlapsHalfOpen(bucket, event.key()));
698
- const aggregated = resultSchema.slice(1).map((column) => {
1025
+ const aggregated = resultColumns.map((column) => {
699
1026
  const operation = mapping[column.name];
700
1027
  const values = contributors.map((event) => {
701
1028
  const data = event.data();
@@ -791,23 +1118,122 @@ export class TimeSeries {
791
1118
  rows: resultRows,
792
1119
  });
793
1120
  }
1121
+ const resultColumns = buildResultColumns();
794
1122
  const resultSchema = Object.freeze([
795
1123
  this.schema[0],
796
- ...buildResultColumns(),
1124
+ ...resultColumns,
797
1125
  ]);
798
- const resultRows = this.events.map((event) => {
799
- const anchor = event.begin();
800
- const contributors = this.events.filter((candidate) => anchorInWindow(candidate.begin(), anchor));
801
- const aggregated = resultSchema.slice(1).map((column) => {
802
- const operation = mapping[column.name];
803
- const values = contributors.map((candidate) => {
804
- const data = candidate.data();
805
- return data[column.name];
806
- });
807
- return aggregateValues(operation, values);
808
- });
809
- return Object.freeze([event.key(), ...aggregated]);
810
- });
1126
+ const reducerStates = resultColumns.map((column) => createRollingReducerState(mapping[column.name]));
1127
+ const beginTimes = this.events.map((event) => event.begin());
1128
+ const resultRows = new Array(this.events.length);
1129
+ let windowStart = 0;
1130
+ let windowEnd = 0;
1131
+ const addEvent = (index) => {
1132
+ const event = this.events[index];
1133
+ const data = event.data();
1134
+ for (let reducerIndex = 0; reducerIndex < reducerStates.length; reducerIndex++) {
1135
+ const column = resultColumns[reducerIndex];
1136
+ reducerStates[reducerIndex].add(index, data[column.name]);
1137
+ }
1138
+ };
1139
+ const removeEvent = (index) => {
1140
+ const event = this.events[index];
1141
+ const data = event.data();
1142
+ for (let reducerIndex = 0; reducerIndex < reducerStates.length; reducerIndex++) {
1143
+ const column = resultColumns[reducerIndex];
1144
+ reducerStates[reducerIndex].remove(index, data[column.name]);
1145
+ }
1146
+ };
1147
+ if (alignment === 'trailing') {
1148
+ for (let groupStart = 0; groupStart < this.events.length;) {
1149
+ const anchor = beginTimes[groupStart];
1150
+ let groupEnd = groupStart + 1;
1151
+ while (groupEnd < this.events.length &&
1152
+ beginTimes[groupEnd] === anchor) {
1153
+ groupEnd += 1;
1154
+ }
1155
+ while (windowEnd < this.events.length &&
1156
+ beginTimes[windowEnd] <= anchor) {
1157
+ addEvent(windowEnd);
1158
+ windowEnd += 1;
1159
+ }
1160
+ const lowerBound = anchor - windowMs;
1161
+ while (windowStart < windowEnd &&
1162
+ beginTimes[windowStart] <= lowerBound) {
1163
+ removeEvent(windowStart);
1164
+ windowStart += 1;
1165
+ }
1166
+ const aggregated = reducerStates.map((state) => state.snapshot());
1167
+ for (let index = groupStart; index < groupEnd; index++) {
1168
+ resultRows[index] = Object.freeze([
1169
+ this.events[index].key(),
1170
+ ...aggregated,
1171
+ ]);
1172
+ }
1173
+ groupStart = groupEnd;
1174
+ }
1175
+ }
1176
+ else if (alignment === 'leading') {
1177
+ for (let groupStart = 0; groupStart < this.events.length;) {
1178
+ const anchor = beginTimes[groupStart];
1179
+ let groupEnd = groupStart + 1;
1180
+ while (groupEnd < this.events.length &&
1181
+ beginTimes[groupEnd] === anchor) {
1182
+ groupEnd += 1;
1183
+ }
1184
+ const lowerBound = anchor;
1185
+ while (windowStart < windowEnd &&
1186
+ beginTimes[windowStart] < lowerBound) {
1187
+ removeEvent(windowStart);
1188
+ windowStart += 1;
1189
+ }
1190
+ const upperBound = anchor + windowMs;
1191
+ while (windowEnd < this.events.length &&
1192
+ beginTimes[windowEnd] < upperBound) {
1193
+ addEvent(windowEnd);
1194
+ windowEnd += 1;
1195
+ }
1196
+ const aggregated = reducerStates.map((state) => state.snapshot());
1197
+ for (let index = groupStart; index < groupEnd; index++) {
1198
+ resultRows[index] = Object.freeze([
1199
+ this.events[index].key(),
1200
+ ...aggregated,
1201
+ ]);
1202
+ }
1203
+ groupStart = groupEnd;
1204
+ }
1205
+ }
1206
+ else {
1207
+ const halfWindow = windowMs / 2;
1208
+ for (let groupStart = 0; groupStart < this.events.length;) {
1209
+ const anchor = beginTimes[groupStart];
1210
+ let groupEnd = groupStart + 1;
1211
+ while (groupEnd < this.events.length &&
1212
+ beginTimes[groupEnd] === anchor) {
1213
+ groupEnd += 1;
1214
+ }
1215
+ const lowerBound = anchor - halfWindow;
1216
+ while (windowStart < windowEnd &&
1217
+ beginTimes[windowStart] < lowerBound) {
1218
+ removeEvent(windowStart);
1219
+ windowStart += 1;
1220
+ }
1221
+ const upperBound = anchor + halfWindow;
1222
+ while (windowEnd < this.events.length &&
1223
+ beginTimes[windowEnd] < upperBound) {
1224
+ addEvent(windowEnd);
1225
+ windowEnd += 1;
1226
+ }
1227
+ const aggregated = reducerStates.map((state) => state.snapshot());
1228
+ for (let index = groupStart; index < groupEnd; index++) {
1229
+ resultRows[index] = Object.freeze([
1230
+ this.events[index].key(),
1231
+ ...aggregated,
1232
+ ]);
1233
+ }
1234
+ groupStart = groupEnd;
1235
+ }
1236
+ }
811
1237
  return new TimeSeries({
812
1238
  name: this.name,
813
1239
  schema: resultSchema,
@@ -890,8 +1316,17 @@ export class TimeSeries {
890
1316
  span > 1) {
891
1317
  throw new TypeError('loess smoothing requires span to be a finite number in the range (0, 1]');
892
1318
  }
1319
+ const loessAnchors = [];
1320
+ const loessValues = [];
1321
+ for (let index = 0; index < anchors.length; index++) {
1322
+ const value = sourceValues[index];
1323
+ if (typeof value === 'number') {
1324
+ loessAnchors.push(anchors[index]);
1325
+ loessValues.push(value);
1326
+ }
1327
+ }
893
1328
  const resultRows = this.events.map((event, index) => {
894
- const smoothed = loessAt(anchors[index], anchors, sourceValues, span);
1329
+ const smoothed = loessAt(anchors[index], loessAnchors, loessValues, span);
895
1330
  const nextEvent = output === undefined
896
1331
  ? event.set(column, smoothed)
897
1332
  : event.merge({ [output]: smoothed });
@@ -914,24 +1349,78 @@ export class TimeSeries {
914
1349
  const window = options.window;
915
1350
  const windowMs = parseDurationInput(window);
916
1351
  const alignment = options.alignment ?? 'trailing';
917
- const anchorInWindow = (candidate, anchor) => {
918
- if (alignment === 'trailing') {
919
- return candidate > anchor - windowMs && candidate <= anchor;
1352
+ const resultValues = new Array(this.events.length);
1353
+ let windowStart = 0;
1354
+ let windowEnd = 0;
1355
+ let numericSum = 0;
1356
+ let numericCount = 0;
1357
+ const addEvent = (index) => {
1358
+ const value = sourceValues[index];
1359
+ if (typeof value === 'number') {
1360
+ numericSum += value;
1361
+ numericCount += 1;
920
1362
  }
921
- if (alignment === 'leading') {
922
- return candidate >= anchor && candidate < anchor + windowMs;
1363
+ };
1364
+ const removeEvent = (index) => {
1365
+ const value = sourceValues[index];
1366
+ if (typeof value === 'number') {
1367
+ numericSum -= value;
1368
+ numericCount -= 1;
923
1369
  }
924
- const halfWindow = windowMs / 2;
925
- return (candidate >= anchor - halfWindow && candidate < anchor + halfWindow);
926
1370
  };
1371
+ const snapshot = () => numericCount === 0 ? undefined : numericSum / numericCount;
1372
+ for (let groupStart = 0; groupStart < this.events.length;) {
1373
+ const anchor = anchors[groupStart];
1374
+ let groupEnd = groupStart + 1;
1375
+ while (groupEnd < this.events.length && anchors[groupEnd] === anchor) {
1376
+ groupEnd += 1;
1377
+ }
1378
+ if (alignment === 'trailing') {
1379
+ while (windowEnd < this.events.length &&
1380
+ anchors[windowEnd] <= anchor) {
1381
+ addEvent(windowEnd);
1382
+ windowEnd += 1;
1383
+ }
1384
+ const lowerBound = anchor - windowMs;
1385
+ while (windowStart < windowEnd && anchors[windowStart] <= lowerBound) {
1386
+ removeEvent(windowStart);
1387
+ windowStart += 1;
1388
+ }
1389
+ }
1390
+ else if (alignment === 'leading') {
1391
+ while (windowStart < windowEnd && anchors[windowStart] < anchor) {
1392
+ removeEvent(windowStart);
1393
+ windowStart += 1;
1394
+ }
1395
+ const upperBound = anchor + windowMs;
1396
+ while (windowEnd < this.events.length &&
1397
+ anchors[windowEnd] < upperBound) {
1398
+ addEvent(windowEnd);
1399
+ windowEnd += 1;
1400
+ }
1401
+ }
1402
+ else {
1403
+ const halfWindow = windowMs / 2;
1404
+ while (windowStart < windowEnd &&
1405
+ anchors[windowStart] < anchor - halfWindow) {
1406
+ removeEvent(windowStart);
1407
+ windowStart += 1;
1408
+ }
1409
+ const upperBound = anchor + halfWindow;
1410
+ while (windowEnd < this.events.length &&
1411
+ anchors[windowEnd] < upperBound) {
1412
+ addEvent(windowEnd);
1413
+ windowEnd += 1;
1414
+ }
1415
+ }
1416
+ const smoothed = snapshot();
1417
+ for (let index = groupStart; index < groupEnd; index++) {
1418
+ resultValues[index] = smoothed;
1419
+ }
1420
+ groupStart = groupEnd;
1421
+ }
927
1422
  const resultRows = this.events.map((event, index) => {
928
- const anchor = anchors[index];
929
- const values = sourceValues
930
- .filter((_, candidateIndex) => anchorInWindow(anchors[candidateIndex], anchor))
931
- .flatMap((value) => (value === undefined ? [] : [value]));
932
- const smoothed = values.length === 0
933
- ? undefined
934
- : values.reduce((sum, value) => sum + value, 0) / values.length;
1423
+ const smoothed = resultValues[index];
935
1424
  const nextEvent = output === undefined
936
1425
  ? event.set(column, smoothed)
937
1426
  : event.merge({ [output]: smoothed });
@@ -950,19 +1439,11 @@ export class TimeSeries {
950
1439
  }
951
1440
  /** Example: `series.slice(0, 10)`. Returns a positional half-open slice of the series. */
952
1441
  slice(beginIndex, endIndex) {
953
- return new TimeSeries({
954
- name: this.name,
955
- schema: this.schema,
956
- rows: toRows(this.schema, this.events.slice(beginIndex, endIndex)),
957
- });
1442
+ return TimeSeries.#fromTrustedEvents(this.name, this.schema, this.events.slice(beginIndex, endIndex));
958
1443
  }
959
1444
  /** Example: `series.filter(event => event.get("active"))`. Returns a new series containing only events that match the predicate. */
960
1445
  filter(predicate) {
961
- return new TimeSeries({
962
- name: this.name,
963
- schema: this.schema,
964
- rows: toRows(this.schema, this.events.filter((event, index) => predicate(event, index))),
965
- });
1446
+ return TimeSeries.#fromTrustedEvents(this.name, this.schema, this.events.filter((event, index) => predicate(event, index)));
966
1447
  }
967
1448
  /** Example: `series.find(event => event.get("value") > 0)`. Returns the first event that matches the predicate, if any. */
968
1449
  find(predicate) {
@@ -979,7 +1460,9 @@ export class TimeSeries {
979
1460
  /** Example: `series.includesKey(new Time(Date.now()))`. Returns `true` when the series contains an event with an exactly matching key. */
980
1461
  includesKey(key) {
981
1462
  const normalizedKey = toKey(key);
982
- return this.events.some((event) => event.key().equals(normalizedKey));
1463
+ const index = this.bisect(normalizedKey);
1464
+ return (index < this.events.length &&
1465
+ this.events[index].key().equals(normalizedKey));
983
1466
  }
984
1467
  /** Example: `series.bisect(new Time(Date.now()))`. Returns the insertion index for the supplied key in the ordered event sequence. */
985
1468
  bisect(key) {
@@ -1081,11 +1564,7 @@ export class TimeSeries {
1081
1564
  const trimmedEvents = this.events
1082
1565
  .map((event) => event.trim(range))
1083
1566
  .filter((event) => event !== undefined);
1084
- return new TimeSeries({
1085
- name: this.name,
1086
- schema: this.schema,
1087
- rows: toRows(this.schema, trimmedEvents),
1088
- });
1567
+ return TimeSeries.#fromTrustedEvents(this.name, this.schema, trimmedEvents);
1089
1568
  }
1090
1569
  /** Example: `series.before(Date.now())`. Returns the events ending strictly before the supplied temporal boundary. */
1091
1570
  before(boundary) {
@@ -1117,11 +1596,7 @@ export class TimeSeries {
1117
1596
  const selectedEvent = event.select(...keys);
1118
1597
  return selectedEvent;
1119
1598
  });
1120
- return new TimeSeries({
1121
- name: this.name,
1122
- schema: resultSchema,
1123
- rows: toRows(resultSchema, resultEvents),
1124
- });
1599
+ return TimeSeries.#fromTrustedEvents(this.name, resultSchema, resultEvents);
1125
1600
  }
1126
1601
  /** Example: `series.rename({ cpu: "usage" })`. Returns a new series with payload field names renamed according to the supplied mapping. */
1127
1602
  rename(mapping) {
@@ -1139,11 +1614,7 @@ export class TimeSeries {
1139
1614
  const renamedEvent = event.rename(mapping);
1140
1615
  return renamedEvent;
1141
1616
  });
1142
- return new TimeSeries({
1143
- name: this.name,
1144
- schema: resultSchema,
1145
- rows: toRows(resultSchema, resultEvents),
1146
- });
1617
+ return TimeSeries.#fromTrustedEvents(this.name, resultSchema, resultEvents);
1147
1618
  }
1148
1619
  collapse(keys, output, reducer, options) {
1149
1620
  const nextEvents = this.events.map((event) => {
@@ -1171,11 +1642,7 @@ export class TimeSeries {
1171
1642
  : 'string',
1172
1643
  },
1173
1644
  ]);
1174
- return new TimeSeries({
1175
- name: this.name,
1176
- schema: resultSchema,
1177
- rows: toRows(resultSchema, nextEvents),
1178
- });
1645
+ return TimeSeries.#fromTrustedEvents(this.name, resultSchema, nextEvents);
1179
1646
  }
1180
1647
  /** Example: `series.length`. Returns the number of events in the series. */
1181
1648
  get length() {
@@ -1185,15 +1652,26 @@ export class TimeSeries {
1185
1652
  const event = this.atOrBefore(new Time(t));
1186
1653
  return (event?.data() ?? {});
1187
1654
  }
1188
- #alignLinearAt(t, valueColumns) {
1189
- const exact = this.find((event) => event.begin() === t);
1190
- if (exact) {
1191
- return exact.data();
1655
+ #alignLinearAt(t, valueColumns, cursor) {
1656
+ const events = this.events;
1657
+ const hasCursor = cursor !== undefined;
1658
+ let index = hasCursor ? cursor.index : this.bisect(t);
1659
+ if (hasCursor) {
1660
+ while (index < events.length && events[index].begin() < t) {
1661
+ index += 1;
1662
+ }
1663
+ cursor.index = index;
1664
+ }
1665
+ if (index < events.length && events[index].begin() === t) {
1666
+ return events[index].data();
1667
+ }
1668
+ if (index === 0) {
1669
+ return {};
1192
1670
  }
1193
- const previous = this.atOrBefore(new Time(t));
1194
- const next = this.atOrAfter(new Time(t));
1195
- if (!previous || !next || previous.begin() === next.begin()) {
1196
- return (previous?.data() ?? {});
1671
+ const previous = events[index - 1];
1672
+ const next = events[index];
1673
+ if (!next || previous.begin() === next.begin()) {
1674
+ return previous.data();
1197
1675
  }
1198
1676
  const ratio = (t - previous.begin()) / (next.begin() - previous.begin());
1199
1677
  const result = {};
@@ -1 +1 @@
1
- {"version":3,"file":"TimeSeries.js","sourceRoot":"","sources":["../src/TimeSeries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimeSeries.js","sourceRoot":"","sources":["../src/TimeSeries.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pond-ts",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "TypeScript-first time series primitives",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,8 +24,8 @@
24
24
  ],
25
25
  "scripts": {
26
26
  "build": "tsc -p tsconfig.json",
27
- "format": "prettier --write .",
28
- "format:check": "prettier --check .",
27
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"test-d/**/*.ts\"",
28
+ "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\" \"test-d/**/*.ts\"",
29
29
  "prepack": "npm run build",
30
30
  "test": "npm run test:type && npm run test:runtime",
31
31
  "test:runtime": "vitest run",