@objectstack/plugin-reports 17.0.0-rc.0 → 17.0.0-rc.2

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 CHANGED
@@ -1,5 +1,378 @@
1
1
  # @objectstack/plugin-reports
2
2
 
3
+ ## 17.0.0-rc.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [430dcc2]
8
+ - Updated dependencies [e6ac4bd]
9
+ - Updated dependencies [80334c7]
10
+ - Updated dependencies [ce5242c]
11
+ - Updated dependencies [a7163ea]
12
+ - Updated dependencies [e6e9379]
13
+ - Updated dependencies [98877c9]
14
+ - Updated dependencies [98877c9]
15
+ - Updated dependencies [c44dd5e]
16
+ - Updated dependencies [e6b1b69]
17
+ - Updated dependencies [ad047d2]
18
+ - Updated dependencies [2826d1e]
19
+ - Updated dependencies [5a84d41]
20
+ - Updated dependencies [20b1a9e]
21
+ - Updated dependencies [203a449]
22
+ - Updated dependencies [ac37fc6]
23
+ - Updated dependencies [4820f55]
24
+ - Updated dependencies [462d9c4]
25
+ - Updated dependencies [7d21581]
26
+ - Updated dependencies [f2445c9]
27
+ - Updated dependencies [23338c3]
28
+ - Updated dependencies [5b843fb]
29
+ - Updated dependencies [b4487aa]
30
+ - Updated dependencies [65ca83a]
31
+ - Updated dependencies [67bf2e2]
32
+ - Updated dependencies [c6d1cb4]
33
+ - Updated dependencies [36030ff]
34
+ - Updated dependencies [6117f7b]
35
+ - Updated dependencies [e533b0b]
36
+ - Updated dependencies [cdf4d9a]
37
+ - Updated dependencies [aee1806]
38
+ - Updated dependencies [c13350b]
39
+ - Updated dependencies [c13350b]
40
+ - Updated dependencies [9ca2d85]
41
+ - Updated dependencies [c13350b]
42
+ - Updated dependencies [891d345]
43
+ - Updated dependencies [a52e2ef]
44
+ - Updated dependencies [5293114]
45
+ - Updated dependencies [20bc357]
46
+ - Updated dependencies [5966c2a]
47
+ - Updated dependencies [2382580]
48
+ - Updated dependencies [d9fa683]
49
+ - Updated dependencies [3c7bcc0]
50
+ - Updated dependencies [4b6cac7]
51
+ - Updated dependencies [7631964]
52
+ - Updated dependencies [ac471a0]
53
+ - Updated dependencies [60ae58e]
54
+ - Updated dependencies [ce92674]
55
+ - Updated dependencies [9f601e8]
56
+ - Updated dependencies [51c5227]
57
+ - Updated dependencies [a4a85c8]
58
+ - Updated dependencies [07a4e26]
59
+ - Updated dependencies [ec975f1]
60
+ - Updated dependencies [eb4204b]
61
+ - Updated dependencies [4f13be2]
62
+ - Updated dependencies [61cc079]
63
+ - Updated dependencies [0e96e46]
64
+ - Updated dependencies [d52d4fe]
65
+ - Updated dependencies [742cebb]
66
+ - Updated dependencies [ce92674]
67
+ - Updated dependencies [cf2c9b7]
68
+ - Updated dependencies [833b512]
69
+ - Updated dependencies [0f9faa2]
70
+ - Updated dependencies [7cf42fe]
71
+ - Updated dependencies [5966c2a]
72
+ - Updated dependencies [f78dd83]
73
+ - Updated dependencies [a2cd18a]
74
+ - Updated dependencies [4638aaa]
75
+ - Updated dependencies [0222d3c]
76
+ - Updated dependencies [071d0dc]
77
+ - Updated dependencies [0a936ea]
78
+ - Updated dependencies [023c00b]
79
+ - Updated dependencies [155507e]
80
+ - Updated dependencies [7bba90b]
81
+ - Updated dependencies [7e05d8e]
82
+ - Updated dependencies [061406d]
83
+ - Updated dependencies [c1f344b]
84
+ - Updated dependencies [9c93465]
85
+ - Updated dependencies [ebb209c]
86
+ - Updated dependencies [63b33e6]
87
+ - Updated dependencies [2a44c1d]
88
+ - Updated dependencies [695cfbd]
89
+ - Updated dependencies [7445149]
90
+ - Updated dependencies [071d0dc]
91
+ - Updated dependencies [0848bea]
92
+ - Updated dependencies [d51bed2]
93
+ - Updated dependencies [b8b3c64]
94
+ - Updated dependencies [0c0fbd9]
95
+ - Updated dependencies [f3141d8]
96
+ - Updated dependencies [5a84d41]
97
+ - Updated dependencies [fd3013a]
98
+ - Updated dependencies [21676eb]
99
+ - Updated dependencies [e336549]
100
+ - Updated dependencies [d40f43a]
101
+ - Updated dependencies [e5e7ee0]
102
+ - Updated dependencies [a2ebea2]
103
+ - Updated dependencies [800bdb0]
104
+ - Updated dependencies [04f1182]
105
+ - Updated dependencies [5647006]
106
+ - Updated dependencies [38f7e4f]
107
+ - Updated dependencies [c57f3cf]
108
+ - Updated dependencies [97faca3]
109
+ - Updated dependencies [ad5fe25]
110
+ - Updated dependencies [ea90179]
111
+ - Updated dependencies [ce92674]
112
+ - Updated dependencies [5ef0b5b]
113
+ - Updated dependencies [48fbacb]
114
+ - Updated dependencies [355e951]
115
+ - Updated dependencies [dadb43f]
116
+ - @objectstack/spec@17.0.0-rc.2
117
+ - @objectstack/platform-objects@17.0.0-rc.2
118
+ - @objectstack/core@17.0.0-rc.2
119
+
120
+ ## 17.0.0-rc.1
121
+
122
+ ### Patch Changes
123
+
124
+ - 2e836de: chore(packaging): CHANGELOG.md ships in every npm tarball (#4261)
125
+
126
+ The AGENTS.md post-task checklist requires breaking changesets to carry their
127
+ FROM → TO migration because "this text ships to consumers as `CHANGELOG.md`
128
+ inside the npm package and is what an upgrading agent greps after the tombstone
129
+ error." That delivery path was severed for 68 of the 69 publishable packages:
130
+ npm packs `package.json` / `README*` / `LICENSE*` unconditionally but — unlike
131
+ older npm versions — not `CHANGELOG.md`, and the canonical
132
+ `"files": ["dist", "README.md"]` whitelist never named it. Measured on npm
133
+ 10.9.7: `npm pack --dry-run` on `@objectstack/types` shipped 3 files while its
134
+ 70KB `CHANGELOG.md` stayed behind. Only `@objectstack/spec` listed it
135
+ explicitly.
136
+
137
+ The tombstone-error scenario is precisely the one where the repo is out of
138
+ reach — the upgrading agent has `node_modules` and nothing else — so the
139
+ migration text has to ride in the tarball. Every publishable package now
140
+ declares `CHANGELOG.md` in `files`, and the canonical whitelist is
141
+ `["dist", "README.md", "CHANGELOG.md"]`.
142
+
143
+ The other half is the gate: `check:published-files` gains a fifth invariant,
144
+ COMPLETE — a whitelist that fails to cover `CHANGELOG.md` fails the
145
+ always-required lint job, so the next package cannot silently sever the path
146
+ again. `@objectstack/spec`'s per-package EXTRA_ENTRIES exemption dissolves
147
+ into the canonical set.
148
+
149
+ Consumer-visible change: one more file per install (the package's changelog,
150
+ e.g. 70.8KB for `@objectstack/types`), and `grep -r "removed key"
151
+ node_modules/@objectstack/*/CHANGELOG.md` now finds the migration it was
152
+ promised.
153
+
154
+ - b5f9397: fix(sharing,runtime): a `sort` passed straight to the engine never ordered anything; migrate every in-repo engine call to canonical QueryAST keys (#4346)
155
+
156
+ Two changes with different weights, from one sweep of every in-repo engine
157
+ call site that still speaks a deprecated alias.
158
+
159
+ **The bug — three dropped sorts.** #4346 made the engine fold `filter`→`where`
160
+ and `top`→`limit` on all six methods. The other four pairs in
161
+ `RPC_QUERY_ALIAS_SLOTS` (`select`, `sort`, `skip`, `populate`) are folded at
162
+ the RPC/wire layer only — their values need shape lowering that belongs to
163
+ those layers — and a **direct `engine.find()` never crosses that layer**. Three
164
+ call sites passed `sort` there, so it rode onto the AST untouched, every
165
+ driver's `Array.isArray(query.orderBy)` guard declined to emit an ORDER BY, and
166
+ the query returned an ordinary-looking, arbitrarily-ordered result:
167
+
168
+ | call site | asked for | actually got |
169
+ | ----------------------------------- | ------------------------------------------------- | --------------------------- |
170
+ | `share-link-routes.ts` | shared AI conversation messages, `created_at asc` | messages in arbitrary order |
171
+ | `runtime/domains/share-links.ts` | same route, runtime-domain copy | same |
172
+ | `share-link-service.ts` `listLinks` | the 200 most recent share links | an arbitrary 200 |
173
+
174
+ All three combine the dropped sort with a `limit` — the "latest N" shape whose
175
+ failure #4226 spelled out: an unapplied sort returns rows in arbitrary order,
176
+ which `limit` then slices into an arbitrary page. #4226 fixed that in the wire
177
+ normalizer; these calls sit one layer below it. `listLinks` had no test at all,
178
+ which is why it went unnoticed. Now pinned — on the option bag the engine
179
+ receives, not on row order, because the failure is that the key never becomes
180
+ `orderBy` and a fake engine honouring either spelling would pass either way.
181
+
182
+ **The cleanup — 27 no-op renames.** Every remaining in-repo engine call passing
183
+ `filter` now passes `where` (approvals 5, auth 2, reports 6, sharing 11,
184
+ webhooks 2, plus the one `filters` in a spec doc example). These are strict
185
+ no-ops since #4346 folds the alias — the point is that the framework stops
186
+ depending on a spelling it asks users to migrate off, which is a prerequisite
187
+ for ever retiring the aliases. Service-level `filter` PARAMETERS (each
188
+ service's own public API, e.g. `listRequests(filter)`) are deliberately
189
+ untouched — those are not engine option bags.
190
+
191
+ Two of the renamed calls were live victims of the #4346 bug rather than
192
+ cosmetic: `auth-manager`'s `stampIdentitySource` read the table's first row via
193
+ `findOne({filter})` and counted the whole table via `count({filter})`, so a
194
+ federated sign-in never stamped `source: 'idp_provisioned'`. #4346 already
195
+ corrected the behaviour; this makes the call say what it means.
196
+
197
+ - cc2de0e: chore(packaging): 20 packages stop publishing their sources, tests and build tooling (#4248)
198
+
199
+ These 20 packages declared no `files` field, so npm fell back to packing the
200
+ whole package directory. `npm pack --dry-run` on `@objectstack/plugin-webhooks`
201
+ listed **21 files** — 15 under `src/`, three of them unit tests
202
+ (`auto-enqueuer.test.ts`, `bootstrap-declared-webhooks.test.ts`, …), plus the
203
+ build-time `scripts/i18n-extract.config.ts`. `dist/` lands on top of that at
204
+ publish time rather than instead of it, so consumers were installing the
205
+ TypeScript sources and the test suite alongside the artifact they asked for.
206
+
207
+ Each now declares `"files": ["dist", "README.md"]`, matching the 29 packages
208
+ that already did. Nothing a consumer imports moves: every `main` / `types` /
209
+ `exports` target in all 20 already resolved inside `dist/`, which the new
210
+ `check:published-files` guard verifies rather than assumes. The visible change
211
+ is a smaller install and a smaller dependency-scanning surface — `npm pack` on
212
+ `@objectstack/plugin-webhooks` now yields 2 files plus `dist/`.
213
+
214
+ The other half of the fix is the gate. Half the packages declaring `files` and
215
+ half not was the #3786 shape — a hand-copied convention with nothing enforcing
216
+ it, where whoever forgets the line gets no signal at all. `check:published-files`
217
+ (new, wired into the always-required `lint` job) holds every non-private
218
+ workspace package to four invariants: `files` is **declared**; it is
219
+ **sufficient** (covers every entry point, so tightening a whitelist cannot ship
220
+ a package that fails to resolve); it is **minimal** (admits no test, test-harness
221
+ config or build script); and anything beyond `dist` + `README.md` is
222
+ **registered** with a reason, reconciled in both directions so a stale exemption
223
+ is an error rather than dead text. `@objectstack/spec` is the one package with
224
+ registered extras — its `.zod.ts` sources, JSON Schemas, liveness ledgers and
225
+ `CHANGELOG.md` are product, not build input.
226
+
227
+ This also closes an assumption #4206 was resting on. Excluding `<pkg>/scripts/**`
228
+ from the docs-drift implementation test is sound only while no package publishes
229
+ `scripts/` as runtime code; that held, but it held because someone read all three
230
+ offenders by hand. It is now checked on every PR.
231
+
232
+ - Updated dependencies [6a67d7a]
233
+ - Updated dependencies [0ecc656]
234
+ - Updated dependencies [06772eb]
235
+ - Updated dependencies [270650f]
236
+ - Updated dependencies [3aef718]
237
+ - Updated dependencies [1ea6bce]
238
+ - Updated dependencies [c1dcacd]
239
+ - Updated dependencies [ad303ed]
240
+ - Updated dependencies [32ccb23]
241
+ - Updated dependencies [f5a4ef0]
242
+ - Updated dependencies [2d3e255]
243
+ - Updated dependencies [7d7521f]
244
+ - Updated dependencies [5dc4d02]
245
+ - Updated dependencies [05154a1]
246
+ - Updated dependencies [9b6fe7c]
247
+ - Updated dependencies [8c711fb]
248
+ - Updated dependencies [09e4547]
249
+ - Updated dependencies [91f4c78]
250
+ - Updated dependencies [820eff9]
251
+ - Updated dependencies [8d895ff]
252
+ - Updated dependencies [f6472d7]
253
+ - Updated dependencies [78caf51]
254
+ - Updated dependencies [62a789b]
255
+ - Updated dependencies [789ad63]
256
+ - Updated dependencies [2af1988]
257
+ - Updated dependencies [0af50a3]
258
+ - Updated dependencies [2e836de]
259
+ - Updated dependencies [12a19a8]
260
+ - Updated dependencies [41dcda3]
261
+ - Updated dependencies [c8124e5]
262
+ - Updated dependencies [a1a4140]
263
+ - Updated dependencies [217e2e6]
264
+ - Updated dependencies [86a71d1]
265
+ - Updated dependencies [d5c75e2]
266
+ - Updated dependencies [03d26f7]
267
+ - Updated dependencies [4384921]
268
+ - Updated dependencies [3c628ce]
269
+ - Updated dependencies [7cb922e]
270
+ - Updated dependencies [1d22114]
271
+ - Updated dependencies [b5f9397]
272
+ - Updated dependencies [ed77493]
273
+ - Updated dependencies [58a03d2]
274
+ - Updated dependencies [dc530b4]
275
+ - Updated dependencies [e59786e]
276
+ - Updated dependencies [bcf1112]
277
+ - Updated dependencies [9774b78]
278
+ - Updated dependencies [b07d829]
279
+ - Updated dependencies [a648e96]
280
+ - Updated dependencies [a47ac06]
281
+ - Updated dependencies [e4c61a7]
282
+ - Updated dependencies [cc60165]
283
+ - Updated dependencies [081aa6f]
284
+ - Updated dependencies [91f4c78]
285
+ - Updated dependencies [e8d0c21]
286
+ - Updated dependencies [45dc446]
287
+ - Updated dependencies [c1d44f7]
288
+ - Updated dependencies [ab9fb5c]
289
+ - Updated dependencies [f985b3f]
290
+ - Updated dependencies [9a4932a]
291
+ - Updated dependencies [f9fc874]
292
+ - Updated dependencies [011b386]
293
+ - Updated dependencies [7777e8f]
294
+ - Updated dependencies [507b92a]
295
+ - Updated dependencies [7309c81]
296
+ - Updated dependencies [20bc1ec]
297
+ - Updated dependencies [90c2b15]
298
+ - Updated dependencies [42eeb7d]
299
+ - Updated dependencies [01e124d]
300
+ - Updated dependencies [7ce02eb]
301
+ - Updated dependencies [a13827e]
302
+ - Updated dependencies [7733604]
303
+ - Updated dependencies [40e420f]
304
+ - Updated dependencies [d13004a]
305
+ - Updated dependencies [be7360c]
306
+ - Updated dependencies [5b47ab5]
307
+ - Updated dependencies [b09d8d9]
308
+ - Updated dependencies [b09d8d9]
309
+ - Updated dependencies [8675db6]
310
+ - Updated dependencies [b09d8d9]
311
+ - Updated dependencies [3eb1b2b]
312
+ - Updated dependencies [59b85c0]
313
+ - Updated dependencies [6e357ed]
314
+ - Updated dependencies [d6938bf]
315
+ - Updated dependencies [31e0be9]
316
+ - Updated dependencies [4bfd455]
317
+ - Updated dependencies [ffd2ce2]
318
+ - Updated dependencies [62f8017]
319
+ - Updated dependencies [a831df1]
320
+ - Updated dependencies [f752ee3]
321
+ - Updated dependencies [a1b61e0]
322
+ - Updated dependencies [cd6b9f2]
323
+ - Updated dependencies [2cb6d3c]
324
+ - Updated dependencies [af2a095]
325
+ - Updated dependencies [ec796d5]
326
+ - Updated dependencies [e87fea1]
327
+ - Updated dependencies [c65e529]
328
+ - Updated dependencies [3ca34c1]
329
+ - Updated dependencies [239c3a3]
330
+ - Updated dependencies [94a0bbc]
331
+ - Updated dependencies [d6bfb3d]
332
+ - Updated dependencies [a2266a6]
333
+ - Updated dependencies [d25a0ec]
334
+ - Updated dependencies [667b83e]
335
+ - Updated dependencies [627b188]
336
+ - Updated dependencies [8d4eae7]
337
+ - Updated dependencies [857a6cf]
338
+ - Updated dependencies [65a3a84]
339
+ - Updated dependencies [ccd9397]
340
+ - Updated dependencies [bca935b]
341
+ - Updated dependencies [d92c72d]
342
+ - Updated dependencies [c54c822]
343
+ - Updated dependencies [8dcc0f5]
344
+ - Updated dependencies [75b9e51]
345
+ - Updated dependencies [0a2f233]
346
+ - Updated dependencies [8621cdd]
347
+ - Updated dependencies [6f23667]
348
+ - Updated dependencies [5d21a48]
349
+ - Updated dependencies [19365b7]
350
+ - Updated dependencies [b7ed26d]
351
+ - Updated dependencies [68dea0b]
352
+ - Updated dependencies [64f8cbe]
353
+ - Updated dependencies [b3a3d83]
354
+ - Updated dependencies [7a55913]
355
+ - Updated dependencies [35accbf]
356
+ - Updated dependencies [6038de7]
357
+ - Updated dependencies [eb95d97]
358
+ - Updated dependencies [e4c2dc8]
359
+ - Updated dependencies [1bd2795]
360
+ - Updated dependencies [8186a70]
361
+ - Updated dependencies [a329cca]
362
+ - Updated dependencies [6eec18c]
363
+ - Updated dependencies [4d7bebf]
364
+ - Updated dependencies [821ac7a]
365
+ - Updated dependencies [8f81731]
366
+ - Updated dependencies [8b50cb3]
367
+ - Updated dependencies [8c2db68]
368
+ - Updated dependencies [22b5e54]
369
+ - Updated dependencies [0166bd5]
370
+ - Updated dependencies [9b702dc]
371
+ - Updated dependencies [ab16331]
372
+ - @objectstack/spec@17.0.0-rc.1
373
+ - @objectstack/platform-objects@17.0.0-rc.1
374
+ - @objectstack/core@17.0.0-rc.1
375
+
3
376
  ## 17.0.0-rc.0
4
377
 
5
378
  ### Major Changes
package/dist/index.js CHANGED
@@ -213,7 +213,7 @@ var ReportService = class {
213
213
  /** Raw metadata read of a saved report by id (no authz — callers gate). */
214
214
  async loadReportRow(reportId) {
215
215
  const rows = await this.engine.find("sys_saved_report", {
216
- filter: { id: reportId },
216
+ where: { id: reportId },
217
217
  limit: 1,
218
218
  context: SYSTEM_CTX
219
219
  });
@@ -262,7 +262,7 @@ var ReportService = class {
262
262
  f.owner_id = context.userId;
263
263
  }
264
264
  const rows = await this.engine.find("sys_saved_report", {
265
- filter: f,
265
+ where: f,
266
266
  limit: 500,
267
267
  orderBy: [{ field: "updated_at", order: "desc" }],
268
268
  context: SYSTEM_CTX
@@ -282,7 +282,7 @@ var ReportService = class {
282
282
  throw new Error(`REPORT_NOT_FOUND: ${reportId}`);
283
283
  }
284
284
  const schedules = await this.engine.find("sys_report_schedule", {
285
- filter: { report_id: reportId },
285
+ where: { report_id: reportId },
286
286
  limit: 500,
287
287
  context: SYSTEM_CTX
288
288
  });
@@ -319,7 +319,7 @@ var ReportService = class {
319
319
  const q = report.query ?? {};
320
320
  const limit = Math.min(q.limit ?? DEFAULT_LIMIT, this.maxRows);
321
321
  const rows = await this.engine.find(report.object_name, {
322
- filter: q.filter,
322
+ where: q.filter,
323
323
  fields: q.fields,
324
324
  orderBy: q.orderBy,
325
325
  limit,
@@ -409,7 +409,7 @@ var ReportService = class {
409
409
  const f = {};
410
410
  if (filter?.reportId) f.report_id = filter.reportId;
411
411
  const rows = await this.engine.find("sys_report_schedule", {
412
- filter: f,
412
+ where: f,
413
413
  limit: 500,
414
414
  orderBy: [{ field: "next_run_at", order: "asc" }],
415
415
  context: SYSTEM_CTX
@@ -420,7 +420,7 @@ var ReportService = class {
420
420
  async dispatchDue(now) {
421
421
  const ts = (now ?? this.clock.now()).toISOString();
422
422
  const due = await this.engine.find("sys_report_schedule", {
423
- filter: { active: true },
423
+ where: { active: true },
424
424
  limit: 200,
425
425
  context: SYSTEM_CTX
426
426
  });