@objectstack/plugin-reports 17.2.0 → 17.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +539 -0
- package/dist/index.d.mts +12 -5
- package/dist/index.d.ts +12 -5
- package/dist/index.js +46 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +46 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +15 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,544 @@
|
|
|
1
1
|
# @objectstack/plugin-reports
|
|
2
2
|
|
|
3
|
+
## 17.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- afa3a26: fix(plugin-reports)!: a non-member schedule `timezone` no longer discards the cron expression, and a schedule already holding one stops instead of firing on a cadence nobody asked for (#16291)
|
|
8
|
+
|
|
9
|
+
**BREAKING** for a deployment that already stores a report schedule with a cron expression and a `timezone` that is not an IANA member. Such a schedule is delivering today, on the wrong cadence; after this change it does not deliver at all until a human corrects the zone. It ships as `minor` under the lockstep launch-window convention (`scripts/check-changeset-no-major.mjs` refuses `major`); the version number is not the signal here, this entry is.
|
|
10
|
+
|
|
11
|
+
<!-- adr-0087: not-required (no-migration-prescription) No metadata moves. No key is retired, no def is unpublished, no schema shape changes, and `sys_report_schedule`'s declaration is untouched apart from a comment — so `objectstack migrate meta`, `spec-changes.json` and the upgrade guide have nothing to rewrite and no ledger entry would have anything to say. The obligation this change creates is DATA-SIDE and operational, not a code rewrite: an operator checks `sys_report_schedule.last_status` for `failed` and corrects the row's `timezone`, and the schedule resumes on the next sweep by itself. That channel is the row the operator is already looking at, which is strictly more precise than a migration-chain entry about a metadata surface that did not change. -->
|
|
12
|
+
|
|
13
|
+
## What an upgrading operator has to do, and how to find out
|
|
14
|
+
|
|
15
|
+
If `sys_report_schedule` holds a row whose `timezone` is not a real IANA zone **and** whose `cron_expression` is set, the sweep now marks it `last_status: 'failed'` with a `last_error` naming the zone, and stops running it. Correct the `timezone` on that row; the schedule resumes on the next sweep with no re-enable and no second action, because `active` and the past `next_run_at` are deliberately left alone.
|
|
16
|
+
|
|
17
|
+
Only rows written **before** `valueDomain: 'iana_time_zone'` landed on that column can be in this state, and the set cannot grow: measured on a real kernel with a real SQLite driver, `insert` into `sys_report_schedule` with `timezone: 'Mars/Olympus'` is already refused today — `VALIDATION_FAILED · Timezone must be a valid IANA time zone identifier, e.g. Europe/Zurich (got "Mars/Olympus")`. A set that cannot grow is still not an empty one, which is why this carries a banner rather than a shrug.
|
|
18
|
+
|
|
19
|
+
## The defect
|
|
20
|
+
|
|
21
|
+
croner (10.0.1) answers a non-member zone in three different ways, and only the middle one was ever reached here: `new Cron(expr, { timezone })` **without a callback** validates the expression and lets any zone through, `nextRun()` on that instance then throws a `CronDate` conversion `TypeError`, and the callback form throws at construction. `scheduleReport`'s eager guard used the callback-less form, so the timezone half of its own input passed straight under a guard whose stated purpose was "a clear error at schedule time instead of a schedule that silently falls back to interval on sweep" — and `nextRunAt` caught that deferred throw and returned `from + interval_minutes`. A schedule authored as "every weekday 09:00 Asia/Shanghai" became "every 1440 minutes, forever", re-derived on every sweep, logged only as a complaint about a cron expression that was perfectly good.
|
|
22
|
+
|
|
23
|
+
## What changed
|
|
24
|
+
|
|
25
|
+
- **The create-time guard now asks the right question.** `scheduleReport` consults `isValueDomainMember('iana_time_zone', …)` from `@objectstack/spec/shared` — the same predicate `sys_report_schedule.timezone`'s `valueDomain` declaration enforces on write — and refuses a non-member with `VALIDATION_FAILED: invalid timezone '<zone>': not a member of the 'iana_time_zone' value domain`. One answer at both doors, so this one cannot accept what the storage door refuses; it says so earlier and names the input that is actually wrong. It applies whether or not a `cron_expression` is set, because the storage gate does too. **This is not what makes the change breaking:** the storage door already refuses the same value today, so no reachable accept set narrows — what moves is which door answers and how clearly.
|
|
26
|
+
- **The row now stores the string the scheduler evaluates.** An empty `timezone` was stored verbatim while every `new Cron` call site read it as `UTC`; it is normalised to `UTC` on the way in.
|
|
27
|
+
- **A schedule already holding an unusable zone is stopped, not rescheduled.** It is not run and its `next_run_at` is not advanced; `last_status` / `last_error` carry the reason. Repairing the value automatically was rejected: the intended zone is not recoverable from a typo, and rewriting it to `UTC` would deliver at yet another set of wrong instants while the row looked healthy. Interval-only schedules are untouched — interval arithmetic never consults the zone, so a legacy bad value there still delivers on the cadence its author asked for.
|
|
28
|
+
- **Both fall-back warnings name both inputs.** The "no next occurrence" and the former "invalid cron" lines each mentioned only the expression, so either of them on a timezone fault sent an investigator to audit the half that was fine. They now carry the expression *and* the zone, and the second no longer asserts the expression is the broken one.
|
|
29
|
+
|
|
30
|
+
### Patch Changes
|
|
31
|
+
|
|
32
|
+
- be92d46: These fourteen packages now declare `repository.directory`, so their npm pages carry a working "source" deep link to their own directory in the monorepo.
|
|
33
|
+
|
|
34
|
+
npm renders that field by concatenating it onto `repository.url`. None of these fourteen manifests carried a `repository` block at all, so every one of their npm pages offered no route from the package back to its code — not a broken link, no link. That is what this publishes: the block those pages read, naming each package's own directory.
|
|
35
|
+
|
|
36
|
+
Nothing else about these packages changes. No export, no runtime behaviour, no dependency and no file in the tarball other than the manifest's own `repository` key. The version bump exists because the fix is only real once it is published: the field lives in the manifest npm serves, so a corrected manifest sitting in the repository leaves the package page exactly as wrong as it was.
|
|
37
|
+
|
|
38
|
+
The rule behind it is now mechanical rather than remembered — `check:manifest-repository-directory` makes a publishable (non-private) workspace manifest declare the field naming its own directory, so a package added or moved after this cannot quietly go back to having no source link.
|
|
39
|
+
- Updated dependencies [fe0d9a4]
|
|
40
|
+
- Updated dependencies [ecd2158]
|
|
41
|
+
- Updated dependencies [f2b5e46]
|
|
42
|
+
- Updated dependencies [2ed6be6]
|
|
43
|
+
- Updated dependencies [ed7243d]
|
|
44
|
+
- Updated dependencies [6ba0db4]
|
|
45
|
+
- Updated dependencies [625b0c3]
|
|
46
|
+
- Updated dependencies [233222e]
|
|
47
|
+
- Updated dependencies [07f40e5]
|
|
48
|
+
- Updated dependencies [ceb4877]
|
|
49
|
+
- Updated dependencies [e9fcd6b]
|
|
50
|
+
- Updated dependencies [90e7e6d]
|
|
51
|
+
- Updated dependencies [2bdabe6]
|
|
52
|
+
- Updated dependencies [ca326b5]
|
|
53
|
+
- Updated dependencies [8f404a5]
|
|
54
|
+
- Updated dependencies [159dbad]
|
|
55
|
+
- Updated dependencies [68437d4]
|
|
56
|
+
- Updated dependencies [abb140c]
|
|
57
|
+
- Updated dependencies [8333a6c]
|
|
58
|
+
- Updated dependencies [3e3ecb0]
|
|
59
|
+
- Updated dependencies [3030369]
|
|
60
|
+
- Updated dependencies [d5d8d50]
|
|
61
|
+
- Updated dependencies [e08892d]
|
|
62
|
+
- Updated dependencies [ae05f2e]
|
|
63
|
+
- Updated dependencies [b548e43]
|
|
64
|
+
- Updated dependencies [c463d03]
|
|
65
|
+
- Updated dependencies [64bd6a3]
|
|
66
|
+
- Updated dependencies [13c48c2]
|
|
67
|
+
- Updated dependencies [b0529e1]
|
|
68
|
+
- Updated dependencies [66dc6ab]
|
|
69
|
+
- Updated dependencies [6f94458]
|
|
70
|
+
- Updated dependencies [6e67b86]
|
|
71
|
+
- Updated dependencies [132742f]
|
|
72
|
+
- Updated dependencies [85a2459]
|
|
73
|
+
- Updated dependencies [50dc214]
|
|
74
|
+
- Updated dependencies [e89fa92]
|
|
75
|
+
- Updated dependencies [e9fcd6b]
|
|
76
|
+
- Updated dependencies [8976ea1]
|
|
77
|
+
- Updated dependencies [56fe8c2]
|
|
78
|
+
- Updated dependencies [acabd24]
|
|
79
|
+
- Updated dependencies [ab50c8f]
|
|
80
|
+
- Updated dependencies [6491463]
|
|
81
|
+
- Updated dependencies [89cf4d6]
|
|
82
|
+
- Updated dependencies [21c5dcb]
|
|
83
|
+
- Updated dependencies [6d4d5d3]
|
|
84
|
+
- Updated dependencies [ed5d557]
|
|
85
|
+
- Updated dependencies [bca21f7]
|
|
86
|
+
- Updated dependencies [e9fcd6b]
|
|
87
|
+
- Updated dependencies [2025b1f]
|
|
88
|
+
- Updated dependencies [1a7a7c9]
|
|
89
|
+
- Updated dependencies [e9fcd6b]
|
|
90
|
+
- Updated dependencies [cbca47d]
|
|
91
|
+
- Updated dependencies [acf4d38]
|
|
92
|
+
- Updated dependencies [ef3a138]
|
|
93
|
+
- Updated dependencies [68d5dfd]
|
|
94
|
+
- Updated dependencies [3e21cf0]
|
|
95
|
+
- Updated dependencies [4cfc93b]
|
|
96
|
+
- Updated dependencies [efd6b43]
|
|
97
|
+
- Updated dependencies [859ded3]
|
|
98
|
+
- Updated dependencies [fa125f3]
|
|
99
|
+
- Updated dependencies [74628d9]
|
|
100
|
+
- Updated dependencies [a646120]
|
|
101
|
+
- Updated dependencies [6f1ce7d]
|
|
102
|
+
- Updated dependencies [7778115]
|
|
103
|
+
- Updated dependencies [2c753fe]
|
|
104
|
+
- Updated dependencies [52804cd]
|
|
105
|
+
- Updated dependencies [3f89967]
|
|
106
|
+
- Updated dependencies [53cf263]
|
|
107
|
+
- Updated dependencies [21aabbc]
|
|
108
|
+
- Updated dependencies [9c270bb]
|
|
109
|
+
- Updated dependencies [76c8c5a]
|
|
110
|
+
- Updated dependencies [a84e1ce]
|
|
111
|
+
- Updated dependencies [bf1054a]
|
|
112
|
+
- Updated dependencies [d8d2776]
|
|
113
|
+
- Updated dependencies [222dc0f]
|
|
114
|
+
- Updated dependencies [e9fcd6b]
|
|
115
|
+
- Updated dependencies [32c917d]
|
|
116
|
+
- Updated dependencies [f9a3c32]
|
|
117
|
+
- Updated dependencies [f502898]
|
|
118
|
+
- Updated dependencies [51ae731]
|
|
119
|
+
- Updated dependencies [af7edfe]
|
|
120
|
+
- Updated dependencies [b60f48b]
|
|
121
|
+
- Updated dependencies [c78c918]
|
|
122
|
+
- Updated dependencies [4ca358d]
|
|
123
|
+
- Updated dependencies [cf9bda4]
|
|
124
|
+
- Updated dependencies [784cb92]
|
|
125
|
+
- Updated dependencies [7629f4d]
|
|
126
|
+
- Updated dependencies [51df9fd]
|
|
127
|
+
- Updated dependencies [a7da4de]
|
|
128
|
+
- Updated dependencies [de0bcdd]
|
|
129
|
+
- Updated dependencies [70f7d6d]
|
|
130
|
+
- Updated dependencies [c677cda]
|
|
131
|
+
- Updated dependencies [6acb37e]
|
|
132
|
+
- Updated dependencies [7797102]
|
|
133
|
+
- Updated dependencies [554a160]
|
|
134
|
+
- Updated dependencies [f7da71e]
|
|
135
|
+
- Updated dependencies [7f745c3]
|
|
136
|
+
- Updated dependencies [0a038cc]
|
|
137
|
+
- Updated dependencies [e9fcd6b]
|
|
138
|
+
- Updated dependencies [97adce2]
|
|
139
|
+
- Updated dependencies [a83482c]
|
|
140
|
+
- Updated dependencies [5eb24f8]
|
|
141
|
+
- Updated dependencies [2a3decc]
|
|
142
|
+
- Updated dependencies [cc00df2]
|
|
143
|
+
- Updated dependencies [cc00df2]
|
|
144
|
+
- Updated dependencies [f4e6adf]
|
|
145
|
+
- Updated dependencies [ee4a59b]
|
|
146
|
+
- Updated dependencies [4db3c61]
|
|
147
|
+
- Updated dependencies [5ca314a]
|
|
148
|
+
- Updated dependencies [e0af1a8]
|
|
149
|
+
- Updated dependencies [4771bd9]
|
|
150
|
+
- Updated dependencies [414c1fc]
|
|
151
|
+
- Updated dependencies [22c0279]
|
|
152
|
+
- Updated dependencies [c930f85]
|
|
153
|
+
- Updated dependencies [0db2947]
|
|
154
|
+
- Updated dependencies [92b5d7f]
|
|
155
|
+
- Updated dependencies [613bfbd]
|
|
156
|
+
- Updated dependencies [abae16a]
|
|
157
|
+
- Updated dependencies [094b8fd]
|
|
158
|
+
- Updated dependencies [c7aca0d]
|
|
159
|
+
- Updated dependencies [c1d8f98]
|
|
160
|
+
- Updated dependencies [8e0b297]
|
|
161
|
+
- Updated dependencies [d4f9b2a]
|
|
162
|
+
- Updated dependencies [5f7fa1d]
|
|
163
|
+
- Updated dependencies [87f0ccc]
|
|
164
|
+
- Updated dependencies [aedbaef]
|
|
165
|
+
- Updated dependencies [a727043]
|
|
166
|
+
- Updated dependencies [c5d6803]
|
|
167
|
+
- Updated dependencies [10d05bb]
|
|
168
|
+
- Updated dependencies [69602e5]
|
|
169
|
+
- Updated dependencies [c3ce76c]
|
|
170
|
+
- Updated dependencies [7936b29]
|
|
171
|
+
- Updated dependencies [46803fa]
|
|
172
|
+
- Updated dependencies [c2a336c]
|
|
173
|
+
- Updated dependencies [9f890d3]
|
|
174
|
+
- Updated dependencies [0bb2318]
|
|
175
|
+
- Updated dependencies [f7db8f4]
|
|
176
|
+
- Updated dependencies [1ecee3e]
|
|
177
|
+
- Updated dependencies [9408b7f]
|
|
178
|
+
- Updated dependencies [2bb0614]
|
|
179
|
+
- Updated dependencies [b3820c3]
|
|
180
|
+
- Updated dependencies [e9fcd6b]
|
|
181
|
+
- Updated dependencies [9bcd9be]
|
|
182
|
+
- Updated dependencies [b398ad2]
|
|
183
|
+
- Updated dependencies [99261a7]
|
|
184
|
+
- Updated dependencies [81b426f]
|
|
185
|
+
- Updated dependencies [001af1c]
|
|
186
|
+
- Updated dependencies [fb77aa5]
|
|
187
|
+
- Updated dependencies [581d8f8]
|
|
188
|
+
- Updated dependencies [f81afe3]
|
|
189
|
+
- Updated dependencies [40a44b9]
|
|
190
|
+
- Updated dependencies [f89812e]
|
|
191
|
+
- Updated dependencies [7a7fb03]
|
|
192
|
+
- Updated dependencies [8fd246d]
|
|
193
|
+
- Updated dependencies [021a735]
|
|
194
|
+
- Updated dependencies [7bdb163]
|
|
195
|
+
- @objectstack/spec@17.4.0
|
|
196
|
+
- @objectstack/core@17.4.0
|
|
197
|
+
- @objectstack/platform-objects@17.4.0
|
|
198
|
+
|
|
199
|
+
## 17.3.0
|
|
200
|
+
|
|
201
|
+
### Patch Changes
|
|
202
|
+
|
|
203
|
+
- ad54eb3: feat(tooling): onboard all 14 `packages/plugins/**` packages into `check:test-typecheck` (#14062)
|
|
204
|
+
|
|
205
|
+
Every plugin package now has a `tsconfig.test.json` compiled by the shared
|
|
206
|
+
`check:test-typecheck` gate, and its `typecheck` script names it. Before this,
|
|
207
|
+
the shrink-only `test-typecheck-debt.json` ratchet said **nothing** about a
|
|
208
|
+
third of the repo's runtime surface: 14 packages, 1 `tsconfig.test.json`
|
|
209
|
+
(`plugin-security`, wired directly to `tsc` rather than to the instrument), and
|
|
210
|
+
0 `check:test-typecheck` scripts.
|
|
211
|
+
|
|
212
|
+
Onboarded as a family by the director ruling of 2026-09-01 on #14062
|
|
213
|
+
(maintainer verbatim: 「同意」), which also carries the #5286 maintainer
|
|
214
|
+
authority the starting ledgers need. The smaller branch triage recommended —
|
|
215
|
+
declare the instrument's scope and re-site the two compile-time pins — was
|
|
216
|
+
recorded as considered and not taken: an instrument silent over a third of the
|
|
217
|
+
runtime surface is a hole readers generalise across, and that costs more than
|
|
218
|
+
fourteen tsconfigs.
|
|
219
|
+
|
|
220
|
+
**Measured, not assumed** (at `e80889095`, workspace closure built first). Four
|
|
221
|
+
packages carry residue and therefore a starting ledger — plugin-approvals 324
|
|
222
|
+
over 8 files, plugin-auth 94 over 10, plugin-sharing 3 over 2,
|
|
223
|
+
knowledge-ragflow 3 over 1. The other ten measure **zero** and deliberately get
|
|
224
|
+
no ledger file at all: the gate reads a missing ledger as `{ entries: {} }`, so
|
|
225
|
+
any error there is red immediately with no entry to be added to — strictly
|
|
226
|
+
stronger than a ledger holding nothing, and the call `plugin-security` had
|
|
227
|
+
already recorded for itself.
|
|
228
|
+
|
|
229
|
+
⛔ **This does not repair 345 type errors.** Per ruling item 3 it makes the
|
|
230
|
+
ratchet able to *see* them; paydown follows the ratchet's own shrink-only
|
|
231
|
+
discipline on its own cards. No test file is edited here.
|
|
232
|
+
|
|
233
|
+
Two corrections to the finding's own prose, both measured: the exclusion is
|
|
234
|
+
narrower than "no plugin package compiles its tests" — 9 of the 14 already
|
|
235
|
+
compiled their tests inside the `typecheck`-invoked build config, at zero
|
|
236
|
+
errors — and `exec-context-annotation.pin.ts` is a `.pin.ts`, which
|
|
237
|
+
`**/*.test.ts` never excluded, so its directives were already live. The pin
|
|
238
|
+
this change genuinely makes real is
|
|
239
|
+
`plugin-approvals/src/manager-org-screen-parity.contract.test.ts`, which no tsc
|
|
240
|
+
program had ever read.
|
|
241
|
+
- a1c804b: Report CSV and HTML exports now infer their columns from **every** row of the result set, not from the first 50. Column inference sampled `rows.slice(0, 50)` while the projection it produced was applied to all rows, so when a report declared no explicit `query.fields`, any key whose first occurrence fell at row 51 or later was absent from the header *and* dropped from every row that carried it. The export gave no signal: the CSV was well-formed, every row had the same arity, and nothing marked a column as inferred rather than declared, so a recipient of a scheduled report attachment could not tell. Sparse columns are the normal shape of report output — an optional field, a formula only some records satisfy, a lookup that resolves for a subset — and the sampled prefix is the query's first page in its own `orderBy`, so for a report sorted by status or created date the sample correlated with exactly the column it dropped. Both affected renderers are fixed (`csv`, which is also the `default:` format branch, and `html_table`); `json` was never affected. Already-inferred columns keep their position and late-appearing ones are appended, so an export that was correct before is byte-identical now.
|
|
242
|
+
- Updated dependencies [809d417]
|
|
243
|
+
- Updated dependencies [387e231]
|
|
244
|
+
- Updated dependencies [f794e4e]
|
|
245
|
+
- Updated dependencies [cae2169]
|
|
246
|
+
- Updated dependencies [b812a54]
|
|
247
|
+
- Updated dependencies [2d4fa75]
|
|
248
|
+
- Updated dependencies [0e4e51b]
|
|
249
|
+
- Updated dependencies [e84bbf6]
|
|
250
|
+
- Updated dependencies [effae80]
|
|
251
|
+
- Updated dependencies [efb3513]
|
|
252
|
+
- Updated dependencies [d62f990]
|
|
253
|
+
- Updated dependencies [c45d8e6]
|
|
254
|
+
- Updated dependencies [2e3e8c7]
|
|
255
|
+
- Updated dependencies [e621291]
|
|
256
|
+
- Updated dependencies [655b106]
|
|
257
|
+
- Updated dependencies [40a93b5]
|
|
258
|
+
- Updated dependencies [d5b330d]
|
|
259
|
+
- Updated dependencies [dda969c]
|
|
260
|
+
- Updated dependencies [1f45690]
|
|
261
|
+
- Updated dependencies [277948f]
|
|
262
|
+
- Updated dependencies [8bdd955]
|
|
263
|
+
- Updated dependencies [f3bbbef]
|
|
264
|
+
- Updated dependencies [4f24e9d]
|
|
265
|
+
- Updated dependencies [e27583e]
|
|
266
|
+
- Updated dependencies [4bd6faa]
|
|
267
|
+
- Updated dependencies [86cbe37]
|
|
268
|
+
- Updated dependencies [6a180e4]
|
|
269
|
+
- Updated dependencies [474242f]
|
|
270
|
+
- Updated dependencies [63cd487]
|
|
271
|
+
- Updated dependencies [bd4aa4e]
|
|
272
|
+
- Updated dependencies [803eaab]
|
|
273
|
+
- Updated dependencies [f8e8f03]
|
|
274
|
+
- Updated dependencies [983edf1]
|
|
275
|
+
- Updated dependencies [eae824e]
|
|
276
|
+
- Updated dependencies [f6fa22c]
|
|
277
|
+
- Updated dependencies [8a483b3]
|
|
278
|
+
- Updated dependencies [3bc2e38]
|
|
279
|
+
- Updated dependencies [97bcd99]
|
|
280
|
+
- Updated dependencies [df59de0]
|
|
281
|
+
- Updated dependencies [96e25a8]
|
|
282
|
+
- Updated dependencies [f75a38a]
|
|
283
|
+
- Updated dependencies [7a25e7d]
|
|
284
|
+
- Updated dependencies [1fa05a6]
|
|
285
|
+
- Updated dependencies [c85a265]
|
|
286
|
+
- Updated dependencies [dcb10a5]
|
|
287
|
+
- Updated dependencies [773a999]
|
|
288
|
+
- Updated dependencies [35dffea]
|
|
289
|
+
- Updated dependencies [d8024f0]
|
|
290
|
+
- Updated dependencies [8120808]
|
|
291
|
+
- Updated dependencies [776a098]
|
|
292
|
+
- Updated dependencies [5060877]
|
|
293
|
+
- Updated dependencies [4f6325d]
|
|
294
|
+
- Updated dependencies [52954c0]
|
|
295
|
+
- Updated dependencies [2aa8456]
|
|
296
|
+
- Updated dependencies [93809a3]
|
|
297
|
+
- Updated dependencies [7c0d0c3]
|
|
298
|
+
- Updated dependencies [daae7aa]
|
|
299
|
+
- Updated dependencies [8dc22d6]
|
|
300
|
+
- Updated dependencies [a392dbf]
|
|
301
|
+
- Updated dependencies [279431e]
|
|
302
|
+
- Updated dependencies [948dd6b]
|
|
303
|
+
- Updated dependencies [3b4c56c]
|
|
304
|
+
- Updated dependencies [ae8edd2]
|
|
305
|
+
- Updated dependencies [e25403c]
|
|
306
|
+
- Updated dependencies [64baa68]
|
|
307
|
+
- Updated dependencies [9fa70d7]
|
|
308
|
+
- Updated dependencies [09db64a]
|
|
309
|
+
- Updated dependencies [92916e7]
|
|
310
|
+
- Updated dependencies [a84f3ea]
|
|
311
|
+
- Updated dependencies [f2eaae8]
|
|
312
|
+
- Updated dependencies [c09451b]
|
|
313
|
+
- Updated dependencies [ba64877]
|
|
314
|
+
- Updated dependencies [7345308]
|
|
315
|
+
- Updated dependencies [79b6a22]
|
|
316
|
+
- Updated dependencies [30d96ab]
|
|
317
|
+
- Updated dependencies [f658793]
|
|
318
|
+
- Updated dependencies [c95ad19]
|
|
319
|
+
- Updated dependencies [e58ea8b]
|
|
320
|
+
- Updated dependencies [4a17645]
|
|
321
|
+
- Updated dependencies [3795c5f]
|
|
322
|
+
- Updated dependencies [8ab926b]
|
|
323
|
+
- Updated dependencies [7317cf2]
|
|
324
|
+
- Updated dependencies [e25e839]
|
|
325
|
+
- Updated dependencies [5997207]
|
|
326
|
+
- Updated dependencies [8b13cc8]
|
|
327
|
+
- Updated dependencies [4a4a35d]
|
|
328
|
+
- Updated dependencies [86e765a]
|
|
329
|
+
- Updated dependencies [1d7e76a]
|
|
330
|
+
- Updated dependencies [53dc739]
|
|
331
|
+
- Updated dependencies [fd289be]
|
|
332
|
+
- Updated dependencies [03bf7b1]
|
|
333
|
+
- Updated dependencies [f90e820]
|
|
334
|
+
- Updated dependencies [18d816a]
|
|
335
|
+
- Updated dependencies [e8bd715]
|
|
336
|
+
- Updated dependencies [b91c351]
|
|
337
|
+
- Updated dependencies [a28a3c0]
|
|
338
|
+
- Updated dependencies [daeaaf9]
|
|
339
|
+
- Updated dependencies [c459da6]
|
|
340
|
+
- Updated dependencies [e914733]
|
|
341
|
+
- Updated dependencies [f887e52]
|
|
342
|
+
- Updated dependencies [881f8d8]
|
|
343
|
+
- Updated dependencies [3bfa1e6]
|
|
344
|
+
- Updated dependencies [0a8ebf3]
|
|
345
|
+
- Updated dependencies [901355c]
|
|
346
|
+
- Updated dependencies [34ce8e7]
|
|
347
|
+
- Updated dependencies [33681ea]
|
|
348
|
+
- Updated dependencies [4635f3e]
|
|
349
|
+
- Updated dependencies [fd289be]
|
|
350
|
+
- Updated dependencies [ee3595c]
|
|
351
|
+
- Updated dependencies [09b4f4e]
|
|
352
|
+
- Updated dependencies [b2eab95]
|
|
353
|
+
- Updated dependencies [93940d4]
|
|
354
|
+
- Updated dependencies [3a04b01]
|
|
355
|
+
- Updated dependencies [45b9051]
|
|
356
|
+
- Updated dependencies [3954fb7]
|
|
357
|
+
- Updated dependencies [4805b56]
|
|
358
|
+
- Updated dependencies [b9e9227]
|
|
359
|
+
- Updated dependencies [d395692]
|
|
360
|
+
- Updated dependencies [5894d30]
|
|
361
|
+
- Updated dependencies [a3765f6]
|
|
362
|
+
- Updated dependencies [2d5cee3]
|
|
363
|
+
- Updated dependencies [e22158f]
|
|
364
|
+
- Updated dependencies [7404925]
|
|
365
|
+
- Updated dependencies [0c2334f]
|
|
366
|
+
- Updated dependencies [778c59f]
|
|
367
|
+
- Updated dependencies [d2619fd]
|
|
368
|
+
- Updated dependencies [af56546]
|
|
369
|
+
- Updated dependencies [6acb11a]
|
|
370
|
+
- Updated dependencies [33c5fd3]
|
|
371
|
+
- Updated dependencies [20b0fdb]
|
|
372
|
+
- Updated dependencies [905019b]
|
|
373
|
+
- Updated dependencies [a286411]
|
|
374
|
+
- Updated dependencies [98c0d33]
|
|
375
|
+
- Updated dependencies [368a82e]
|
|
376
|
+
- Updated dependencies [a3d5724]
|
|
377
|
+
- Updated dependencies [93ea19b]
|
|
378
|
+
- Updated dependencies [9ee2dcf]
|
|
379
|
+
- Updated dependencies [8cb96ec]
|
|
380
|
+
- Updated dependencies [8f10a79]
|
|
381
|
+
- Updated dependencies [6269a55]
|
|
382
|
+
- Updated dependencies [a17da05]
|
|
383
|
+
- Updated dependencies [a8c00e2]
|
|
384
|
+
- Updated dependencies [0fb8760]
|
|
385
|
+
- Updated dependencies [e5ce2ed]
|
|
386
|
+
- Updated dependencies [be21955]
|
|
387
|
+
- Updated dependencies [bc56e18]
|
|
388
|
+
- Updated dependencies [be21955]
|
|
389
|
+
- Updated dependencies [a9ee989]
|
|
390
|
+
- Updated dependencies [4d0d944]
|
|
391
|
+
- Updated dependencies [15d58db]
|
|
392
|
+
- Updated dependencies [d63b014]
|
|
393
|
+
- Updated dependencies [9abe4e4]
|
|
394
|
+
- Updated dependencies [2cc7122]
|
|
395
|
+
- Updated dependencies [50d6c92]
|
|
396
|
+
- Updated dependencies [9e0ba21]
|
|
397
|
+
- Updated dependencies [311433f]
|
|
398
|
+
- Updated dependencies [3e5ad08]
|
|
399
|
+
- Updated dependencies [9abe4e4]
|
|
400
|
+
- Updated dependencies [b7131f3]
|
|
401
|
+
- Updated dependencies [e5812fa]
|
|
402
|
+
- Updated dependencies [7085f90]
|
|
403
|
+
- Updated dependencies [dee4dd4]
|
|
404
|
+
- Updated dependencies [ce7e497]
|
|
405
|
+
- Updated dependencies [51ecb2f]
|
|
406
|
+
- Updated dependencies [9086761]
|
|
407
|
+
- Updated dependencies [f6344e7]
|
|
408
|
+
- Updated dependencies [42a117b]
|
|
409
|
+
- Updated dependencies [1401ae7]
|
|
410
|
+
- Updated dependencies [4297fe7]
|
|
411
|
+
- Updated dependencies [e398863]
|
|
412
|
+
- Updated dependencies [d16df74]
|
|
413
|
+
- Updated dependencies [d79c602]
|
|
414
|
+
- Updated dependencies [f11fc61]
|
|
415
|
+
- Updated dependencies [e808890]
|
|
416
|
+
- Updated dependencies [8f79379]
|
|
417
|
+
- Updated dependencies [e6ca40e]
|
|
418
|
+
- Updated dependencies [0c77ea4]
|
|
419
|
+
- Updated dependencies [52954c0]
|
|
420
|
+
- Updated dependencies [89eb997]
|
|
421
|
+
- Updated dependencies [7131f12]
|
|
422
|
+
- Updated dependencies [aa5994e]
|
|
423
|
+
- Updated dependencies [be93457]
|
|
424
|
+
- Updated dependencies [a65db76]
|
|
425
|
+
- Updated dependencies [15eb2c9]
|
|
426
|
+
- Updated dependencies [5691b07]
|
|
427
|
+
- Updated dependencies [2a6122b]
|
|
428
|
+
- Updated dependencies [225e769]
|
|
429
|
+
- Updated dependencies [8af88dd]
|
|
430
|
+
- Updated dependencies [fb5fbb8]
|
|
431
|
+
- Updated dependencies [d7b3963]
|
|
432
|
+
- Updated dependencies [33184fd]
|
|
433
|
+
- Updated dependencies [7c41693]
|
|
434
|
+
- Updated dependencies [b72db01]
|
|
435
|
+
- Updated dependencies [dce5cd4]
|
|
436
|
+
- Updated dependencies [9688f58]
|
|
437
|
+
- Updated dependencies [556ebc1]
|
|
438
|
+
- Updated dependencies [177ebdc]
|
|
439
|
+
- Updated dependencies [8d237b4]
|
|
440
|
+
- Updated dependencies [2d2e6f0]
|
|
441
|
+
- Updated dependencies [2d8dd8d]
|
|
442
|
+
- Updated dependencies [22d573e]
|
|
443
|
+
- Updated dependencies [b5a2398]
|
|
444
|
+
- Updated dependencies [348860c]
|
|
445
|
+
- Updated dependencies [5383fa6]
|
|
446
|
+
- Updated dependencies [5b3ff63]
|
|
447
|
+
- Updated dependencies [1a6a19c]
|
|
448
|
+
- Updated dependencies [064d484]
|
|
449
|
+
- Updated dependencies [527e050]
|
|
450
|
+
- Updated dependencies [dd33bf9]
|
|
451
|
+
- Updated dependencies [4cb2a90]
|
|
452
|
+
- Updated dependencies [74a7804]
|
|
453
|
+
- Updated dependencies [53d3689]
|
|
454
|
+
- Updated dependencies [b3a63d3]
|
|
455
|
+
- Updated dependencies [49f0dcf]
|
|
456
|
+
- Updated dependencies [033a34c]
|
|
457
|
+
- Updated dependencies [4d25d22]
|
|
458
|
+
- Updated dependencies [1ffee51]
|
|
459
|
+
- Updated dependencies [5ae4303]
|
|
460
|
+
- Updated dependencies [ece4dad]
|
|
461
|
+
- Updated dependencies [e9b377e]
|
|
462
|
+
- Updated dependencies [146f448]
|
|
463
|
+
- Updated dependencies [735f5c7]
|
|
464
|
+
- Updated dependencies [a7e18de]
|
|
465
|
+
- Updated dependencies [366f895]
|
|
466
|
+
- Updated dependencies [dc75ba8]
|
|
467
|
+
- Updated dependencies [cce0aa9]
|
|
468
|
+
- Updated dependencies [e764507]
|
|
469
|
+
- Updated dependencies [cff17af]
|
|
470
|
+
- Updated dependencies [39404f3]
|
|
471
|
+
- Updated dependencies [ca1965f]
|
|
472
|
+
- Updated dependencies [8619f95]
|
|
473
|
+
- Updated dependencies [b706af9]
|
|
474
|
+
- Updated dependencies [add4360]
|
|
475
|
+
- Updated dependencies [e0abc38]
|
|
476
|
+
- Updated dependencies [fc9ba76]
|
|
477
|
+
- Updated dependencies [0f94cc7]
|
|
478
|
+
- Updated dependencies [a11c1a5]
|
|
479
|
+
- Updated dependencies [71f9cd1]
|
|
480
|
+
- Updated dependencies [ee17d86]
|
|
481
|
+
- Updated dependencies [cdbd920]
|
|
482
|
+
- Updated dependencies [18c432e]
|
|
483
|
+
- Updated dependencies [3c418c4]
|
|
484
|
+
- Updated dependencies [fa8715a]
|
|
485
|
+
- Updated dependencies [a933ed7]
|
|
486
|
+
- Updated dependencies [b3ca463]
|
|
487
|
+
- Updated dependencies [a933ed7]
|
|
488
|
+
- Updated dependencies [0d4a6a8]
|
|
489
|
+
- Updated dependencies [518d5e5]
|
|
490
|
+
- Updated dependencies [6643ba1]
|
|
491
|
+
- Updated dependencies [eeba2ef]
|
|
492
|
+
- Updated dependencies [ec4c4d2]
|
|
493
|
+
- Updated dependencies [424f73c]
|
|
494
|
+
- Updated dependencies [cccbe51]
|
|
495
|
+
- Updated dependencies [a8d6b1d]
|
|
496
|
+
- Updated dependencies [e4a7695]
|
|
497
|
+
- Updated dependencies [87075b1]
|
|
498
|
+
- Updated dependencies [fc58a99]
|
|
499
|
+
- Updated dependencies [14cfc00]
|
|
500
|
+
- Updated dependencies [1c6f7b4]
|
|
501
|
+
- Updated dependencies [e854a53]
|
|
502
|
+
- Updated dependencies [dfebfc8]
|
|
503
|
+
- Updated dependencies [598b7ec]
|
|
504
|
+
- Updated dependencies [d028b37]
|
|
505
|
+
- Updated dependencies [f7b25c5]
|
|
506
|
+
- Updated dependencies [122ef38]
|
|
507
|
+
- Updated dependencies [4a37870]
|
|
508
|
+
- Updated dependencies [428f9b2]
|
|
509
|
+
- Updated dependencies [aa7ff56]
|
|
510
|
+
- Updated dependencies [811a3c2]
|
|
511
|
+
- Updated dependencies [1401ae7]
|
|
512
|
+
- Updated dependencies [2fd3f1c]
|
|
513
|
+
- Updated dependencies [c41b42e]
|
|
514
|
+
- Updated dependencies [c4db311]
|
|
515
|
+
- Updated dependencies [750fff5]
|
|
516
|
+
- Updated dependencies [c19035e]
|
|
517
|
+
- Updated dependencies [ececf7a]
|
|
518
|
+
- Updated dependencies [d173125]
|
|
519
|
+
- Updated dependencies [8eeca27]
|
|
520
|
+
- Updated dependencies [8425c17]
|
|
521
|
+
- Updated dependencies [a5ef1d8]
|
|
522
|
+
- Updated dependencies [772d5de]
|
|
523
|
+
- Updated dependencies [ce80ec2]
|
|
524
|
+
- Updated dependencies [b372318]
|
|
525
|
+
- Updated dependencies [97a2263]
|
|
526
|
+
- Updated dependencies [29d0676]
|
|
527
|
+
- Updated dependencies [0169d49]
|
|
528
|
+
- Updated dependencies [6bd3231]
|
|
529
|
+
- Updated dependencies [d2b5ba8]
|
|
530
|
+
- Updated dependencies [b799ac5]
|
|
531
|
+
- Updated dependencies [8f74307]
|
|
532
|
+
- Updated dependencies [d23dc08]
|
|
533
|
+
- Updated dependencies [644ad50]
|
|
534
|
+
- Updated dependencies [0da7cd2]
|
|
535
|
+
- Updated dependencies [28a5c3e]
|
|
536
|
+
- Updated dependencies [4bc18e5]
|
|
537
|
+
- Updated dependencies [9f57f1e]
|
|
538
|
+
- @objectstack/spec@17.3.0
|
|
539
|
+
- @objectstack/platform-objects@17.3.0
|
|
540
|
+
- @objectstack/core@17.3.0
|
|
541
|
+
|
|
3
542
|
## 17.2.0
|
|
4
543
|
|
|
5
544
|
### Minor Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -195,10 +195,17 @@ declare class ReportService implements IReportService {
|
|
|
195
195
|
* `interval_minutes` (the documented `sys_report_schedule` contract) and is
|
|
196
196
|
* evaluated in the schedule's `timezone` (default UTC) via croner — the same
|
|
197
197
|
* library the job scheduler uses. Falls back to `from + interval_minutes` for
|
|
198
|
-
* interval schedules, and also if a cron expression
|
|
199
|
-
* future occurrence
|
|
200
|
-
*
|
|
201
|
-
* the
|
|
198
|
+
* interval schedules, and also if a cron expression cannot be evaluated or has
|
|
199
|
+
* no future occurrence — both logged naming the expression AND the zone, since
|
|
200
|
+
* either can be the cause; never throws into the sweep. `from` is the reference
|
|
201
|
+
* instant (the injected clock), so `today()`-style boundaries honor the test
|
|
202
|
+
* clock.
|
|
203
|
+
*
|
|
204
|
+
* ⚠️ This stays a PURE function of its arguments — it computes an instant, it
|
|
205
|
+
* does not decide policy. The sweep's answer to an unusable zone (do not run,
|
|
206
|
+
* do not advance, mark the row) lives in `dispatchDue`, where the row and the
|
|
207
|
+
* engine are in hand; the fallback here survives only so a caller that has
|
|
208
|
+
* already passed that arm cannot throw into the loop.
|
|
202
209
|
*/
|
|
203
210
|
private nextRunAt;
|
|
204
211
|
private advanceSchedule;
|
|
@@ -236,7 +243,7 @@ interface ReportsPluginOptions {
|
|
|
236
243
|
declare class ReportsServicePlugin implements Plugin {
|
|
237
244
|
name: string;
|
|
238
245
|
version: string;
|
|
239
|
-
type:
|
|
246
|
+
type: "standard";
|
|
240
247
|
dependencies: string[];
|
|
241
248
|
private readonly options;
|
|
242
249
|
private service?;
|
package/dist/index.d.ts
CHANGED
|
@@ -195,10 +195,17 @@ declare class ReportService implements IReportService {
|
|
|
195
195
|
* `interval_minutes` (the documented `sys_report_schedule` contract) and is
|
|
196
196
|
* evaluated in the schedule's `timezone` (default UTC) via croner — the same
|
|
197
197
|
* library the job scheduler uses. Falls back to `from + interval_minutes` for
|
|
198
|
-
* interval schedules, and also if a cron expression
|
|
199
|
-
* future occurrence
|
|
200
|
-
*
|
|
201
|
-
* the
|
|
198
|
+
* interval schedules, and also if a cron expression cannot be evaluated or has
|
|
199
|
+
* no future occurrence — both logged naming the expression AND the zone, since
|
|
200
|
+
* either can be the cause; never throws into the sweep. `from` is the reference
|
|
201
|
+
* instant (the injected clock), so `today()`-style boundaries honor the test
|
|
202
|
+
* clock.
|
|
203
|
+
*
|
|
204
|
+
* ⚠️ This stays a PURE function of its arguments — it computes an instant, it
|
|
205
|
+
* does not decide policy. The sweep's answer to an unusable zone (do not run,
|
|
206
|
+
* do not advance, mark the row) lives in `dispatchDue`, where the row and the
|
|
207
|
+
* engine are in hand; the fallback here survives only so a caller that has
|
|
208
|
+
* already passed that arm cannot throw into the loop.
|
|
202
209
|
*/
|
|
203
210
|
private nextRunAt;
|
|
204
211
|
private advanceSchedule;
|
|
@@ -236,7 +243,7 @@ interface ReportsPluginOptions {
|
|
|
236
243
|
declare class ReportsServicePlugin implements Plugin {
|
|
237
244
|
name: string;
|
|
238
245
|
version: string;
|
|
239
|
-
type:
|
|
246
|
+
type: "standard";
|
|
240
247
|
dependencies: string[];
|
|
241
248
|
private readonly options;
|
|
242
249
|
private service?;
|