pond-ts 0.12.0 → 0.13.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/CHANGELOG.md +167 -1
- package/dist/LiveAggregation.d.ts +5 -3
- package/dist/LiveAggregation.d.ts.map +1 -1
- package/dist/LiveAggregation.js +23 -13
- package/dist/LiveAggregation.js.map +1 -1
- package/dist/LivePartitionedSeries.d.ts +78 -8
- package/dist/LivePartitionedSeries.d.ts.map +1 -1
- package/dist/LivePartitionedSeries.js +150 -56
- package/dist/LivePartitionedSeries.js.map +1 -1
- package/dist/LivePartitionedSyncRolling.d.ts +22 -2
- package/dist/LivePartitionedSyncRolling.d.ts.map +1 -1
- package/dist/LivePartitionedSyncRolling.js +61 -32
- package/dist/LivePartitionedSyncRolling.js.map +1 -1
- package/dist/LiveRollingAggregation.d.ts +5 -3
- package/dist/LiveRollingAggregation.d.ts.map +1 -1
- package/dist/LiveRollingAggregation.js +35 -18
- package/dist/LiveRollingAggregation.js.map +1 -1
- package/dist/LiveSeries.d.ts +4 -1
- package/dist/LiveSeries.d.ts.map +1 -1
- package/dist/LiveSeries.js.map +1 -1
- package/dist/LiveView.d.ts +4 -1
- package/dist/LiveView.d.ts.map +1 -1
- package/dist/LiveView.js.map +1 -1
- package/dist/TimeSeries.d.ts.map +1 -1
- package/dist/TimeSeries.js +6 -54
- package/dist/TimeSeries.js.map +1 -1
- package/dist/aggregate-columns.d.ts +42 -0
- package/dist/aggregate-columns.d.ts.map +1 -0
- package/dist/aggregate-columns.js +76 -0
- package/dist/aggregate-columns.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,10 +7,176 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
7
7
|
file covers both packages. Pre-1.0: minor bumps may include new features and
|
|
8
8
|
type-level changes; patch bumps are strictly additive.
|
|
9
9
|
|
|
10
|
-
[Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.
|
|
10
|
+
[Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.13.0...HEAD
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [0.13.0] — 2026-05-01
|
|
15
|
+
|
|
16
|
+
The "AggregateOutputMap on live" release. Closes the feature-parity
|
|
17
|
+
gap between batch and live aggregation: the `{ alias: { from, using } }`
|
|
18
|
+
mapping shape that batch `TimeSeries.rolling`/`aggregate` already
|
|
19
|
+
accepted now works on `LiveSeries.rolling`, `LiveSeries.aggregate`,
|
|
20
|
+
and the synchronised partitioned form. Multiple stats from one
|
|
21
|
+
source column in a single rolling deque — no more "one rolling per
|
|
22
|
+
percentile" workaround.
|
|
23
|
+
|
|
24
|
+
The shared runtime helper (`normalizeAggregateColumns`) was already
|
|
25
|
+
doing the work for batch; this release extracts it to
|
|
26
|
+
`aggregate-columns.ts` and threads the type-level overloads through
|
|
27
|
+
the live surface.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- **`AggregateOutputMap` on `LiveSeries.rolling` and
|
|
32
|
+
`LiveSeries.aggregate`.** Compose multiple built-in reducers from
|
|
33
|
+
one source column in a single pass:
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
const band = live.rolling('1m', {
|
|
37
|
+
mean: { from: 'cpu', using: 'avg' },
|
|
38
|
+
sd: { from: 'cpu', using: 'stdev' },
|
|
39
|
+
});
|
|
40
|
+
band.value(); // { mean, sd } — single deque, one walk
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Threaded through `LiveView.rolling`/`aggregate`,
|
|
44
|
+
`LiveAggregation.rolling`, `LiveRollingAggregation.aggregate`,
|
|
45
|
+
`LivePartitionedSeries.rolling`, and `LivePartitionedView.rolling`
|
|
46
|
+
— so chained pipelines (`live.filter(...).rolling(...)`,
|
|
47
|
+
`live.partitionBy(c).fill(...).rolling(..., { trigger: ... })`)
|
|
48
|
+
accept either shape.
|
|
49
|
+
|
|
50
|
+
- **Synchronised partitioned rolling with `AggregateOutputMap`.**
|
|
51
|
+
`partitionBy(col).rolling(window, mapping, { trigger: Trigger.clock(seq) })`
|
|
52
|
+
now accepts the alias form. Output schema becomes
|
|
53
|
+
`[time, <partitionColumn>, ...aliasColumns]`. The collision check
|
|
54
|
+
rejects when an alias output collides with the partition column
|
|
55
|
+
name (compare against the alias, not the source column).
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
|
|
59
|
+
- **Better error message when a custom-function reducer is passed to
|
|
60
|
+
live aggregation.** `LiveAggregation` already failed at construction
|
|
61
|
+
via `resolveReducer(reducer)` (with a generic `unsupported aggregate
|
|
62
|
+
reducer` message); now the eager built-in-name check runs first and
|
|
63
|
+
emits a targeted error pointing at the `AggregateOutputMap` alias
|
|
64
|
+
workaround. Same eager behavior on `LivePartitionedSyncRolling`,
|
|
65
|
+
which previously failed lazily when the first partition spawned —
|
|
66
|
+
now fails at construction. Aligns with `LiveRollingAggregation`'s
|
|
67
|
+
long-standing eager check.
|
|
68
|
+
|
|
69
|
+
- **Shared `normalizeAggregateColumns` helper.** Extracted from
|
|
70
|
+
`TimeSeries.ts` into `aggregate-columns.ts` and used by all three
|
|
71
|
+
live accumulators (`LiveRollingAggregation`, `LiveAggregation`,
|
|
72
|
+
`LivePartitionedSyncRolling`). Single source of truth for column
|
|
73
|
+
normalisation; identical error messages across batch and live
|
|
74
|
+
(`unknown source column`).
|
|
75
|
+
|
|
76
|
+
### Constraints
|
|
77
|
+
|
|
78
|
+
- **Custom-function reducers remain batch-only.** Live rolling and
|
|
79
|
+
live aggregation still require built-in reducer names (`'avg'`,
|
|
80
|
+
`'p95'`, etc.). Custom `(values) => ...` functions don't have the
|
|
81
|
+
incremental add/remove machinery the live path needs and are
|
|
82
|
+
rejected at construction with a clear error pointing at the
|
|
83
|
+
`AggregateOutputMap` workaround. This is the established
|
|
84
|
+
recommendation: alias multiple built-ins to compose stats from
|
|
85
|
+
one source column.
|
|
86
|
+
|
|
87
|
+
### Fixed
|
|
88
|
+
|
|
89
|
+
- **`partitionBy(...).rolling(..., options)` now accepts `options` as
|
|
90
|
+
a variable typed `LiveRollingOptions`, not just inline literals.**
|
|
91
|
+
Pre-fix, the four narrowed overloads on
|
|
92
|
+
`LivePartitionedSeries.rolling` and `LivePartitionedView.rolling`
|
|
93
|
+
required TS to see the `trigger` field's discriminator at the call
|
|
94
|
+
site — so a caller writing
|
|
95
|
+
`const opts: LiveRollingOptions = { trigger: Trigger.event() };
|
|
96
|
+
partitioned.rolling(window, mapping, opts);` got `TS2769 No
|
|
97
|
+
overload matches this call`. Pre-existing hole on the partitioned
|
|
98
|
+
surface; surfaced by the v0.13.0 Codex adversarial pass. Closed by
|
|
99
|
+
adding catch-all overloads that accept the broader
|
|
100
|
+
`LiveRollingOptions` and return the union of both trigger
|
|
101
|
+
branches; the four narrowed overloads above still match inline
|
|
102
|
+
literals first, so callers keep the precise return type when they
|
|
103
|
+
pass the trigger inline. Pinned with `test-d/types.test-d.ts`
|
|
104
|
+
coverage using both inline-literal and variable forms.
|
|
105
|
+
|
|
106
|
+
### Tests
|
|
107
|
+
|
|
108
|
+
- 16 new tests in `test/LiveAggregateOutputMap.test.ts` covering:
|
|
109
|
+
flat live rolling/aggregate with the alias form, chained-view
|
|
110
|
+
rolling/aggregate, `LiveAggregation.rolling` and
|
|
111
|
+
`LiveRollingAggregation.aggregate` chainable accumulators,
|
|
112
|
+
per-partition rolling, synchronised partitioned rolling with
|
|
113
|
+
alias outputs, output-vs-source column-collision rejection on
|
|
114
|
+
the synced form, and explicit kind override.
|
|
115
|
+
- 2 existing tests updated (`LiveAggregation` and
|
|
116
|
+
`LiveRollingAggregation` "unknown column" → "unknown source column"
|
|
117
|
+
to match the shared helper's error string).
|
|
118
|
+
- Test count: 1060 (was 1044).
|
|
119
|
+
|
|
120
|
+
### Docs
|
|
121
|
+
|
|
122
|
+
- `transforms/rolling.mdx`: live section now documents the
|
|
123
|
+
`AggregateOutputMap` shape with a band-chart example, plus a
|
|
124
|
+
callout that custom functions remain batch-only.
|
|
125
|
+
- `recipes/telemetry-reporting.mdx`: "Want multiple percentiles?"
|
|
126
|
+
section rewritten — the workaround note is gone, replaced with
|
|
127
|
+
the single-pass `{ p50, p95, p99 }` pattern.
|
|
128
|
+
|
|
129
|
+
[0.13.0]: https://github.com/pjm17971/pond-ts/compare/v0.12.1...v0.13.0
|
|
130
|
+
|
|
131
|
+
## [0.12.1] — 2026-05-01
|
|
132
|
+
|
|
133
|
+
Strictly additive over v0.12.0. Closes the chained-view restriction
|
|
134
|
+
on synchronised partitioned rolling. The trigger option now applies
|
|
135
|
+
consistently across the entire `rolling()` surface — chained sugar
|
|
136
|
+
methods on the partitioned surface (`fill`, `diff`, `rate`,
|
|
137
|
+
`pctChange`, `cumulative`) no longer break it.
|
|
138
|
+
|
|
139
|
+
### Changed
|
|
140
|
+
|
|
141
|
+
- **`partitionBy(col).<chained>().rolling(window, m, { trigger: Trigger.clock(seq) })` now works.**
|
|
142
|
+
Previously this threw a clear-but-restrictive error. The chain
|
|
143
|
+
factory runs per partition; the sync rolling subscribes to each
|
|
144
|
+
chain output instead of the raw partition events. Output schema is
|
|
145
|
+
unchanged (`[time, <partitionColumn>, ...mappingColumns]`); the
|
|
146
|
+
partition tag is set from the routing key, so chains that drop the
|
|
147
|
+
partition column still emit correctly.
|
|
148
|
+
|
|
149
|
+
Motivating example — per-host gap-filling before synchronised
|
|
150
|
+
ticks:
|
|
151
|
+
|
|
152
|
+
```ts
|
|
153
|
+
const ticks = live
|
|
154
|
+
.partitionBy('host')
|
|
155
|
+
.fill({ cpu: 'hold' })
|
|
156
|
+
.rolling(
|
|
157
|
+
'1m',
|
|
158
|
+
{ cpu: 'avg' },
|
|
159
|
+
{ trigger: Trigger.clock(Sequence.every('200ms')) },
|
|
160
|
+
);
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Coherence-of-feature fix: the trigger concept now applies wherever
|
|
164
|
+
`rolling()` appears in the partitioned chain, not just in the
|
|
165
|
+
one-step case. Captured in the RFC's post-implementation notes
|
|
166
|
+
alongside the deferred-and-now-shipped section.
|
|
167
|
+
|
|
168
|
+
### Tests
|
|
169
|
+
|
|
170
|
+
- 4 new tests in `test/Triggers.test.ts` covering chained-view sync
|
|
171
|
+
rolling: `fill().rolling(.., trigger)`, output schema, cross-
|
|
172
|
+
partition synchronisation through the chain, dispose semantics
|
|
173
|
+
through the chain, and replay-on-construction with the chain factory.
|
|
174
|
+
- 1 test removed (the throw-on-chained-view assertion that no longer
|
|
175
|
+
applies).
|
|
176
|
+
- Test count: 34 (was 30). Total core tests: 1043 (was 1039).
|
|
177
|
+
|
|
178
|
+
[0.12.1]: https://github.com/pjm17971/pond-ts/compare/v0.12.0...v0.12.1
|
|
179
|
+
|
|
14
180
|
## [0.12.0] — 2026-05-01
|
|
15
181
|
|
|
16
182
|
The "triggers" release. Major redesign of how live accumulators
|
|
@@ -4,7 +4,8 @@ import { LiveView, type LiveFillMapping, type LiveFillStrategy } from './LiveVie
|
|
|
4
4
|
import { LiveRollingAggregation, type LiveRollingOptions, type RollingWindow } from './LiveRollingAggregation.js';
|
|
5
5
|
import { TimeSeries } from './TimeSeries.js';
|
|
6
6
|
import type { Sequence } from './Sequence.js';
|
|
7
|
-
import type { AggregateMap, DiffSchema, EventDataForSchema, EventForSchema, LiveSource, NumericColumnNameForSchema, ColumnValue, SelectSchema, SeriesSchema } from './types.js';
|
|
7
|
+
import type { AggregateMap, AggregateOutputMap, DiffSchema, EventDataForSchema, EventForSchema, LiveSource, NumericColumnNameForSchema, ColumnValue, RollingSchema, SelectSchema, SeriesSchema } from './types.js';
|
|
8
|
+
import type { RollingOutputMapSchema } from './types-aggregate.js';
|
|
8
9
|
import type { DurationInput } from './utils/duration.js';
|
|
9
10
|
type ClosedEvent = Event<Interval, Record<string, ColumnValue | undefined>>;
|
|
10
11
|
type BucketListener = (event: ClosedEvent) => void;
|
|
@@ -17,7 +18,7 @@ export declare class LiveAggregation<S extends SeriesSchema, Out extends SeriesS
|
|
|
17
18
|
#private;
|
|
18
19
|
readonly name: string;
|
|
19
20
|
readonly schema: Out;
|
|
20
|
-
constructor(source: LiveSource<S>, sequence: Sequence, mapping: AggregateMap<S>, options?: LiveAggregationOptions);
|
|
21
|
+
constructor(source: LiveSource<S>, sequence: Sequence, mapping: AggregateMap<S> | AggregateOutputMap<S>, options?: LiveAggregationOptions);
|
|
21
22
|
get length(): number;
|
|
22
23
|
get closedCount(): number;
|
|
23
24
|
get hasOpenBucket(): boolean;
|
|
@@ -47,7 +48,8 @@ export declare class LiveAggregation<S extends SeriesSchema, Out extends SeriesS
|
|
|
47
48
|
cumulative<const Targets extends NumericColumnNameForSchema<Out>>(spec: {
|
|
48
49
|
[K in Targets]: 'sum' | 'max' | 'min' | 'count' | ((acc: number, value: number) => number);
|
|
49
50
|
}): LiveView<DiffSchema<Out, Targets>>;
|
|
50
|
-
rolling(windowSize: RollingWindow, mapping:
|
|
51
|
+
rolling<const M extends AggregateMap<Out>>(windowSize: RollingWindow, mapping: M, options?: LiveRollingOptions): LiveRollingAggregation<Out, RollingSchema<Out, M>>;
|
|
52
|
+
rolling<const M extends AggregateOutputMap<Out>>(windowSize: RollingWindow, mapping: M, options?: LiveRollingOptions): LiveRollingAggregation<Out, RollingOutputMapSchema<Out, M>>;
|
|
51
53
|
dispose(): void;
|
|
52
54
|
}
|
|
53
55
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveAggregation.d.ts","sourceRoot":"","sources":["../src/LiveAggregation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiveAggregation.d.ts","sourceRoot":"","sources":["../src/LiveAggregation.ts"],"names":[],"mappings":"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"}
|
package/dist/LiveAggregation.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { normalizeAggregateColumns, } from './aggregate-columns.js';
|
|
1
2
|
import { Event } from './Event.js';
|
|
2
3
|
import { Interval } from './Interval.js';
|
|
3
4
|
import { LiveView, makeDiffView, makeFillView, makeCumulativeView, } from './LiveView.js';
|
|
@@ -31,19 +32,25 @@ export class LiveAggregation {
|
|
|
31
32
|
this.#graceMs = options?.grace
|
|
32
33
|
? parseDuration(options.grace)
|
|
33
34
|
: sourceGraceMs;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
// Normalise the mapping into the unified column-spec shape used
|
|
36
|
+
// by both batch and live aggregation paths. Accepts either
|
|
37
|
+
// `AggregateMap<S>` (one reducer per existing source column) or
|
|
38
|
+
// `AggregateOutputMap<S>` (named alias outputs, multiple
|
|
39
|
+
// reducers per source column).
|
|
40
|
+
this.#columns = normalizeAggregateColumns(source.schema, mapping);
|
|
41
|
+
// Live aggregation currently only supports built-in (string)
|
|
42
|
+
// reducers. They have incremental bucket-state machinery
|
|
43
|
+
// (`add`/`snapshot`) that custom functions don't. Validate
|
|
44
|
+
// eagerly so the error surfaces at construction time, not on
|
|
45
|
+
// the first event arrival. Use AggregateOutputMap aliases over
|
|
46
|
+
// built-ins to compose multiple stats from one source column.
|
|
47
|
+
for (const c of this.#columns) {
|
|
48
|
+
if (typeof c.reducer !== 'string') {
|
|
49
|
+
throw new TypeError(`live aggregation reducer for output '${c.output}' must be a built-in name; ` +
|
|
50
|
+
'custom function reducers are not supported on live aggregation. ' +
|
|
51
|
+
'Use AggregateOutputMap aliases (`{ alias: { from, using } }`) ' +
|
|
52
|
+
'to compose multiple built-in reducers from one source column.');
|
|
53
|
+
}
|
|
47
54
|
}
|
|
48
55
|
this.schema = Object.freeze([
|
|
49
56
|
{ name: 'time', kind: 'interval' },
|
|
@@ -160,6 +167,9 @@ export class LiveAggregation {
|
|
|
160
167
|
return;
|
|
161
168
|
let pending = this.#pending.get(bucket.start);
|
|
162
169
|
if (!pending) {
|
|
170
|
+
// The constructor's eager check guarantees every reducer is a
|
|
171
|
+
// built-in string by the time we get here, so `c.reducer` is
|
|
172
|
+
// safe to pass directly to `resolveReducer`.
|
|
163
173
|
pending = {
|
|
164
174
|
start: bucket.start,
|
|
165
175
|
end: bucket.end,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveAggregation.js","sourceRoot":"","sources":["../src/LiveAggregation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,GAGnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,GAGvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAA6B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"LiveAggregation.js","sourceRoot":"","sources":["../src/LiveAggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { LiveSeries, type LiveSeriesOptions } from './LiveSeries.js';
|
|
2
|
+
import { LivePartitionedSyncRolling } from './LivePartitionedSyncRolling.js';
|
|
2
3
|
import { type LiveFillMapping, type LiveFillStrategy } from './LiveView.js';
|
|
3
4
|
import type { Trigger } from './triggers.js';
|
|
4
|
-
import { type AggregateMap, type DiffSchema, type EventDataForSchema, type LiveSource, type NumericColumnNameForSchema, type RollingSchema, type SeriesSchema } from './types.js';
|
|
5
|
+
import { type AggregateMap, type AggregateOutputMap, type DiffSchema, type EventDataForSchema, type LiveSource, type NumericColumnNameForSchema, type RollingSchema, type SeriesSchema } from './types.js';
|
|
6
|
+
import type { RollingOutputMapSchema } from './types-aggregate.js';
|
|
5
7
|
import type { DurationInput } from './utils/duration.js';
|
|
6
8
|
import type { LiveRollingOptions, RollingWindow } from './LiveRollingAggregation.js';
|
|
7
9
|
/**
|
|
@@ -166,28 +168,65 @@ export declare class LivePartitionedSeries<S extends SeriesSchema, K extends str
|
|
|
166
168
|
/**
|
|
167
169
|
* Per-partition `rolling`. See {@link LiveSeries.rolling}.
|
|
168
170
|
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
171
|
+
* Two emission modes, chosen by the `trigger` option:
|
|
172
|
+
*
|
|
173
|
+
* **Default (no trigger / `Trigger.event()`):** per-partition
|
|
174
|
+
* rolling — each partition has its own `LiveRollingAggregation`
|
|
175
|
+
* emitting per source event. Returns a chainable
|
|
176
|
+
* `LivePartitionedView`.
|
|
177
|
+
*
|
|
178
|
+
* In this mode the partition column **drops by default** —
|
|
179
|
+
* `rolling`'s output schema only retains columns named in
|
|
180
|
+
* `mapping`. Without including the partition column, the unified
|
|
181
|
+
* output of the chain loses the partition tag (e.g. `host` becomes
|
|
182
|
+
* `undefined`). To keep the partition column visible, include it
|
|
183
|
+
* with a passthrough reducer:
|
|
175
184
|
*
|
|
176
185
|
* ```ts
|
|
177
186
|
* partitioned.rolling('5m', { cpu: 'avg', host: 'last' })
|
|
178
187
|
* // ^^^^^^^^^^^^^^
|
|
179
188
|
* ```
|
|
189
|
+
*
|
|
190
|
+
* **`Trigger.clock(seq)`:** synchronised partitioned rolling — all
|
|
191
|
+
* partitions share one bucket index and emit together at each
|
|
192
|
+
* boundary crossing. Returns a flat `LiveSource<RowSchema>` whose
|
|
193
|
+
* schema is `[time, <partitionColumn>, ...mappingColumns]`.
|
|
194
|
+
*
|
|
195
|
+
* In this mode the partition column is **auto-injected** from the
|
|
196
|
+
* routing key — do NOT include it in `mapping`. A collision
|
|
197
|
+
* between the partition column name and any reducer-output column
|
|
198
|
+
* is rejected at construction with a clear error.
|
|
199
|
+
*
|
|
200
|
+
* ```ts
|
|
201
|
+
* partitioned.rolling(
|
|
202
|
+
* '5m',
|
|
203
|
+
* { cpu: 'avg' }, // host is auto-injected
|
|
204
|
+
* { trigger: Trigger.clock(Sequence.every('200ms')) },
|
|
205
|
+
* );
|
|
206
|
+
* ```
|
|
180
207
|
*/
|
|
181
208
|
rolling<const M extends AggregateMap<S>>(window: RollingWindow, mapping: M, options?: LiveRollingOptions & {
|
|
182
209
|
trigger?: {
|
|
183
210
|
kind: 'event';
|
|
184
211
|
};
|
|
185
212
|
}): LivePartitionedView<S, RollingSchema<S, M>, K>;
|
|
213
|
+
rolling<const M extends AggregateOutputMap<S>>(window: RollingWindow, mapping: M, options?: LiveRollingOptions & {
|
|
214
|
+
trigger?: {
|
|
215
|
+
kind: 'event';
|
|
216
|
+
};
|
|
217
|
+
}): LivePartitionedView<S, RollingOutputMapSchema<S, M>, K>;
|
|
186
218
|
rolling<const M extends AggregateMap<S>>(window: RollingWindow, mapping: M, options: LiveRollingOptions & {
|
|
187
219
|
trigger: {
|
|
188
220
|
kind: 'clock';
|
|
189
221
|
} & Trigger;
|
|
190
222
|
}): LiveSource<SeriesSchema>;
|
|
223
|
+
rolling<const M extends AggregateOutputMap<S>>(window: RollingWindow, mapping: M, options: LiveRollingOptions & {
|
|
224
|
+
trigger: {
|
|
225
|
+
kind: 'clock';
|
|
226
|
+
} & Trigger;
|
|
227
|
+
}): LiveSource<SeriesSchema>;
|
|
228
|
+
rolling<const M extends AggregateMap<S>>(window: RollingWindow, mapping: M, options: LiveRollingOptions): LivePartitionedView<S, RollingSchema<S, M>, K> | LiveSource<SeriesSchema>;
|
|
229
|
+
rolling<const M extends AggregateOutputMap<S>>(window: RollingWindow, mapping: M, options: LiveRollingOptions): LivePartitionedView<S, RollingOutputMapSchema<S, M>, K> | LiveSource<SeriesSchema>;
|
|
191
230
|
/**
|
|
192
231
|
* Dispose of the partitioned view: unsubscribe from the source,
|
|
193
232
|
* disconnect every per-partition pipeline subscriber (created
|
|
@@ -209,6 +248,16 @@ export declare class LivePartitionedSeries<S extends SeriesSchema, K extends str
|
|
|
209
248
|
* subscriptions that would otherwise leak across repeated calls.
|
|
210
249
|
*/
|
|
211
250
|
_addDisposer(fn: () => void): void;
|
|
251
|
+
/**
|
|
252
|
+
* @internal — used by `LivePartitionedView.rolling`'s clock-trigger
|
|
253
|
+
* branch to wire a sync rolling whose reducer-input schema is the
|
|
254
|
+
* chain output `R` rather than the source schema `S`. The view
|
|
255
|
+
* passes its composed factory; this method delegates to
|
|
256
|
+
* `#wireSyncRolling` with `ownsFactoryOutput: true` because the
|
|
257
|
+
* chain output (a LiveView / LiveRollingAggregation / etc.) has
|
|
258
|
+
* its own upstream subscription that must be torn down on dispose.
|
|
259
|
+
*/
|
|
260
|
+
_wireSyncRollingFromView<R extends SeriesSchema>(sync: LivePartitionedSyncRolling<R, K, SeriesSchema>, factory: (partition: LiveSeries<S>) => LiveSource<R>): void;
|
|
212
261
|
}
|
|
213
262
|
/**
|
|
214
263
|
* Chained typed view over a {@link LivePartitionedSeries}. Returned
|
|
@@ -300,6 +349,27 @@ export declare class LivePartitionedView<SBase extends SeriesSchema, R extends S
|
|
|
300
349
|
* partition column with a passthrough reducer (e.g.
|
|
301
350
|
* `host: 'last'`) to keep it visible in the unified output.
|
|
302
351
|
*/
|
|
303
|
-
rolling<const M extends AggregateMap<R>>(window: RollingWindow, mapping: M, options?: LiveRollingOptions
|
|
352
|
+
rolling<const M extends AggregateMap<R>>(window: RollingWindow, mapping: M, options?: LiveRollingOptions & {
|
|
353
|
+
trigger?: {
|
|
354
|
+
kind: 'event';
|
|
355
|
+
};
|
|
356
|
+
}): LivePartitionedView<SBase, RollingSchema<R, M>, K>;
|
|
357
|
+
rolling<const M extends AggregateOutputMap<R>>(window: RollingWindow, mapping: M, options?: LiveRollingOptions & {
|
|
358
|
+
trigger?: {
|
|
359
|
+
kind: 'event';
|
|
360
|
+
};
|
|
361
|
+
}): LivePartitionedView<SBase, RollingOutputMapSchema<R, M>, K>;
|
|
362
|
+
rolling<const M extends AggregateMap<R>>(window: RollingWindow, mapping: M, options: LiveRollingOptions & {
|
|
363
|
+
trigger: {
|
|
364
|
+
kind: 'clock';
|
|
365
|
+
} & Trigger;
|
|
366
|
+
}): LiveSource<SeriesSchema>;
|
|
367
|
+
rolling<const M extends AggregateOutputMap<R>>(window: RollingWindow, mapping: M, options: LiveRollingOptions & {
|
|
368
|
+
trigger: {
|
|
369
|
+
kind: 'clock';
|
|
370
|
+
} & Trigger;
|
|
371
|
+
}): LiveSource<SeriesSchema>;
|
|
372
|
+
rolling<const M extends AggregateMap<R>>(window: RollingWindow, mapping: M, options: LiveRollingOptions): LivePartitionedView<SBase, RollingSchema<R, M>, K> | LiveSource<SeriesSchema>;
|
|
373
|
+
rolling<const M extends AggregateOutputMap<R>>(window: RollingWindow, mapping: M, options: LiveRollingOptions): LivePartitionedView<SBase, RollingOutputMapSchema<R, M>, K> | LiveSource<SeriesSchema>;
|
|
304
374
|
}
|
|
305
375
|
//# sourceMappingURL=LivePartitionedSeries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivePartitionedSeries.d.ts","sourceRoot":"","sources":["../src/LivePartitionedSeries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"LivePartitionedSeries.d.ts","sourceRoot":"","sources":["../src/LivePartitionedSeries.ts"],"names":[],"mappings":"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"}
|