@webda/models 4.0.0-beta.5 → 4.0.0-beta.7
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 +5 -4
- package/lib/aggregation.d.ts +81 -0
- package/lib/aggregation.d.ts.map +1 -0
- package/lib/aggregation.js +2 -0
- package/lib/aggregation.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/model.model.d.ts +9 -0
- package/lib/model.model.d.ts.map +1 -1
- package/lib/model.model.js.map +1 -1
- package/lib/repositories/abstract.d.ts +121 -1
- package/lib/repositories/abstract.d.ts.map +1 -1
- package/lib/repositories/abstract.js +293 -0
- package/lib/repositories/abstract.js.map +1 -1
- package/lib/repositories/conformance.d.ts +27 -0
- package/lib/repositories/conformance.d.ts.map +1 -1
- package/lib/repositories/conformance.js +285 -0
- package/lib/repositories/conformance.js.map +1 -1
- package/lib/repositories/event.d.ts +35 -1
- package/lib/repositories/event.d.ts.map +1 -1
- package/lib/repositories/event.js +48 -0
- package/lib/repositories/event.js.map +1 -1
- package/lib/repositories/hooks.d.ts +15 -2
- package/lib/repositories/hooks.d.ts.map +1 -1
- package/lib/repositories/hooks.js +14 -0
- package/lib/repositories/hooks.js.map +1 -1
- package/lib/repositories/memory.d.ts +34 -1
- package/lib/repositories/memory.d.ts.map +1 -1
- package/lib/repositories/memory.js +75 -2
- package/lib/repositories/memory.js.map +1 -1
- package/lib/repositories/repository.d.ts +57 -1
- package/lib/repositories/repository.d.ts.map +1 -1
- package/lib/repositories/repository.js.map +1 -1
- package/package.json +9 -8
- package/webda.module.json +120 -0
|
@@ -35,4 +35,289 @@ export async function checkCreateWithoutPrimaryKey(repos, options) {
|
|
|
35
35
|
assert.strictEqual(await options.readStored("undefined"), undefined, "nothing should be stored under 'undefined'");
|
|
36
36
|
assert.strictEqual(await options.readStored("null"), undefined, "nothing should be stored under 'null'");
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Dataset of {@link checkAggregation}: nulls, missing attributes, a non-numeric `points`,
|
|
40
|
+
* nested `team.name`, booleans. The `mixed` field mixes numbers and strings, with upper and lower case, to pin type ranking and code unit order.
|
|
41
|
+
* The `at` field holds `Date` objects: in-memory engines read them as ISO strings, JSON backends store them so.
|
|
42
|
+
*/
|
|
43
|
+
export const AGGREGATION_DATASET = [
|
|
44
|
+
{
|
|
45
|
+
uuid: "a1",
|
|
46
|
+
kind: "bug",
|
|
47
|
+
team: { name: "core" },
|
|
48
|
+
points: 3,
|
|
49
|
+
score: 10,
|
|
50
|
+
label: "delta",
|
|
51
|
+
done: true,
|
|
52
|
+
mixed: 5,
|
|
53
|
+
at: new Date("2026-01-05T10:00:00.000Z")
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
uuid: "a2",
|
|
57
|
+
kind: "bug",
|
|
58
|
+
team: { name: "core" },
|
|
59
|
+
points: 5,
|
|
60
|
+
score: null,
|
|
61
|
+
label: "alpha",
|
|
62
|
+
done: false,
|
|
63
|
+
mixed: "b",
|
|
64
|
+
at: new Date("2026-03-01T00:00:00.000Z")
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
uuid: "a3",
|
|
68
|
+
kind: "feature",
|
|
69
|
+
team: { name: "web" },
|
|
70
|
+
points: null,
|
|
71
|
+
score: 7,
|
|
72
|
+
label: "charlie",
|
|
73
|
+
done: false,
|
|
74
|
+
mixed: 10,
|
|
75
|
+
at: new Date("2026-01-05T10:00:00.000Z")
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
uuid: "a4",
|
|
79
|
+
kind: "feature",
|
|
80
|
+
team: { name: "web" },
|
|
81
|
+
points: "8",
|
|
82
|
+
score: 2,
|
|
83
|
+
label: "bravo",
|
|
84
|
+
done: true,
|
|
85
|
+
mixed: "B",
|
|
86
|
+
at: new Date("2025-12-31T23:59:59.000Z")
|
|
87
|
+
},
|
|
88
|
+
{ uuid: "a5", kind: "chore", points: 1, label: "echo", done: false },
|
|
89
|
+
{
|
|
90
|
+
uuid: "a6",
|
|
91
|
+
kind: null,
|
|
92
|
+
team: { name: "core" },
|
|
93
|
+
points: 2,
|
|
94
|
+
score: 4,
|
|
95
|
+
label: "alpha",
|
|
96
|
+
done: false,
|
|
97
|
+
mixed: "a",
|
|
98
|
+
at: null
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
uuid: "a7",
|
|
102
|
+
team: { name: "ops" },
|
|
103
|
+
points: 13,
|
|
104
|
+
score: 1,
|
|
105
|
+
label: "foxtrot",
|
|
106
|
+
done: true,
|
|
107
|
+
at: new Date("2026-02-14T12:30:00.000Z")
|
|
108
|
+
}
|
|
109
|
+
];
|
|
110
|
+
/**
|
|
111
|
+
* Hand-computed expectations over {@link AGGREGATION_DATASET}; every backend must return exactly these rows
|
|
112
|
+
*/
|
|
113
|
+
export const AGGREGATION_CASES = [
|
|
114
|
+
{ name: "global count", spec: { metrics: { n: { count: "*" } } }, rows: [{ n: 7 }] },
|
|
115
|
+
{
|
|
116
|
+
name: "global over nothing",
|
|
117
|
+
spec: {
|
|
118
|
+
filter: "label = 'zulu'",
|
|
119
|
+
metrics: { n: { count: "*" }, total: { sum: "points" }, mean: { avg: "points" }, lo: { min: "score" } }
|
|
120
|
+
},
|
|
121
|
+
rows: [{ n: 0, total: 0, mean: null, lo: null }]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: "count of a field skips null and missing",
|
|
125
|
+
spec: { metrics: { withScore: { count: "score" }, withTeam: { count: "team.name" } } },
|
|
126
|
+
rows: [{ withScore: 5, withTeam: 6 }]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: "null and missing keys form one group, first in ASC",
|
|
130
|
+
spec: { groupBy: ["kind"], metrics: { n: { count: "*" } }, orderBy: [{ key: "kind", direction: "ASC" }] },
|
|
131
|
+
rows: [
|
|
132
|
+
{ kind: null, n: 2 },
|
|
133
|
+
{ kind: "bug", n: 2 },
|
|
134
|
+
{ kind: "chore", n: 1 },
|
|
135
|
+
{ kind: "feature", n: 2 }
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: "sum and avg ignore null and non-numeric",
|
|
140
|
+
spec: {
|
|
141
|
+
groupBy: ["kind"],
|
|
142
|
+
metrics: { total: { sum: "points" }, mean: { avg: "points" } },
|
|
143
|
+
orderBy: [{ key: "kind", direction: "ASC" }]
|
|
144
|
+
},
|
|
145
|
+
rows: [
|
|
146
|
+
{ kind: null, total: 15, mean: 7.5 },
|
|
147
|
+
{ kind: "bug", total: 8, mean: 4 },
|
|
148
|
+
{ kind: "chore", total: 1, mean: 1 },
|
|
149
|
+
{ kind: "feature", total: 0, mean: null }
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: "min and max on numbers and strings, nested group",
|
|
154
|
+
spec: {
|
|
155
|
+
groupBy: ["team.name"],
|
|
156
|
+
metrics: { lo: { min: "score" }, hi: { max: "score" }, first: { min: "label" } },
|
|
157
|
+
orderBy: [{ key: "team.name", direction: "ASC" }]
|
|
158
|
+
},
|
|
159
|
+
rows: [
|
|
160
|
+
{ "team.name": null, lo: null, hi: null, first: "echo" },
|
|
161
|
+
{ "team.name": "core", lo: 4, hi: 10, first: "alpha" },
|
|
162
|
+
{ "team.name": "ops", lo: 1, hi: 1, first: "foxtrot" },
|
|
163
|
+
{ "team.name": "web", lo: 2, hi: 7, first: "bravo" }
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "count distinct grouped by boolean",
|
|
168
|
+
spec: {
|
|
169
|
+
groupBy: ["done"],
|
|
170
|
+
metrics: { labels: { countDistinct: "label" }, n: { count: "*" } },
|
|
171
|
+
orderBy: [{ key: "done", direction: "ASC" }]
|
|
172
|
+
},
|
|
173
|
+
rows: [
|
|
174
|
+
{ done: false, labels: 3, n: 4 },
|
|
175
|
+
{ done: true, labels: 3, n: 3 }
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
name: "filter, order by alias and limit",
|
|
180
|
+
spec: {
|
|
181
|
+
filter: "label IN ['alpha', 'charlie', 'echo']",
|
|
182
|
+
groupBy: ["team.name"],
|
|
183
|
+
metrics: { n: { count: "*" } },
|
|
184
|
+
orderBy: [{ key: "n", direction: "DESC" }],
|
|
185
|
+
limit: 1
|
|
186
|
+
},
|
|
187
|
+
rows: [{ "team.name": "core", n: 2 }]
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
name: "several group paths",
|
|
191
|
+
spec: {
|
|
192
|
+
groupBy: ["kind", "done"],
|
|
193
|
+
metrics: { n: { count: "*" } },
|
|
194
|
+
orderBy: [
|
|
195
|
+
{ key: "kind", direction: "ASC" },
|
|
196
|
+
{ key: "done", direction: "ASC" }
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
rows: [
|
|
200
|
+
{ kind: null, done: false, n: 1 },
|
|
201
|
+
{ kind: null, done: true, n: 1 },
|
|
202
|
+
{ kind: "bug", done: false, n: 1 },
|
|
203
|
+
{ kind: "bug", done: true, n: 1 },
|
|
204
|
+
{ kind: "chore", done: false, n: 1 },
|
|
205
|
+
{ kind: "feature", done: false, n: 1 },
|
|
206
|
+
{ kind: "feature", done: true, n: 1 }
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
name: "order by metric then group, null last in DESC",
|
|
211
|
+
spec: {
|
|
212
|
+
groupBy: ["kind"],
|
|
213
|
+
metrics: { n: { count: "*" } },
|
|
214
|
+
orderBy: [
|
|
215
|
+
{ key: "n", direction: "DESC" },
|
|
216
|
+
{ key: "kind", direction: "DESC" }
|
|
217
|
+
],
|
|
218
|
+
limit: 2
|
|
219
|
+
},
|
|
220
|
+
rows: [
|
|
221
|
+
{ kind: "feature", n: 2 },
|
|
222
|
+
{ kind: "bug", n: 2 }
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
name: "min and max across numbers and strings",
|
|
227
|
+
spec: { metrics: { lo: { min: "mixed" }, hi: { max: "mixed" } } },
|
|
228
|
+
rows: [{ lo: 5, hi: "b" }]
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
name: "group keys order numbers before strings, code unit order",
|
|
232
|
+
spec: { groupBy: ["mixed"], metrics: { n: { count: "*" } }, orderBy: [{ key: "mixed", direction: "ASC" }] },
|
|
233
|
+
rows: [
|
|
234
|
+
{ mixed: null, n: 2 },
|
|
235
|
+
{ mixed: 5, n: 1 },
|
|
236
|
+
{ mixed: 10, n: 1 },
|
|
237
|
+
{ mixed: "B", n: 1 },
|
|
238
|
+
{ mixed: "a", n: 1 },
|
|
239
|
+
{ mixed: "b", n: 1 }
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
name: "order by a max alias across types",
|
|
244
|
+
spec: { groupBy: ["kind"], metrics: { m: { max: "mixed" } }, orderBy: [{ key: "m", direction: "ASC" }] },
|
|
245
|
+
rows: [
|
|
246
|
+
{ kind: "chore", m: null },
|
|
247
|
+
{ kind: "feature", m: "B" },
|
|
248
|
+
{ kind: null, m: "a" },
|
|
249
|
+
{ kind: "bug", m: "b" }
|
|
250
|
+
]
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
name: "order by a min alias across types, descending",
|
|
254
|
+
spec: { groupBy: ["kind"], metrics: { lo: { min: "mixed" } }, orderBy: [{ key: "lo", direction: "DESC" }] },
|
|
255
|
+
rows: [
|
|
256
|
+
{ kind: null, lo: "a" },
|
|
257
|
+
{ kind: "feature", lo: 10 },
|
|
258
|
+
{ kind: "bug", lo: 5 },
|
|
259
|
+
{ kind: "chore", lo: null }
|
|
260
|
+
]
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
name: "order by a max alias, number before string",
|
|
264
|
+
spec: {
|
|
265
|
+
filter: "uuid IN ['a1', 'a3', 'a4']",
|
|
266
|
+
groupBy: ["kind"],
|
|
267
|
+
metrics: { m: { max: "mixed" } },
|
|
268
|
+
orderBy: [{ key: "m", direction: "ASC" }]
|
|
269
|
+
},
|
|
270
|
+
rows: [
|
|
271
|
+
{ kind: "bug", m: 5 },
|
|
272
|
+
{ kind: "feature", m: "B" }
|
|
273
|
+
]
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
name: "min, max and count distinct on dates return ISO strings",
|
|
277
|
+
spec: {
|
|
278
|
+
groupBy: ["team.name"],
|
|
279
|
+
metrics: { lo: { min: "at" }, hi: { max: "at" }, days: { countDistinct: "at" } },
|
|
280
|
+
orderBy: [{ key: "team.name", direction: "ASC" }]
|
|
281
|
+
},
|
|
282
|
+
rows: [
|
|
283
|
+
{ "team.name": null, lo: null, hi: null, days: 0 },
|
|
284
|
+
{ "team.name": "core", lo: "2026-01-05T10:00:00.000Z", hi: "2026-03-01T00:00:00.000Z", days: 2 },
|
|
285
|
+
{ "team.name": "ops", lo: "2026-02-14T12:30:00.000Z", hi: "2026-02-14T12:30:00.000Z", days: 1 },
|
|
286
|
+
{ "team.name": "web", lo: "2025-12-31T23:59:59.000Z", hi: "2026-01-05T10:00:00.000Z", days: 2 }
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
name: "group by a date returns ISO string keys",
|
|
291
|
+
spec: { groupBy: ["at"], metrics: { n: { count: "*" } }, orderBy: [{ key: "at", direction: "ASC" }] },
|
|
292
|
+
rows: [
|
|
293
|
+
{ at: null, n: 2 },
|
|
294
|
+
{ at: "2025-12-31T23:59:59.000Z", n: 1 },
|
|
295
|
+
{ at: "2026-01-05T10:00:00.000Z", n: 2 },
|
|
296
|
+
{ at: "2026-02-14T12:30:00.000Z", n: 1 },
|
|
297
|
+
{ at: "2026-03-01T00:00:00.000Z", n: 1 }
|
|
298
|
+
]
|
|
299
|
+
}
|
|
300
|
+
];
|
|
301
|
+
/**
|
|
302
|
+
* Check a repository aggregates {@link AGGREGATION_DATASET} exactly like {@link AGGREGATION_CASES}
|
|
303
|
+
*
|
|
304
|
+
* The repository must be empty and keyed by `uuid`; the dataset is created in it.
|
|
305
|
+
* @param repo - the repository to check
|
|
306
|
+
* @param options - expected native flag, and case names to skip with a documented reason
|
|
307
|
+
* @param options.native - the expected `native` flag of every result
|
|
308
|
+
* @param options.skip - names of the cases to skip
|
|
309
|
+
*/
|
|
310
|
+
export async function checkAggregation(repo, options) {
|
|
311
|
+
repo.configureAggregation({ fallback: "allow" });
|
|
312
|
+
for (const item of AGGREGATION_DATASET) {
|
|
313
|
+
await repo.create(structuredClone(item));
|
|
314
|
+
}
|
|
315
|
+
for (const { name, spec, rows } of AGGREGATION_CASES) {
|
|
316
|
+
if (options.skip?.includes(name))
|
|
317
|
+
continue;
|
|
318
|
+
const res = await repo.aggregate(spec);
|
|
319
|
+
assert.deepStrictEqual(res.rows, rows, name);
|
|
320
|
+
assert.strictEqual(res.native, options.native, `${name}: native flag`);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
38
323
|
//# sourceMappingURL=conformance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/repositories/conformance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AA4BtC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAAwB,EACxB,OAAuC;IAEvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,QAAQ,sBAAsB,CAAC,CAAC;YACpD,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,QAAQ,mBAAmB,GAAG,GAAG,CAAC,CAAC;YAC5G,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,iBAAiB,QAAQ,mBAAmB,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,6EAA6E;YAC7E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,mDAAmD,QAAQ,EAAE,CAAC,CAAC;YACjF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1C,gCAAgC;YAChC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,MAAM,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,4CAA4C,CAAC,CAAC;IACnH,MAAM,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,uCAAuC,CAAC,CAAC;AAC3G,CAAC"}
|
|
1
|
+
{"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/repositories/conformance.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ import { PK, PrimaryKeyType, ModelClass, WEBDA_PRIMARY_KEY } from "../storable.j
|
|
|
2
2
|
import type { JSONed, Helpers, PropertyPaths, NumericPropertyPaths, PropertyPathType } from "../types.js";
|
|
3
3
|
import { AbstractRepository } from "./abstract.js";
|
|
4
4
|
import { ArrayElement } from "@webda/tsc-esm";
|
|
5
|
-
import type { QueryParameters } from "@webda/ql";
|
|
5
|
+
import type { Query as WebdaQLQuery, QueryParameters, AggregationResult } from "@webda/ql";
|
|
6
|
+
import type { AggregatedRow, AggregationOptions, AggregationSpec, MetricSpec } from "../aggregation.js";
|
|
6
7
|
import { WEBDA_TEST } from "./repository.js";
|
|
7
8
|
/**
|
|
8
9
|
* Repository decorator that wraps another repository with event emission.
|
|
@@ -50,6 +51,39 @@ export declare class EventRepository<T extends ModelClass = any> extends Abstrac
|
|
|
50
51
|
* @returns an async generator of objects
|
|
51
52
|
*/
|
|
52
53
|
iterate(query: string, params?: QueryParameters): AsyncGenerator<InstanceType<T>, any, any>;
|
|
54
|
+
/**
|
|
55
|
+
* Aggregate with event emission
|
|
56
|
+
*
|
|
57
|
+
* Parameters are bound here, so the events carry the bound filter and the underlying
|
|
58
|
+
* repository receives a plain spec and keeps its native implementation.
|
|
59
|
+
* @param spec - the aggregation spec
|
|
60
|
+
* @param params - values for the placeholders of `spec.filter`
|
|
61
|
+
* @returns the aggregated rows
|
|
62
|
+
*/
|
|
63
|
+
aggregate<const G extends readonly PropertyPaths<InstanceType<T>>[] = [], const M extends Record<string, MetricSpec<InstanceType<T>>> = Record<string, MetricSpec<InstanceType<T>>>>(spec: AggregationSpec<InstanceType<T>, G, M>, params?: QueryParameters): Promise<AggregationResult<AggregatedRow<InstanceType<T>, G, M>>>;
|
|
64
|
+
/**
|
|
65
|
+
* Configure both this wrapper and the underlying repository
|
|
66
|
+
* @override
|
|
67
|
+
*/
|
|
68
|
+
configureAggregation(options: Partial<AggregationOptions>): void;
|
|
69
|
+
/**
|
|
70
|
+
* Delete in bulk through the underlying repository
|
|
71
|
+
*
|
|
72
|
+
* Bulk operations emit no per-object event: see {@link Repository.deleteMany}.
|
|
73
|
+
* @param statement - the DELETE statement or its parsed form
|
|
74
|
+
* @param params - values for the placeholders
|
|
75
|
+
* @returns the number of objects deleted
|
|
76
|
+
*/
|
|
77
|
+
deleteMany(statement: string | WebdaQLQuery, params?: QueryParameters): Promise<number>;
|
|
78
|
+
/**
|
|
79
|
+
* Update in bulk through the underlying repository
|
|
80
|
+
*
|
|
81
|
+
* Bulk operations emit no per-object event: see {@link Repository.updateMany}.
|
|
82
|
+
* @param statement - the UPDATE statement or its parsed form
|
|
83
|
+
* @param params - values for the placeholders
|
|
84
|
+
* @returns the number of objects updated
|
|
85
|
+
*/
|
|
86
|
+
updateMany(statement: string | WebdaQLQuery, params?: QueryParameters): Promise<number>;
|
|
53
87
|
/**
|
|
54
88
|
* Delete an item from a collection
|
|
55
89
|
* @param uuid The UUID of the item
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/repositories/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAc,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtH,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/repositories/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,54 @@ export class EventRepository extends AbstractRepository {
|
|
|
82
82
|
}
|
|
83
83
|
yield* this.repository.iterate(query);
|
|
84
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Aggregate with event emission
|
|
87
|
+
*
|
|
88
|
+
* Parameters are bound here, so the events carry the bound filter and the underlying
|
|
89
|
+
* repository receives a plain spec and keeps its native implementation.
|
|
90
|
+
* @param spec - the aggregation spec
|
|
91
|
+
* @param params - values for the placeholders of `spec.filter`
|
|
92
|
+
* @returns the aggregated rows
|
|
93
|
+
*/
|
|
94
|
+
async aggregate(spec, params) {
|
|
95
|
+
if (params !== undefined && spec.filter) {
|
|
96
|
+
spec = { ...spec, filter: (await import("@webda/ql")).bind(spec.filter, params) };
|
|
97
|
+
}
|
|
98
|
+
await this.emit("Aggregate", { query: spec });
|
|
99
|
+
const res = await this.repository.aggregate(spec);
|
|
100
|
+
await this.emit("Aggregated", { query: spec, ...res });
|
|
101
|
+
return res;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Configure both this wrapper and the underlying repository
|
|
105
|
+
* @override
|
|
106
|
+
*/
|
|
107
|
+
configureAggregation(options) {
|
|
108
|
+
super.configureAggregation(options);
|
|
109
|
+
this.repository.configureAggregation(options);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Delete in bulk through the underlying repository
|
|
113
|
+
*
|
|
114
|
+
* Bulk operations emit no per-object event: see {@link Repository.deleteMany}.
|
|
115
|
+
* @param statement - the DELETE statement or its parsed form
|
|
116
|
+
* @param params - values for the placeholders
|
|
117
|
+
* @returns the number of objects deleted
|
|
118
|
+
*/
|
|
119
|
+
async deleteMany(statement, params) {
|
|
120
|
+
return this.repository.deleteMany(statement, params);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Update in bulk through the underlying repository
|
|
124
|
+
*
|
|
125
|
+
* Bulk operations emit no per-object event: see {@link Repository.updateMany}.
|
|
126
|
+
* @param statement - the UPDATE statement or its parsed form
|
|
127
|
+
* @param params - values for the placeholders
|
|
128
|
+
* @returns the number of objects updated
|
|
129
|
+
*/
|
|
130
|
+
async updateMany(statement, params) {
|
|
131
|
+
return this.repository.updateMany(statement, params);
|
|
132
|
+
}
|
|
85
133
|
/**
|
|
86
134
|
* Delete an item from a collection
|
|
87
135
|
* @param uuid The UUID of the item
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/repositories/event.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/repositories/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ModelRefWithCreate } from "../relations.js";
|
|
2
2
|
import { SettablePrimaryKey, type Storable, type ModelClass } from "../storable.js";
|
|
3
|
-
import { Helpers } from "../types.js";
|
|
3
|
+
import { Helpers, PropertyPaths } from "../types.js";
|
|
4
4
|
import type { Repository } from "./repository.js";
|
|
5
|
-
import type { QueryParameters, WebdaQLString } from "@webda/ql";
|
|
5
|
+
import type { AggregationResult, QueryParameters, WebdaQLString } from "@webda/ql";
|
|
6
|
+
import type { AggregatedRow, AggregationSpec, MetricSpec } from "../aggregation.js";
|
|
6
7
|
/**
|
|
7
8
|
* Global registry mapping ModelClass constructors to their Repository instances.
|
|
8
9
|
*
|
|
@@ -77,6 +78,18 @@ export declare function RepositoryStorageClassMixIn<TBase extends new (...args:
|
|
|
77
78
|
* @returns an async generator of model instances
|
|
78
79
|
*/
|
|
79
80
|
iterate<T extends ModelClass>(this: T, query: WebdaQLString<InstanceType<T>>, params?: QueryParameters): AsyncGenerator<InstanceType<T>, any, any>;
|
|
81
|
+
/**
|
|
82
|
+
* Aggregate the objects directly
|
|
83
|
+
*
|
|
84
|
+
* ```ts
|
|
85
|
+
* Task.aggregate({ groupBy: ["status"], metrics: { n: { count: "*" } } });
|
|
86
|
+
* ```
|
|
87
|
+
* @param this - the model class constructor
|
|
88
|
+
* @param spec - filter, group by paths, metrics, ordering and limit
|
|
89
|
+
* @param params - values for the placeholders of `spec.filter`
|
|
90
|
+
* @returns the aggregated rows
|
|
91
|
+
*/
|
|
92
|
+
aggregate<T extends ModelClass, const G extends readonly PropertyPaths<InstanceType<T>>[] = [], const M extends Record<string, MetricSpec<InstanceType<T>>> = Record<string, MetricSpec<InstanceType<T>>>>(this: T, spec: AggregationSpec<InstanceType<T>, G, M>, params?: QueryParameters): Promise<AggregationResult<AggregatedRow<InstanceType<T>, G, M>>>;
|
|
80
93
|
/**
|
|
81
94
|
* Get a reference to the model
|
|
82
95
|
* @param this - the model class constructor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/repositories/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAkB,kBAAkB,EAAqB,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/repositories/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAkB,kBAAkB,EAAqB,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,0DAA6C,CAAC;AAEvE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CASzE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAElG;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK;kBAA7B,GAAG,EAAE;QAqGzE;;;WAGG;;;IAtGH;;;OAGG;kBACkB,CAAC,SAAS,UAAU,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIlE;;;;;;OAMG;WACW,CAAC,SAAS,UAAU,QAC1B,CAAC,QACD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SACxB,OAAO,GACZ,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAI3B;;;;;;;;;;;OAWG;UACU,CAAC,SAAS,UAAU,QACzB,CAAC,SACA,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAC5B,eAAe,GACvB,OAAO,CAAC;QACT,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IAIF;;;;;;OAMG;YACmB,CAAC,SAAS,UAAU,QAClC,CAAC,SACA,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAC5B,eAAe,GACvB,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAM5C;;;;;;;;;;OAUG;cAED,CAAC,SAAS,UAAU,QACd,CAAC,SAAS,SAAS,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,aACnD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,sDAErD,CAAC,QACD,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,WACnC,eAAe,GACvB,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAInE;;;;;OAKG;QACQ,CAAC,SAAS,UAAU,QACvB,CAAC,OACF,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACvC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;UAYzC"}
|
|
@@ -84,6 +84,20 @@ export function RepositoryStorageClassMixIn(Base) {
|
|
|
84
84
|
yield item;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Aggregate the objects directly
|
|
89
|
+
*
|
|
90
|
+
* ```ts
|
|
91
|
+
* Task.aggregate({ groupBy: ["status"], metrics: { n: { count: "*" } } });
|
|
92
|
+
* ```
|
|
93
|
+
* @param this - the model class constructor
|
|
94
|
+
* @param spec - filter, group by paths, metrics, ordering and limit
|
|
95
|
+
* @param params - values for the placeholders of `spec.filter`
|
|
96
|
+
* @returns the aggregated rows
|
|
97
|
+
*/
|
|
98
|
+
static aggregate(spec, params) {
|
|
99
|
+
return useRepository(this).aggregate(spec, params);
|
|
100
|
+
}
|
|
87
101
|
/**
|
|
88
102
|
* Get a reference to the model
|
|
89
103
|
* @param this - the model class constructor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/repositories/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/repositories/hooks.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,EAA+B,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAuB,GAAM;IACxD,IAAI,KAAK,GAAQ,GAAG,CAAC;IACrB,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,CAAkB,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAuB,KAAQ,EAAE,UAAyB;IAC1F,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAA+C,IAAW;IACnG,OAAO,KAAM,SAAQ,IAAI;QACvB;;;WAGG;QACH,MAAM,CAAC,aAAa;YAClB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED;;;;;;WAMG;QACH,MAAM,CAAC,MAAM,CAEX,IAA8B,EAC9B,IAAI,GAAY,IAAI;YAEpB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAED;;;;;;;;;;;WAWG;QACH,MAAM,CAAC,KAAK,CAEV,KAAqC,EACrC,MAAwB;YAKxB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QAED;;;;;;WAMG;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAEnB,KAAqC,EACrC,MAAwB;YAExB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAuB,CAAC;YAChC,CAAC;QACH,CAAC;QAED;;;;;;;;;;WAUG;QACH,MAAM,CAAC,SAAS,CAMd,IAA4C,EAC5C,MAAwB;YAExB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAED;;;;;WAKG;QACH,MAAM,CAAC,GAAG,CAER,GAAwC;YAExC,OAAO,aAAa,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,GAAU,CAAC,CAAC;QAC9C,CAAC;QAED;;;WAGG;QACH,OAAO;YACL,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ArrayElement } from "@webda/tsc-esm";
|
|
2
|
-
import type { QueryParameters } from "@webda/ql";
|
|
2
|
+
import type { AggregationQuery, AggregationResult, Query as WebdaQLQuery, QueryParameters } from "@webda/ql";
|
|
3
3
|
import type { PK, WEBDA_PRIMARY_KEY, ModelClass } from "../storable.js";
|
|
4
4
|
import type { Helpers, JSONed, PropertyPaths, NumericPropertyPaths } from "../types.js";
|
|
5
5
|
import { AbstractRepository } from "./abstract.js";
|
|
@@ -12,6 +12,8 @@ import { Repository, WEBDA_TEST } from "./repository.js";
|
|
|
12
12
|
*/
|
|
13
13
|
export type Query = {
|
|
14
14
|
limit: number;
|
|
15
|
+
type?: "SELECT" | "DELETE" | "UPDATE";
|
|
16
|
+
fields?: string[];
|
|
15
17
|
orderBy?: {
|
|
16
18
|
field: string;
|
|
17
19
|
direction: "ASC" | "DESC";
|
|
@@ -210,12 +212,43 @@ export declare class MemoryRepository<T extends ModelClass, K extends Map<string
|
|
|
210
212
|
results: InstanceType<T>[];
|
|
211
213
|
continuationToken?: string;
|
|
212
214
|
}>;
|
|
215
|
+
/**
|
|
216
|
+
* A plain MemoryRepository (MemoryStore, FileStore) aggregates its own local data: that is native.
|
|
217
|
+
* Subclasses backed by a remote database (Firestore, Dynamo, ...) inherit the fallback instead.
|
|
218
|
+
* @override
|
|
219
|
+
*/
|
|
220
|
+
protected executeAggregation(query: AggregationQuery): Promise<AggregationResult<any>>;
|
|
213
221
|
/**
|
|
214
222
|
* Add iterator support
|
|
215
223
|
* @param query - the query string
|
|
216
224
|
* @param params - values for the `?` or `:name` placeholders
|
|
217
225
|
*/
|
|
218
226
|
iterate(query: string, params?: QueryParameters): AsyncGenerator<InstanceType<T>, any, any>;
|
|
227
|
+
/**
|
|
228
|
+
* Keys of the stored objects of this model matching a statement's WHERE, at most LIMIT
|
|
229
|
+
*
|
|
230
|
+
* Synchronous: the statement then runs without yielding, so no other write interleaves and an object is
|
|
231
|
+
* never met twice.
|
|
232
|
+
* @param statement - the parsed statement
|
|
233
|
+
* @returns the storage keys and their objects
|
|
234
|
+
*/
|
|
235
|
+
protected matchStorage(statement: WebdaQLQuery): {
|
|
236
|
+
key: string;
|
|
237
|
+
item: InstanceType<T>;
|
|
238
|
+
}[];
|
|
239
|
+
/**
|
|
240
|
+
* Delete in bulk, directly in the storage map: no event (see {@link Repository.deleteMany})
|
|
241
|
+
* @override
|
|
242
|
+
*/
|
|
243
|
+
deleteMany(statement: string | WebdaQLQuery, params?: QueryParameters): Promise<number>;
|
|
244
|
+
/**
|
|
245
|
+
* Update in bulk, directly in the storage map: no event (see {@link Repository.updateMany})
|
|
246
|
+
*
|
|
247
|
+
* Matches are collected first, then rewritten without yielding: an object whose WHERE field changes is
|
|
248
|
+
* updated once.
|
|
249
|
+
* @override
|
|
250
|
+
*/
|
|
251
|
+
updateMany(statement: string | WebdaQLQuery, params?: QueryParameters): Promise<number>;
|
|
219
252
|
/** @override */
|
|
220
253
|
delete<K extends PropertyPaths<InstanceType<T>>>(primaryKey: PK<InstanceType<T>, InstanceType<T>[typeof WEBDA_PRIMARY_KEY][number]>, _conditionField?: K | null, _condition?: any): Promise<void>;
|
|
221
254
|
/** @override */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/repositories/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/repositories/memory.ts"],"names":[],"mappings":"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"}
|